19
Modern Apps Development Pablo Zaidenvoren [email protected]

Modern apps development by Pablo Zaidenvoren

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Modern apps development by Pablo Zaidenvoren

Modern Apps Development

Pablo [email protected]

Page 2: Modern apps development by Pablo Zaidenvoren

.NET Framework

Base Class Libraries

The CLRJIT & NGEN Garbage

Collector Security Model Exception Handling

Loader & Binder

WPF Win Forms DLR ASP.NET WCF And

more!LINQ

Page 3: Modern apps development by Pablo Zaidenvoren

“Caballitos de Batalla” de la Plataforma

Managed Code

Generics

Language Integrated Query

Dynamic + Language Parity

C# 5.0 + VB 11.0Windows Runtime + Asynchrony

C# 1.0 + VB 7.0

C# 2.0 + VB 8.0

C# 3.0 + VB 9.0

C# 4.0 + VB 10.0

Page 4: Modern apps development by Pablo Zaidenvoren

Modern Apps

Personal & contextual

Always evolving

New value

Always connected

Data intensive

Always accessible

Page 5: Modern apps development by Pablo Zaidenvoren

Windows reimaginado

Page 6: Modern apps development by Pablo Zaidenvoren

La misma experiencia en todos los dispositivos

Tablets to laptops to all-in-ones

Highest power to the most efficient chipset

Touch, mouse, keyboard

Page 7: Modern apps development by Pablo Zaidenvoren

Desarrollo de Modern Apps para Windows 8

Windows Core OS Services

JavaScript(Chakra)

CC++

C#VB

Communication & Data

Application Model

Devices & Printing

WinRT APIs

Graphics & Media

XAML HTML / CSS

Page 8: Modern apps development by Pablo Zaidenvoren

Ventajas de WinRT

• Es Asincronico• Acceso unico y rico a todos los dispositivos,

SO, y servicios• Sintaxis inspirada en .NET (No mas wrappers

COM de C++!!!)• Codigo nativo para dar la mejor experiencia

Page 9: Modern apps development by Pablo Zaidenvoren

Lenguajes

WindowsRuntime

Object(or Component)

Writtenin C++, C#, VB

Windows Metadata

C++ App

Projection

CLR

C#/VB AppProjection

HTML AppChakra

Projection

Page 10: Modern apps development by Pablo Zaidenvoren

Process Isolation

Page 11: Modern apps development by Pablo Zaidenvoren

Process state transitions

Page 12: Modern apps development by Pablo Zaidenvoren

8 rasgos de las aplicaciones Modern UI

Modern UI style designFast and fluidSnap and scale beautifullyUse the right contractsInvest in a great TileFeel connected & aliveRoam to the cloudEmbrace Modern UI principles

Page 13: Modern apps development by Pablo Zaidenvoren

Windows RuntimeFor Developers

Page 14: Modern apps development by Pablo Zaidenvoren

Windows Runtime desde .NET

• Windows: el mejor amigo del developer.• Para APIs Nativas, .NET no era ciudadano de

primera clase…

Page 15: Modern apps development by Pablo Zaidenvoren

[DllImport("avicap32.dll", EntryPoint="capCreateCaptureWindow")]static extern int capCreateCaptureWindow( string lpszWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, int hwndParent, int nID);

[DllImport("avicap32.dll")] static extern bool capGetDriverDescription( int wDriverIndex, [MarshalAs(UnmanagedType.LPTStr)] ref string lpszName, int cbName, [MarshalAs(UnmanagedType.LPTStr)] ref string lpszVer, int cbVer);

// Infelicidad de código

El código de C# que hoy escribimos

Page 16: Modern apps development by Pablo Zaidenvoren

El código que vamos a escribir en Windows 8

using Windows.Media.Capture;

var ui = new CameraCaptureUI();ui.PhotoSettings.CroppedAspectRatio = new Size(4, 3);

var file = await ui.CaptureFileAsync(CameraCaptureUIMode.Photo);

if (file != null) { var bitmap = new BitmapImage() ; bitmap.SetSource(await file.OpenAsync(FileAccessMode.Read)); Photo.Source = bitmap;}

// Felicidad de código

Page 17: Modern apps development by Pablo Zaidenvoren

Windows Runtime desde .NET

• Usar Windows Runtime desde C# y Visual Basic se siente natural y familiar.

• La mayoria de las diferencias entre Windows Runtime y.NET estan ocultas

• El uso de Extension methods nos permite cerrar el gap entre Windows Runtime y el código manejado.

Page 18: Modern apps development by Pablo Zaidenvoren

Lenguajes

WindowsRuntime

Object(or Component)

Writtenin C++, C#, VB

Windows Metadata

C++ App

Projection

CLR

C#/VB AppProjection

HTML AppChakra

Projection

Page 19: Modern apps development by Pablo Zaidenvoren

Windows Runtime desde JS

• WinRT tambien se siente natural para programadores habituados a HTML y JS

• La naturaleza dinamica de JS permite absorber el gap con WinRT de manera natural