SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
Luis Beltrán
Microsoft MVP
@darkicebeam
Introducción a .NET
MAUI
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
iOS
Swift
Swift
Swift
Swift
Java
Java
Java
Java C++
C++
.NET
JS
Obj-C
Obj-C
Obj-C
Obj-C
macOS
JS
JS
JS
JS
Kotlin
Kotlin
Kotlin
Kotlin
JS
JS
JS
JS
iOS
iOS macOS
iOS
.NET
.NET .NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
.NET
Una plataforma de aplicaciones open-source
de Microsoft para la construcción de
aplicaciones iOS, Android, macOS & Windows
modernas, de alto rendimiento & multi-plataforma
con C# y .NET desde una
única base de código compartida.
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
Arquitectura de una aplicación .NET MAUI
C# C#
Código compartido
UI, Recursos, Características de Plataforma & Lógica de Negocios
C# C#
Entorno productivo
Maximiza la reutilización de código
Rendimiento e integraciones nativas
Ecosistema expansivo
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
Cross-Platform UI
Plataforma de
aplicaciones completa
✓ Más de 40 páginas, diseños y controles
(Disponibles en C# o XAML)
✓ Enlace de datos 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
✓ Temas personalizados y predeterminados
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
Acceso a las APIs de
Plataforma
MapKit UIKit SiriKit ARKit CoreML
Fingerprint Bluetooth Picture-in-Picture Geolocation NFC
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;
}
Rendimiento
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
Compilar
y vincular
.NET
C#
Bindings
IL
+
JIT
Se ejecuta de
forma nativa
https://github.com/microsoft/dotnet-podcasts
https://github.com/jsuarezruiz/netmaui-travel-app-challenge
https://github.com/davidortinau/WeatherTwentyOne
Ecosistema .NET MAUI
¿Qué pasa con los desarrolladores
web?
ASP.NET Core
Desarrollo web con .NET
JS
Blazor
Blazor es flexible. Tienes opciones.
Blazor Server Blazor WebAssembly
DOM
Blazor
WebAssembly
.NET
Razor Components
Blazor
.NET
Razor Components
DOM
SignalR
Blazor
Blazor Híbrido: +
Arquitectura híbrida - .NET MAUI & Blazor
C# C#
Lógica de negocio compartida
C# C# C#
Componentes compartidos de Blazor
.NET ofrece opciones enriquecidas para desarrolladores
y equipos de desarrollo
Alcance Potencia
PWA Aplicación
nativa
con WebView
Sitio Aplicación
nativa
Web Híbrido Nativo
Blazor Blazor Hybrid
(Blazor + .NET MAUI)
.NET MAUI
Estructura de la
aplicación
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.
<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>
#if ANDROID
var button = new Android.Widget.Button(context);
#elif IOS
var button = new UIKit.UIButton();
#endif
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();
}
•
•
•
§
§
§
§
§
§
var secondWindow = new Window { Page = new MySecondPage { // ... } };
Application.Current.OpenWindow(secondWindow);
Shell
<Shell>
<FlyoutItem
Title="Style Guide"
Icon="Compass.png">
<ShellContent
ContentTemplate="{DataTemplate p:StyleGuidePage}"/>
</FlyoutItem>
</Shell>
•
•
ContentPage
Control
Content property
•
•
ContentPage
Layout
Content property
Control
Control
Control
Control
Children
Layout
Comportamiento
var entry = new Entry
{
Placeholder = "Enter text",
Keyboard = Keyboard.Email
};
entry.TextChanged += (sender, e) => {
// Input changed
};
Los controles exponen propiedades para alterar la visualización
Los controles exponen eventos para proporcionar un comportamiento interactivo
Migración de
Xamarin.Forms a .NET
MAUI
Q&A

Más contenido relacionado

Similar a Introduction to .NET MAUI.pdf

Dev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a XamarinDev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a Xamarin
Sergio Gasca García
 
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
 
Visual studio 2008.vanessa
Visual studio 2008.vanessaVisual studio 2008.vanessa
Visual studio 2008.vanessa
vnslgars
 

Similar a Introduction to .NET MAUI.pdf (20)

Webinar 1 Intro a NET MAUI.pptx
Webinar 1 Intro a NET MAUI.pptxWebinar 1 Intro a NET MAUI.pptx
Webinar 1 Intro a NET MAUI.pptx
 
Azure Cloud Week - Introducción a .NET MAUI.pptx
Azure Cloud Week - Introducción a .NET MAUI.pptxAzure Cloud Week - Introducción a .NET MAUI.pptx
Azure Cloud Week - Introducción a .NET MAUI.pptx
 
Novedades visual studio 2015
Novedades visual studio 2015Novedades visual studio 2015
Novedades visual studio 2015
 
Dev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a XamarinDev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a Xamarin
 
introducción a xamarin
  introducción a xamarin  introducción a xamarin
introducción a xamarin
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
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
 
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
 
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
 
Dev days 1 Introducción a Xamarin
Dev days 1 Introducción a XamarinDev days 1 Introducción a Xamarin
Dev days 1 Introducción a Xamarin
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
 
Visual studio 2008.vanessa
Visual studio 2008.vanessaVisual studio 2008.vanessa
Visual studio 2008.vanessa
 
Reconnect(); Sevilla - Keynote
Reconnect(); Sevilla - KeynoteReconnect(); Sevilla - Keynote
Reconnect(); Sevilla - Keynote
 
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
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
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....
 
Juegos html5
Juegos html5Juegos html5
Juegos html5
 
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...
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 

Más de Luis775803

Más de 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
 

Último

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

Último (10)

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
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
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
 
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
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

Introduction to .NET MAUI.pdf