The Microsoft .NET ecosystem has a long and rich history. From the early days of using the .NET Framework to build Windows applications, to building sophisticated and cross-platform cloud, web, desktop, and mobile applications today – Microsoft’s .NET ecosystem is set to adapt and expand well into the future.
Microsoft .NET – An Overview
The Microsoft .NET ecosystem is an open-source platform used by developers to build a variety of mobile, web, and desktop applications for Windows, Linux, MacOS, and all major mobile operating systems. The .NET ecosystem consists of tools, libraries, and programming languages.
Microsoft’s .NET ecosystem is confusing at first glance, with similar terms such as .NET framework, .NET core, and .NET being incorrectly explained and used. The best way to make sense of the .NET world is to first understand its implementations. .NET implementations allow code to run on different operating systems.
Going forward, Microsoft aims to phase .NET Framework out, in favor of Microsoft’s unified .NET Platform. Both .NET and .NET Core are often referred to as being the same, with .NET Core being the original .NET implementation for building cross-platform applications. .NET Core went up to Version 3.1 and continued as .NET from Version 5 onwards (skipping Version 4). Below we take a look at each of Microsoft’s .NET implementations and how they relate to one another.
Understanding the Microsoft .NET Ecosystem
Explore the four key components of this ecosystem: the .NET Framework, .NET Core, .NET 6, and .NET Standard and understand how each of these parts plays a crucial role in enabling developers to create high-performance, cross-platform applications across various real-world uses and across diverse industries.
.NET Framework – building windows applications
The .NET framework was released over two decades ago in 2002, providing a software development framework that runs only on Windows. It is the original .NET implementation and is used to build applications for Windows, along with services, websites, and API.
The .NET Framework includes a runtime, libraries, and provides a set of API to the developer for common programming needs. It is language agnostic, partly open-source, and its life cycle is coming to an end with Version 4.8 as the long-term support release. Going forward, Microsoft aims to push the use of .NET over the .NET Framework.
Over time, .NET Framework has become quite bloated due to extensive backwards compatibility with older compiled applications. From Microsoft’s perspective, .NET Framework is slowing down the platform’s adaptability moving forward. As such, Microsoft will not add new features and releases to the .NET Framework, instead focusing its efforts on the unified .NET platform.
How .NET Framework works
The .NET Framework works by compiling source code that’s written in one language (commonly C#) into Intermediate Language (IL). This code is then stored in assembly files containing information about security requirements, the code’s versions and types, and more. Assembly files are loaded to the Common Language Runtime (CLR) for validation. The stored IL code is then translated into machine code for execution. Multiple versions of the CLR can exist on one computer, making it easier to resolve version conflicts.
Architecture of the .NET Framework
The .NET Framework consists of three main components: Common Intermediate Language (CIL), Common Language Runtime (CLR), and Base Class Libraries. CIL is the compiled form of source code, executed by a CIL-compatible runtime like the CLR. The CLR serves as the engine that runs applications and offers various features such as exception handling and garbage collection. The base class libraries provide a range of APIs and types for common programming tasks like file operations, database connections, system communication, and GUI creation.
.NET Core – Microsoft’s cross-platform evolution
In 2016, Microsoft began the process of creating .NET Core – a free, open-source, cross-platform implementation for running Linux, MacOS, and Windows applications, and using hosting services such as Azure or AWS, allowing more flexibility when hosting applications on Azure or AWS.
.NET Core is independent from .NET Framework, despite being built to address many of its shortcomings, enabling developers to build truly cross-platform applications without being limited to Windows-only applications.
.NET Core’s modular architecture allows developers to leverage Nuget packages to enhance functionality and provide various features to .NET Core applications as needed. This Core implementation is used to create server applications on Windows, Mac, and Linux operating systems.
.NET 6 – A unified platform
After .NET Core 3.1, Microsoft introduced .NET 5, changing the “.NET Core” name to just “.NET”. All .NET implementations from v3.1 and down are called .NET Core, and all implementations from v5 and up are called .NET.Naming for Version 4 was kept for the .NET Framework, in which v4.8 is the long-term support release.
.NET 6 is technically the latest release of .NET Core, but under its new name. .NET 6 offers the latest APIs, language features, and brings improved performance for full stack development.
Going forward, Microsoft aims to push .NET 6 and beyond as their go-to platform for building cross-platform applications. .NET 7 releases in November of 2022 and will replace .NET 6. .NET Core has also reached end-of-life with Version 3.1.
.NET Standard – The Underlying Foundation
.NET Standard provides a set of common .NET APIs that are available on the different .NET implementations, forming an underlying base foundation that brings greater uniformity between .NET Core, the .NET Framework, Mono, Xamarin, Unity, etc. .NET 5 and beyond use other methods for establishing uniformity without needing to use .NET Standard.
It’s worth noting that .NET Standard is only for libraries, not for front-end user interfaces. Developers only have to write code once and it can be called by the different front-end user interfaces for each .NET implementation (e.g., .NET Framework or .NET Core).
“Developers only have to write code once and it can be called by the different front-end user interfaces for each .NET implementation.”
As a single abstraction layer, .NET Standard operates against mobile devices, Windows, Linux, Mac, IoT devices, etc. Note that not every user interface will work on every platform. For example, you still won’t be able to run Windows Forms on a Mac
In the long run, .NET Standard will eventually be phased out as it’s only an underlying foundation between older .NET implementations. As Microsoft keeps moving towards one unified platform, the need for uniformity between newer .NET implementations becomes less and less necessary, as was seen with the release of .NET 5 and beyond.
Commonly used .NET programming languages
The world of .NET applications encompasses several programming languages, each offering its unique strengths and capabilities. We explore the 3 most commonly used languages for developing .NET applications: C#, F#, and Visual Basic (VB). Each of these languages cater to different programming paradigms and are favored by developers for various reasons.
Who uses Microsoft .NET?
Microsoft .NET is a versatile framework that finds extensive application in the real world. It is used by a host of industries and leading organizations to develop scalable, cross-platform, and high-performing applications. Explore some notable examples of organizations that have harnessed the power of Microsoft .NET:
Chipotle, the popular fast-casual restaurant chain, embraced the capabilities of .NET and .NET Core to rapidly create a functional prototype. Leveraging the cloud platform Microsoft Azure, Chipotle successfully deployed their application without requiring extensive prior experience. This demonstrates how .NET can facilitate quick development and deployment processes, even for organizations outside the software industry.
Forza Horizon 5, a widely acclaimed video game, witnessed a massive surge in popularity. The game’s success can be attributed in part to its utilization of Microsoft technologies. By leveraging containers and Azure Kubernetes Service, Forza Horizon 5 created an optimized and scalable environment. The game was built with the help of various Microsoft services, including .NET, Azure Cache for Redis, Azure Storage, and Azure Kubernetes Service.
Stack Overflow, a prominent platform for developers to seek and share knowledge, turned to .NET and ASP.NET to accelerate their development process. By utilizing these technologies, Stack Overflow’s system administrators were able to save significant time during the development phase. This exemplifies how Microsoft .NET can empower organizations to streamline their software development and achieve greater efficiency.
Tencent, a leading Chinese technology conglomerate, adopted a microservice-based architecture and relied on Microsoft .NET Core and ASP.NET. By leveraging the rich ecosystem of Microservice and API-building infrastructure offered by .NET, Tencent was able to develop robust and scalable solutions. This demonstrates how Microsoft .NET can meet the complex requirements of large-scale enterprises.
What is .NET used to build?
Explore the types of applications that the .NET ecosystem is used to build, from advanced and performant web & mobile applications, to games and AI-powered digital solutions. Take a deeper look at 6 of the most common .NET real-world use cases and applications.
Web apps & services with ASP.NET
ASP.NET is an open source, cross platform framework for building web applications and services using C# and .NET. Developers can build interactive web User Interfaces (UI) with C#, HTML, and CSS instead of having to rely on JavaScript. With tools such as Blazor, code can be written in C# on both the front and back-end, enabling code sharing and more streamlined development. Here’s what ASP.NET lets you build:
Web applications
Build full-stack, modern, and scalable web applications using C#, JavaScript, HTML, and CSS. Use features such as Blazor to build interactive user interfaces without JavaScript and run .NET apps in-browser with Web Assembly.
REST APIs
Build secure APIs alongside web services and pages using the same framework and patterns inside a single project. ASP.NET also lets you build APIs across different platforms using C# and develop services for clients on both web and mobile.
Real time communication
Use SignalR to real web apps in C# that allow communication between the server and client in real-time, pushing up to date information and code without having to hit refresh. Developers can build modern, simple, and efficient real-time web apps.
Mobile & Desktop Apps with .NET MAUI
.NET Multi-platform UI (.NET MAUI) is framework for building cross-platform, natively compiled Android, iOS, Windows, and MacOS desktop and mobile applications from a single codebase. .NET MAUI is open-source and aims to bring as much of your app’s UI and logic into a single shared codebase.
Developers can build cross-platform applications using C# and XAML (Microsoft’s take on XML for describing GUIs) using Visual Studio. The development process is streamlined as code and UI layout can be easily shared and implemented for each platform.
“Together with Blazor, .NET MAUI lets you build hybrid apps using C# instead of JavaScript and reuse parts of your web UI on different platforms. ”
While .NET MAUI encourages using a single shared database, developers can still write unique source-code for each platform where necessary. Layouts for apps are automatically adapted to their respective operating system for each platform, with no additional code necessary.
Microservices with .NET and ASP.NET
Microservices are design patterns for developing applications composed of independent and small packages or modules, each with a unique focus. These modules can communicate with other modules in a structured, pre-defined way. Microservices allow for easier testing and partial deployment of an application, and allow individual microservices to be scaled post-deployment.
Using ASP.NET (.NET’s web framework), you can easily create APIs (these become microservices). You can then use Docker Containers to deploy microservices and individual parts of your application.
Cloud apps with .NET and Visual Studio Cloud dev tools
Build modern, performant, real-time-capable, and highly scalable cloud applications with .NET and deploy them to any of the major cloud providers. Microsoft recommends deploying .NET cloud applications to Azure (Microsoft’s cloud platform) as it natively supports .NET and Visual Studio developer tools.
Existing .NET applications can migrate over to the cloud, with free assistance available, and the process streamlined. ASP.NET web applications can also be hosted on any of the major cloud providers. .NET applications also fully support serverless cloud computing with Azure Functions for pay-as-you-go scalable cloud computing without maintaining or paying for servers.
AI & ML integration with ML.NET
ML.NET is a machine learning framework made for .NET developers to build and integrate machine learning models into .NET applications. Prior machine learning experience is not necessary. The ML.NET platform offers extensible tooling for Visual Studio and is cross-platform and open-source.
Distributed data analytics is possible with Apache Spark, offering an engine that works with large data sets. .NET provides APIs for using Apache Spark with C# and F#.
Cross-platform games with .NET and C#
Microsoft offers a comprehensive suite of game development tools and services designed for developers to create immersive gaming experiences across various platforms. From powerful game engines to robust game services and development tools, Microsoft provides a range of solutions to meet the needs of game developers. .NET is used to build cross-platform games built with: