This chapter introduced the .NET application model. Through metadata, the framework can understand enough about your application to provide many services that you do not have to implement. On the other hand, we have seen how the framework is structured so that you can substitute your own objects and implementations where needed.
Type safety enables application domains to provide a robust, yet cheap, form of application isolation. Contexts, proxies, and interception allow the runtime to transparently provide services to parts of applications that require them.
Another aspect of the .NET application model is the pervasive use of attributes, which can be easily added to source code and is stored with the metadata. We saw examples of the ...