sviluppare applicazioni per dispositivi mobili con visual studio 2005 e.net compact framework 2.0...

33
Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e .NET Compact Framework 2.0 Fabio Santini [email protected]

Upload: bonfilio-greco

Post on 01-May-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e

.NET Compact Framework 2.0

Fabio [email protected]

Page 2: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com
Page 3: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Categorie dei dispositivi Windows Mobile

– Dedicato a contenuti multimediali

– Interfaccia grafica ottimizzata

– Non touch, navigazione tramite telecomando

– Capacità di video in e out

– PDA e dispositivi convertibili

– Dispositivi per la messaggistica

– Touch Screen– Tastiere QWERTY– Applicazioni verticali– Piattaforma estendibile

– Innanzitutto un telefono– Input tramite Keypad e

joystick– Ottimizzati per una

navigazione tra le funzionalità ad una mano

– Piattaforma estendibile

Page 4: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Momento• Più di 10 millioni di dispositivi con il

.NET Compact Framework in ROM• Più di 200,000 sviluppatori su .NET Compact

Framework• Più di 600,000 download della Service Pack 1

0

100,000

200,000

300,000

400,000

500,000

600,000

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr

SP3 Total Installed Base

SP2 Total Installed Base

Page 5: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Libri

In FullIn Full

In PartIn Part

Page 6: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com
Page 7: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Piccolo ma compatibile• Una copertura del 28% in un 8% di dimensione• Non supportate

– Server functionality– ASP.NET– Remoting– Code Access Security– Reflection Emit (scripting)– Individual properties, methods, events – classes factored at member level– Managed C++, J#

CopyCopyGround-up rewriteGround-up rewrite Snapshot & ModifySnapshot & Modify

Windows.FormsWindows.Forms

System.Web.ServicesSystem.Web.Services

Microsoft.DirectX.Microsoft.DirectX.Direct3DMobileDirect3DMobile

System.DrawingSystem.Drawing

Execution EngineExecution Engine

JIT, GC, Loader, JIT, GC, Loader, assembly cacheassembly cache

System.NetSystem.Net

System.IOSystem.IO

System.ResourcesSystem.Resources

System.ThreadingSystem.Threading Microsoft.Win32.Microsoft.Win32.RegistryRegistry

System.CryptographySystem.Cryptography

System.IO.PortsSystem.IO.Ports

System.StringSystem.String

System.TextSystem.Text

System.GlobalizationSystem.Globalization

System.MessagingSystem.Messaging

System.XmlSystem.Xml

System.DataSystem.Data

System.Text.RegexSystem.Text.Regex

Microsoft.VisualBasicMicrosoft.VisualBasic

System.CollectionsSystem.Collections

System.Generic.System.Generic.CollectionsCollections

86% 86% del .NET del .NET

FrameworkFramework

91% 91% dell .NET dell .NET

FrameworkFramework

Page 8: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Compatibilità• Le applicazioni sviluppate con versioni precedenti del.NET Compact

Framework funzioneranno con la nuova versione

– Il goal è il 100% di compatibilità

• La nuova versione del .NET Compact Framework potrà girare su versioni precedenti di Windows CE e Windows Mobile

Dispositivi supportatiV1 V2

PocketPC 2000PocletPC 2002PocketPC 2003, SE SmartPhone 2003 WinCE 4.1WinCE 4.2WinCE 5.0

Pocket PC 2003 SEPocket PC 2005Smart Phone 2005WinCE 5.0

Page 9: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Controllli Windows.Forms• DateTimePicker• MonthCalendar• DocumentList• LinkLabel• Notification Bubble• Help• RichInk• WebBrowser• DataContainer• UserControl

Page 10: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

• Supporto per la Clipboard • Nuove proprietà, metodi e eventi

– Control.DoubleClick– ToolBarButton tooltips– Più eventi Treeview– ComboBox editabile– Textbox.HideSelection– UserControl– FontCollection

• Più supporto per la tastiera– Form.KeyPreview– TabIndex, TabStop

Funzionalità Windows.Forms

HPHP43004300

Tastiera Tastiera integrataintegrata

Page 11: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Funzionalità per Smartphone .NET Compact Framework 2.0

• Gestione dei dati– SQL Server 2005 Mobile

Edition (Windows Mobile 5.0)

– DataGrid

• Textbox IME switching– InputModeEditor

• Abilitazione di più menu item nel menù di sinistra

Page 12: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Networking e Web service• Web service

– Aumento di prestazioni dovute alla classe XmlSerializer

– Supporto per SOAP 1.2• Autenticazione

– Kerberos e NTLM– Automaticamente viene selezionato il metodo

più sicuro

• IPv6

WebService service = new WebService();service.Credentials = new NetworkCredential(username, password, domain);

Page 13: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Managed D3D Mobile• Incluso in WinCE 5.0 e le future versioni di

Windows Mobile – Le API Native derivano da DX8– Le API Managed derivano da DX9

• Funzionalità– Accesso completo alle D3DM API– Supporto ai Fixed point

(Vertex Data, Matrices, Lights, e Materials)

– Sprite– Font– Mesh– TextureLoader– Tutorials and Samples

Page 14: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Emulatori• Novità di VS 2005 Beta 2• Emulatori ARM (come i device reali)• DMA Trasport Patch (più veloce)

– Installare– Da VS 2005 Configurare DMA Transport

• ActiveSync 4.0• Device Manager nuovo !

– Fare Cradle -> Emulatore == Device !!!– Es. File Explorer - Sincronizzazione

• Deploy su Device anzichè emulatore

Page 15: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

DataSet

• Serializzazione su singola DataTable

• DataSet.Copy()– Utile per inviare copie per aggiornamento

continuando a lavorare con i dati

