Dentro de .NET se engloban una amplia gama de tecnologías que cubren casi cualquier tipo de aplicación y necesidad de desarrollo que podamos encontrar.
Puedes ser un poco confuso por la gran cantidad de nombres de tecnologías que hay. Entre las tecnologías disponibles y tipos de proyectos encontramos, por ejemplo, aplicaciones de escritorio, móviles, web, juegos y aplicaciones de consola.
Pero no os asustéis, simplemente hay que saber que son tecnologías que se engloban dentro de entorno .NET, para sirven para hacer distintos tipos de aplicaciones.
Elegir la tecnología adecuada depende de los requisitos de la aplicación y el entorno de ejecución. Aquí os dejo una tabla de resumen.
Tipo de Aplicación | Tecnología .NET | Plataforma |
---|---|---|
Consola | Console App | Multiplataforma |
Escritorio | WinForms ❌ | Windows |
WPF | Windows | |
UWP ❌ | Windows | |
Web | ASP.NET Core | Multiplataforma |
Blazor | Multiplataforma | |
Móviles | Xamarin ❌ | Windows, Android, iOS |
MAUI | Multiplataforma | |
Juegos | Unity | Multiplataforma |
Godot | Multiplataforma | |
Internet de las Cosas (IoT) | .NET for IoT | Dispositivos IoT |
❌ significa obsoleto
Así que vamos a ver cada una de ellas un poquito más en profundidad 👇.
Aplicaciones de consola
Las aplicaciones de consola son aplicaciones basadas en texto que se ejecutan en una ventana de línea de comandos (CMD en Windows o Terminal en macOS/Linux).
Son la opción más sencilla y básica de desarrollo en .NET, y son ampliamente utilizadas para probar funciones de lógica sin interfaz gráfica o para automatización.
Cuándo usarlo
Las aplicaciones de consola son apropiadas para scripts de automatización, pruebas de funcionalidades, aplicaciones de línea de comandos que no requieren GUI.
Aplicaciones de escritorio
WinForms (Windows Forms)
WinForms es una tecnología para desarrollar aplicaciones de escritorio en Windows con una interfaz gráfica (GUI) sencilla.
Lanzada en el .NET Framework original, WinForms permite diseñar formularios y componentes gráficos arrastrando y soltando elementos.
Obsoleto
Fue sustituido por WPF
WPF
WPF (Windows Presentation Foundation) es una tecnología más avanzada que WinForms, también exclusiva para Windows, pero que ofrece mejor soporte para interfaces gráficas complejas y ricas en contenido visual.
Utiliza XAML (Extensible Application Markup Language) para definir interfaces y permite una mayor personalización y animaciones.
Cuándo usarlo
Es la tecnología actual recomendada por Microsoft para aplicaciones Desktop en Windows.
UWP
UWP (Universal Windows Platform) es una plataforma que permite crear aplicaciones universales que funcionan en múltiples dispositivos Windows, incluidos PC, tabletas, Xbox y HoloLens.
Las aplicaciones UWP están optimizadas para Windows 10 o posterior, y se pueden publicar en la Microsoft Store. También se desarrollan con XAML (con variaciones muy pequeñas respecto a WPF).
Obsoleto
Venía a sustituir a WPF, pero no terminó de triunfar. Actualmente está en desuso, y se recomienda WPF
Aplicaciones Web
ASP.NET
ASP.NET es una tecnología para crear aplicaciones web en .NET, que abarca desde simples páginas HTML hasta aplicaciones web complejas y robustas.
Obsoleto
Fue sustituido por ASP.NET Core
ASP.NET Core
ASP.NET Core es la evolución de ASP.NET, diseñada para ser multiplataforma, de alto rendimiento y compatible con la nube.
Cuándo usarlo
ASP.NET Core es la opción recomendada para aplicaciones web modernas y multiplataforma.
Blazor
Blazor es una tecnología reciente que permite desarrollar aplicaciones web interactivas utilizando C# en lugar de JavaScript. Blazor tiene dos modalidades:
- Blazor WebAssembly: Ejecuta código C# en el navegador.
- Blazor Server: Ejecuta el código en el servidor, y el navegador interactúa con él a través de SignalR.
Cuándo usarlo
Útil para desarrolladores de C# que quieren trabajar en aplicaciones web sin depender de JavaScript.
Aplicaciones Móviles
Xamarin
Xamarin es una plataforma que permite desarrollar aplicaciones móviles multiplataforma utilizando C# y .NET. Las aplicaciones creadas con Xamarin pueden ejecutarse en iOS, Android y Windows.
Obsoleto
Fue sustituido por MAUI
.NET MAUI
MAUI (Multi-platform App UI) es la evolución de Xamarin Forms, que permite desarrollar aplicaciones de escritorio y móviles desde una única base de código. Al igual que Xamarin, soporta iOS, Android, macOS y Windows.
Aplicaciones multiplataforma que deben ejecutarse en dispositivos móviles y en aplicaciones de escritorio, ofreciendo una experiencia más unificada que Xamarin.
Aplicaciones de juegos
Unity
Unity es un motor de desarrollo de videojuegos muy popular que utiliza C# como su principal lenguaje de programación. Unity permite desarrollar juegos en 2D y 3D y publicarlos en múltiples plataformas, incluyendo consolas, PC, dispositivos móviles y realidad virtual.
Cuándo usarlo
Unity es útil para desarrolladores interesados en crear videojuegos o experiencias de realidad aumentada y realidad virtual, usando un lenguaje de alto nivel como C#.
Godot
Godot es un motor de desarrollo de videojuegos multiplataforma y de código abierto que permite crear juegos en 2D y 3D.
Una de sus ventajas es su flexibilidad en los lenguajes de programación, ya que además de su lenguaje nativo GDScript, soporta C#.
Cuándo usarlo
Es la una opción atractiva para desarrollar videojuegos con C#, con una solución Open Source
Otras tecnologías
Bases de datos
Entity Framework (EF) es un ORM (Object-Relational Mapper) que permite interactuar con bases de datos relacionales utilizando objetos de .NET, en lugar de consultas SQL directas. EF permite manejar datos de manera más estructurada y segura, facilitando operaciones como la creación, lectura, actualización y eliminación de datos.
ADO.NET es una tecnología de acceso a datos en .NET que permite interactuar directamente con bases de datos relacionales mediante consultas SQL y comandos nativos. Generalmente ha sido sustituido por Entity Framework u otras librerías como Dapper.
Aplicaciones de servicios web (API)
ASP.NET Web API: ASP.NET Web API permite construir APIs RESTful en .NET. Es ideal para exponer funcionalidades y datos a aplicaciones de clientes.
Windows Communication Foundation (WCF) es una tecnología de .NET diseñada para construir aplicaciones distribuidas. Aunque WCF fue ampliamente utilizado para servicios SOAP y aplicaciones empresariales, ha sido reemplazado en gran parte por tecnologías más modernas como ASP.NET Core.
SignalR es una biblioteca de .NET que permite implementar comunicación en tiempo real entre el cliente y el servidor. Esto es ideal para aplicaciones que requieren actualización instantánea, como chats, dashboards de monitoreo o aplicaciones colaborativas. SignalR se encarga de gestionar conexiones web en tiempo real, utilizando WebSockets cuando está disponible, y ofrece soporte para otros protocolos cuando no.
gRPC: gRPC es un framework de comunicación que permite crear servicios de alto rendimiento y de bajo consumo de ancho de banda. Es especialmente útil para microservicios y sistemas distribuidos en los que se necesitan mensajes en tiempo real.
Servicios y aplicaciones en la nube
- Azure Functions: Son funciones sin servidor en la nube que pueden activarse en respuesta a eventos. Azure Functions permite ejecutar código en respuesta a eventos y escalar de forma automática.
Aplicaciones para IoT
- .NET para IoT: .NET también puede utilizarse para desarrollar soluciones en dispositivos IoT, como Raspberry Pi. Esto incluye el desarrollo de controladores de hardware y la integración con sensores y dispositivos.