.NET framework is an integrated component of the Windows operating system that supports the development and execution of next-generation applications, Windows store apps, and services.
.NET Framework 4.5 at its core consists of Common Language Runtime (CLR), Dynamic Language Runtime (DLR), Base Class Library (BCL), Portable Class Library, Parallel Extension, and WinRT.
With .Net Framework 4.0 there are various new additions in BCL which includes DLR, MEF, Parallel Extension, Entity Framework, WCF Data Services, and the ability to host .NET 4 runtime with .NET 3.5, 3.0, 2.0 runtimes side by side under the same hosting process.
When comes to the usage of the .NET framework, is used to develop various types of applications such as form-based applications, web-based applications, and powerful back-end web applications. There are multiple programming languages available on the .Net platform, VB.Net and the C# being the most selective platforms to be used. It is used to build applications for multiple o/s such as windows, phones environment, and of course the web platform. It provides a lot of functionalities and also supports industry standards which is the primary reason to work with the .NET framework amongst others.
Components of .NET Framework 4.5 Architecture
Common Language Runtime
This acts as the execution engine for the .NET Framework. All .NET programs execute under the supervision of CLR.
The CLR also helps extensively for the management of codebase, as code that targets the runtime is known as the managed code, and code that doesn’t target to runtime is known as unmanaged code.
Base Class Library
This is a library of functionalities that are available to all languages using the .NET Framework. It consists of classes and interfaces of reusable types that integrate with CLR.
In other words, the .NET Framework also includes a collection of standard base class libraries that is a collection of methods and functions that can be used for the core purpose for example namespaces.
Portable Class Library
The Portable Class Library project in Visual Studio 2012 allows you to develop and build managed assemblies that work on multiple .NET Framework platforms. Using a Portable Class Library project, you choose the platforms (such as Windows Phone and .NET for Windows Store apps) to target.
Managed Extensibility Framework (MEF)
MEF is a library for creating lightweight, extensible applications. It allows application developers to discover and use extensions with no configuration required.
Dynamic Language Runtime
This provides the runtime environment for dynamic languages like python etc. for executing under the full control of CLR.
This is used to build rich internet based web applications.
The .NET web application would be processed on a server-side, which would have Internet Information Services Installed into the machine or the server. The Internet Information Services (IIS) is a Microsoft component that is used to execute an Asp.Net application the result of the application execution is then sent to the client machines as soon as it gets the response, and the output is shown in the browser to the end-user or the customer.
Windows Store Apps (Metro Style Apps)
A Windows Store app is a new type of application that runs on Windows 8 devices and can take advantage of new WinRT APIs. These can only be distributed in the Windows 8 store.
Desktop Apps (Windows Forms)
A Windows Desktop app is a traditional Windows Forms application with a new name. Software developed for Windows XP, Windows Vista and Windows 7 will be categorized as a Windows Desktop app when running in Windows 8. Examples of Windows Desktop apps are Microsoft Office families products, notepads, etc.
WPF is used to create applications with a rich user experience. It includes application UI, 2D graphics, 3D graphics, and multimedia. It takes advantage of the hardware acceleration of modern graphic cards. WPF makes the UI faster, scalable, and resolution independent.
This is a cross-browser web based technology that allows designers and developers to deliver Rich Internet Applications (RIA) embedded in Web pages.
This is used to create a Data Access Layer to query and manipulate data from an underlying data sources like SQL Server, Oracle, and DB2, etc.
This allows you to query the data from the various data sources (like SQL databases, XML documents, Ado.Net Datasets, Various Web services, and any other objects such as Collections, Generics, etc.) using a SQL Query like syntax with .Net framework languages like C# and VB.
Ado.Net Entity Framework
This is used to query and store data in the relational databases (like SQL Server, Oracle, DB2, etc.) in an ORM fashion.
This allows you to distribute your work code across multiple processors to take advantage of the hardware.
This is used for building and developing services based on WS-* standards.
Asp.Net Web API is a framework for building HTTP services that can be consumed by a broad range of clients including browsers, mobiles, iPhones, and tablets.
ASP.NET SignalR is a library that simplifies the process of adding real-time web functionality to applications. Real-time web functionality is the ability to have server code push content to connected clients instantly as it becomes available, rather than having the server wait for a client to request new data.
This is used to build process-oriented business workflow and rules engine.
Visual Studio 2012
The Visual Studio IDE offers a set of tools that help you to write and modify the code for your programs, and also detect and correct errors in your programs. Using Visual Studio 2012 you can build Windows Store apps, desktop apps, mobile apps, ASP.NET web apps, and web services.
What do you think?
.NET is a complete programming language developed by Microsoft which was designed to build applications that could run on the Windows platform primarily. And the .Net programming language can be used to develop different types of applications such as forms-based applications, web-based applications, or back-end service applications. Based on the application requirement and feasibility, the developer can choose the programming language out of the available option and get started with the application development.
I hope you have enjoyed the .NET Framework 4.5 architecture. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.