modern apps development by pablo zaidenvoren

Post on 13-Dec-2014

358 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Modern Apps Development

Pablo Zaidenvorenpabloz@lagash.com

.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

“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

Modern Apps

Personal & contextual

Always evolving

New value

Always connected

Data intensive

Always accessible

Windows reimaginado

La misma experiencia en todos los dispositivos

Tablets to laptops to all-in-ones

Highest power to the most efficient chipset

Touch, mouse, keyboard

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

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

Lenguajes

WindowsRuntime

Object(or Component)

Writtenin C++, C#, VB

Windows Metadata

C++ App

Projection

CLR

C#/VB AppProjection

HTML AppChakra

Projection

Process Isolation

Process state transitions

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

Windows RuntimeFor Developers

Windows Runtime desde .NET

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

primera clase…

[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

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

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.

Lenguajes

WindowsRuntime

Object(or Component)

Writtenin C++, C#, VB

Windows Metadata

C++ App

Projection

CLR

C#/VB AppProjection

HTML AppChakra

Projection

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

top related