.Net Framework vs .Net Core vs .Net Standard - mcbride-clint/DeveloperCurriculum GitHub Wiki
.Net Framework
Microsoft introduced .Net framework in 2000 to build Web and Windows applications (desktop applications) using different languages like C#, Visual Basic, F#, etc.
This framework has been widely used in the IT industry for more than 20 years. It is a very popular Microsoft framework. This is the first managed framework released by Microsoft.
.Net Framework
The latest and final version of .Net Framework is 4.8. 4.8 will be supported at least for as long as the latest version of windows that it was bundled. There is no direct upgrade from .Net Framework to future .Net versions.
.Net Framework can be used for web and window application development which works only with Windows operating system.
.Net Core
.Net Core is Microsoft's attempt at adapting .Net to newer coding practices and better implementing the concepts that they learned over the 15 years of .Net Framework.
As .Net framework was working with only Windows, Microsoft introduced .Net core for cross platform as per market demand.
Important points about .Net Core,
- .Net core is free, open source and cross platform implementation of .Net.
- It can be used for Windows, Linux and Mac operating systems.
- .Net core supports C#, Visual Basic and F# languages for development.
- Most common functions received significant performance and memory optimization improvements.
The open source design allows for outside developers to suggest and implement new features much faster. In the 5 years that .Net Core has been available, they have progressed through versions 1, 2, and 3. Each major version introduced new concepts that allowed for faster and easier development. Starting with .Net Core 3.1, Microsoft announced that that it would be stable enough for widespread production use.
In 2020, .Net Core was rebranded to .Net to signify that it would be the sole future of .Net Core and .Net Framework starting with .Net 5 and a new release every year from then on (.Net 6 - 2021, .Net 7 - 2022, etc.). Every even numbered release is a Long Term Support release that will be supported for 3 years. Upgrading between releases is meant to be seamless.
The .Net rewrite allowed for Microsoft to add in and implement newer programming concepts into the base of the Framework to allow for easier extensibility and flexibility among 3rd party code. Some of the more well known of these are:
- Configuration
- Logging
- Dependency Injection
The base framework was written as a modular design so that it only includes the basic requirements of what is needed and other 1st and 3rd party libraries can be added in as needed.
.Net Standard
To aid in the growing complexity of the .Net ecosystem and to promote code reuse, Microsoft created the .Net Standard. Unlike .Net Framework and .Net Core, .Net Standard code is not executable by itself. It is meant to be used by other Frameworks. .Net Standard is meant to be the base set of programming APIs that can be implemented by other frameworks. In other words, it is a minimum contract that framework can satisfy to use the code present in the .Net Standard Library.
The advantage of this is that if your libraries are written in .Net Standard then they can be consumed by both .Net Framework and .Net Core Applications. This can help with sharing code between Applications and for upgrading from .Net Framework and .Net Core.
The code that is present in a .Net Standard library is meant to cover the base level functions of the .Net languages so there is nothing specific to UI or Operating Systems present in these libraries.
Repo Programming Examples:
See Also
- Full History of .Net - https://en.wikipedia.org/wiki/.NET_Framework_version_history
- .Net Framework Support Policy - https://dotnet.microsoft.com/platform/support/policy/dotnet-framework
- Pluralsight Course - .Net The Big Picture - https://app.pluralsight.com/library/courses/dotnet-ecosystem-big-picture/table-of-contents
- Pluralsight Conference - State of .Net - https://app.pluralsight.com/library/courses/devintersection-azureai-session-05/table-of-contents
- Pluralsight Course - .Net Standard: Getting Started - https://app.pluralsight.com/library/courses/dotnet-standard-getting-started/table-of-contents