Within .NET, there is a wide range of technologies that cover almost any type of application and development need that we may encounter.
It can be a bit confusing due to the large number of technology names available. Among the available technologies and types of projects, we find, for example, desktop applications, mobile applications, web applications, games, and console applications.
But do not be alarmed; you just need to know that these are technologies that fall within the .NET environment, and they are used to create different types of applications.
Choosing the right technology depends on the application requirements and the execution environment. Here is a summary table.
Application Type | .NET Technology | Platform |
---|---|---|
Console | Console App | Cross-platform |
Desktop | WinForms ❌ | Windows |
WPF | Windows | |
UWP ❌ | Windows | |
Web | ASP.NET Core | Cross-platform |
Blazor | Cross-platform | |
Mobile | Xamarin ❌ | Windows, Android, iOS |
MAUI | Cross-platform | |
Games | Unity | Cross-platform |
Godot | Cross-platform | |
Internet of Things (IoT) | .NET for IoT | IoT Devices |
❌ means obsolete
So let’s take a closer look at each of them 👇.
Console Applications
Console applications are text-based applications that run in a command line window (CMD in Windows or Terminal in macOS/Linux).
They are the simplest and most basic development option in .NET and are widely used to test logic functions without a graphical interface or for automation.
When to use it
Console applications are appropriate for automation scripts, functionality testing, and command-line applications that do not require a GUI.
Desktop Applications
WinForms (Windows Forms)
WinForms is a technology for developing desktop applications on Windows with a simple graphical user interface (GUI).
Launched in the original .NET Framework, WinForms allows you to design forms and graphical components by dragging and dropping elements.
Obsolete
It has been replaced by WPF
WPF
WPF (Windows Presentation Foundation) is a more advanced technology than WinForms, also exclusive to Windows, but it offers better support for complex graphical interfaces and rich visual content.
It uses XAML (Extensible Application Markup Language) to define interfaces and allows for greater customization and animations.
When to use it
It is the current technology recommended by Microsoft for desktop applications on Windows.
UWP
UWP (Universal Windows Platform) is a platform that allows you to create universal applications that work on multiple Windows devices, including PCs, tablets, Xbox, and HoloLens.
UWP applications are optimized for Windows 10 or later and can be published in the Microsoft Store. They are also developed with XAML (with very small variations compared to WPF).
Obsolete
It was meant to replace WPF but did not succeed. It is currently out of use, and WPF is recommended.
Web Applications
ASP.NET
ASP.NET is a technology for creating web applications in .NET, ranging from simple HTML pages to complex and robust web applications.
Obsolete
It has been replaced by ASP.NET Core
ASP.NET Core
ASP.NET Core is the evolution of ASP.NET, designed to be cross-platform, high-performance, and cloud-compatible.
When to use it
ASP.NET Core is the recommended option for modern, cross-platform web applications.
Blazor
Blazor is a recent technology that allows you to develop interactive web applications using C# instead of JavaScript. Blazor has two modes:
- Blazor WebAssembly: Runs C# code in the browser.
- Blazor Server: Runs code on the server, and the browser interacts with it via SignalR.
When to use it
Useful for C# developers who want to work on web applications without relying on JavaScript.
Mobile Applications
Xamarin
Xamarin is a platform that allows you to develop cross-platform mobile applications using C# and .NET. Applications created with Xamarin can run on iOS, Android, and Windows.
Obsolete
It has been replaced by MAUI
.NET MAUI
MAUI (Multi-platform App UI) is the evolution of Xamarin Forms, allowing the development of desktop and mobile applications from a single codebase. Like Xamarin, it supports iOS, Android, macOS, and Windows.
Cross-platform applications that need to run on mobile devices and desktop applications, offering a more unified experience than Xamarin.
Game Applications
Unity
Unity is a very popular game development engine that uses C# as its primary programming language. Unity allows you to develop 2D and 3D games and publish them on multiple platforms, including consoles, PCs, mobile devices, and virtual reality.
When to use it
Unity is useful for developers interested in creating video games or augmented reality and virtual reality experiences using a high-level language like C#.
Godot
Godot is a cross-platform and open-source game development engine that allows you to create 2D and 3D games.
One of its advantages is its flexibility in programming languages, as it supports C# in addition to its native GDScript language.
When to use it
It is an attractive option for developing video games with C#, providing an Open Source solution.
Other Technologies
Databases
Entity Framework (EF) is an ORM (Object-Relational Mapper) that allows interaction with relational databases using .NET objects instead of direct SQL queries. EF allows for more structured and secure data handling, facilitating operations such as creating, reading, updating, and deleting data.
ADO.NET is a data access technology in .NET that allows direct interaction with relational databases through SQL queries and native commands. It has generally been replaced by Entity Framework or other libraries like Dapper.
Web Service Applications (API)
ASP.NET Web API: ASP.NET Web API allows you to build RESTful APIs in .NET. It is ideal for exposing functionality and data to client applications.
Windows Communication Foundation (WCF) is a .NET technology designed to build distributed applications. Although WCF was widely used for SOAP services and enterprise applications, it has largely been replaced by more modern technologies like ASP.NET Core.
SignalR is a .NET library that allows real-time communication between client and server. This is ideal for applications that require instant updates, such as chats, monitoring dashboards, or collaborative applications. SignalR manages real-time web connections, using WebSockets when available, and supports other protocols when not.
gRPC: gRPC is a communication framework that allows you to create high-performance, low-bandwidth services. It is particularly useful for microservices and distributed systems where real-time messaging is needed.
Cloud Services and Applications
- Azure Functions: These are serverless cloud functions that can be triggered in response to events. Azure Functions allow you to run code in response to events and automatically scale.
IoT Applications
- .NET for IoT: .NET can also be used to develop solutions on IoT devices, such as Raspberry Pi. This includes developing hardware drivers and integrating with sensors and devices.