• DataSet.GetChanges– Finalmente

• DataSet.Merge– Per ottenere modifiche incrementali da un WS

e unirle al DS corrente

Page 16: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

DataTable Serialization• WriteXml, ReadXml• Una DataTable può essere inviata/ricevuta come

argomento di un web service

private void DeptComplete(string deptName, DataSet ds)private void DeptComplete(string deptName, DataSet ds){{ DataTable dt = ds.Tables["DeptDetail"];DataTable dt = ds.Tables["DeptDetail"]; dt.dt.WriteXmlWriteXml(deptName + ".xml");(deptName + ".xml"); dt.Clear();dt.Clear();}}

private void DeptRestore(string deptName, DataSet ds)private void DeptRestore(string deptName, DataSet ds){{ DataTable dt = ds.Tables["DeptDetail"];DataTable dt = ds.Tables["DeptDetail"]; dt.Clear();dt.Clear(); dt.dt.ReadXmlReadXml(deptName + ".xml");(deptName + ".xml");}}

Page 17: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

XML Serializer• Le classi possono essere serializzate e

deserializzate– XmlSerializer disponibile nel framework– Serialize: salva le istanze in XML– Deserialize: legge l’XML per ricostruire l’istanza

• Controllo sulla Serialization– Costruttore di default– Attribute per controllare il comportamento

• XmlElement• XmlAttribute

Page 18: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

XPath

• Supportato da XmlDocument

• Metodi– SelectNode

• Restituisce un singolo XmlNode in base al match

– SelectNodes• Lista di matching node

Page 19: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Linguaggio.NET Compact Framework 2.0

• Nuove funzionalità del linguaggio– Generics

– Metodi anonimi

– Iterators

– Partial Types

Page 20: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

• I generics sono classi e metodi che lavorano in maniera uniforme su tipi differenti

• Benefici– Le variabili sono di un

tipo ben preciso e non Object

– Non è necessario un cast (errori in fase di compilazione)

– Riutilizzo reale del codice

Generics class Stack<T> { private T[] store; private int size;

public Stack() { store = new T[10]; size = 0; }

public void Push(T x) { // push code goes here }

public T Pop() { return store[--size]; }}

void Add(Stack<int> s) { int x = s.Pop(); int y = s.Pop(); s.Push(x+y);}

Page 21: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Blocchi di codice incapsulati in delegate

Senza metodi anonimi

Con metodi anonimi

Metodi anonimi

button.Click += new EventHandler(sender, args){

// increment a counter or other action};

button.Click += new EventHandler(ProcessClick);

// separate methodvoid ProcessClick(object sender, EventArgs e){ // increment a counter or other action}

Page 22: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Partial Type

Cliente1.cs

public partial class Cliente{   public void GetOrders()   {          }}

Cliente2.cs

public partial class Cliente{   public void GetInvoice()   {   }}

• Divide la definizione di un tipo in file separati• Il compilatore C# combina i file per creare un unica classe• La separazione aiuta a mantenere aggiornato il codice

sopratutto in presenza di generaziona automatica

Page 23: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Visual Studio 2005.NET Compact Framework 2.0

Visual Studio 2005.NET Compact Framework 2.0

Page 24: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Nuove API Managed in Nuove API Managed in Windows Mobile 5.0Windows Mobile 5.0

Page 25: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Pocket OutlookMicrosoft.WindowsMobile.PocketOutlook

• Wrapper sul Pocket Outlook Object Model (POOM)– Espone molte funzionalità di Pocket Office

• Facilita l’uso delle informazioni dentro al PIM– Appuntamenti, contatti e task– Account di Email e SMS e messaggi– Recipienti e allegati

• La classe OutlookSession è la porta d’ingresso– Wrapper dell’application objecy di Pocket

Outlook

Page 26: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Le classi di Pocket Outlook

Page 27: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Pocket OutlookPocketOutlook.MessageInterception

• Fornisce un meccanismo di processo dei messsaggi– Intercetta I messaggi SMS in ingresso– Può eseguire specifiche applicazioni– E’ possibile impostare dei criteri di selezione– Può togliere il messaggio dalla “coda”

• Utile in tante situazioni– Evidenziare alcuni messaggi– Meccanismi di Push dal server– Tasporto di semplici informazioni

• configurazione

Page 28: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Le classi Message Interception

Page 29: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

FormsMicrosoft.WindowsMobile.Forms

• Fornisce una serie di nuove finestre di dialogo– Foto dalla camera digitale, scelta di un

contatto, selezione di un immagine

Page 30: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

FormsNuove dialog

Page 31: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

FormsEsempio

// using Microsoft.WindowsMobile.Forms;// using Microsoft.WindowsMobile.PocketOutlook;

CameraCaptureDialog cameraCaptureDialog = new CameraCaptureDialog();cameraCaptureDialog.ShowDialog();this.image = cameraCaptureDialog.FileName;this.imageDisplay.Image = new Bitmap( this.image );

ChooseContactDialog chooseContactDialog = new ChooseContactDialog();chooseContactDialog.ShowDialog();this.contact = chooseContactDialog.SelectedContact;this.contactName.Text = this.contact.FileAs;

SelectPictureDialog selectPictureDialog = new SelectPictureDialog();selectPictureDialog.ShowDialog();this.picture = selectPictureDialog.FileName;this.pictureDisplay.Image = new Bitmap( this.picture );

Page 32: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

Nuove API Managed in Windows Mobile 5.0

Nuove API Managed in Windows Mobile 5.0

Page 33: Sviluppare applicazioni per dispositivi mobili con Visual Studio 2005 e.NET Compact Framework 2.0 Fabio Santini fsantini@microsoft.com

© 2005 Microsoft Corporation. All rights reserved.© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.THIS SUMMARY.