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

  • .NET Core

  • .NET 6

  • .NET Standard

.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.

  • C# (C-sharp): C# stands out as a popular choice, renowned for its object-oriented nature, type safety, and modern programming features.

  • F# (F-sharp): F# brings a functional and concise approach to .NET development, making it ideal for tasks such as machine learning, data science, and manipulation.

  • Visual Basic (VB): VB provides a multi-paradigm, object-oriented, and event-driven programming experience, emphasizing ease of learning and rapid development of type-safe .NET applications.

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.

Do you have a project in mind?

Let’s discuss the future of your organization and how we can guide you on your journey to successful digital transformation.

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

  • Mobile & desktop apps with .NET MAUI

  • Microservices with .NET and ASP.NET

  • Cloud apps with Visual Studio Cloud

  • AI & ML solutions with ML.NET

  • Cross-platform games with .NET and C#

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:

  • Game engines: Microsoft provides the Unity engine, MonoGame, Godot, Stride, and more for building VR, AR, 3D games, etc.

  • Game services: Microsoft Azure PlayFab provides all of the features, tools, and functionality required for building and operating a game while optimizing resource usage, providing monetization options, and much more. Build multiplayer games with Photon, use Hadean to create cloud-native apps, and Discord for integrating chat servers into your game.

  • Game development tools: Visual Studio provides a host of intelligent features and tools for game development such as debugging, refactoring code, and more. Visual Studio also supports collaborative tools for remote work. .NET is a part of Microsoft Game Dev, a suite of tools for building, launching, running, and growing games.

  • Game development ecosystem: .NET provides access to open-source projects for managed graphics, libraries for Objective-C and Java libraries for iOS/Android, and has a large, active community (and resources) for game development.

Frequently
Asked Questions.

Discover what Microsoft .NET is used for, its popularity, the differences between .NET, .NET Core, and .NET Framework, and more.

Microsoft .NET is used to build a variety of cross-platform applications including web applications and services, mobile and desktop applications, microservices, games, cloud-based applications, IoT apps, AI, and even machine learning applications. .NET applications can be built to run on Windows, MacOS, Linux, iOS, Android, and more. NET enables developers to build fast, scalable, extensible, modern applications with C#, F#, and Visual Basic for a wide range of platforms and industries.

While parts of the Microsoft .NET ecosystem are being phased out, Microsoft is simply shifting their focus going forward onto versatile and modern development platforms with .NET 6 and beyond. Many systems and applications still run on .NET Framework and .NET Core, Microsoft aims to push their unified .NET platform as a development solution to build a wide range of cross-platform applications.

.NET has seen steady growth over the past several years. Microsoft .NET lets developers build fast, modern, and scalable applications for any platform and a wide range of industries using C# (along with F# and Visual Basic). .NET applications are extensible thanks to huge libraries and a large, active global community.

Microsoft .NET is a platform and guiding framework for software developers that provides extensive tools, libraries, and features for building a broad range of fast and scalable cross-platform applications for mobile, PC, and even for IoT applications (Internet of Things). .NET applications are written primarily in C#, but can also be written in F# and Visual Basic (VB).

These languages are compiled down to a Common Intermediate Language shared by several .NET implementations and can then be executed by the Common Language Runtime. Note that terminology for these processes vary between .NET Framework, .NET Core, and .NET, though they still work in similar ways.

.NET Framework was the original .NET implementation and ran only on Windows. The .NET Core was Microsoft’s cross-platform solution to many of .NET Framework’s shortcomings. With .NET Core, developers could build applications for Windows, Linux, and MacOS. After reaching .NET Core 3.1, Microsoft renamed the next version to .NET 5, skipping its naming convention for Version 4. Going forward, Microsoft will use .NET as its unified platform name for all future versions.

To summarize, Microsoft named all .NET versions from v3.1 and down as “.NET Core”, and all versions from 5 and up as “.NET”. Microsoft will phase out .NET Framework and .NET Core as it pushes .NET towards being its go-to cross-platform development platform for building a broad range of applications.

Do you have a project in mind?

Let’s discuss the future of your organization and how we can guide you on your journey to successful digital transformation.