Within .NET, a wide range of technologies are encompassed, covering almost any type of application and development need we might encounter.
It can be a bit confusing due to the large number of technology names that exist. Among the available technologies and project types we find, for example, desktop, mobile, web, gaming, and console applications.
But don’t be alarmed, you just need to know that they are technologies grouped within the .NET environment, used to create different types of applications.
Choosing the right technology depends on the application’s requirements and the runtime environment. Here is a summary table for you.
| 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 look at each one in a bit more depth 👇.
Console Applications
Console applications are text-based applications that run in a command-line window (CMD on Windows or Terminal on 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, command-line applications that do not require a GUI.
Desktop Applications
WinForms
WinForms (Windows Forms) is a technology for developing desktop applications on Windows with a simple graphical user interface (GUI).
Launched in the original .NET Framework, WinForms allows designing forms and graphical components by dragging and dropping elements.
Obsolete
It was replaced by WPF
WPF
WPF (Windows Presentation Foundation) is a more advanced technology than WinForms, also exclusive to Windows, but offering better support for complex graphical interfaces rich in 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 creating 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 intended to replace WPF but didn’t quite succeed. It is currently deprecated, 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 was 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 developing interactive web applications using C# instead of JavaScript. Blazor has two modes:
- Blazor WebAssembly: Runs C# code in the browser.
- Blazor Server: Runs the 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 depending on JavaScript.
Mobile Applications
Xamarin
Xamarin is a platform that allows developing cross-platform mobile applications using C# and .NET. Applications created with Xamarin can run on iOS, Android, and Windows.
Obsolete
It was 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 developing 2D and 3D games and publishing them on multiple platforms, including consoles, PC, 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, open-source game development engine that allows creating 2D and 3D games.
One of its advantages is its flexibility in programming languages, as in addition to its native language GDScript, it supports C#.
When to use it
It is an attractive option for developing video games with C#, with an Open Source solution.
Other Technologies
Databases
Entity Framework (EF) is an ORM (Object-Relational Mapper) that allows interacting with relational databases using .NET objects, instead of direct SQL queries. EF allows handling data in a more structured and secure way, 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 using 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 building RESTful APIs in .NET. It is ideal for exposing functionalities and data to client applications.
Windows Communication Foundation (WCF) is a .NET technology designed for building 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 enables implementing real-time communication between client and server. This is ideal for applications requiring instant updates, such as chats, monitoring dashboards, or collaborative applications. SignalR manages real-time web connections, using WebSockets when available, and offers support for other protocols when not.
gRPC: gRPC is a communication framework that allows creating high-performance, low-bandwidth services. It is especially useful for microservices and distributed systems where real-time messages are needed.
Cloud Services and Applications
- Azure Functions: These are serverless cloud functions that can be triggered in response to events. Azure Functions allows executing code in response to events and scaling automatically.
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.
