SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Luis Beltrán
Microsoft MVP
@darkicebeam
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
Instalación
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/
Rápido y Fluido
Centrado en el rendimiento con más de 100 problemas reportados
por los usuarios solucionados; soporte nativo para el procesador
M1 de Apple
Interfaz de usuario moderna de macOS
Una interfaz de usuario reescrita, utilizando las API nativas de
macOS Cocoa. Con temática nativa, soporte de pantalla completa
y herramientas de accesibilidad de macOS.
Compatibilidad con .NET 6
Cree para la web, la nube y el móvil, utilizando .NET 6.
https://aka.ms/vsmac-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#
CarouselView CollectionView ListView Picker TableView
IndicatorView ProgressBar ActivityIndicator Editor Entry
CheckBox DatePicker Slider Stepper Switch
TimePicker Button ImageButton RadioButton RefreshView
Frame GraphicsView Image Label ScrollView
SearchBar SwipeView BlazorWebview Border BoxView
Layouts
Páginas
Content Flyout Navigation Tabbed
<TargetFrameworks>
net6.0-android;net6.0-ios;net6.0-maccatalyst;net6.0-windows10.0.19041
</TargetFrameworks>
<!-- Display name -->
<ApplicationTitle>MonkeyFinder</ApplicationTitle>
App Identifier -->
<ApplicationId>com.companyname.monkeyfinder</ApplicationId>
<!-- Versions -->
<ApplicationVersion>1</ApplicationVersion>
Cross-Platform APIs
Flashlight
Geolocation
Preferences
Device Info
Device Display Info
Secure Settings
Accelerometer
Battery
Clipboard
Compass
Connectivity
Data Transfer
Email
File System
Geocoding
Gyroscope
Magnetometer
Phone Dialer
Screen Lock
Sms
Text to Speech
Vibration
// Get cached location, else get real location.
var location = await Geolocation.GetLastKnownLocationAsync();
if (location == null)
{
location = await Geolocation.GetLocationAsync(new GeolocationRequest
{
DesiredAccuracy = GeolocationAccuracy.Medium,
Timeout = TimeSpan.FromSeconds(30)
});
}
// Register service
builder.Services.AddSingleton<IGeolocation>(Geolocation.Default);
// Inject service
IGeolocation geolocation;
public MyViewModel(IGeolocation geolocation)
{
this.geolocation = geolocation;
}
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();
}
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
builder.Services.AddSingleton<MonkeyService>();
builder.Services.AddSingleton<MonkeysViewModel>();
builder.Services.AddSingleton<MainPage>();
return builder.Build();
}
Migración de
Xamarin.Forms a .NET
MAUI
Q&A

Weitere ähnliche Inhalte

Ähnlich wie Webinar 1 Intro a NET MAUI.pptx

Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
Cesar Escalante
 
Presentación 15
Presentación 15Presentación 15
Presentación 15
eri_ben_rod
 
Presentación 15
Presentación 15Presentación 15
Presentación 15
eri_ben_rod
 

Ähnlich wie Webinar 1 Intro a NET MAUI.pptx (20)

Asp.net jose luis encarnación #11
Asp.net jose luis encarnación #11Asp.net jose luis encarnación #11
Asp.net jose luis encarnación #11
 
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptxCOECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
 
dotNetMálaga - Taller Xamarin
dotNetMálaga - Taller XamarindotNetMálaga - Taller Xamarin
dotNetMálaga - Taller Xamarin
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 
Reconnect(); Sevilla - Keynote
Reconnect(); Sevilla - KeynoteReconnect(); Sevilla - Keynote
Reconnect(); Sevilla - Keynote
 
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
 
Dev days 2 Xamarin Forms
Dev days 2 Xamarin Forms Dev days 2 Xamarin Forms
Dev days 2 Xamarin Forms
 
Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...
Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...
Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
 
Juegos html5
Juegos html5Juegos html5
Juegos html5
 
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!
 
Presentación 15
Presentación 15Presentación 15
Presentación 15
 
Presentación 15
Presentación 15Presentación 15
Presentación 15
 
Interfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsInterfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.Forms
 
Net Maui Blazor Jornada ASP Net en Español.pptx
Net Maui Blazor Jornada ASP Net en Español.pptxNet Maui Blazor Jornada ASP Net en Español.pptx
Net Maui Blazor Jornada ASP Net en Español.pptx
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 
Keynote NET MAUI.pptx
Keynote NET MAUI.pptxKeynote NET MAUI.pptx
Keynote NET MAUI.pptx
 
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEBMEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
 

Mehr von Luis775803

Mehr von Luis775803 (20)

