BIBLIOTECAS BASE COMUNES / APIs
INFRASTRUCTURE
.NET 6
HERRAMIENTAS
Visual Studio Code
CLI
Visual Studio
Visual Studio for Mac
WEB MÓVIL JUEGOS IoT IA
DESKTOP
NUBE
ECOSISTEMA
NuGet
GitHub
Componentes,
herramientas,
proveedores de
bibliotecas
Arquitectura de una aplicación .NET MAUI
C# C#
Código compartido
UI, Recursos, Características de Plataforma & Lógica de Negocios
C# C#
Interfaz de usuario nativa multiplataforma
Sistema de proyecto único, base de código única
Acceso multiplataforma a la API de dispositivos
Compilación nativa, rendimiento nativo
Implementación en múltiples dispositivos, dispositivos móviles y
de escritorio
.NET MAUI
.NET 6
.NET MAUI
github.com/dotnet/maui
WinUI
Mac
Catalyst
Android
iOS
iOS
macOS
Basado en tecnología de confianza
.NET for iOS hace una compilación
completa de Ahead Of Time (AOT) para
producir un binario ARM para la App Store
de Apple.
.NET for Android aprovecha la
compilación Just In Time (JIT) y
Ahead of Time (AOT) en el
dispositivo Android.
BINARIO
ARM
Se ejecuta de
forma nativa
.APP
AOT
.NET
C#
Bindings
.APK
Compila
r y
vincular
.NET
C#
Bindings
IL
+
JIT
Se ejecuta de
forma nativa
Visual Studio 2022 (preview)
Desarrollo moderno
Cree aplicaciones innovadoras y modernas con .NET 6, GitHub y Azure con
herramientas integradas
Productividad personal y de equipo
Live Share, Hot reload, Web live preview, IntelliCode, herramientas mejoradas de
depuración y prueba
Escale a proyectos de cualquier tamaño
Una interfaz de usuario moderna y optimizada basada en una arquitectura de 64
bits para admitir las bases de código y los flujos de trabajo más grandes y
complejos
https://visualstudio.microsoft.com/es/vs/preview/
Plataforma de
aplicaciones completa
✓ Más de 40 páginas, diseños y
controles
(Disponibles en C# o XAML)
✓ Data-Binding bidireccional
✓ Navegación
✓ Visual State Manager
✓ API de animación
✓ Dependency Service
✓ Messaging Center
✓ Compatibilidad con CI/CD
✓ Desarrollo híbrido con Blazor
✓ Acceso a la API de la plataforma
✓ Imágenes, iconos, fuentes, pantallas de
bienvenida
C# C#
Código Compartido
UI, Recursos, Características de Plataforma & Lógica de
Negocios
C# C#
1 Proyecto único que
aloja todo el código
fuente del proyecto,
incluida la interfaz de
usuario, el código de la
plataforma, los
recursos compartidos y
más
Las fuentes, las imágenes y los assets
están contenidos en el proyecto.
Fuentes: configuradas automáticamente
por plataforma
Imágenes – Redimensionadas, SVG
Iconos de aplicaciones y Splash Screens
también compatibles
Las carpetas específicas de la
plataforma contienen
recursos específicos de la
plataforma, configuración,
lógica de inicio y código de
plataforma.
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
return builder.Build();
}
- En mayo de 2014, Xamarin.Forms fue lanzado como parte de Xamarin 3.0. Esto fue casi dos años antes de que Microsoft adquiriera Xamarin, ya que operaban como una compañía independiente. Era obvio en ese momento que Xamarin.Forms era más un experimento que un producto destacado. Una buena cantidad de funcionalidad no se completó, no fue consistente o simplemente no existía, particularmente en torno al soporte de Windows. Xamarin estaba claramente sorprendido por lo popular que se volvió en un período de tiempo muy corto. Hoy Xamarin.Forms se ha convertido en la forma más común de trabajar con la plataforma Xamarin. Si bien es parte de la oferta general de Microsoft, es en muchos sentidos separado y distinto de la plataforma subyacente. Es probable que el mantenimiento del producto también sea difícil. Con el tiempo, el equipo de Xamarin.Forms ha estandarizado la implementación en muchas plataformas y ha agregado nuevas y emocionantes características. Pero detrás de eso tiene que estar la realidad de que el producto original no fue hecho para ser un producto de primer nivel y en muchos sentidos fue lanzado como un experimento. Ese tipo de historial probablemente ha llevado a que el código subyacente no sea completamente tan robusto y mantenible como se requiere. No es raro ver que las actualizaciones de la plataforma rompen la funcionalidad existente. Microsoft ha estado pasando por muchos cambios con .NET Standard y .NET Core. Y a través de esto, Xamarin.Forms se ha mantenido en gran medida, pero sigue siendo un producto separado y distinto. Microsoft quería cambiar eso y, junto con ello, se convirtió en una oportunidad para reexaminar Xamarin.Forms. Microsoft no solo quería la próxima versión de Xamarin.Forms. En muchos sentidos, querían algo nuevo, algo que ahora es parte de .NET. MAUI se encuentra en la parte superior de los frameworks específicos de la plataforma para iOS, Android, Windows y macOS, que a su vez, se encuentran en la parte superior de la biblioteca de clases base de .NET o BCL. Con esta reinvención, el equipo también cambió cosas como los espacios de nombres, los diseños y cómo funciona el código específico de la plataforma. Si bien gran parte del código antiguo de Xamarin.Forms seguirá funcionando en .NET MAUI con algunos cambios en el espacio de nombres, para crear una verdadera aplicación MAUI se requieren algunos cambios en la forma en que se hacen las cosas.
.NET Multi-platform App UI (.NET MAUI)
Interfaz de usuario para aplicación multiplataforma en .NET
es un framework multiplataforma para crear aplicaciones móviles y de escritorio nativas con C# y XAML.
integrados en .NET a partir de .NET 6 y posteriores. Utilizando .NET MAUI,
puede desarrollar aplicaciones que se pueden ejecutar en Android, iOS,
macOS y Windows desde una única base de código compartida.
Puede que ni siquiera te des cuenta,
pero es posible que ya conozcas .NET. MAUI en forma de Xamarin.Forms.
.NET MAUI es una tecnología open-source y la evolución de Xamarin.Forms, con escenarios extendidos de móvil a escritorio,
con controles de interfaz de usuario reconstruidos desde cero para el rendimiento
y extensibilidad. Si ya has usado Xamarin.
Forms para crear interfaces de usuario multiplataforma, notará muchos
similitudes con .NET MAUI.
Sin embargo, también hay algunas diferencias. Con .NET MAUI, puede crear aplicaciones multiplataforma con un solo proyecto, pero puede agregar código y recursos específicos de la plataforma si es necesario. Uno de los objetivos clave de .NET MAUI es permitirle implementar la mayor cantidad posible de la lógica de la aplicación y el diseño de la interfaz de usuario en una sola base de código.
Entonces, ¿cómo hace .NET MAUI su magia? .NET MAUI unifica
API de Android, iOS, Mac OS y Windows en una única y abstracta
API que permite una experiencia de desarrollador de escritura única y ejecución en cualquier lugar.
Sin embargo, cuando sea necesario, como acabo de mencionar, aún puede comunicarse con
en esos marcos de plataforma y aprovechar todos los aspectos de
cada marco. .NET proporciona una serie de marcos específicos de plataforma para
creando aplicaciones. .NET para Android, .NET para iOS y .NET para macOS,
Es posible que anteriormente los conozcas como Xamarin.iOS y Xamarin.
Android, y ahora tenemos la interfaz de usuario de Windows, también conocida como WinUI.
Para quién es .NET MAUI
.NET MAUI es para desarrolladores que desean:
Escribir aplicaciones multiplataforma en XAML y C#, desde una única base de código compartida en Visual Studio.
Compartir la estructura y el diseño de la interfaz de usuario en todas las plataformas.
Compartir código, pruebas y lógica empresarial entre plataformas.
Echemos un vistazo más de cerca a cómo se relaciona todo esto.
Todo comienza con el código de tu aplicación. Aquí es donde quieres pasar todo
tu tiempo para que sea productivo. Esta es tu lógica de negocios.
Esta es tu aplicación, tu idea de mil millones de dólares. Pero para llegar allí,
tenemos que pasar por un par de capas. La primera capa de la tecnología.
la segunda son los SDK de la plataforma nativa. Esto es lo que Google, Apple
y Microsoft envían en sus plataformas para que tu puedas trabajar.
Entonces, ¿cómo pasamos del código de nuestra aplicación a esas plataformas y ejecutamos
en los dispositivos? Primero, necesitamos algo que pueda ejecutar código .NET,
el Runtime de .NET. Para iOS, Mac OS y Android
esto todavía usa Mono y usa CoreCLR en Windows,
pero eso no es realmente tan importante. Llegaremos a eso en un minuto.
A continuación, necesitamos una API .NET común contra la que podamos escribir nuestro código.
Y esa es la Biblioteca de clases base o BCL. Lo nuevo
en .NET 6 es que todos los runtimes de la aplicación tales como Mono y CoreCLR usan el mismo BCL
que acabo de mencionar. Para usar
.NET contra SDK de plataforma nativa, necesitamos una
representación .NET de los SDKs. Hacemos esto vinculando una
API .NET y una implementación a la API nativa.
Cuando llama a un método nativo desde C#, es igual que
si lo hubieras hecho desde Objective-C, Swift, Java, Kotlin,
C++ u otro. La capa final del pastel que realmente
lo hace delicioso es .NET MAUI. .NET MAUI proporciona
una rica biblioteca de controles, diseños y servicios que funcionan
en todas las plataformas admitidas, por lo que debe
solo dominar una API para obtener todas las aplicaciones nativas
con .NET MAUI.
Toda esa complejidad se entrega en un solo marco
que te da acceso a todo esto. Así que si aprendes a
trabajar con .NET MAUI, puede concentrarse en lo único que es
lo más importante: su código de aplicación.
Las aplicaciones de Netmui pueden
se escriben en PC o Mac y se compilan en nativos
paquetes de aplicaciones. Las aplicaciones de Android construidas usan .NET Maui compilado
de C# a Lenguaje Intermedio o IL
que es entonces compilado JIT justo a tiempo. a
un ensamblado nativo cuando se inicia la aplicación. Aplicaciones de iOS creadas con
.NET MAUI están usando AOT (ahead of time) compilado
de C# a un código ensamblado ARM nativo. Las apps Mac OS
creadas con .NET MAUI usan Mac Catalyst, una solución
de Apple que lleva tus aplicaciones iOS creadas con UIKit a
Desktop y aumentadas con un AppKit adicional y API de plataforma
según sea necesario. Aplicaciones de Windows creadas con .NET MAUI
use la biblioteca WinUI para crear aplicaciones nativas que se dirijan a Windows
Desktop.
Aunque .NET Multi-platform App UI (.NET MAUI) ha sido liberado, el soporte de Visual Studio para .NET MAUI se encuentra actualmente en versión preliminar.
Basando tu configuración de máquina para el desarrollo móvil en Xamarin, esto incluye cosas como configurar el SDK de Android y cualquier otra herramienta de desarrollo móvil requerida. Es útil instalar las cargas de trabajo para el desarrollo móvil con .NET, .NET Desktop Development, Universal Windows Platform Development, y si nos desplazamos hacia abajo en la lista, debe asegurarse de tener instalado Windows 10 SDK, 10.0.1836 2.0.
Así que lo que
¿Tiene.net Maui para ofrecerle? Bueno, la respuesta corta a esto es
todo lo que necesita para construir tu idea de aplicación de mil millones de dólares porque
.NET MAUI es el sucesor de Xamarin.Forms que ha existido
desde hace casi una década. Ya se ha implementado mucho. Esto incluye
más de 40 páginas, diseño y controles que puedes usar
de Csharp y XAML que tal vez ya hayas utilizado desde otros frameworks de UI basados en XAML.
El enlace de datos está ahí para asegurarse de que pueda separar tu código de tu
UI e implementar el patrón MVVM con éxito.
Todo lo que necesitas para navegación, animación,
integración continua y soporte de implementación para que pueda lanzar tu aplicación
desde tu repositorio directamente a las tiendas de aplicaciones. Usar SVG
para imágenes, íconos, pantalla flash, la capacidad de llegar al 100%
de las API de la plataforma en caso de .NET MAUI
no hizo una abstracción para lo que quiere usar todavía,
y mucho, mucho más.
Ahora toda esta bondad es ofrecido a través de un enfoque de proyecto único que utiliza múltiples targets. Esto puede sonar un poco complicado,
pero más adelante profundizaremos y veremos que en realidad no es
tan complicado como suena.
Essentials. si has estado
trabajando con Xamarin antes, es posible que sepas sobre
Xamarin.Essentials. Essentials ofrece todo tipo de abstracciones
para API de plataforma como acceso a servicios de ubicación, obtención de información
sobre tu aplicación o dispositivo usando linterna, todo tipo de API
y sensores que llegan a través de las plataformas. En realidad, debería
decir la funcionalidad anteriormente conocida como Essentials porque el nombre
Essentials se ha ido y todas estas API acaban de subir
en .NET MAUI, lo que hace que este marco de interfaz de usuario sea aún más completo
que nunca Más adelante aprenderemos dónde están todos estos elementos esenciales.
y cómo usarlas.
Habrás notado que mencioné
MVVM. Gran parte de la remodelación
que ha estado sucediendo para .NET MAUI es asegurarnos de que
ahora también abrió la puerta a otros patrones de diseño. por ejemplo, hay
ya un proyecto que se llama Comet que te permite escribir MVU
Para diseñar aplicaciones tal como lo hace Swift UI y Jetpack Compose
El cambio más notable que veremos en .NET MAUI es la nueva estructura de proyecto único. Xamarin Forms tenía proyectos independientes para cada plataforma, mientras que MAUI tiene solo uno. Este cambio simplifica de muchas maneras la estructura del proyecto y una solución MAUI sobre lo que teníamos en formas de Xamarin sin perder ninguna capacidad de la estructura del proyecto por plataforma.
Echemos un vistazo a cómo se implementa esto. Así que voy a empezar por ir y abrir Visual Studio. Así que escribiremos "Visual Studio" aquí mismo. Y actualmente tengo la versión preliminar y la cargaremos y quiero crear un nuevo proyecto. Así que repasaremos y haremos clic en "Crear un nuevo proyecto". Queremos un proyecto MAUI. Así que escribiremos "maui" aquí, y eso buscará y encontrará los tres tipos de proyectos MAUI. Y vemos la biblioteca de aplicaciones y clases. Y el tercer tipo es una aplicación Blazor y ese es un tipo ligeramente diferente de aplicación MAUI, algo nuevo de los formularios Xamarin. Así que simplemente haremos clic en . NET MAUI y haremos clic en Siguiente. Y vamos a nombrar esto "NewMauiApp".
Muy bien, ahora podemos ver que tenemos un solo proyecto. Y si abrimos las dependencias podemos ver que hay cuatro secciones principales, una para cada una de las plataformas, iOS, Android, Mac Catalyst o MacOS y windows. Estos son los paquetes para una plataforma determinada. Si agregamos un nuevo paquete nuget para una plataforma específica, aparecerá en el directorio de paquetes adecuado. Si agregamos un paquete que es para múltiples plataformas, aparecerá en el directorio de paquetes para todas las plataformas relevantes. También hay código específico de la plataforma en el proyecto. Eso aparece debajo de la carpeta de la plataforma. Y si abrimos esto, podemos ver una vez más que tenemos las mismas cuatro carpetas.
Y si miramos debajo de la carpeta de Android, por ejemplo, podemos ver todo el contenido específico de Android que normalmente veríamos que habría sido parte del proyecto de Android dentro de los formularios de Xamarin. Así podemos ver, por ejemplo, el manifiesto de Android y MainActivity. Si agregamos la clase normal bajo el directorio de la plataforma, no estará disponible para codificar en ninguna otra carpeta específica de la plataforma, incluso si no contiene características específicas de la plataforma. Sin embargo, podemos agregar código a una de estas carpetas y acceder a él desde código fuera de las carpetas, pero es posible que no se compile para otras plataformas si no hay clases o métodos similares disponibles. Por el contrario, si ponemos un archivo fuera del directorio de la plataforma, puede ser consumido por las cuatro plataformas.