Compact Framework 2.0 Fabio Santini.NET Developer Evangelist [email protected] Microsoft Italy.

21
Compact Framework 2.0 Fabio Santini .NET Developer Evangelist [email protected] Microsoft Italy

Transcript of Compact Framework 2.0 Fabio Santini.NET Developer Evangelist [email protected] Microsoft Italy.

Page 1: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Compact Framework 2.0Compact Framework 2.0

Fabio Santini.NET Developer [email protected]

Microsoft Italy

Page 2: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Compatibilità e prestazioni.NET Compact Framework 2.0Compatibilità e prestazioni.NET Compact Framework 2.0

Compatibile al 100% con il .NET FrameworkClassiInteroperabilità, protocolli

Compatibilità con la versione 1.0Side by sideCompatibilità a livello applicativo

Incremento delle prestazioniJIT unificatoMigliorara la gestione delle stringheXmlTextReader e XmlTextWriter

.NETCF 1.0.NETCF 1.0(ROM)(ROM)

.NETCF .NETCF 2.02.0

Page 3: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Estendibilità.NET Compact Framework 2.0Estendibilità.NET Compact Framework 2.0

Interoperabilità COMRuntime Callable Wrappers (RCW) fornisce proxy per gli oggetti COMRCW è integrato nell’ IDE di Visual Studio

Type MarshallingAggiunta di tipi– arrays, strings, structuresArray all’interno di strutture (char[], array[])MarshalAs

System.Windows.FormsControl.Handle – recupera l’handle della finestra

Page 4: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Linguaggio.NET Compact Framework 2.0Linguaggio.NET Compact Framework 2.0

Nuove funzionalità del linguaggioGenericsMetodi anonimiIteratorsPartial Types

Page 5: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

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

Le variabili sono di un tipo ben preciso e non objectsNon è necessario un casting (errori in fase di compilazione)Riutilizzo reale del codice

GenericsGenerics 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 6: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Blocchi di codice incapsulati in delegate

Senza metodi anonimi

Con metodi anonimi

Metodi anonimiMetodi 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 7: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Partial TypesPartial Types

Foo-part1.cs

