logging in or signing up mobile Veronica1 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: Embed: Flash iPad Copy Does not support media & animations WordPress Embed Customize Embed URL: Copy Thumbnail: Copy The presentation is successfully added In Your Favorites. Views: 668 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: February 21, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Intro to Mobile Developmentusing .NET: Intro to Mobile Development using .NET Roberto Brunetti roberto@devleap.it -rob@thinkmobile.it http://blogs.devleap.com/rob http://thinkmobile.itChi siamo: Chi siamo www.devleap.it Un gruppo di 5 persone Studiare a fondo le tecnologie Capire il “behind the scenes” Implementare soluzioni reali Confrontarsi con le problematiche reali Sperimentare nuove idee Facciamo Corsi, Conferenze, Training Scriviamo libri http://www.devleap.it/fullcontactDevLeap Pure .NET Training: DevLeap Pure .NET Training Introduction to .NET Framework Architecting Apps in .NET Introduction to Web Services Introduction to ASP.NET Introduction to ADO.NET Core ASP.NET Core ADO.NET Core Web Services Core .NET Framework SOA Services with WSE2 ASP.NET 2.0 Preview/Core/Upgrade Intro to Mobility Dev Advanced Mobility DevDevLeap Training: DevLeap Training Sharepoint 2003 Development Data Warehouse e DTS OLAP Analysis Services Longhorn Preview WinFX Preview WCF (Indigo) Preview SQL 2005 Preview Introduction to ASP.NET WPF (Avalon) Preview SQL 2005 Analysis Services Preview SQL Server Reporting Services VSTS for TechniciansThinkMobile.it: ThinkMobile.it Il 12/7/2005 ho aperto il sito Obiettivo: creare la comunità italiana per lo sviluppo in .NET su dispositivi Mobile .NET Compact Framework SQL Server for Windows CE Repliche dei dati Applicazioni Server-side Blogs – Forum .NET Clients: .NET ClientsWindows CE: Windows CE Sistema Operativo Real-time e Modulare Si possono scegliere le componenti per creare un device 3.0 pIE 3, Supporto Ethernet, IIS, ASP, MSMQ Gli OEM hanno aggiunto Bluetooth, 802.x, Fingerprint 4.x pIE 5.5 Bluetooth, 802.x IE 5.5, WMT 8.0, Direct X 8.0 Kerberos, SSL, SmartCard 5.x (Magneto) Real Time reale Miglioramenti di performance su Network e grafica Direct 3D MobileVarie forme consumer: Varie forme consumer Handheld PC CE 2.0 – versione Pro applicazioni 3.0 Pocket PC 2000 (3.0) CE 3.0 Pocket PC 2002 CE 3.0 con nuova shell Pocket PC 2003 / SmartPhone 2003 CE .NET 4.x Automazione industriale Stanno arrivando dispositivi basati su Windows Mobile 5.0Devices: Devices Pocket PC: Pocket PC Ne esistono 4 versioni Pocket PC 2000 (anche detta 3.0) Pocket PC 2002 (CE 3.0) Pocket PC 2003 (CE 4.x) – Windows Mobile 2003 for Pocket PC Windows Mobile 5.0 for Pocket PC Interfaccia Pen e Keyboard on-screen (SIP) Touch Screen Ogni produttore può inserire Hw Lettore Bar Code GPS integrato Applicazioni Custom Guscio custom ...nei ristoranti...Hardware: Hardware ROM: 32 – 48 RAM: 32 – 64 - 128 Processore (da 206 a 700 Mhz) StrongARM, Intel PXA 250, Texas OMAP 710 Add-on Compact Flash SD Slot Infrared - USB – Serial Bluetooth Jacket di espansione Per PCMCIA (PCCard)Per le demo con Pocket PC: Per le demo con Pocket PC Add-on kit per Pocket PC Scheda VGA per proiezione esterna Cavo di connessione con proiettore Oppure wireless (con proiettore wireless) CE Remote Display Comodo per sviluppare (Tastiera/Mouse) Developer Power Toys Come sopra ma senza client SOTI Pocket Controller Uno spettacolo !Pocket PC 200x Applications: Pocket PC 200x Applications Connettività [Modem] [Scheda Wireless] [Bluetooth] [Ethernet] VPN (PPTP) Terminal Services ActiveSync “Office” Inbox (e-mail) Contacts, Calendar, Tasks, Notes Excel, Word Reader Internet Explorer HTML 3.2 XML WAP 1.2.1 JScript SSL ActiveX MSN Instant Messenger Windows Media Player Locale e Streaming Esposte come DLL o ActiveXPocket PC Phone Edition: Pocket PC Phone Edition Integra il PocketPC con il telefono Nasce dal PocketPC 2002 Pen-based e tastiera on-screen Touch-Pad per la composizione 32 - 64 Mb ROM 32 - 128 Mb RAM Processore ARM-based Infrared SD slotPocket PC Phone Edition: Pocket PC Phone Edition Applicazioni del Pocket PC 200x SIM SIM Manager Contatti SIM (Address Book) SMS Conference Call Auricolare Multitasking: si può lavorare con le applicazioni mentre si telefonaSmartphone 200x Hardware: Smartphone 200x Hardware Processore 120MHz ARM 8MB+ RAM 16MB Flash ROM 176x220 16-bit display SD Slot No Compact Flash E’ un telefono No touch-screen No StylusSmartphone 200x Applications: Smartphone 200x Applications Telefonia! Tastierino on-screen Profile Shortcut GPRS Tri-band ActiveSync Pocket Outlook Inbox (e-mail, v-mail, sms) Contacts Calendar Tasks Internet Explorer HTML 3.2 XML WAP 1.2.1 JScript SSL MSN Instant Messenger Windows Media Player Locale e Streaming ActiveSync Esposte come DLL o ActiveXSP Internet Explorer: SP Internet Explorer HTML 3.2 No Frames HTML 4.0 – innerText, innerHTML, accesskey No Style Sheets WAP 1.2.1 Microsoft JScript® 1.1 cHTML (i-Mode) accesskey, tel: URL XML / XSL Microsoft ActiveX® controls SSL security Imagini: JPEG, GIF, PNG, BMP, 2BP, XBM, WBMPSP Supporto WAP: SP Supporto WAP Integrazione con HTML Viewer WML, WBXML, WML Script, WTLS security Bearer (Portante) IP, SMS (WAP Push, SI/SL) WTAI (Wireless Telephony Application Interface) SmartPhone consente MakeCall Le caratteristiche non sono adatte allo SmartPhone e non sicureROM vs RAM: ROM vs RAM ROM Sistema Operativo Aggiornabile per upgrade del S.O. RAM Per far girare le applicazioni Per Storage “permanente” Tranne Hard Reset Tranne esaurimento batteria tampone Sul Pocket PC Off non significa Reset Viene mantenuta la RAM Le applicazioni restano nel loro stato No Virtual MemoryActiveSync: ActiveSync Per controllare la Sincronizzazione Calendario, Task, Email, Note Per passare dati e convertirli Word, Excel, Powerpoint PDF (da Adobe) File Audio/Video Ogni applicazione può montare il filtro di conversione Funge anche da GatewayActiveSync: ActiveSync Per controllare la Sincronizzazione Calendario, Task, Email, Note Per passare dati e convertirli Word, Excel, Powerpoint PDF (da Adobe) File Audio/Video Ogni applicazione può montare il filtro di conversione Funge anche da GatewayScenari Applicativi: Scenari Applicativi Utilizzo di Terminal Service Impatto zero sul Device Solo per Pocket PC Utilizzo di Internet Explorer Impatto zero sul Device Applicazione sul Device (Oggi) Installazione sul Device Semplice o complessa che sia Scenari Utilizzo Socket o Web Request - Vecchio stile Utilizzo di XML - Vecchio Stile Utilizzo di Web Service !!! Download e uso dei dati sul device !!!Piattaforma client: Piattaforma client LapTop / Tablet PC VB 6, VC++, .NET Driver C++ Pocket PC 2000/2002 eVB 3.0, eVC++ 3.0, .NET Driver eVC++ HPC e Palm PC (vecchi) eVB 3.0, eVC++ 3.0 SmartPhone 2002 eVC++ 3.0 (per adesso) CE.NET (4.x) – Pocket PC 2003 / Smartphone 2003 eVC++ 4.0 (Pocket PC 2003 occorre SP2) .NET 2003 Second Edition Aggiornare immagini emulatori Windows Mobile 5 Emulatore incluso in VS 2005 Aggiungere Pocket PC / SmartPhonoeScelte accesso ai dati: Scelte accesso ai dati 1. XML Web Service 3. Sincronizzazione (http) 4. ADO.NET Dati Locali XML Web Service 2. Accesso SQL Server Mobile Browser WAP, HTML ecc. Smart client Browser Sviluppo Smart Client: Sviluppo Smart Client Windows CE: Windows CE Può girare su diversi processori ARM / Strong ARM / ARM v4 MIPS Intel PXA (visto come ARM) SH3 X86Em Controlli/DLL/Librerie sono diverse per ogni architettura Platform SDK: Platform SDK Ogni piattaforma ha il suo SDK Pocket PC SDK - Pocket PC 2002 SDK SmartPhone SDK – SP 2003 SDK Windows CE.NET SDK Pocket PC 2003 Contengono Librerie sorgenti, esempi, emulatori, documentazione Strumenti utili (Process Viewer…) Librerie Binary (DLL) Per ogni processore... Sono gratuitiPlatform SDK: Platform SDK Si trovano in C:\Program Files\Windows CE Tools\Common\Platman\bin[\wce420] Visual Studio (Remote Tools da SDE Project) Configurare la connessione TCP Via rete o ActiveSync ActiveSync Più semplice Cosa c’è ? …Platform SDK Tools: Platform SDK Tools CEFilevw.exe (File Viewer) Meglio File Explorer di ActiveSync CEHeapWk.exe (Heap Walker) CEPerfMon.exe CEPView.exe CERegEdit.exe CESysInfo.exe CEZoom.exe KernelTracker.exe Msic.exe (Remote Call Profiler) .NET: .NET I compilatori producono MSIL/CIL (Common Intermediate Language) (exe o dll) Identico alla versione “Desktop” CIL è standard Alla prima esecuzione il Runtime .NET esegue una Just-in-time Compilation Il codice binario prodotto viene cachato per usi seguenti Il codice IL (exe o dll) è “portabile” Anche da Device a Desktop e viceversa Il Runtime .NET CF e’ specifico Sul Desktop si può decidere di produrre l’immagine nativa con NGEN Sui Device per adesso NOExecution Engine Overview: Execution Engine Overview Type safe execution No variabili non inizializzate, no cast unsafe, no indici Out Of Range Garbage collection JIT compilation Error handling con gestione eccezioni Common Type System Chiamate e ereditarietà cross-language Platform Invocation XML Client Web ServiceMemorizzazione: Memorizzazione Utilizza RAM Fino al limite indicato nel Control Panel Per strutture dinamiche e JIT-compiled code Se la RAM scarseggia…e la papera non …. Utilizza ROM Memorie Flash Disk storage se presenteClassi 1.0: Classi 1.0 Visual Studio 2005: Visual Studio 2005 Visual Basic .NET e Visual C# .NET Caratteristiche Template per Device Designer e Editor Help e Esempi Emulatore incluso Debug Remoto sul device Compilazione Installazione di applicazioni diretta Comprende .NET CF SDK C:\program files\VS.NET\CompactFW SDK Remote Debugging: Remote Debugging Identico al desktop Compila Esegue il Deploy sul Device o sull’emulatore Messaggi nell’Output Window Caratteristiche Debug remoto sul device Breakpoint Debug multi-linguaggio Call Stack Watch Window Command Window – ImmediateAccesso ai dati: Accesso ai dati Due cenni storiciData Access – Ieri: Data Access – IeriOLEDB Providers - CEDB: OLEDB Providers - CEDB Architettura..nel 2000: Architettura..nel 2000 Windows LIKE eVC e eVB per lo sviluppo ADOCE per l’accesso ai dati 3.0 Nativa su Pocket PC / CE 3.0 3.1 da installare OLEDBCE a basso livelloData Access Fine 2000: Data Access Fine 2000 ADOCE 3.1 Parla OLEDBCE ADOX OLEDBCE Abilita i provider sul CE SQL Server for CE 1.0 Si elimina ActiveSync dallo scenario “Dati” Dando spazio a Http SQL Server For CE OLEDB OLEDB Data Access Storage Architecture pre .NET: Data Access Storage Architecture pre .NET HTTP CLIENT SERVER SQL Server 2000 Windows CE Edition OLEDB OLEDB Con .NET : Con .NET OLEDB / Replication API CLIENT SERVER SQL CE Edition v2.0 OLEDB OLEDB HTTP 802.11b, CDPD, GSM, CDMA, TDMA, etc. Native/Unmanaged Stack Data Provider .NET CF / Managed Stack TDS Ethernet Scenario Connesso Scenario DisconnessosCampeggi: Campeggi Connesso Accesso diretto a SQL Disconnesso Download dati Aggiornamento locale Sincronizzazione con RDAAccesso Diretto a SQL Server: Accesso Diretto a SQL Server Esecuzione Stored Procedure Utilizzo di DDL Transazioni Utilizzo di SqlDataReader Utilizzo di SqlDataAdapter Utilizzo di cmd.ExecuteXmlReader con la clausola FOR XML di SQLADO.NET Diretto su SQL Server: ADO.NET Diretto su SQL Server Identico al “DeskTop” Namespace System.Data.SqlClient Disponibili tutte le classi “DeskTop” SqlDataReader SqlDataAdapter SqlCommand SqlParameter Namespace System.Data DataSetSQL Server For Windows CE(SQLCE): SQL Server For Windows CE (SQLCE) SQL Server CE: SQL Server CE Compatibilità con SQL Server Stesso Resultset Data Type Compatible Footprint ~700kb per CPU X86 Disponibile Windows CE 2.11 e successive Usato nativamente o replicando da SQLCos’é?: Cos’é? OLEDB Provider Non proprio conforme alle specifiche OLEDB E’ un database con un DLL wrapper In CE non esistono i servizi Supporta ADOCE Supporta OLEDB CE API Supporta ADO.NET del .NET CFDatabase Feature 1.x: Database Feature 1.x Multi-column indexes Referential integrity Sub-selects (IN) Default Inner/outer join 32 index per table One file database Null support Unicode support Transaction Data-types Real, Numeric, NVarChar, NText, Image, Integer, DateTime, VarBinary, UniqueIdentifier, Money Having/group by Seek on index Set functions Identity attribute TCO support Local security - DB encryption (128bit) and database password2.0 Features: 2.0 Features Union SELECT * FROM A UNION SELECT * FROM B Intrinsic Function (CASE, @IDENTITY) Query parametriche INSERT INTO mytable (col1, col2) VALUES (?, ?); Index Pull Recupero indici durante scaricamento con RDA Connectivity Setup Wizards Setup più semplice Optional Error Strings DLL per messaggi errore ISQLW CE piú visualeSQL 2005 Mobile: System.Data.SqlClient (160KB) System.Data.SqlServerCe (140KB) System.Data.Common (124KB) eDB – sqlcese30.dll (300KB) sqlceca30.dll (360KB) sqlcesa30.dll (150KB) sqlcerp30.dll (100KB) sqlceqp30.dll (800KB) sqlceoledb30.dll (200KB) SQL 2005 Mobile OLEDB / Replication CLIENT SERVER HTTP XML/BizTalk/CS 2002/DTS TDS Managed SQL CE + eDB Apps2005 Storage Engine: 2005 Storage Engine Riscritto totalmente Multi-User support Row level locking data Page level locking index Lock Escalation Stabilità ACID Transaction Auto re-use di pagine vuote Non necessario Compact2005 Query Processor: 2005 Query Processor Cost-Based Optimization QP usa piani Cost-based QP usa le statistiche dello storage engine Execution Plan e Query Hints Come in SQL 2000: Analisi e correzione query SqlCeResultSet Accesso via Scrolling Accesso Random Update Parametri NamedSQL Server 2005 Management Studio: SQL Server 2005 Management Studio Connessione a SQL Server o SQL Mobile Funzionalità identiche Object Explorer Query Editor Management Dialog Connessione a DB Sul desktop o direttamente sul Device Query Plan e Hint Subscription Wizard Supporto SSIS (ex DTS) Creare SQL Mobile DB Demo SQL 2005: Demo SQL 2005 Registered Server di tipo Sql Mobile Su DeskTop (SqlMobile\TestDB\Test.sdf) Su Device (Browse...) Connect -> Object Browser New Table / Column / Index Views – Programmability (Type) Replication Subscription per Merge Repl Connect -> New Query SqlMobile\TestDB\QueryPlan.sqlceVS 2005 Create SDF: VS 2005 Create SDF Integrazione con .NET CF: Integrazione con .NET CF System.Data.SqlServerCE Esponde tutte le funzionalitá SQL CE SqlCEDataReader SqlCEDataAdapter SqlCECommand SqlCEParameter Utilizzo di Try/Catch System.Data.SqlServerCe.SqlCeException Utilizzabile stand-alone Demo Cerca in locale Aggiorna localeSqlCeConnection: SqlCeConnection “Provider=Microsoft.SQLServer.OLEDB.CE.1.0;DataSource=\directory\file.sdf” .Open .Close SQL CE 2.0 non supporta connessioni contemporanee !!! SQL 2005 Mobile siClassi di accesso: Classi di accesso SqlCeAdapter SelectCommand UpdateCommand DeleteCommand InsertCommand Deriva da System.Data.Common.DbDataAdapter Come gli altri adapter desktop SqlCeDataReader Analogo al SqlDataReaderCreazione di .sdf da codice: Creazione di .sdf da codice try { SqlCeEngine sqlEngine = new SqlCeEngine("Data Source=\Pippo.sdf”); sqlEngine.CreateDatabase(); } catch (SqlCeException ex) { ShowErrors(ex, "Impossibile creare il db locale"); } Query Parametriche: Query Parametriche cmd.CommandText = “ INSERT INTO Articoli (IdArticolo, Articolo) VALUE(?, ?)” cmd.Parameters.Add(“@IdArticolo”, System.Data.SqlDbType.Char, 10) cmd.Parameters[“IdArticolo”].Value = “ABC” … cmd.ExecuteXXX()SqlCeDataReader: SqlCeDataReader Fornisce funzionalità di accesso read-only e forward-only su uno stream di record ritornati dall’esecuzione di un comando sul database Viene creato a partire da un oggetto SqlCommand Il metodo Read legge la prima riga e le successive nello stream fino al termine Ritorna false al termine del result set Un solo record alla volta in memoria Aumenta performance e scalabilità delle applicazioniSincronizzazione: Sincronizzazione Due metodologie RDA – Remote Data Access SQL Server 6.5 Service Pack 5 + Merge Replication con SQL 2000 SQL Server puo’ fare da ponte verso altri database Utilizzando i Linked Server L’utilizzo di tabelle locali ha comunque senso per ridurre la bandaConnectività verso LAN: Connectività verso LAN Come sempre: Web HTTP Internet e Intranet Sicurezza gestita da IIS Authentication (anonymous, basic, NTLM) Authorization Encryption (SSL) Accesso consentito tramite firewall Ma Compressione per banda ridotta Message-based per meno roundtripConfigurazione IIS: Configurazione IIS SSCESA20.DLL e’ l’applicazione (estensione) ISAPI da utilizzare Serve Virtual Directory con permesse Execute SQL Server CE Connectivity Management Configura Virtual Directory Sicurezza IIS Sicurezza ACL sulla cartellaReplication: Replication SQL Server 2000 merge replication Device connessi occasionalmente Integrazione SQL Server 2000 Compatible Merge Replication Control Supporta il mapping dei data type Sincronizzazione diretta con il server Anonymous pull subscriptionConnectivity – Replication: Connectivity – Replication SERVER CLIENT SSCE Server Agent SSCE Client Agent SSCE DB SQL DB .IN .OUTRemote Data Access: Remote Data Access Se il device è connesso “spesso” Dove la Merge Replication non è necessaria Dove la Merge Replication è troppo pesante Per avere più controllo da codice Elimina la necessità di un Desktop Accesso a SQL Server 7.0 e 2000 Download to device e disconnessione Tracking anche disconnesso Remote Data Access: Remote Data Access Download dati clienti e piazzole Disconnessione Giro delle piazzole per controllo Per “irregolarità” o modifiche Tabella Piazzole Tabella Segnalazioni Connessione Sincronizzazione dei Dati RDA: Metodi: RDA: Metodi Pull Porta i dati sul device Selezione via statement SQL Viste / Stored Procedure / Query SQL Creazione tabelle locali Push Invia le modifiche al server Submit SQL Invio diretto di SQL DMLInizializzazione: Inizializzazione Dim x = New SqlCeRemoteDataAccess x.InternetLogin = “” x.InternetPassword = “” x.InternetUrl = “x.com/sqlce/sscesa20.dll” x.LocalConnectionString x.InternetProxyServerPull: Pull Object.Pull ( “tabella locale”, “statement sql”, “oledb connection usata lato server”, [RdaTrackOption], [“tabella segnalazione errori”] ) Push: Push Object.Push ( “tabella locale”, “oledb connection usata lato server”, [RdaBatchOption] ) BatchingOn: BatchingOn SET IMPLICIT_TRANSACTIONS ON declare @P1 int set @P1=1 exec sp_prepexec @P1 output, N'@P1 int,@P2 int,@P3 bit,@P4 varchar(50)', N'INSERT INTO "SEGNALAZIONI"("IdNota", "IdPiazzola", "TipoNota", "Nota") VALUES (@P1, @P2, @P3, @P4)', 1, 1, 0, NULL select @P1 // Lancia tutti i comandi effettuati sulla tabella exec sp_execute 1, 3, 2, 0, 'tutto ok' // Unprepare dei comandi exec sp_unprepare 1 IF @@TRANCOUNT > 0 COMMIT TRANBatchingOff: BatchingOff // Dichiarazione dei comandi di INSERT/UPDATE/DELETE declare @P1 int set @P1=1 exec sp_prepexec @P1 output, N'@P1 int,@P2 int,@P3 datetime,@P4 datetime,@P5 int,@P6 int,@P7 int', N'UPDATE "PIAZZOLE" SET "IdPiazzola" = @P1, "IdCliente" = @P2, "DataArrivo" = @P3, "DataPartenza" = @P4, "Persone" = @P5, "Tende" = @P6 WHERE "IdPiazzola" = @P7', 1, 1, 'Jun 16 2003 12:00:00:000AM', 'Jan 1 1900 12:00:00:000AM', 4, 2, 1 select @P1 Lancia tutti i comandi effettuati sulla tabella exec sp_execute 1, 2, 2, 'May 10 2003 12:00:00:000AM', 'Jan 1 1900 12:00:00:000AM', 1, 1, 2 // Unprepare dei comandi exec sp_unprepare 1 SubmitSql: SubmitSql Object.SubmitSQL ( “statement sql”, “oledb connection usata lato server” ) Demo Campeggi N.B. Non si usa se connessione diretta Utilissimo se connessione HttpGestione Eccezioni SQLCE: Gestione Eccezioni SQLCE Classe SqlCeException Espone collezione Errors For Each err in SqlCeException.Errors err.HResult.ToString(“X”) err.Message err.NativeError err.Source err espone anche NumericErrorParameters Collezione di string Eccezioni in Push: Eccezioni in Push Per ogni conflitto o problema Viene utilizzata (se specificata) la tabella locale indicata come tabella di errore A fronte di una eccezione si possono analizzare i record Utilizzando ADO.NET direttamente sulla tabellaRDA VS Merge: RDA VS Merge RDA e’ piu’ semplice da implementare RDA tiene traccia solo delle modifiche locali, Merge anche delle modifiche server-side Merge richiede piu’ spazio sul device RDA richiede che le tabelle vengano cancellate prima di recuperare i dati RDA necessita di una chiamata per ogni Pull e una per ogni Push RDA supporta anche SQL 7 (e 6.5) Possono essere usate in tandemSupporto connettivita’: Supporto connettivita’ Ethernet Wireless In generale e’ indipendente Sfrutta qualunque modalita’ di comunicazione del Device Anche ActiveSync puo’ fare da ponte per la LAN La versione 3.5 nativamente La versione 3.1 richiede SQLCE Relay Agent Impostare InternetProxyServer Considerazioni: Considerazioni Identificare i dati da sincronizzare Scaricare solo quello che serve Capire la frequenza di sincronizzazione Ogni utente sincronizza in modo indipendente Implementare logica di risoluzione conflittiLimiti di RDA: Limiti di RDA Pull crea le tabelle Non è incrementale Campi Identity Master Detail Logica Business su diversi record Facciamo due chiacchere RDA vs Merge: RDA vs Merge RDA Più leggera Ottima se aggiornamenti non frequenti Merge Più completa Overhead maggiore Si usa se già in piedi :-) http://msdn.microsoft.com/library/en-us/dnppcgen/html/eff_arch_sql_servr_ce_rep.asp Windows Mobile 5.0: Windows Mobile 5.0 Abbiamo tempo ?Facciamo un giro Live: Facciamo un giro Live Talk SMS Send Aggiornamento Contatti Aggiornamento Calendario Ricezione SMS SNAPIAltre Informazioni: Altre Informazioni Dove posso ottenere maggiori informazioni www.devleap.it www.pocketpcdn.com www.thinkmobile.it Developer resources Microsoft Visual Studio Microsoft .NET Framework SDK Microsoft Developer Network Mobile Dev: Mobile Dev I vostri feedback sono importanti Scriveteci Grazie della partecipazione A presto Info@DevLeap.it You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
mobile Veronica1 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: Embed: Flash iPad Copy Does not support media & animations WordPress Embed Customize Embed URL: Copy Thumbnail: Copy The presentation is successfully added In Your Favorites. Views: 668 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: February 21, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Intro to Mobile Developmentusing .NET: Intro to Mobile Development using .NET Roberto Brunetti roberto@devleap.it -rob@thinkmobile.it http://blogs.devleap.com/rob http://thinkmobile.itChi siamo: Chi siamo www.devleap.it Un gruppo di 5 persone Studiare a fondo le tecnologie Capire il “behind the scenes” Implementare soluzioni reali Confrontarsi con le problematiche reali Sperimentare nuove idee Facciamo Corsi, Conferenze, Training Scriviamo libri http://www.devleap.it/fullcontactDevLeap Pure .NET Training: DevLeap Pure .NET Training Introduction to .NET Framework Architecting Apps in .NET Introduction to Web Services Introduction to ASP.NET Introduction to ADO.NET Core ASP.NET Core ADO.NET Core Web Services Core .NET Framework SOA Services with WSE2 ASP.NET 2.0 Preview/Core/Upgrade Intro to Mobility Dev Advanced Mobility DevDevLeap Training: DevLeap Training Sharepoint 2003 Development Data Warehouse e DTS OLAP Analysis Services Longhorn Preview WinFX Preview WCF (Indigo) Preview SQL 2005 Preview Introduction to ASP.NET WPF (Avalon) Preview SQL 2005 Analysis Services Preview SQL Server Reporting Services VSTS for TechniciansThinkMobile.it: ThinkMobile.it Il 12/7/2005 ho aperto il sito Obiettivo: creare la comunità italiana per lo sviluppo in .NET su dispositivi Mobile .NET Compact Framework SQL Server for Windows CE Repliche dei dati Applicazioni Server-side Blogs – Forum .NET Clients: .NET ClientsWindows CE: Windows CE Sistema Operativo Real-time e Modulare Si possono scegliere le componenti per creare un device 3.0 pIE 3, Supporto Ethernet, IIS, ASP, MSMQ Gli OEM hanno aggiunto Bluetooth, 802.x, Fingerprint 4.x pIE 5.5 Bluetooth, 802.x IE 5.5, WMT 8.0, Direct X 8.0 Kerberos, SSL, SmartCard 5.x (Magneto) Real Time reale Miglioramenti di performance su Network e grafica Direct 3D MobileVarie forme consumer: Varie forme consumer Handheld PC CE 2.0 – versione Pro applicazioni 3.0 Pocket PC 2000 (3.0) CE 3.0 Pocket PC 2002 CE 3.0 con nuova shell Pocket PC 2003 / SmartPhone 2003 CE .NET 4.x Automazione industriale Stanno arrivando dispositivi basati su Windows Mobile 5.0Devices: Devices Pocket PC: Pocket PC Ne esistono 4 versioni Pocket PC 2000 (anche detta 3.0) Pocket PC 2002 (CE 3.0) Pocket PC 2003 (CE 4.x) – Windows Mobile 2003 for Pocket PC Windows Mobile 5.0 for Pocket PC Interfaccia Pen e Keyboard on-screen (SIP) Touch Screen Ogni produttore può inserire Hw Lettore Bar Code GPS integrato Applicazioni Custom Guscio custom ...nei ristoranti...Hardware: Hardware ROM: 32 – 48 RAM: 32 – 64 - 128 Processore (da 206 a 700 Mhz) StrongARM, Intel PXA 250, Texas OMAP 710 Add-on Compact Flash SD Slot Infrared - USB – Serial Bluetooth Jacket di espansione Per PCMCIA (PCCard)Per le demo con Pocket PC: Per le demo con Pocket PC Add-on kit per Pocket PC Scheda VGA per proiezione esterna Cavo di connessione con proiettore Oppure wireless (con proiettore wireless) CE Remote Display Comodo per sviluppare (Tastiera/Mouse) Developer Power Toys Come sopra ma senza client SOTI Pocket Controller Uno spettacolo !Pocket PC 200x Applications: Pocket PC 200x Applications Connettività [Modem] [Scheda Wireless] [Bluetooth] [Ethernet] VPN (PPTP) Terminal Services ActiveSync “Office” Inbox (e-mail) Contacts, Calendar, Tasks, Notes Excel, Word Reader Internet Explorer HTML 3.2 XML WAP 1.2.1 JScript SSL ActiveX MSN Instant Messenger Windows Media Player Locale e Streaming Esposte come DLL o ActiveXPocket PC Phone Edition: Pocket PC Phone Edition Integra il PocketPC con il telefono Nasce dal PocketPC 2002 Pen-based e tastiera on-screen Touch-Pad per la composizione 32 - 64 Mb ROM 32 - 128 Mb RAM Processore ARM-based Infrared SD slotPocket PC Phone Edition: Pocket PC Phone Edition Applicazioni del Pocket PC 200x SIM SIM Manager Contatti SIM (Address Book) SMS Conference Call Auricolare Multitasking: si può lavorare con le applicazioni mentre si telefonaSmartphone 200x Hardware: Smartphone 200x Hardware Processore 120MHz ARM 8MB+ RAM 16MB Flash ROM 176x220 16-bit display SD Slot No Compact Flash E’ un telefono No touch-screen No StylusSmartphone 200x Applications: Smartphone 200x Applications Telefonia! Tastierino on-screen Profile Shortcut GPRS Tri-band ActiveSync Pocket Outlook Inbox (e-mail, v-mail, sms) Contacts Calendar Tasks Internet Explorer HTML 3.2 XML WAP 1.2.1 JScript SSL MSN Instant Messenger Windows Media Player Locale e Streaming ActiveSync Esposte come DLL o ActiveXSP Internet Explorer: SP Internet Explorer HTML 3.2 No Frames HTML 4.0 – innerText, innerHTML, accesskey No Style Sheets WAP 1.2.1 Microsoft JScript® 1.1 cHTML (i-Mode) accesskey, tel: URL XML / XSL Microsoft ActiveX® controls SSL security Imagini: JPEG, GIF, PNG, BMP, 2BP, XBM, WBMPSP Supporto WAP: SP Supporto WAP Integrazione con HTML Viewer WML, WBXML, WML Script, WTLS security Bearer (Portante) IP, SMS (WAP Push, SI/SL) WTAI (Wireless Telephony Application Interface) SmartPhone consente MakeCall Le caratteristiche non sono adatte allo SmartPhone e non sicureROM vs RAM: ROM vs RAM ROM Sistema Operativo Aggiornabile per upgrade del S.O. RAM Per far girare le applicazioni Per Storage “permanente” Tranne Hard Reset Tranne esaurimento batteria tampone Sul Pocket PC Off non significa Reset Viene mantenuta la RAM Le applicazioni restano nel loro stato No Virtual MemoryActiveSync: ActiveSync Per controllare la Sincronizzazione Calendario, Task, Email, Note Per passare dati e convertirli Word, Excel, Powerpoint PDF (da Adobe) File Audio/Video Ogni applicazione può montare il filtro di conversione Funge anche da GatewayActiveSync: ActiveSync Per controllare la Sincronizzazione Calendario, Task, Email, Note Per passare dati e convertirli Word, Excel, Powerpoint PDF (da Adobe) File Audio/Video Ogni applicazione può montare il filtro di conversione Funge anche da GatewayScenari Applicativi: Scenari Applicativi Utilizzo di Terminal Service Impatto zero sul Device Solo per Pocket PC Utilizzo di Internet Explorer Impatto zero sul Device Applicazione sul Device (Oggi) Installazione sul Device Semplice o complessa che sia Scenari Utilizzo Socket o Web Request - Vecchio stile Utilizzo di XML - Vecchio Stile Utilizzo di Web Service !!! Download e uso dei dati sul device !!!Piattaforma client: Piattaforma client LapTop / Tablet PC VB 6, VC++, .NET Driver C++ Pocket PC 2000/2002 eVB 3.0, eVC++ 3.0, .NET Driver eVC++ HPC e Palm PC (vecchi) eVB 3.0, eVC++ 3.0 SmartPhone 2002 eVC++ 3.0 (per adesso) CE.NET (4.x) – Pocket PC 2003 / Smartphone 2003 eVC++ 4.0 (Pocket PC 2003 occorre SP2) .NET 2003 Second Edition Aggiornare immagini emulatori Windows Mobile 5 Emulatore incluso in VS 2005 Aggiungere Pocket PC / SmartPhonoeScelte accesso ai dati: Scelte accesso ai dati 1. XML Web Service 3. Sincronizzazione (http) 4. ADO.NET Dati Locali XML Web Service 2. Accesso SQL Server Mobile Browser WAP, HTML ecc. Smart client Browser Sviluppo Smart Client: Sviluppo Smart Client Windows CE: Windows CE Può girare su diversi processori ARM / Strong ARM / ARM v4 MIPS Intel PXA (visto come ARM) SH3 X86Em Controlli/DLL/Librerie sono diverse per ogni architettura Platform SDK: Platform SDK Ogni piattaforma ha il suo SDK Pocket PC SDK - Pocket PC 2002 SDK SmartPhone SDK – SP 2003 SDK Windows CE.NET SDK Pocket PC 2003 Contengono Librerie sorgenti, esempi, emulatori, documentazione Strumenti utili (Process Viewer…) Librerie Binary (DLL) Per ogni processore... Sono gratuitiPlatform SDK: Platform SDK Si trovano in C:\Program Files\Windows CE Tools\Common\Platman\bin[\wce420] Visual Studio (Remote Tools da SDE Project) Configurare la connessione TCP Via rete o ActiveSync ActiveSync Più semplice Cosa c’è ? …Platform SDK Tools: Platform SDK Tools CEFilevw.exe (File Viewer) Meglio File Explorer di ActiveSync CEHeapWk.exe (Heap Walker) CEPerfMon.exe CEPView.exe CERegEdit.exe CESysInfo.exe CEZoom.exe KernelTracker.exe Msic.exe (Remote Call Profiler) .NET: .NET I compilatori producono MSIL/CIL (Common Intermediate Language) (exe o dll) Identico alla versione “Desktop” CIL è standard Alla prima esecuzione il Runtime .NET esegue una Just-in-time Compilation Il codice binario prodotto viene cachato per usi seguenti Il codice IL (exe o dll) è “portabile” Anche da Device a Desktop e viceversa Il Runtime .NET CF e’ specifico Sul Desktop si può decidere di produrre l’immagine nativa con NGEN Sui Device per adesso NOExecution Engine Overview: Execution Engine Overview Type safe execution No variabili non inizializzate, no cast unsafe, no indici Out Of Range Garbage collection JIT compilation Error handling con gestione eccezioni Common Type System Chiamate e ereditarietà cross-language Platform Invocation XML Client Web ServiceMemorizzazione: Memorizzazione Utilizza RAM Fino al limite indicato nel Control Panel Per strutture dinamiche e JIT-compiled code Se la RAM scarseggia…e la papera non …. Utilizza ROM Memorie Flash Disk storage se presenteClassi 1.0: Classi 1.0 Visual Studio 2005: Visual Studio 2005 Visual Basic .NET e Visual C# .NET Caratteristiche Template per Device Designer e Editor Help e Esempi Emulatore incluso Debug Remoto sul device Compilazione Installazione di applicazioni diretta Comprende .NET CF SDK C:\program files\VS.NET\CompactFW SDK Remote Debugging: Remote Debugging Identico al desktop Compila Esegue il Deploy sul Device o sull’emulatore Messaggi nell’Output Window Caratteristiche Debug remoto sul device Breakpoint Debug multi-linguaggio Call Stack Watch Window Command Window – ImmediateAccesso ai dati: Accesso ai dati Due cenni storiciData Access – Ieri: Data Access – IeriOLEDB Providers - CEDB: OLEDB Providers - CEDB Architettura..nel 2000: Architettura..nel 2000 Windows LIKE eVC e eVB per lo sviluppo ADOCE per l’accesso ai dati 3.0 Nativa su Pocket PC / CE 3.0 3.1 da installare OLEDBCE a basso livelloData Access Fine 2000: Data Access Fine 2000 ADOCE 3.1 Parla OLEDBCE ADOX OLEDBCE Abilita i provider sul CE SQL Server for CE 1.0 Si elimina ActiveSync dallo scenario “Dati” Dando spazio a Http SQL Server For CE OLEDB OLEDB Data Access Storage Architecture pre .NET: Data Access Storage Architecture pre .NET HTTP CLIENT SERVER SQL Server 2000 Windows CE Edition OLEDB OLEDB Con .NET : Con .NET OLEDB / Replication API CLIENT SERVER SQL CE Edition v2.0 OLEDB OLEDB HTTP 802.11b, CDPD, GSM, CDMA, TDMA, etc. Native/Unmanaged Stack Data Provider .NET CF / Managed Stack TDS Ethernet Scenario Connesso Scenario DisconnessosCampeggi: Campeggi Connesso Accesso diretto a SQL Disconnesso Download dati Aggiornamento locale Sincronizzazione con RDAAccesso Diretto a SQL Server: Accesso Diretto a SQL Server Esecuzione Stored Procedure Utilizzo di DDL Transazioni Utilizzo di SqlDataReader Utilizzo di SqlDataAdapter Utilizzo di cmd.ExecuteXmlReader con la clausola FOR XML di SQLADO.NET Diretto su SQL Server: ADO.NET Diretto su SQL Server Identico al “DeskTop” Namespace System.Data.SqlClient Disponibili tutte le classi “DeskTop” SqlDataReader SqlDataAdapter SqlCommand SqlParameter Namespace System.Data DataSetSQL Server For Windows CE(SQLCE): SQL Server For Windows CE (SQLCE) SQL Server CE: SQL Server CE Compatibilità con SQL Server Stesso Resultset Data Type Compatible Footprint ~700kb per CPU X86 Disponibile Windows CE 2.11 e successive Usato nativamente o replicando da SQLCos’é?: Cos’é? OLEDB Provider Non proprio conforme alle specifiche OLEDB E’ un database con un DLL wrapper In CE non esistono i servizi Supporta ADOCE Supporta OLEDB CE API Supporta ADO.NET del .NET CFDatabase Feature 1.x: Database Feature 1.x Multi-column indexes Referential integrity Sub-selects (IN) Default Inner/outer join 32 index per table One file database Null support Unicode support Transaction Data-types Real, Numeric, NVarChar, NText, Image, Integer, DateTime, VarBinary, UniqueIdentifier, Money Having/group by Seek on index Set functions Identity attribute TCO support Local security - DB encryption (128bit) and database password2.0 Features: 2.0 Features Union SELECT * FROM A UNION SELECT * FROM B Intrinsic Function (CASE, @IDENTITY) Query parametriche INSERT INTO mytable (col1, col2) VALUES (?, ?); Index Pull Recupero indici durante scaricamento con RDA Connectivity Setup Wizards Setup più semplice Optional Error Strings DLL per messaggi errore ISQLW CE piú visualeSQL 2005 Mobile: System.Data.SqlClient (160KB) System.Data.SqlServerCe (140KB) System.Data.Common (124KB) eDB – sqlcese30.dll (300KB) sqlceca30.dll (360KB) sqlcesa30.dll (150KB) sqlcerp30.dll (100KB) sqlceqp30.dll (800KB) sqlceoledb30.dll (200KB) SQL 2005 Mobile OLEDB / Replication CLIENT SERVER HTTP XML/BizTalk/CS 2002/DTS TDS Managed SQL CE + eDB Apps2005 Storage Engine: 2005 Storage Engine Riscritto totalmente Multi-User support Row level locking data Page level locking index Lock Escalation Stabilità ACID Transaction Auto re-use di pagine vuote Non necessario Compact2005 Query Processor: 2005 Query Processor Cost-Based Optimization QP usa piani Cost-based QP usa le statistiche dello storage engine Execution Plan e Query Hints Come in SQL 2000: Analisi e correzione query SqlCeResultSet Accesso via Scrolling Accesso Random Update Parametri NamedSQL Server 2005 Management Studio: SQL Server 2005 Management Studio Connessione a SQL Server o SQL Mobile Funzionalità identiche Object Explorer Query Editor Management Dialog Connessione a DB Sul desktop o direttamente sul Device Query Plan e Hint Subscription Wizard Supporto SSIS (ex DTS) Creare SQL Mobile DB Demo SQL 2005: Demo SQL 2005 Registered Server di tipo Sql Mobile Su DeskTop (SqlMobile\TestDB\Test.sdf) Su Device (Browse...) Connect -> Object Browser New Table / Column / Index Views – Programmability (Type) Replication Subscription per Merge Repl Connect -> New Query SqlMobile\TestDB\QueryPlan.sqlceVS 2005 Create SDF: VS 2005 Create SDF Integrazione con .NET CF: Integrazione con .NET CF System.Data.SqlServerCE Esponde tutte le funzionalitá SQL CE SqlCEDataReader SqlCEDataAdapter SqlCECommand SqlCEParameter Utilizzo di Try/Catch System.Data.SqlServerCe.SqlCeException Utilizzabile stand-alone Demo Cerca in locale Aggiorna localeSqlCeConnection: SqlCeConnection “Provider=Microsoft.SQLServer.OLEDB.CE.1.0;DataSource=\directory\file.sdf” .Open .Close SQL CE 2.0 non supporta connessioni contemporanee !!! SQL 2005 Mobile siClassi di accesso: Classi di accesso SqlCeAdapter SelectCommand UpdateCommand DeleteCommand InsertCommand Deriva da System.Data.Common.DbDataAdapter Come gli altri adapter desktop SqlCeDataReader Analogo al SqlDataReaderCreazione di .sdf da codice: Creazione di .sdf da codice try { SqlCeEngine sqlEngine = new SqlCeEngine("Data Source=\Pippo.sdf”); sqlEngine.CreateDatabase(); } catch (SqlCeException ex) { ShowErrors(ex, "Impossibile creare il db locale"); } Query Parametriche: Query Parametriche cmd.CommandText = “ INSERT INTO Articoli (IdArticolo, Articolo) VALUE(?, ?)” cmd.Parameters.Add(“@IdArticolo”, System.Data.SqlDbType.Char, 10) cmd.Parameters[“IdArticolo”].Value = “ABC” … cmd.ExecuteXXX()SqlCeDataReader: SqlCeDataReader Fornisce funzionalità di accesso read-only e forward-only su uno stream di record ritornati dall’esecuzione di un comando sul database Viene creato a partire da un oggetto SqlCommand Il metodo Read legge la prima riga e le successive nello stream fino al termine Ritorna false al termine del result set Un solo record alla volta in memoria Aumenta performance e scalabilità delle applicazioniSincronizzazione: Sincronizzazione Due metodologie RDA – Remote Data Access SQL Server 6.5 Service Pack 5 + Merge Replication con SQL 2000 SQL Server puo’ fare da ponte verso altri database Utilizzando i Linked Server L’utilizzo di tabelle locali ha comunque senso per ridurre la bandaConnectività verso LAN: Connectività verso LAN Come sempre: Web HTTP Internet e Intranet Sicurezza gestita da IIS Authentication (anonymous, basic, NTLM) Authorization Encryption (SSL) Accesso consentito tramite firewall Ma Compressione per banda ridotta Message-based per meno roundtripConfigurazione IIS: Configurazione IIS SSCESA20.DLL e’ l’applicazione (estensione) ISAPI da utilizzare Serve Virtual Directory con permesse Execute SQL Server CE Connectivity Management Configura Virtual Directory Sicurezza IIS Sicurezza ACL sulla cartellaReplication: Replication SQL Server 2000 merge replication Device connessi occasionalmente Integrazione SQL Server 2000 Compatible Merge Replication Control Supporta il mapping dei data type Sincronizzazione diretta con il server Anonymous pull subscriptionConnectivity – Replication: Connectivity – Replication SERVER CLIENT SSCE Server Agent SSCE Client Agent SSCE DB SQL DB .IN .OUTRemote Data Access: Remote Data Access Se il device è connesso “spesso” Dove la Merge Replication non è necessaria Dove la Merge Replication è troppo pesante Per avere più controllo da codice Elimina la necessità di un Desktop Accesso a SQL Server 7.0 e 2000 Download to device e disconnessione Tracking anche disconnesso Remote Data Access: Remote Data Access Download dati clienti e piazzole Disconnessione Giro delle piazzole per controllo Per “irregolarità” o modifiche Tabella Piazzole Tabella Segnalazioni Connessione Sincronizzazione dei Dati RDA: Metodi: RDA: Metodi Pull Porta i dati sul device Selezione via statement SQL Viste / Stored Procedure / Query SQL Creazione tabelle locali Push Invia le modifiche al server Submit SQL Invio diretto di SQL DMLInizializzazione: Inizializzazione Dim x = New SqlCeRemoteDataAccess x.InternetLogin = “” x.InternetPassword = “” x.InternetUrl = “x.com/sqlce/sscesa20.dll” x.LocalConnectionString x.InternetProxyServerPull: Pull Object.Pull ( “tabella locale”, “statement sql”, “oledb connection usata lato server”, [RdaTrackOption], [“tabella segnalazione errori”] ) Push: Push Object.Push ( “tabella locale”, “oledb connection usata lato server”, [RdaBatchOption] ) BatchingOn: BatchingOn SET IMPLICIT_TRANSACTIONS ON declare @P1 int set @P1=1 exec sp_prepexec @P1 output, N'@P1 int,@P2 int,@P3 bit,@P4 varchar(50)', N'INSERT INTO "SEGNALAZIONI"("IdNota", "IdPiazzola", "TipoNota", "Nota") VALUES (@P1, @P2, @P3, @P4)', 1, 1, 0, NULL select @P1 // Lancia tutti i comandi effettuati sulla tabella exec sp_execute 1, 3, 2, 0, 'tutto ok' // Unprepare dei comandi exec sp_unprepare 1 IF @@TRANCOUNT > 0 COMMIT TRANBatchingOff: BatchingOff // Dichiarazione dei comandi di INSERT/UPDATE/DELETE declare @P1 int set @P1=1 exec sp_prepexec @P1 output, N'@P1 int,@P2 int,@P3 datetime,@P4 datetime,@P5 int,@P6 int,@P7 int', N'UPDATE "PIAZZOLE" SET "IdPiazzola" = @P1, "IdCliente" = @P2, "DataArrivo" = @P3, "DataPartenza" = @P4, "Persone" = @P5, "Tende" = @P6 WHERE "IdPiazzola" = @P7', 1, 1, 'Jun 16 2003 12:00:00:000AM', 'Jan 1 1900 12:00:00:000AM', 4, 2, 1 select @P1 Lancia tutti i comandi effettuati sulla tabella exec sp_execute 1, 2, 2, 'May 10 2003 12:00:00:000AM', 'Jan 1 1900 12:00:00:000AM', 1, 1, 2 // Unprepare dei comandi exec sp_unprepare 1 SubmitSql: SubmitSql Object.SubmitSQL ( “statement sql”, “oledb connection usata lato server” ) Demo Campeggi N.B. Non si usa se connessione diretta Utilissimo se connessione HttpGestione Eccezioni SQLCE: Gestione Eccezioni SQLCE Classe SqlCeException Espone collezione Errors For Each err in SqlCeException.Errors err.HResult.ToString(“X”) err.Message err.NativeError err.Source err espone anche NumericErrorParameters Collezione di string Eccezioni in Push: Eccezioni in Push Per ogni conflitto o problema Viene utilizzata (se specificata) la tabella locale indicata come tabella di errore A fronte di una eccezione si possono analizzare i record Utilizzando ADO.NET direttamente sulla tabellaRDA VS Merge: RDA VS Merge RDA e’ piu’ semplice da implementare RDA tiene traccia solo delle modifiche locali, Merge anche delle modifiche server-side Merge richiede piu’ spazio sul device RDA richiede che le tabelle vengano cancellate prima di recuperare i dati RDA necessita di una chiamata per ogni Pull e una per ogni Push RDA supporta anche SQL 7 (e 6.5) Possono essere usate in tandemSupporto connettivita’: Supporto connettivita’ Ethernet Wireless In generale e’ indipendente Sfrutta qualunque modalita’ di comunicazione del Device Anche ActiveSync puo’ fare da ponte per la LAN La versione 3.5 nativamente La versione 3.1 richiede SQLCE Relay Agent Impostare InternetProxyServer Considerazioni: Considerazioni Identificare i dati da sincronizzare Scaricare solo quello che serve Capire la frequenza di sincronizzazione Ogni utente sincronizza in modo indipendente Implementare logica di risoluzione conflittiLimiti di RDA: Limiti di RDA Pull crea le tabelle Non è incrementale Campi Identity Master Detail Logica Business su diversi record Facciamo due chiacchere RDA vs Merge: RDA vs Merge RDA Più leggera Ottima se aggiornamenti non frequenti Merge Più completa Overhead maggiore Si usa se già in piedi :-) http://msdn.microsoft.com/library/en-us/dnppcgen/html/eff_arch_sql_servr_ce_rep.asp Windows Mobile 5.0: Windows Mobile 5.0 Abbiamo tempo ?Facciamo un giro Live: Facciamo un giro Live Talk SMS Send Aggiornamento Contatti Aggiornamento Calendario Ricezione SMS SNAPIAltre Informazioni: Altre Informazioni Dove posso ottenere maggiori informazioni www.devleap.it www.pocketpcdn.com www.thinkmobile.it Developer resources Microsoft Visual Studio Microsoft .NET Framework SDK Microsoft Developer Network Mobile Dev: Mobile Dev I vostri feedback sono importanti Scriveteci Grazie della partecipazione A presto Info@DevLeap.it