Let's get started.
.Net framework is a software development framework for developing and running softwares on windows. This framework based on .Net platform and developed by Microsoft.
On .Net platform we can run .Net based applications, websites and services on Windows. Also there some .Net implementations which are cross-platform frameworks so you can run your applications on Linux and macOS. With this specification you can develope and run same code for different platforms with these implementations.
Xamarin and .Net core are .Net implementation. With these we can develope applications for IOS, Android, Linux and macOS operating systemed devices. These devices can be smartwatches, iPads or android tablets etc... You can write the same code for all of these devices without majir changes. Maybe you will need some small changes for target devices, it depends on you.
There are two main components which contained by .Net framework, these are CLR which stands for Common Library Runtime and .Net Class Library.
CLR is a program execution engine. With CLR windows run the applications. Also CLR provides the services that are garbage collection, thread managenent, type safety and and exception management to increase performance and save the system resources. With these services our .Net framework based applications run with low system resources and high performance.
.Net Class library provides functional API's and classes which tested for being high effective. With these classes we use the common API's to handle required operations like database operations or some web requesting operations.
.Net applications are developing with C#, visual basic and F# programming languages. These languages are compiling to the CIL which stands for Common Intermediate Language through dll and executable application files. When the user run the application CLR compile the related dll and executable files to the machine code with JIT Debugger which stands for Just in time debugger. With Just in Time debugger the CLR turns your CIL codes to the specified machine code.
What Services Does .Net Framework provides for applications?
The .Net framework provides some services for .Net Framework based applications. These services are dedicated to improve application performance and save the system resources.
- Memory Management : In the .Net framework CLR is responsible from, garbage collection and memory allocation to savr system resource and increase the effectivity. Most programmin language the developer is responsible in this requirement.
- Common Type System: In .Net framework basic types are defined at framework not like the other programming languages.
- Class Library: .Net framework has a large and very good readable class library. The developer can reach and use them instead of rewrite the related codes.
- Development Frameworks and technologies: .Net framework has dedicated services and platforms for specific areas. For example, for web apps there is ASP.NET, for database management ADO.NET etc...
- InterLanguage development: The developer can write programs with the .Net framework compability language that the developer have more experience. The application will be compiled to the Common Intermediate Language even if the project has written with C#, VB, C++/CLI or F# languages by the compiler. When the user run the application the Just in Time debugger will turn it into specific machine code.
- Version Compatibility: The old version of .Net Framework applications can run on the latest .Net Framework versions. But you have to be carefully sometimes there can be some differancese between versions.
- Side by Side Execution: The .Net Framework versions which has same version groups can be installed simultaneously. There has been no conflicts on the CLR and CLR can work normal. These version groups are 1.0/1.1, 2.0/3.0/3.5, and 4/4.5.x/4.6.x/4.7.x/4.8.
- Multi Target Devices: This specification actually same as the version compability. The application which based on lower version of .Net Framework can be work on the all same and upper version of .Net Framework installed devices.
.Net Core and .Net Framework
.Net core and .Net framework use the mostly same components. Also you can write the same codes because both of them are .NET.
But there are some differences between them.
- .NET Framework is included in Windows and automatically updated machine-wide by Windows Update. .NET Core is shipped independently.
- The majority of .NET innovation happens in .NET Core.
- .NET Core is open-source. The .NET Framework source code is available is not open-source.
- .NET Core is cross-platform and runs on Linux, macOS, and Windows. .NET Framework only runs on Windows.
That is all in this article.
Burak Hamdi TUFAN.