Within .NET, a wide range of technologies encompass almost any type of application and development need we may encounter.
It can be a bit confusing due to the large number of technology names available. Among the available technologies and project types, we find, for example, desktop, mobile, web, game, and console applications.
But don’t be alarmed, you just need to know that these are technologies that fall within the .NET environment, which are used to create different types of applications.
Choosing the right technology depends on the application’s requirements and the execution environment. Here’s 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 deeper 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 suitable for automation scripts, functionality testing, 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 designing 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 offers better support for complex and visually rich graphical interfaces.
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 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 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 through 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 developing 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 main programming language. Unity allows developing 2D and 3D games and publishing 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 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 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 interacting with relational databases using .NET objects instead of direct SQL queries. EF enables managing data in a more structured and secure way, facilitating operations like 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 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 real-time communication between the 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 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 that require real-time messaging.
Cloud Services and Applications
- Azure Functions: These are serverless functions in the cloud that can be triggered in response to events. Azure Functions allows executing code in response to events and automatically scales.
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.