TalentLand - Entendiendo tus documentos con Azure Form Recognizer.pptx
TalentLand - Entendiendo tus documentos con Azure Form Recognizer.pptxTalentLand - Entendiendo tus documentos con Azure Form Recognizer.pptx
TalentLand - Entendiendo tus documentos con Azure Form Recognizer.pptx
 
IA Conversacional con Power Virtual Agents.pptx
IA Conversacional con Power Virtual Agents.pptxIA Conversacional con Power Virtual Agents.pptx
IA Conversacional con Power Virtual Agents.pptx
 
Colombia Cloud Bootcamp - IA y Accesibilidad Pronunciation Assessment.pptx
Colombia Cloud Bootcamp - IA y Accesibilidad Pronunciation Assessment.pptxColombia Cloud Bootcamp - IA y Accesibilidad Pronunciation Assessment.pptx
Colombia Cloud Bootcamp - IA y Accesibilidad Pronunciation Assessment.pptx
 
STEMWeek - Entendiendo tus documentos con Azure Form Recognizer.pptx
STEMWeek - Entendiendo tus documentos con Azure Form Recognizer.pptxSTEMWeek - Entendiendo tus documentos con Azure Form Recognizer.pptx
STEMWeek - Entendiendo tus documentos con Azure Form Recognizer.pptx
 
Student Summit - Conoce más sobre mi carrera en IA y Datos.pptx
Student Summit - Conoce más sobre mi carrera en IA y Datos.pptxStudent Summit - Conoce más sobre mi carrera en IA y Datos.pptx
Student Summit - Conoce más sobre mi carrera en IA y Datos.pptx
 
Gira Speaker Latam - IA y Accesibilidad con Pronunciation Assessment.pptx
Gira Speaker Latam - IA y Accesibilidad con Pronunciation Assessment.pptxGira Speaker Latam - IA y Accesibilidad con Pronunciation Assessment.pptx
Gira Speaker Latam - IA y Accesibilidad con Pronunciation Assessment.pptx
 
Build After Party Bolivia - Hugging Face on Azure.pptx
Build After Party Bolivia - Hugging Face on Azure.pptxBuild After Party Bolivia - Hugging Face on Azure.pptx
Build After Party Bolivia - Hugging Face on Azure.pptx
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
 
SISWeek Creando un sistema de reconocimiento facial con Face API.pptx
SISWeek Creando un sistema de reconocimiento facial con Face API.pptxSISWeek Creando un sistema de reconocimiento facial con Face API.pptx
SISWeek Creando un sistema de reconocimiento facial con Face API.pptx
 
Azure Guatemala.pptx
Azure Guatemala.pptxAzure Guatemala.pptx
Azure Guatemala.pptx
 
Conoce las novedades de .NET MAUI en .NET 7.pptx
Conoce las novedades de .NET MAUI en .NET 7.pptxConoce las novedades de .NET MAUI en .NET 7.pptx
Conoce las novedades de .NET MAUI en .NET 7.pptx
 
GAIB Philippines - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
GAIB Philippines - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptxGAIB Philippines - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
GAIB Philippines - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
 
Power BI Summit 2023 - Embedding PowerBI reports in .NET MAUI mobile apps.pptx
Power BI Summit 2023 - Embedding PowerBI reports in .NET MAUI mobile apps.pptxPower BI Summit 2023 - Embedding PowerBI reports in .NET MAUI mobile apps.pptx
Power BI Summit 2023 - Embedding PowerBI reports in .NET MAUI mobile apps.pptx
 
Towards Responsible AI - Global AI Student Conference 2022.pptx
Towards Responsible AI - Global AI Student Conference 2022.pptxTowards Responsible AI - Global AI Student Conference 2022.pptx
Towards Responsible AI - Global AI Student Conference 2022.pptx
 
Mes de Datos Ciencia de Datos a otro nivel con Azure Machine Learning.pptx
Mes de Datos Ciencia de Datos a otro nivel con Azure Machine Learning.pptxMes de Datos Ciencia de Datos a otro nivel con Azure Machine Learning.pptx
Mes de Datos Ciencia de Datos a otro nivel con Azure Machine Learning.pptx
 
GAIB Germany - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
GAIB Germany - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptxGAIB Germany - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
GAIB Germany - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
 
Platzi Azure.pptx
Platzi Azure.pptxPlatzi Azure.pptx
Platzi Azure.pptx
 
GAIB Latam - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
GAIB Latam - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptxGAIB Latam - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
GAIB Latam - Tailoring OpenAI’s GPT-3 to suit your specific needs.pptx
 
