Microsoft .NET is an open source, high-level runtime infrastructure upon which many modern desktop, mobile, and web applications are built. It encompasses software applications written in Visual Basic and C# which can be deployed on various system platforms, including Windows, macOS, Linux, Windows Phone, iOS, and Android.
The .NET framework comprises two major components. The more important of the two is the Common Language Runtime (CLR), which is the virtual machine component responsible for the compilation, interpretation, and execution of source code. CLR utilizes a compiling system called "just-in-time" (JIT), which converts source code into machine code (binary digits) that can be read by the CPU. The other component is the .NET class library, which is an assembly of .NET's core development platforms, such as ASP.NET, WinForms, and Windows Presentation Foundation (WPF).
The following information describes the version history of the .NET framework and each version's purpose and compatibility. This information is found directly in the Microsoft Developer Network (MSDN) article .NET Framework Versions and Dependencies. Click the link for more information.
.NET version | CLR version | New features | Included with Windows | Compatible with Windows |
---|---|---|---|---|
4.7 | 4.0 |
|
|
|
4.6.2 | 4.0 |
|
|
|
4.6.1 | 4.0 |
|
|
|
4.6 | 4.0 |
|
|
|
4.5.2 | 4.0 |
|
|
|
4.5.1 | 4.0 |
|
|
|
4.5 | 4.0 |
|
|
|
4.0 | 4.0 |
|
|
|
3.5 | 2.0 |
|
|
|
3.0 | 2.0 |
|
|
|
2.0 | 2.0 |
|
|
|
1.1 | 1.1 |
|
|
|
1.0 | 1.0 |
|
|
It is worth noting that extended support services such as security updates, patches, and non-security hotfixes for the following Windows versions have been/will soon be discontinued:
More information on Windows end-of-life can be found on Microsoft's Windows Lifecycle Fact Sheet page.
Since Microsoft's announcement that they were going to open source the .NET Core framework, developers have been able to create software applications based on the .NET Framework on platforms outside the Windows ecosystem, including Linux, macOS, Android, and iOS. This would allow for more software to be written in the increasingly popular Visual C# language, as well as Visual Basic, and create a more formidable competitor to the already-popular and cross-platform Java platform.
But what about Microsoft Office? Or Media Player Classic - Home Cinema? Sumatra PDF? These are some examples of Windows applications that are not available for Linux or macOS, and would not be able to run natively on either platform. None of these apps run on Java, so users have limited options: use alternatives (LibreOffice, VLC, Evince); run the apps through a virtual machine (Windows in VirtualBox); or use a runtime layer such as Wine. Wine (and CrossOver) can be easily installed on Linux and macOS. Wine is available for free; CrossOver is paid with a free trial (click link for more information).
Since the mid-1990s, Linux and Mac developers have been working to produce compatibility layers that help "bridge the gap" and enable applications built for Windows to run on those platforms. The free and open-source Wine project and CodeWeavers' CrossOver project both fulfill these tasks.
Wine does include a compatibility layer for .NET applications; however, it is worth noting that Wine works best with Win32 (WinForms) applications and does not provide support for WPF, Windows Store, or UWP apps. Wine also doesn't work well with applications that use native DLL imports.