Crear aplicaciones
Aplicación web
La ventaja del lenguaje C# es que permite realizar un amplio grupo de aplicaciones. Entre ellas, las que están más de moda son las aplicaciones web. En este capítulo, vamos a ver el conjunto de las aplicaciones que se pueden crear con C#.
Las aplicaciones web se dividen en dos grandes categorías:
-
Las aplicaciones web gráficas, donde hay una interacción con el usuario.
-
Las aplicaciones web de backend, que se encargan de tratar datos.
1. Aplicaciones web gráficas
Dentro de la categoría de las aplicaciones web gráficas, hay dos tipos de proyectos: un sitio ASP.NET y una aplicación Blazor. La diferencia entre las dos reside en el concepto de dinamismo y de capacidad de reacción. Blazor permite realizar aplicaciones SPA (Single Page Application), mientras que ASP.NET permite realizar sitios web clásicos.
ASP.NET es la solución que permite crear sitios web clásicos. Usa una sintaxis de creación de las vistas que permite mezclar HTML y C# llamada Razor. Hay dos variantes para realizar aplicaciones ASP.NET:
-
ASP.NET MVC: usa el patrón MVC (Modelo Vista Controlador), que permite usar una arquitectura probada y robusta, pero más restrictiva para implantar.
-
ASP.NET Razor Pages: permite realizar páginas autónomas, más sencilla.
Para crear una aplicación ASP.NET, siga estos pasos:
Abra un terminal nuevo en Visual Studio Code.
Si quiere recurrir a ASP.NET MVC, use el comando dotnet new mvc.
Si quiere recurrir a ASP.NET Razor Pages, use el comando dotnet new webapp.
Empezaremos por explorar rápidamente una aplicación ASP.NET MVC.
a. ASP.NET MVC
Una vez ejecutado el comando, se han generado algunos archivos y carpetas. Sin entrar en detalles, encontramos tres carpetas correspondientes al patrón MVC: Models, Views y Controllers.
Lista de los archivos y carpetas generados
El funcionamiento de un sitio ASP.NET MVC es bastante sencillo. Cuando un usuario elige acceder a una página dada, el motor de enrutamiento analiza la URL introducida y observa qué controlador responde a esta última. Para funcionar, se basa en un patrón (pattern) definido en el archivo Startup.cs, a nivel del método Configure, mediante la llamada del método UseEndpoints:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute( ...
Aplicación de escritorio
Incluso si las aplicaciones de escritorio están mucho menos de moda que durante las últimas décadas, siguen siendo imprescindibles cuando se trata de hacer aplicaciones que permitan comportamientos avanzados. Históricamente, .NET es una plataforma destinada a Windows; por eso es lógico disponer de frameworks que permitan realizar aplicaciones de escritorio Windows. Para esto hay tres frameworks: WinForms, WPF y UWP.
Dado que este capítulo trata las aplicaciones de escritorio para Windows, es necesario disponer de una estación de trabajo con Windows y tener instalado el IDE Visual Studio 2022 bajo Windows (https://visualstudio.microsoft.com/es/downloads/, porque él solo contiene todas las herramientas necesarias para poder crear este tipo de aplicación. Durante la instalación, hay que asegurarse de haber instalado la carga de trabajo «Desarrollo de escritorio de .NET» a fin de tener a su disposición todas las herramientas para este tipo de proyecto (ver imagen siguiente).
Carga de trabajo Desarrollo de escritorio de .NET
1. WinForms
WinForms es el planteamiento más antiguo para crear aplicaciones de escritorio. Sucesor de Visual Basic 6, Winforms sigue siendo una manera muy rápida de crear aplicaciones con facilidad. Microsoft ha impulsado otra tecnología de aplicación de escritorio, WPF (que veremos en la siguiente sección), considerada como la sucesora de WinForms, pero esta última sigue siendo imprescindible para la realización de una aplicación de escritorio ligera y rápida. Esto se debe al hecho de que la implementación se hace de manera muy rápida gracias al diseñador y la interfaz gráfica se basa en la capa GDI+, muy rápida en la ejecución y consume pocos recursos. Sin embargo, GDI+ no permite disfrutar de la aceleración de hardware 3D, lo que puede causar ciertas limitaciones.
Desde la llegada de .NET Core 3.0, se pueden crear aplicaciones Winforms mediante las últimas versiones de .NET, de tal manera que podemos crear una aplicación nueva gracias al comando dotnet new winforms.
La ejecución de este comando genera algunos archivos de una aplicación ya ejecutable, pero completamente vacía. La manera de crear una aplicación WinForms se basa en la creación de ventanas...
Aplicación móvil
Hay muchas herramientas que permiten realizar aplicaciones móviles para Android e iOS, las dos plataformas principales para los smartphones en la actualidad. Generalmente, se encuentran dos tipos de herramientas:
-
Las que permiten realizar una aplicación móvil a partir de un código fuente común en gran parte y generar una aplicación para las dos plataformas (cross-platform).
-
Las que permiten realizar una aplicación móvil para una plataforma dada, directamente en el lenguaje de la plataforma de destino (nativo) o mediante otro lenguaje que se transformará en el de destino.
Apple tiene dos lenguajes para crear aplicaciones iOS: objective-C (lenguaje antiguo) y Swift (lenguaje nuevo). Respecto a Android, encontramos el lenguaje Java y el lenguaje Kotlin.
Como se comprueba, C# no tiene lugar en ninguna de las plataformas; sin embargo, se pueden realizar aplicaciones Android e iOS en C#, gracias a las tecnologías Xamarin y MAUI.
Estos frameworks de aplicaciones permiten realizar los dos tipos de aplicaciones:
-
Creando una aplicación móvil con un diseño común basado en el lenguaje XAML con el framework MAUI (antiguamente Xamarin Forms), que después se convertirá en aplicación nativa.
-
Creando una aplicación móvil con un diseño mediante plataforma gracias a las herramientas de la plataforma objetivo, que también se convertirá en aplicación nativa.
Tanto si se elige una opción como si se elige la otra, se puede compartir el código de trabajo mediante librerías de clase en C#, lo que constituye la fuerza del framework.
1. Instalación
A finales de 2021, Microsoft anunció que MAUI no estaría listo para una salida simultánea con .NET 6. Así, para poder probar esta parte, hay que conseguir una versión previa de MAUI en vez de una versión estable.
Una aplicación cross-platform permite producir una aplicación Android y una aplicación iOS a partir del mismo código de trabajo y de interfaz gráfica. El nuevo framework MAUI permite realizar una aplicación que podrá derivar en aplicación móvil y de escritorio. Por el momento, nos contentaremos con explorar la parte móvil.
Para desarrollar nuestra nueva aplicación, es necesario...
Conclusión
Hemos visto brevemente en este capítulo todo lo que se puede hacer con .NET en cuestión de aplicaciones. Ya sea web, escritorio o móvil, se puede realisar un conjunto bastante amplio de soluciones gracias al lenguaje C#.
Por supuesto, lo que hemos visto en este capítulo es una introducción muy ligera, y cada solución tiene sus propias especificaciones y capacidades, que no se pueden abarcar en un solo capítulo, porque cada una ellas podría ser el tema de un libro como mínimo. Sin embargo, así tiene una visión general de lo que se puede hacer, junto con un ejemplo que le permite seleccionar bastante rápido las tecnologías que le interesan para profundizar en el tema.