public partial class Foo{   public void CodeGenFunc()   {       // generato da un toot   }}

Foo-part2.cs

public partial class Foo{   public void UserFunc()   {       // codice utente   }}

Divide la definizione di un tipo in file separatiIl compilatore C# combina i file per creare un unica classeLa separazione aiuta a mantenere aggiornato il codice sopratutto in presenza di generaziona automatica

Page 8: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Controllli Windows.FormsControllli Windows.Forms

DateTimePickerMonthCalendarDocumentListLinkLabelNotification BubbleHelpRichInkWebBrowserDataContainerUserControl

Page 9: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Supporto per la Clipboard Aggiunte proprietà, metodi ed eventi come richiesto dai clienti

Control.DoubleClickToolBarButton tooltipsPiù eventi TreeviewComboBox editabileTextbox.HideSelectionUserControlFontCollection

Più supporto per la tastieraForm.KeyPreviewTabIndex, TabStop

Funzionalità Windows.FormsFunzionalità Windows.Forms

HPHP43004300

Tastiera Tastiera integrataintegrata

Page 10: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Funzionalità dei DeviceOrientamentoRisoluzione

Displays e LayoutDisplays e Layout

.NET Compact Framework 1.0 Service Pack 2 (oggi)

Gestione automatica delle form scrollabiliEvento Form.ResizeGestione automatica dell’alta risoluzioneWhite paper su MSDN:Developing Screen Orientation-Aware Applications

Page 11: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Displays And Layout.NET Compact Framework 2.0Displays And Layout.NET Compact Framework 2.0

Supporto all’orientamentoDocking e AnchoringProprietà AutoScroll – forms, panelsMetodi Suspend/Resume LayoutMetodo ChangeOrientation

Supporto alla risoluzioneScaling automatico

Page 12: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Funzionalità per Smartphone .NET Compact Framework 2.0Funzionalità per Smartphone .NET Compact Framework 2.0

Gestione dei datiSQL Server CEDataGrid

Textbox IME switching

InputModeEditor

Abilitazione di più menu item nel menù di sinistra

Page 13: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

System.Drawing.NET Compact Framework 2.0System.Drawing.NET Compact Framework 2.0

BitmapBitmap.LockBits(…)Image.Save(…)

png, jpg, bmp, tif, gif

Bitmap Pattern BrushesCreazione di font da una struttura LOGFONTPenne custom

Testo ruotato utilizzando Testo ruotato utilizzando LOGFONT LOGFONT

Page 14: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Networking e Web serviceNetworking e Web serviceSystem.MessagingWeb service

Aumento di prestazioni dovute alla classe XmlSerializerSupporto per SOAP 1.2

AutenticazioneKerberos e NTLMAutomaticamente viene selezionato il metodo più sicuro

IPv6

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

Page 15: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Usato per comunicazioni bidirezionali con connessione variabile

NotaPuò essere utilizzato anche per comunicazioni Inter-Process

System.MessagingSystem.Messaging

ServerServerApplicationApplication

I dati vengono trasferiti quandoI dati vengono trasferiti quandola connessione è presente.la connessione è presente.

Anche se il dispositivoAnche se il dispositivonon è acceso.non è acceso.

OperatingOperating SystemSystemQueueQueue

.NETCF.NETCFApplicationApplication

DispositivoDispositivo

Page 16: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

System.Xml e System.DataSystem.Xml e System.DataSystem.Xml

SerializzazioneSerializzazione completa delle classi (XSD -> Classe -> XML)

SchemaValidazione XML su schemiGenerazione da codice di schemi XML

XPath 1.0

DataIntegrazione con Visual Studio 2005

Data Designer, Data ConnectorADO.NET

Aggiunte funzionalità per essere compatibile al 100% con il .NET Framework

Page 17: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Nuove librerieNuove librerieDirect3D e DirectDraw MobileNotifications Broker

Registrarsi ad una serie di eventi che avvengono sul dispositivo

Pocket OutlookEmail, SMSContacts, Calendar, Tasks

TelefoniaControllo Phone callAccesso al log delle chiamate

Gestione del dispositivoConfiguration System object

Controlli UI:Picture PickerContact Picker...

Runtime nativo: ATL 80, MFC 80, CSL/STL

Page 18: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Altre librerie ...Altre librerie ...Serial PortIsolated StorageRegistryGeneric collectionsCryptographySound

Page 19: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

System.Data.SqlClient (160KB)System.Data.SqlClient (160KB)

System.Data.SqlServerCe (140KB)System.Data.SqlServerCe (140KB)System.Data.Common (124KB)System.Data.Common (124KB)

eDB – sqlcese30.dll (300KB)eDB – sqlcese30.dll (300KB)

sqlceca30.dll (360KB)sqlceca30.dll (360KB)

sqlcesa30.dll (150KB)sqlcesa30.dll (150KB)sqlcerp30.dll (100KB)sqlcerp30.dll (100KB)

sqlceqp30.dll (800KB)sqlceqp30.dll (800KB)

Storage EngineStorage Engine

sqlceoledb30.dll (200KB)sqlceoledb30.dll (200KB)

Internal SE APIInternal SE APIeDB APIeDB API

QPQP

Internal QP APIInternal QP API

SQL CE 3.0SQL CE 3.0

ReplicationReplicationandandRDARDA

OLEDB / OLEDB / Replication APIReplication API

CLIENTCLIENT SERVERSERVER

IISIIS

Server Server Agent: Agent:

ReplicationReplicationandand

Remote Remote Data Data

AccessAccessHTTPHTTP

XML/BizTalk/CS XML/BizTalk/CS 2002/DTS2002/DTS

Enterprise BackendEnterprise Backend

Oracle / db2 / etcOracle / db2 / etc

TDSTDS

Well Well ConnectedConnected

Occasionally Occasionally ConnectedConnected

OLE DBOLE DB

PIM AppsPIM Apps Native AppsNative Apps Managed SQL CE + eDB AppsManaged SQL CE + eDB Apps

eVC++eVC++

CLR / .NET CFCLR / .NET CF

SQL Server CE SQL Server CE Data ProviderData Provider

SQL Server Data SQL Server Data Provider Provider

VS .NET (VB.NET, C#)VS .NET (VB.NET, C#)

Page 20: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.

Main DemoMain Demo

Page 21: Compact Framework 2.0 Fabio Santini.NET Developer Evangelist fsantini@microsoft.com Microsoft Italy.