Virtual Azure Community Day - Workloads de búsqueda full-text Azure Search.pptx
Virtual Azure Community Day - Workloads de búsqueda full-text Azure Search.pptxVirtual Azure Community Day - Workloads de búsqueda full-text Azure Search.pptx
Virtual Azure Community Day - Workloads de búsqueda full-text Azure Search.pptx
 
Towards Responsible AI - KC.pptx
Towards Responsible AI - KC.pptxTowards Responsible AI - KC.pptx
Towards Responsible AI - KC.pptx
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (12)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

Webinar 1 Intro a NET MAUI.pptx

  • 2. 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
  • 3.
  • 4.
  • 5. Arquitectura de una aplicación .NET MAUI C# C# Código compartido UI, Recursos, Características de Plataforma & Lógica de Negocios C# C#
  • 6. 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
  • 7.
  • 8.
  • 9. 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
  • 11. 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/
  • 12.
  • 13.
  • 14. Rápido y Fluido Centrado en el rendimiento con más de 100 problemas reportados por los usuarios solucionados; soporte nativo para el procesador M1 de Apple Interfaz de usuario moderna de macOS Una interfaz de usuario reescrita, utilizando las API nativas de macOS Cocoa. Con temática nativa, soporte de pantalla completa y herramientas de accesibilidad de macOS. Compatibilidad con .NET 6 Cree para la web, la nube y el móvil, utilizando .NET 6. https://aka.ms/vsmac-preview
  • 15. 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#
  • 16.
  • 17. CarouselView CollectionView ListView Picker TableView IndicatorView ProgressBar ActivityIndicator Editor Entry CheckBox DatePicker Slider Stepper Switch TimePicker Button ImageButton RadioButton RefreshView Frame GraphicsView Image Label ScrollView SearchBar SwipeView BlazorWebview Border BoxView
  • 19. <TargetFrameworks> net6.0-android;net6.0-ios;net6.0-maccatalyst;net6.0-windows10.0.19041 </TargetFrameworks> <!-- Display name --> <ApplicationTitle>MonkeyFinder</ApplicationTitle> App Identifier --> <ApplicationId>com.companyname.monkeyfinder</ApplicationId> <!-- Versions --> <ApplicationVersion>1</ApplicationVersion>
  • 20. Cross-Platform APIs Flashlight Geolocation Preferences Device Info Device Display Info Secure Settings Accelerometer Battery Clipboard Compass Connectivity Data Transfer Email File System Geocoding Gyroscope Magnetometer Phone Dialer Screen Lock Sms Text to Speech Vibration
  • 21. // Get cached location, else get real location. var location = await Geolocation.GetLastKnownLocationAsync(); if (location == null) { location = await Geolocation.GetLocationAsync(new GeolocationRequest { DesiredAccuracy = GeolocationAccuracy.Medium, Timeout = TimeSpan.FromSeconds(30) }); }
  • 22. // Register service builder.Services.AddSingleton<IGeolocation>(Geolocation.Default); // Inject service IGeolocation geolocation; public MyViewModel(IGeolocation geolocation) { this.geolocation = geolocation; }
  • 23. 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
  • 24. 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
  • 25. 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.
  • 26. public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }); return builder.Build(); }
  • 27. public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }); builder.Services.AddSingleton<MonkeyService>(); builder.Services.AddSingleton<MonkeysViewModel>(); builder.Services.AddSingleton<MainPage>(); return builder.Build(); }
  • 29. Q&A

Hinweis der Redaktion

  1. - 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.
  2. .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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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. 
  11. Para desarrollar aplicaciones iOS y macOS, aún necesitará una Mac al menos en algún lugar de tu canal de desarrollo. Hay formas de evitarlo con el producto de Microsoft. Hot-Reload que le permite depurar tus aplicaciones iOS en un dispositivo físico directamente desde Windows. O puedes alquilar una Mac a través de un servicio en la nube. Pero la mejor experiencia siempre será tener una Mac. Todavía puedes usar esa Mac sin tener que usar macOS. Puedes crear tus aplicaciones a través de una Mac que está en algún lugar de tu red. Veremos mas adelante cómo configurarlo para tu entorno de desarrollo. incluida una copia instalada de Xcode y visual Studio para Mac.  ¿puedo usar Visual Studio Code para desarrollar apps .NET MAUI? Y la respuesta es una especie de sí y no, porque .NET MAUI es parte de. Net ahora y por lo tanto parte de las herramientas CLI. Desarrollándolo y ejecutándolo a través de Vs el código funciona un poco. Sin embargo, Microsoft también anunció que por el momento, al menos, solo Visual Studio y Visual Studio para Mac será compatible oficialmente y tendrá la mejor experiencia para desarrollar aplicaciones en Maui.
  12. 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.
  13. 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.
  14. 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.
  15. 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
  16. 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.