When .NET platform appeared, it enabled to solve many problems related to the process of development of user applications for Windows, as well as for their publishing, tracing and deployment. When the universal platform appeared, obvious contradictions between the capabilities which are expected from a programming language and those capabilities which may be included directly into an application under development lost their urgency. The process of deployment has become more rational, and it integrates a system of management of software product versions published earlier. At the same time, the process of the application development itself has become easier and friendlier, and it provides an improved .NET protection system, an extended set of metadata and various systems for code execution verification and analyzing both during development and testing, and during execution of assembly after publishing. And more than this, the platform gives an original framework for expansion and connection of different services which are required for proper execution of the functional capabilities included into an application, which may be replaced and expanded with new versions of the aforementioned platform with the course of time.
CLR execution environment serves as a basis for program code execution. At the same time, in fact it is a basis for verification, expansion and performance of development of future applications. Due to integration of, first of all, a common type system (or CTS) - a system which performs virtual execution and metadata of a common language into this environment, it became possible to give functional capabilities not only for development of customer applications, but for service providers too. The use of .NET platform enabled to ease development of applications not only for Microsoft technologies specialists, but for ordinary developers with the minimum knowledge of programming languages as well.
Summarizing all aforementioned things, we may draw a conclusion that .NET system is one of the most convenient and efficient technologies for software development. But it should be kept in mind that the metadata stored in .NET system may help a hacker to steal intellectual property and remove licensing restrictions. Therefore a lot of attention should be always given to the issues of protection and .NET code obfuscators have to be used before release of programs.