Windows internals http:// [email protected] http:// [email protected].
Compact Framework 2.0 Fabio Santini.NET Developer Evangelist [email protected] Microsoft Italy.
-
Upload
pierina-bono -
Category
Documents
-
view
229 -
download
2
Transcript of Compact Framework 2.0 Fabio Santini.NET Developer Evangelist [email protected] Microsoft Italy.
Compact Framework 2.0Compact Framework 2.0
Fabio Santini.NET Developer [email protected]
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
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
Linguaggio.NET Compact Framework 2.0Linguaggio.NET Compact Framework 2.0
Nuove funzionalità del linguaggioGenericsMetodi anonimiIteratorsPartial Types
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);}
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}
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
Controllli Windows.FormsControllli Windows.Forms
DateTimePickerMonthCalendarDocumentListLinkLabelNotification BubbleHelpRichInkWebBrowserDataContainerUserControl
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
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
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
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
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
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);
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
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
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
Altre librerie ...Altre librerie ...Serial PortIsolated StorageRegistryGeneric collectionsCryptographySound
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#)
Main DemoMain Demo