We began this chapter with an introduction to managed code and object-oriented programming. You looked at classes and learned how you can instantiate a class to create an object and then create properties, methods, and events for your class. You then learned how to create partial classes, generic classes, and interfaces. Next, you looked at the .NET Framework and learned that the common language runtime provides a framework for running managed code that includes compilation services, exception handling, reflection, and memory management. We looked at some common namespaces in the .NET Framework class library. Finally, we put this all together by looking at how a VSTO solution uses primary interop assemblies and how solution assemblies are created and run.