Microsoft ' s. NET is a broad family of all products representing ' s next generation of services, software, and devel Opment tools. At the core of the. NET strategy lives the Common Language Runtime. The CLR is a platform for software development This provides services by consuming metadata. It is standards-based and component-oriented. Like any platform, the important pieces are the runtime, the libraries that provide access to them, and the languages that can target the platform.
But what exactly is. NET? Although the precise meaning can is a little hard to isolate by reading the prolific marketing, a literature little G reveals that. NET are in fact Microsoft's grand strategy as all of their software, systems, and services'll fit to Gether. It includes development tools (like the new version of Visual Studio, dubbed Visual Studio.NET), future versions of their Windows operating systems, new internet-based services (like a stepped-up version of their Passport Web authentication ser Vice), and an entirely new beast called the Common Language.
The Common Language Runtime is the a single most important piece to the. NET product strategy, because it is in essence the Engine that pulls the train-the CLR are how developers'll write software in the Brave new. NET 1.
The CLR as a development platform
The CLR is a development platform. Like any platform, it provides a runtime, defines functionality in some libraries, and supports a set of programming Langu Ages.
The CLR is a platform for developing applications. A platform is a set of programmatic services, exposed through some APIs to developers using one or more languages. Development generally targets a single platform;
The CLR is isn't a operating system in the strict sense of the term-it does does, for example, provide a file system, rely ing instead on the underlying OS (such as Windows) to implement that feature.
Break down the feature set of the platform (CLR) into three fundamental areas:the runtime this platform offers, the L Ibraries it defines, and the languages I ' m going to-use. These aspects of the platform overlap (= Figure 2), and understanding each of them and the ways in which they I s crucial to becoming an effective CLR programmer.
Runtime
A Runtime provides services to software, you write. The CLR provides a runtime.
A runtime is a piece's code, written by the platform vendor, which provides code with a set of services. What sorts of services? So, it depends on the platform-it might is anything from checking security for your to implementing a file system to PR Oviding access to some piece of hardware.
Almost every program written this days takes advantage of some sort of runtime. Very Few programmers start a project by writing their own file system or database engine. Rather, they make use of the already-written pieces of software, like Windows or Oracle. Both of platforms (yep, they ' re Both platforms) have a runtime that provides services. In the case of Windows runtime, the "operating system kernel," and it provides services like thread management. In the case of Oracle, the runtime are the database engine, and the services include things like a SQL engine and transacti Ons. We say that ' we write code that ' runs on ' a platform because it uses the services provided by the platform. The CLR provides these services using a layered architecture this is shown in Figure 3.
Libraries
The CLR ' s Base Class Library allow us to interact with the runtime, and provide additional useful.
Languages
The CLR supports programming in one of about two dozen languages. The most popular of the are likely to is C # and Visual Basic.NET.
In two areas, the CLR really shines:its support for component-based programming, and it extensive use of open, standards -based Technologies.
Components
The CLR has extensive support for component-based programming.
A fairly recent trend in software development was that of component-oriented programming, although the idea behind T development is not a new one. In fact, it's not even a unique to software Engineering:we stole it from the hardware. The basic concept is IT systems are built out of discrete, which can be parts to make a assembled larger.
A software component is a discrete piece of functionality, can be plugged into different applications. For example, I might develop a calendar component which allows the user to pick a day of the month.
Of course, components do not have to is visual-a reusable piece of logic for calculating sales tax could also be written As a component. The Imp