SlideShare a Scribd company logo
1 of 56
Los “Pelochos”
contraatacan.TécnicascompartircódigoentreWindows8yWindowsPhone8.
SecondNug
@SecondNug
Vuelven los “Pelochos”.
Javier Suárez Ruiz
Icinetic | .NET Developer Arquitect
@jsuarezruiz
Índice
¿Qué vamos
a ver?
Estrategiasparacompartir
código
UX. A tener en
cuenta.
Demos (código) Preguntasy Respuestas
Datos de interés
Objetivo:
• Desarrollar UNA ÚNICA Aplicación para
tres sistemas diferentes:
– Windows Phone 7
– Windows Phone 8
– Windows 8
• Compartir y reutilizar la mayor cantidad de
código común.
• Reducir la cantidad de código específico de
cada plataforma en lo posible.
Visual Studio 2012
Móviles
Windows Phone 7 y 8 Tabletas
WinRT ARM e Intel
PCs
Windows 8
WinRT
Windows Core OS Services
JavaScript
(Chakra)
C/C++ C#, VB
Windows Store Apps
Communication
& Data
Application Model
Devices &
Printing
Windows Runtime APIs
Graphics &
Media
XAML HTML / CSS
HTML
JavaScrip
t
C
C++
C#
VB
Desktop Apps
Win32
.NET
SL
Internet
Explorer
SystemServicesView
Model
Controller
Kernel
DX
Diagrama Desarrollo Windows 8
Windows Core OS Services
JavaScript
(Chakra)
C/C++ C#, VB
Windows Store Apps
Communication
& Data
Application Model
Devices &
Printing
Windows Runtime APIs
Graphics &
Media
XAML HTML / CSS
SystemServicesView
Model
Controller
Kernel
DX
Windows RT
Windows Core OS Services
JavaScript
(Chakra)
C/C++ C#, VB
Windows Store Apps
Communication
& Data
Application Model
Devices &
Printing
Windows Runtime APIs
Graphics &
Media
XAML HTML / CSS
SystemServicesView
Model
Controller
Kernel
DX
Windows Phone 8
Windows Phone Apps
Windows Core OS Services
C/C++ C#, VB
Windows Phone Apps
Communication
& Data
Application Model
WinPRT APIs
Graphics &
Media
XAML
SystemServicesView
Model
Controller
Kernel
Windows Phone 8 soporte nativo con Windows phone 7!
Windows Phone 7 Apps
XAML
C#, VB
Windows CE APIs
Windows CE Services
Herramientas a utilizar
MVVM
Data Binding
Comandos
Interfaz de Usuario Lógica de Negocio
Lógica de Negocio
Lógica de
Presentación
Problema
Doble trabajo!. Ahora cada
cambio tenemos que tenerlo en
cuenta en dos apps diferentes.
¿Solución?
Técnicas de reutilización de código
MVVM
Windows Phone 7
public class Product
{
public int Id { get; set; }
[DataMember(Name = "text")]
public string Text { get; set; }
[DataMember(Name = "complete")]
public bool Complete { get; set; }
}
public class Product
{
public int Id { get; set; }
[DataMember(Name = "text")]
public string Text { get; set; }
[DataMember(Name = "complete")]
public bool Complete { get; set; }
}
Windows Phone 8
Ctrl-C
Ctrl-V
Enlazado a ficheros
“Añadir como enlace”
Windows 8 Windows Phone 8
Diferencias de código
Windows 8
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
MyTextBlock.Text = "Hello from the UI thread!";
});
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
MyTextBlock.Text = "Hello from the UI thread!";
});
Windows Phone 8
Condiciones de Compilación
Windows 8
#if NETFX_CORE
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
#endif
#if WINDOWS_PHONE
Deployment.Current.Dispatcher.BeginInvoke(() => {
#endif
Windows Phone 8
Portable Class Libraries
Carácterísticas
• Un proyecto.
• Un binario.
• Múltiples Plataformas!
Portable Class Libraries
Tratamiento código dependiente
Arquitectura Recetario
Data Binding
Comandos
Interfaz de Usuario
Lógica de Negocio
Lógica de
Presentación
Arquitectura Recetario
Data Binding
Comandos
Interfaz de Usuario
Lógica de Negocio
Lógica de
Presentación
Windows Core OS Services
JavaScript
(Chakra)
C/C++ C#, VB
Windows Store Apps
Communication
& Data
Application Model
Devices &
Printing
Windows Runtime APIs
Graphics &
Media
XAML HTML / CSS
HTML
JavaScrip
t
C
C++
C#
VB
Desktop Apps
Win32
.NET
SL
Internet
Explorer
SystemServicesView
Model
Controller
Kernel
DX
Diagrama Desarrollo Windows 8
Async / Await
.NET
Async
Windows
Runtime
Async
• Para ofrecer al usuario una
experiencia rápida y fluida, lo
más importante es no dejar que
la interfaz se congele mientras se
ejecuta alguna operación.
• Podemos hacer programación
asíncrona sin callbacks tanto en
C# como en Visual Basic
utilizando Async, Await y Task.
public async void Tarea()
{
var tarea = PerderElTiempoAsync();
string result = await tarea;
}
Public async Task<string> PerderElTiempoAync()
{
return “SecondNug”;
}
Lanza y Espera!
Síncrono VS Asíncrono
var data = DownloadData(...);
ProcessData(data);
var future = DownloadDataAsync(...);
future.ContinueWith(data => ProcessData(data));
Síncrono VS Asíncrono
var data = DownloadData(...);
ProcessData(data);
var future = DownloadDataAsync(...);
future.ContinueWith(data => ProcessData(data));
UX. Tamaño de Pantalla.
Windows Phone 8 Windows 8
Tamaño de
Pantalla
• 800x480
• 1280x720
• 1280x768
Tamaño de
Pantalla
• 1024x768
• 2,560x1,440
• Otros
tamaños
intermedios.
UX. Orientaciones.
Windows Phone 8 Windows 8
Orientación
• Portrait
• Landscape
Orientación
• Portrait
• Landscape
• Snapped
Controles diferentes
GridView
• Posibilidad de cear
Grupos
• Conjunto de Tiles
• Tamaño de los
elementos puede ser
dinámico.
Controles diferentes
Semantic Zoom
Pinch-zoom para
visualizar todos los
elementos o los grupos
de los elementos.
Controles diferentes
Panorama
Introducción al
contenido y
exploración.
Controles diferentes
LongListSelector
• Headers and Footers
• Group header
navigation
Similitudes en UX – Vista Detalles
Horizontal scroll  Vertical scroll
Similitudes en UX
Semantic Zoom  Pivot
Similitudes en UX
GridView + Semantic Zoom  LongListSelector
WP7 puede utilizar Async/Await, gracias a un paquete NuGet!
Install-Package Microsoft.Bcl.Async
PCLs puede utilizar también este paquete!
Démosle a WP7 un poco de la
“mágia“ async!
¿Resultado final?
Windows Phone 7
XAML
Services
Windows Phone 8 Windows 8
XAML
Services
Portable Class Library
ViewModel
Model
http://bit.ly/NXVdHX
Usando PCLs con Android + iOS
• Mezcla y usa conjuntamente varias de las técnicas aprendidas. No
todo es blanco o negro.
• Comparte Modelos, Helpers, Servicios, ViewModels
– Enlazados de archivos
– Portable Class Libraries
• Usa condiciones de compilación (#if) sólo para pequeños trozos
de código.
• Usa métodos extensores para unificar diferentes
implementaciones:
– Modelo Async-await para HttpWebResponse/Request por ejemplo
• No olvides dedicar un poco de tu atención a la experiencia de
usuario. Recuerda NO todos los controles tienen su clon en otro
sistema pero hay alternativas.
Conclusiones I
Conclusiones II
Si piensas crear una aplicación para múltiples
plataformas, ten en mente las técnicas para compartir
código. En caso contrario, tenlas en cuenta también,
como hemos analizado no conllevan grandes esfuerzos y
si grandes beneficios.
Maximiza siempre la mejor experiencia de usuario en
cada plataforma. NO descuides la UX. Recuerda, es lo
que visualiza el usuario, lo que hay “por detrás” sea de
gran calidad o no, no cuenta (siempre que funcione).
Preguntas y respuestas.
¿Dudas?
P&R
Contacto
Web
www.javiersuarezruiz.wordpress.com
Email
• javiersuarezruiz@hotmail.com
Twitter
@jsuarezruiz
Vuelven los
“Pelochos”.
Gracias por vuestro tiempo!

More Related Content

What's hot (19)

visual basic .net
visual basic .netvisual basic .net
visual basic .net
 
Juliana montoya anyela rosero
Juliana montoya anyela roseroJuliana montoya anyela rosero
Juliana montoya anyela rosero
 
Presentación1
Presentación1Presentación1
Presentación1
 
Introducción al c#
Introducción al c#Introducción al c#
Introducción al c#
 
Manual sesion 01
Manual sesion 01Manual sesion 01
Manual sesion 01
 
Programacion.NET
Programacion.NETProgramacion.NET
Programacion.NET
 
Programación .NET
Programación .NETProgramación .NET
Programación .NET
 
Desarrollo en c++, vision aplicada
Desarrollo en c++, vision aplicadaDesarrollo en c++, vision aplicada
Desarrollo en c++, vision aplicada
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
Presentacion tecnica microsoft.net
Presentacion tecnica microsoft.netPresentacion tecnica microsoft.net
Presentacion tecnica microsoft.net
 
Clase 1 introd asp net
Clase 1  introd asp net Clase 1  introd asp net
Clase 1 introd asp net
 
Conociendo la plataforma .Net
Conociendo la plataforma .NetConociendo la plataforma .Net
Conociendo la plataforma .Net
 
15 servidor php
15 servidor php15 servidor php
15 servidor php
 
Tecnologia ASP.net
Tecnologia ASP.netTecnologia ASP.net
Tecnologia ASP.net
 
Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010
 
Preserntacion programacion.net
Preserntacion programacion.netPreserntacion programacion.net
Preserntacion programacion.net
 
Introducción a la Plataforma .NET
Introducción a la Plataforma .NETIntroducción a la Plataforma .NET
Introducción a la Plataforma .NET
 
Servidor php
Servidor phpServidor php
Servidor php
 
VSTS 2010
VSTS 2010VSTS 2010
VSTS 2010
 

Viewers also liked

ODF - Article No. 1 - Oregon DUI 101
ODF - Article No. 1 - Oregon DUI 101ODF - Article No. 1 - Oregon DUI 101
ODF - Article No. 1 - Oregon DUI 101Sunil Raju
 
презентация Microsoft power point
презентация Microsoft power pointпрезентация Microsoft power point
презентация Microsoft power pointLarisa Korkach
 
A native american tribe bryan ak (4 d)
A native american tribe   bryan ak (4 d)A native american tribe   bryan ak (4 d)
A native american tribe bryan ak (4 d)Yenli Elb
 
Micróbios causadores de doenças
Micróbios causadores de doençasMicróbios causadores de doenças
Micróbios causadores de doençasAndreia Margarido
 
Finding and Making Xerte Learning Objects for Research
Finding and Making Xerte Learning Objects for Research Finding and Making Xerte Learning Objects for Research
Finding and Making Xerte Learning Objects for Research Christine Davies
 
Biodegradation of CAHs in River Sediments
Biodegradation of CAHs in River SedimentsBiodegradation of CAHs in River Sediments
Biodegradation of CAHs in River SedimentsGeoHydChem
 
Sir Joshua Reynolds
Sir Joshua ReynoldsSir Joshua Reynolds
Sir Joshua ReynoldsYana Lyskova
 
Tfi tutoria en entornos virtuales
Tfi tutoria en entornos virtualesTfi tutoria en entornos virtuales
Tfi tutoria en entornos virtualesRomina Dalessandro
 

Viewers also liked (14)

Espumas
EspumasEspumas
Espumas
 
Latihan word
Latihan wordLatihan word
Latihan word
 
ODF - Article No. 1 - Oregon DUI 101
ODF - Article No. 1 - Oregon DUI 101ODF - Article No. 1 - Oregon DUI 101
ODF - Article No. 1 - Oregon DUI 101
 
VICTORIA/TOMAS
VICTORIA/TOMASVICTORIA/TOMAS
VICTORIA/TOMAS
 
Medicare presentation
Medicare presentationMedicare presentation
Medicare presentation
 
презентация Microsoft power point
презентация Microsoft power pointпрезентация Microsoft power point
презентация Microsoft power point
 
A native american tribe bryan ak (4 d)
A native american tribe   bryan ak (4 d)A native american tribe   bryan ak (4 d)
A native american tribe bryan ak (4 d)
 
Art of bonsai
Art of bonsaiArt of bonsai
Art of bonsai
 
Micróbios causadores de doenças
Micróbios causadores de doençasMicróbios causadores de doenças
Micróbios causadores de doenças
 
SIZNAY 2K15
SIZNAY 2K15SIZNAY 2K15
SIZNAY 2K15
 
Finding and Making Xerte Learning Objects for Research
Finding and Making Xerte Learning Objects for Research Finding and Making Xerte Learning Objects for Research
Finding and Making Xerte Learning Objects for Research
 
Biodegradation of CAHs in River Sediments
Biodegradation of CAHs in River SedimentsBiodegradation of CAHs in River Sediments
Biodegradation of CAHs in River Sediments
 
Sir Joshua Reynolds
Sir Joshua ReynoldsSir Joshua Reynolds
Sir Joshua Reynolds
 
Tfi tutoria en entornos virtuales
Tfi tutoria en entornos virtualesTfi tutoria en entornos virtuales
Tfi tutoria en entornos virtuales
 

Similar to Vuelven los "Pelochos"

Plataforma .Net
Plataforma .NetPlataforma .Net
Plataforma .Netmellcv
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .netlilymejia1979
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .netlilymejia1979
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoftbrobelo
 
Introducción a las Aplicaciones Universales
Introducción a las Aplicaciones UniversalesIntroducción a las Aplicaciones Universales
Introducción a las Aplicaciones UniversalesJavier Suárez Ruiz
 
Framework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoFramework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoAntonio Palomares Sender
 
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotpaolatublog
 
Introducción a la programación visual
Introducción a la programación visualIntroducción a la programación visual
Introducción a la programación visualmiguelangelvillelli
 
Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2cristian Salazar L
 
Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010Oliver Benitez
 
Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02
Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02
Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02Flor Santana Mota
 

Similar to Vuelven los "Pelochos" (20)

Plataforma .Net
Plataforma .NetPlataforma .Net
Plataforma .Net
 
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
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
 
Introducción a las Aplicaciones Universales
Introducción a las Aplicaciones UniversalesIntroducción a las Aplicaciones Universales
Introducción a las Aplicaciones Universales
 
Framework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoFramework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entorno
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspot
 
Paola
PaolaPaola
Paola
 
Paola 1001 jt
Paola 1001 jtPaola 1001 jt
Paola 1001 jt
 
Paola
PaolaPaola
Paola
 
Introducción a la programación visual
Introducción a la programación visualIntroducción a la programación visual
Introducción a la programación visual
 
Introduccion net
Introduccion netIntroduccion net
Introduccion net
 
Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2
 
michael ascanio
michael ascaniomichael ascanio
michael ascanio
 
Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010
 
Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02
Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02
Curso de-introduccin-net-con-visual-basic-2010-120611103429-phpapp02
 

More from Javier Suárez Ruiz

Cape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitCape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitJavier Suárez Ruiz
 
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.FormsJavier Suárez Ruiz
 
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Javier Suárez Ruiz
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersJavier Suárez Ruiz
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 
Crear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsCrear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsJavier Suárez Ruiz
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellMonkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellJavier Suárez Ruiz
 
Analizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsAnalizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsJavier Suárez Ruiz
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinJavier Suárez Ruiz
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!Javier Suárez Ruiz
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloJavier Suárez Ruiz
 

More from Javier Suárez Ruiz (20)

Cape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitCape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community Toolkit
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de 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
 
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI Handlers
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
 
Crear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsCrear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.Forms
 
#XamarinUIJuly Summary
#XamarinUIJuly Summary#XamarinUIJuly Summary
#XamarinUIJuly Summary
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.Forms
 
Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018
 
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellMonkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 
Analizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsAnalizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.Forms
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller Xamarin
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!
 
Novedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 PreviewNovedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 Preview
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrollo
 
Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 

Recently uploaded

Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 

Recently uploaded (20)

Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 

Vuelven los "Pelochos"

Editor's Notes

  1. Windows Phone 8. El nuevo Emulador. Precisamente dado que el nuevo emulador es una máquina virtual completa en Hyper-V necesitamos una requisitos mínimos de hardware para poder utilizarlo. Los prerrequisitos son: Windows 8 Pro o superior. Un procesador que cuente con Second Level Address Translation (SLAT). Básicamente todos los procesadores i3/i5/i7 cuentan con ello. 4GB de RAM o superior. ¿Que ocurre si solo dispongo de mi inseparable portátil con un dual core? Si tras verificar que tu procesador no cuenta con SLAT no desesperes. Podrás desarrollar aplicaciones para Windows Phone 8 (si cumples los requisitos para Visual Studio) solo que sin poder ejecutar el emulador. Siempre podrás probar en un dispositivo físico real. NOTA: Puedes verificar si tu procesador cuenta con SLAT y DEP utilizando una herramienta de Microsoft, llamada Coreinfo. Puedes obtener más información al respecto en el siguiente artículo de Rafa Serna.
  2. Si la aplicación Windows 8 está construida usando buenas prácticas siguiendo el patrón Model-View-ViewModel, tan solo deberás crear una vista nueva para Windows Phone 8 y algunos cambios menores en el modelo para adaptarlo a las APIs de Windows Phone 8.
  3. ¿Y si no tengo Visual Studio 2012 Professional o superior? No puedes hacer uso de las Portable Libraries, que simplifican ampliamente el porte, pero puedes usar otras técnicas como Linkado o Compilación condicional. Puedes encontrar más información sobre estas técnicas en http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681693(v=vs.105).aspx (en inglés).
  4. Las clases parciales que encontramos en c#, son una herramienta que nos permite separar la definición y/o implementación de una clase en diferentes archivos. Es un concepto muy sencillo. Se trata de separar el código que compone a una clase, y distribuirlo en varios archivos. Por lo general, se hace para mantener un código mas organizado cuando la clase se torna muy extensa y compleja.
  5. Una de las cosas que menos les gustan a los usuarios cuando están utilizando una aplicación es tener la sensación de que nuestra aplicación está congelada durante la ejecución de un proceso largo. Seguro que es mas de una ocasión habéis tenido que eliminar una tarea desde el Administrador de Tareas porque “no respondía”. Para evitar esa sensación, es necesario que ejecutemos de manera asíncrona aquellos procesos que vayan a tener cierta carga de procesador. Ya que hoy en día, ¿Quién no tiene un ordenador que tenga múltiples procesadores? A lo largo de las distintas versiones de .NET, es decir, desde la versión 1 hasta la 3.5, ya contábamos con ciertos mecanismos que nos permitían la ejecución asíncrona de procesos. El “más” antiguo podríamos decir que es el uso de Threads o hilos. Es bastante sencillo ejecutar un proceso con un Thread, pero perdemos parte del control a la hora de finalizar la tarea, y no podríamos tratar el resultado del mismo. La siguiente manera, es utilizar un delegado y realizar el lanzamiento de la función asíncrona sin esperar el resultado, eso si indicaremos la función que vamos a utilizar para capturar el resultado, es decir, un callback. Algo común entre Thread y Delegate son los problemas para tratar con controles de la Interfaz de usuario, los cuales al haber sido creados en otro hilo de ejecución no van a poder ser modificados. Aunque es un problema menor, ya que su solución pasaría por la utilización de Invoke o Dispatcher.Invoke Con .Net 2.0 surgió un control bastante orientado a Winforms que era el BackGroundWorker que permitía la ejecución de procesos en background sin tener que estar atentos a su ejecución y se controla gracias a eventos. Facilitar las llamadas a métodos asíncronos como si fuesen síncronos Async / Await no trata sobre la creación de métodos asíncronos, trata sobre la llamada a esos métodos Async: No significa «este método es asíncrono» Significa que el método quiere realizar llamadas a métodos asíncronos y sincronizarse con ellos Await: No significa «espérate (bloqueáte) hasta que termine la llamada al método asíncrono» Eso convertiría el asincronismo en sincronismo Significa «Si la tarea asíncrona no ha terminado, sal del método (y vuelve al llamador) y marca el código posterior al await como código a ejecutarse una vez se termine la tarea Callback
  6. El truco está en la palabra reservada await que le indica al compilador que llamamos a un método asíncrono y que debe continuar la ejecución hasta que encuentre código que solicita los datos esperados del método asíncrono. Para ello el compilador creará una máquina de estados que generará los métodos necesarios para manejar los callbacks que sean necesarios. Cuando llamemos al método PerderElTiempoAsync nuestro código no se parará ahí, continuará la ejecución y quien se encarga de todo esto es el propio compilador de C#.
  7. To aid in these considerations, Windows 8 and Windows Phone 8 have unique controls that have been designed with their particular form factors in mind. Some of the specialized controls for Windows 8 include GridView: (groupable) tile array. Also possible to dynamically size items in the grid. The GridView comes with built in styles for input and selection SemanticZoom: Allows for quick jump through large lists of grid items FlipView: Browsing view optimised for touch to pane left-right through sequential items.
  8. To aid in these considerations, Windows 8 and Windows Phone 8 have unique controls that have been designed with their particular form factors in mind. Some of the specialized controls for Windows 8 include GridView: (groupable) tile array. Also possible to dynamically size items in the grid. The GridView comes with built in styles for input and selection SemanticZoom: Allows for quick jump through large lists of grid items FlipView: Browsing view optimised for touch to pane left-right through sequential items.
  9. On the Windows Phone side of things, we have controls customized to a phone experience. The Panorama control is designed to give users a sort of “landing” space where they can get a feel for the content of the application explore that content in an open interactive environment.
  10. New to Windows Phone 8 is the LongListSelector control. This is the recommended control for list-based UI’s, replacing the ListBox. It is optimized for scrolling speed, but also implements a “group selection” interface so that the user can move quickly between grouped items in a very long list. Here we can see that group selection applied to an alphabetical list, but you could define a set of groups and then use the group selection to navigate between them.
  11. Y cuando seleccione un artículo? Windows 8 tiene un paradigma de desplazamiento horizontal, pero es un paradigma que no tiene sentido en el contexto de un teléfono. Así que en vez de imitar la interfaz de usuario de desplazamiento horizontal que vemos en Windows 8, hay que traducir eso en una interfaz de usuario de desplazamiento vertical que se ajusta el teléfono.
  12. Entonces, ¿qué significa esto en la práctica? Esto significa que cuando estamos pensando en cómo vamos a diseñar nuestras dos aplicaciones, hay que considerar el uso de las características de interfaz de usuario personalizados de Windows 8 o Windows Phone 8. Por ejemplo, el control de zoom semántico nos permite ver grupos de artículos a un nivel alto y luego acceder en ellos hasta que selección de uno. Ese comportamiento es similar en muchos aspectos a lo que el control de pivot nos ofrece. Debemos considerar el uso del pivote para el teléfono y el SemanticZoom para Windows 8.
  13. Y si tenemos una larga lista de elementos agrupados en Windows Phone 8, es posible que debamos considerar la implementación de un GridView en Windows 8.
  14. De Windows Phone 8 a Windows 8!
  15. La mayoría de los métodos asincrónicos en la NET se incluyen en Windows Phone 8 SDK y están disponibles por defecto si hacemos aplicaciones para Windows Phone 8, sin embargo para Windows Phone 7.5 en Visual Studio 2012 usando .NET Framework 4.0 (con KB2468871), Silverlight 4 y las bibliotecas de clases portables, debemos descargar los otros métodos asincrónicos (en concreto, System.Net API) a través del paquete Nuget Microsoft.Bcl.Async y asegurarnos de que tenemos disponibles todos los archivos necesarios.
  16. ¿Android, IOS?