41
{Mobile e Smart Client}

Mobile e Smart Client

Embed Size (px)

DESCRIPTION

.

Citation preview

  • 1. {Mobile e Smart Client}
  • 2. About {Stefano Ottaviani} Co-fondatore di DotNetMarche Membro di UGIdotNET Sviluppo desktop e mobile con .Net / c++ Blog: blogs.ugidotnet.org/ste8 Mail: [email protected]
  • 3. Il mondo {Mobile} in fermento
  • 4. come quello degli {Smart Client}
  • 5. Come affronter Microsoft queste {sfide}
  • 6. {Sondaggio}
  • 7. Device {Windows Mobile} Core, base per tutti gli altri Device industriali (palmari / POS, ) Real Time Rinominato in: Windows Embedded Compact Ex Windows Mobile for Pocket PC Palm classico No telefonia Touch Screen Tastiera opzionale Basato su CE 5 Ex Windows Mobile for Pocket PC Phone Edition Classic + funzioni Telefonia Ex Windows Mobile for Smartphone No Touch Screen Tastiera fisica Basato su CE 5
  • 8. {Dove eravamo} Da VS2005 aieri!
  • 9. {Dove eravamo} Unico ambiente .Net / C++ Dismesso Embedded VC++ Integrati i tools per accesso remoto ai device Compact Framework 2 Anchor / Docking Subclassing UserControl Controlli Windows Form (DateTimePicker, Notification, WebBrowser, Splitter...)
  • 10. Accesso ai Dati Sql Server Compact Edition 3.1 SqlCeResultSet RDA / Merge Replication Gestione Dispositivi Telefono Camera GPS Serial Port {Dove eravamo}
  • 11. P.I.M. (Pocket Outlook) State and Notifications Broker Com Interop Threading (migliorie) Global Exception Handler {Dove eravamo}
  • 12. Tools per logging / profiling Emulatori Versione 2 Processori ARM Cell Emulator (con Windows Mobile SDK 6) Soluzioni artigianali per testing Test effettuati nel desktop wMobinium.net (TDD + CI) {Dove eravamo}
  • 13. {Dove eravamo} Mobile Client Software Factory Orientation Aware Control Application Block Compact Composite UI Application Block Configuration Application Connection Monitor Disconnected Service Agent Data Access Application Block Data Subscription Application Block .
  • 14. Windows Embedded CE 6 {Dove eravamo} Nato ieri ma da utilizzare per il domani! Rivoluzionato il kernel Fino a 32.000 processi (contro i 32 precedenti) 2GB memoria virtuale per processo (vs 32 MB) 100% codice in Shared Source
  • 15. {Dove andremo} Da VS2008 al domani!
  • 16. Windows Mobile {6.1} User Experience Home Screen Getting Started Center Setup Bluetooth / WiFi / Mail Threaded SMS Task Manager Copy & Paste support for non-touch devices
  • 17. Internet Explorer Mobile Zoom Support Page Overview Sicurezza / Amministazione {Windows Mobile 6.1} System Center Mobile Device Manager Device Encryption http://www.microsoft.com/windowsmobile/business/strategy/newsecurityfeatures.mspx Basato ancora su Windows CE 5
  • 18. System Center {Mobile Device Manager} Integra i device alla rete aziendale: OTA (Over-the-air) device management Active Directory e Group Policy Mobile VPN Device Inventory and Reporting OTA Software Deployment Supporto da Windows Mobile 6.1
  • 19. VS2008 e .NET {CF 3.5} Multitargeting (uso .NET CF 2 o 3.5) Piattaforme supportate: stesse del CF 2 Nuove classi nel .NET CF 3.5 SoundPlayer Compression Stopwatch String.Contains Supporto ClearType sui controlli Piccole migliorie nei Windows Forms
  • 20. {LINQ} per Mobile / S.C. Subset: solo Standard Query Supporta in .NET CF: LINQ to Objects LINQ to XML LINQ to DataSet LINQ to SQL Supportato solo da SSCE in desktop No designer support: SqlMetal da console
  • 21. {Compact} WCF Windows Communication Foundation Nasce dallidea dellE-Mail transport (Lunch Launcher) Windows Mobile Mail Transport Risponde alle esigenze: Che indirizzo (IP) ha il device? Come comunico se offline? Richiede Exchange Server 2007 (ExchangeWebServiceMailTransport) one-way messaging I.M Sample: http://msdn2.microsoft.com/en-us/magazine/cc164240.aspx
  • 22. {Compact WCF} Subset di WCF Pu solo consumare servizi, no hosting No Service Model No Contracts Si Channel Layer Uso di Messaging API (Channel Factories,) Proxy generato con NetCFSvcUtil.exe da Power Toys for .NET CF 3.5
  • 23. Transports {Compact WCF} Si HTTP/s, E-Mail No MSMQ, TCP, altri Formatters Si SOAP No Binary Bindings Si BasicHttp, Mail, Custom No WS-* http://blogs.msdn.com/andrewarnottms/archive/2007/08/21/the-wcf-subset-supported-by-netcf.aspx
  • 24. {Silverlight} for Mobile Annuncio al Mix / CTP 2nd Quarter 2008 Basato sulla versione 1 di Silverlight Windows Mobile e altri (Nokia) E Windows Presentation Foundation?
  • 25. Tools per {Debugging} Unit Testing su device (emulatore / reali) (da Visual Studio Pro) Remote Performance Monitor CLR Profiler
  • 26. {Vari} Smart Device Connectivity API Device Security Manager Device Emulator v.3 Script per task amministrativi Configurazione via XML Power Toys for .NET CF 3.5
  • 27. Sql Server {Compact Edition 3.5} Default local database (facile deploy) Nuove funzionalit timestamp (rowversion) data type Nested query CROSS APPLY and OUTER APPLY CAST and DECIMAL SET IDENTITY INSERT TOP SSCE 3.5 vs SQL Server Express http://www.microsoft.com/sql/editions/compact/sscecomparison.mspx
  • 28. Microsoft {Sync Framework} Integrate any application, with any data from any store using any protocol over any network! Ben oltre RDA e Merge Replication! Framework basato su Provider Sync Services for ADO.NET Sync Services for File Systems Sync Services for FeedSync Sync Framework Core Runtime
  • 29. {Sync Framework} Scenari di Utilizzo (1)
  • 30. {Sync Framework} Scenari di Utilizzo (2)
  • 31. {Sync Framework} Partecipanti
  • 32. Metadata Replica Repository info da sincronizzare Versions Informazioni che indicano se un elemento modificato Composto da Tick Count e ReplicaID Aggiornati in tempo reale (Inline Tracking) o no (Async Tracking) Knowledge Rappresentazione compatta dei dati modificati Tombstones Traccia degli elementi eliminati
  • 33. Flusso di Sincronizzazione
  • 34. Esempio di Sincronizzazione (1) Replica A crea un record Item Update Tick Count Update Replica ID Creation Tick Count Creation Replica ID I1 1 A 1 A Replica A Knowledge = A1
  • 35. Esempio di Sincronizzazione (2) Replica A aggiorna / aggiunge record Item Update Tick Count Update Replica ID Creation Tick Count Replica A Knowledge = A5 Creation Replica ID I2 3 A 2 A I3 4 A 4 A I1 5 A 1 A
  • 36. Esempio di Sincronizzazione (3) Replica B ha altri record Item Update Tick Count Update Replica ID Creation Tick Count Replica A Knowledge = A5 Replica B Knowledge = B4 Creation Replica ID I104 2 B 1 B I105 4 B 3 B
  • 37. Esempio di Sincronizzazione (4) Replica B dopo sync Item Update Tick Count Update Replica ID Creation Tick Count Replica B Knowledge = A5, B4 Creation Replica ID I104 2 B 1 B I105 4 B 3 B I2 3 A 2 A I3 4 A 4 A I1 5 A 1 A
  • 38. {Sync Framework} Tecnologia da studiare bene! Molti meccanismi diversi da RDA / Merge No tracking a livello di colonna No tracking dei singoli client nel server Diversa riproduzione schema database No range di identity ai client e tanto altro! Q&A http://blogs.msdn.com/stevelasker/archive/2007/03/18/QAforOCS_2D00_SyncServicesForAdoNet.aspx Considerazioni dal blog di Roberto Brunetti http://blogs.devleap.com/rob/archive/2008/02/15/ado-net-synchronization-services-considerazioni.aspx
  • 39. Mobile Line of Business (LOB) {Solution Accelerator 2008} Showcase per mobile supply chain Sync Services for ADO.NET WCF: Store and Forward Transport with Exchange Server 2007 Web Service retrieval of maps from MapPoint Custom Controls State and Notification Broker ADO.NET Communication with SQL Server CE CAB deployment project Use of LINQ Adapt Application to Screen
  • 40. Questions
  • 41. 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.