Extending the Enterprise using.NET CF and SQL CE Marcus Perryman Principal Consultant Microsoft
Agenda Traditional client server applications What is wrong with the client right now? Connected Mobile devices Reality of communications What does it mean to the developer Mitigating the connection Design issues Technologies to help: SQLCE, MSMQ Modifying Football Reporter Adding replication Local DB access Summary
Traditional Client Server Applications Client Server: What’s wrong with that? E.G. (Enterprise) Football Reporter application Reporter goes to match and discovers there is no connection coverage. The app is useless while at the match! What do we need to do to make it work? Situation Today High dependency on the network No local data – all data taken ‘live’ from a web service Goals Need some way to ‘work offline’ Still need to keep the ‘live’ feel of the application
Smart Device Applications Stand alone Feature apps Limited data capture / processing E.g. Calculator, Stopwatch, Games Stand alone LOB apps Some data storage + manipulation Quote system, Mapping, help or training Fully Connected Apps / Client Server Required connection, remote data store with cache locally Instant Messenger, Complex Quote system, Terminal Server, Games, Football Reporter
Connection Technologies WLAN Pro’s: Fast, cheap and fairly reliable Con’s: Availability, radio black spots GPRS Pro’s: Coverage, speed Con’s: Cost, reliability, latency Multi part solutions (e.g. serial/USB to host) Pro’s: Fast, cheap and very reliable Con’s: Complexity, mobile equipment, still need to get online!
Connection Technologies Circuit Switched Data (e.g. GSM, CDMA) Packet Data (e.g. GPRS, 1xRTT) SMS Desktop Pass-Through Bluetooth TCP/IP WAP Cable Replacement
Application style Native apps Local Store Native apps Cache & Proxy Web pages Big deviceBig bandwidth Store and forward Store and forward Data synchronisation Data synchronisation Network detection Network detection
What does this mean to the Developer? Your App Data Store Business Process 1 Business Process 2 PRESENTATION LAYER BUSINESS LOGIC LAYER DATA ACCESS LAYER
‘Store and Forward’ Design Your App Local Data Service Request Proxy Request Response ServiceDiscovery Service 1 Service 2 Notification Service Device Servers 1. Find 2. Call 3. Process updates StubStubStubStub
Design Considerations Reduce application dependency on network Minimise data transfer volumes Batch up actions to reduce call times Just do the ‘right’ thing. Assumptions Low bandwidth, unreliable channel All application calls made are atomic Servers know about client applications Client applications know about servers ‘Know where to look rather than remember everything’
Solution Landscape Client Base client SQL for CE Sync RDA Server MSMQSOAPProxyListener Exchange 2000 SQL 2000 PIM IIS WebServices MSMQ Customnetworklogic NotificationService
SQL Server CE Overview Key Scenarios Disconnected database Internet / Intranet connectivity / synchronization Different from Mobile Web Forms / MMIT, ADO.NET Data Set and MSMQ CE Managed and Unmanaged Support Customer Scenarios Medical, Military, DSD, FSA, SFA, Real estate
Nevalon – Real Estate MLS
Database Feature Set Rich functionality for small footprint Multi-column indexes Referential integrity Sub-selects (IN) Defaults Inner/outer joins One file database Null support Unicode support Transactions Data-types Real, Numeric, NVarChar, NText, Image, Integer, DateTime, VarBinary, UniqueIdentifier, Money Having/group by Seek on index Set functions Identity attribute Local security - DB encryption (128bit) and database password
OLEDB CE CLR /.NET CF QP/Cursor Engine/ES SQL Server CE v2.0 Device Data Access ADO CE v3.1 Storage Engine / Repl Tracking SQL Server CE v2.0 eVB 3.0 eVC 3.0 OLEDB OLEDB SQL Server CE 2.0 Data Provider Native/Unmanaged Stack SDE / Managed Stack ADO.NET VS.NET (VB.NET, C#)
SQL Server CE V2.0.NET CF Integration System.Data.SqlServerCE Local Data Provider Rich data access while offline Exposes full functionality of SQL Server CE Utilizes Try/Catch System.Data.SqlServerCe.SqlCeException
OLEDB CE CLR /.NET CF QP/Cursor Engine/ES CE Data Access Storage Architecture Client Agent: Replication andRDA ADO CE v3.1 OLEDB / Replication API IIS CLIENTSERVER Storage Engine / Repl Tracking SQL CE Edition v2.0 eVB 3.0 eVC 3.0 OLEDB OLEDB Server Agent: Replication and Remote Data Access HTTP XML/BizTalk/CS b, CDPD, GSM, CDMA, TDMA, etc. Enterprise Backend Oracle / db2 / etc SQL Server CE Data Provider Native/Unmanaged Stack Data Provider SQL Server Client Data Provider ADO.NET VS.NET (VB.NET, C#).NET CF / Managed Stack TDS Ethernet Well Connected Occasionally Connected
Connectivity – Transport Utilize Web technology HTTP communication Internet and Intranet Security via IIS Authentication (anonymous, basic, NTLM) Authorization Encryption for secure transfer (SSL) Access through firewalls
SQL Server CE v2.0 Platform Support Tool Set Data Access Platform eMVT ADOCE / OLEDBCE HPC 2K eMVT ADOCE / OLEDBCE PocketPC 2000 eMVT ADOCE / OLEDBCE PB 4.1 “Jameson” VS.NET /.NET CF ADO.NET PocketPC 2002 VS.NET /.NET CF ADO.NET PocketPC 2000 VS.NET /.NET CF ADO.NET PB 4.1 “Jameson” eMVT ADOCE / OLEDBCE PocketPC 2002
SQL Server CE Summary Enables data capture in the field Small size, robust functionality Enables rapid development Utilizes new Visual Studio.NET tools Existing application with eMVT still run Enable robust connectivity HTTP, IIS, connect anywhere RDA, Replication Expand the enterprise Upwardly compatible with SQL Server 2000
Microsoft Message Queue
MSMQ – What Implements asynchronous communications Provides guaranteed delivery, efficient routing, priority based messaging. Usernames storage support roaming NIC tracking Transparent, salvageable storage Routing to non-private queues is simple Administration differences
Modifying Football Reporter Creating a Publication on the server Using the new SQLCE 2.0 server wizard Modify Reporter App Add the code to replicate Add code to login to local DB
Build network check code Add Network Check code Call and store data to the web service Modifying Football247 Reporter
Summary Application design for a truly Mobile app is key to success. SQL Server CE is a key tools for mitigating unreliable network connections. SQL Server CE Managed provider makes data consumption simple.
© 2001 Microsoft Corporation. All rights reserved.
Extending the Enterprise using.NET CF and SQL CE In this session we will focus on the specific challenges of moving an enterprise application onto a mobile platform such as the Pocket PC. We will look at the challenge of keeping up to date with the client application and look at the state of the mobile data industry today, considering the available solutions and application design philosophy needed to mitigate today’s challenges. We will consider the problem of data management and synchronization between a mobile device and an enterprise server, examining SQL CE and MSMQ and how they can be effectively used to solve these problems.