Download presentation
Presentation is loading. Please wait.
1
.NET Mobile Application Development Data in Distributed Systems Accessing Data with.NET
2
Introduction In this session we will consider >The use of databases in mobile and distributed applications >Connected, client-server database access .NET connected data access features >Disconnected database architecture ADO.NET and disconnected data access features >Distributed data access from mobile and disconnected clients SQL Server CE
3
Database Terminology Relational database >data and relations between them organised in tables. A table is collection of rows or records. Each row in a table contains the same fields.tablesrecordsfields Query >formal request to a database for information or updates to informationdatabase Stored procedure >set of SQL commands that can be stored in the server >gives improved performance as less information needs to be sent between the server and the client Structured Query Language (SQL) >industry-standard language for creating, updating and, querying relational databases
4
Databases in Distributed Systems Distributed applications often rely on databases for >persistent storage >synchronizing state and ensuring consistency between multiple clients Databases >normally reside on a server >accessed by clients via the network Clients interact with databases using explicit SQL queries >active connection to database required for each query
5
Distributed Data Management Three key aspects of managing data in distributed applications >Caching keeping local copies of required data eliminates need for continuous network connections >Replication propagating changes in cached data back to main data store periodically refreshing cached data >Conflict Resolution multiple clients operate simultaneously updates of a data item by several clients => conflict conflict resolution mechanisms needed
6
Database Access Methods Traditional applications follow a layered model Business logic/client layers interact with the database in a connected client/server manner >connection to database opened at start of session and maintained until session completes >SQL queries sent individually or in batches to database when required by application application cannot operate if network connection not present not ideally suited to mobile / intermittently connected clients Computer A Application front end Computer C Database Computer B Business Logic
7
Disconnected Database Access In a disconnected data architecture client >opens temporary connection to database; required data cached locally and connection closed >operates using the cached data >reconnects to database when connection available and merges any changes from the locally cached data Guaranteed network connection not required for application to function Ideally suited to >mobile device applications >intermittently connected devices >clients with high network latencies (e.g. Internet)
8
.NET Data Access Features .NET supports >Connected and disconnected data architectures >Microsoft SQL Server data sources interaction from desktop and mobile platforms >Interaction with other database servers through ODBC and OLE from desktop platforms only .NET data access classes contained in >System.Data - Common data access types >System.Data.SqlClient - Types used for interacting with MS SQL Server >System.Data.Odbc - Types used for ODBC database interaction >System.Data.OleDb - Types used for OLE database interaction
9
.NET Connected Data Objects Connection object (e.g. SqlConnection) >Represents connection to data source; used by other objects to interact with data source Command object (e.g. OdbcCommand) >Represents queries to database or calls to stored procedures DataReader object (e.g. OleDbDataReader) >Allows iteration through rows returned from a query Transaction object (e.g. SqlTransaction) >Provides transactional support Parameter object (e.g. SqlParameter) >Represents parameters to queries or stored procedures DataAdapter object (e.g. SqlDataAdapter) >Bridge between database and the disconnected data objects of ADO.NET >Used in passing data between ADO.NET objects and data source
10
Connected Data Access Example using System.Data.SqlClient;... string connStr = "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;"; string insertQuery = "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"; SqlConnection conDB = new SqlConnection(connStr); SqlCommand cmd = new SqlCommand(insertQuery); cmd.Connection = conDB; conDB.Open(); cmd.ExecuteNonQuery(); conDB.Close();
11
ADO.NET Disconnected Data Objects DataTable object >Stores data as collection of rows and columns DataColumn object >Stores information about structure of a DataTable column Constraint object >Enables constraints to be placed on data stored in a DataTable DataRow object >Contains single record from a DataTable DataSet object >Most important ADO.NET object >Container for multiple DataTables and DataRelations DataRelation object >Defines relationships between DataTables in a DataSet DataView object >Provides sorting and filtering of data in a DataSet >Enables binding of data to WinForms controls
12
Using ADO.NET Objects ADO.NET objects can >be created and manipulated independently of a data source >be constructed to mirror the relational structure of a data source Using a DataAdapter object, a DataSet can >be filled with data from a data source >merge changed values back in to a data source >become an offline cache of the data required by an application Allows application to operate even when network connection is not present
13
Disconnected Data Access Example using System.Data; using System.Data.SqlClient;... string connStr = "Initial Catalog=Northwind;Data Source=localhost; Integrated Security=SSPI;"; SqlConnection conDB = new SqlConnection(connStr); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand("SELECT * FROM Suppliers", conDB); conDB.Open(); DataSet ds = new DataSet("Customers"); adapter.Fill(ds); conDB.Close(); string criteria = "Surname = Smith"; DataRow[] matchRows = ds.Tables["Customers"].Select(criteria); foreach (DataRow row in matchRows) { string forename = row["Forename"]; string forename = row["Surname"]; Console.WriteLine("Customer "+forename+" "+surname); }
14
Databases and Mobile Devices All the preceding techniques can be used with mobile devices and Compact Framework Mobile devices support three other techniques >SQL Server CE SQL Server database engine for WinCE devices >SQL Server CE Remote Data Access (RDA) enables two-way transfer of data between SQL CE database and networked SQL Server database >SQL Server Merge Replication more powerful mechanism for two-way data transfer between SQL CE database and networked SQL Server database with automatic conflict resolution
15
SQL Server CE Lightweight version of MS SQL Server for Windows CE devices Supports >creation, querying, updating and deleting of databases on device >useful for local caching of data from network databases to enable offline operation Supports databases up to 2GB but size limited by available memory Accessible from Compact Framework using classes in System.Data.SQlServerCe namespace >SqlCeEngine - used to creates new databases >SqlCeConnection >SqlCeCommand >SqlCeDataAdapter >SqlCeDataReader Use is similar to standard SQL client
16
SqlCE Remote Data Access Based around SqlCeRemoteDataAccess class Two primary methods >Pull() retrieves data from networked SQL server and copies it to table in local SQL CE database pulled records not locked on networked database >Push() writes modifications back to networked SQL server based on data in local SQL CE database table overwrites changes made by other users to networked database (optimistic concurrency control) may result in lost updates Networked SQL Server requires IIS Web server and specific configuration for RDA
17
SqlCe Merge Replication Extension of SQL Server Merge Replication to mobile devices Three databases used >Publisher - makes data available for replication >Distributor - manages replication and updates >Subscriber - receives/uses replicated data (on CE device) Configurable resolvers used to automatically deal with multiple updates without loss of data Merge replication vs Remote Data Access >requires much more configuration than RDA >much easier to use – automatically deals with conflicts
18
In this session we have discussed >Databases in distributed applications >Connected database access with.NET >ADO.NET and the disconnected database architecture >Distributed data access from mobile and disconnected clients The accompanying practical exercises demonstrate >Use of ADO.NET classes in manipulating data >Using ADO.NET to retrieve data from a networked database using Web services Summary
19
Reading and Resources Reading Thomas Connolly & Carolyn Begg, Database Systems: A Practical Approach to Design, Implementation, and Management, Addison- Wesley, 2002 David Sceppa, Microsoft ADO.NET Core Reference, Microsoft Press, 2002 Andy Wigley & Stephen Wheelwright, Microsoft Compact Framework Core Reference, Microsoft Press, 2003 Chapters 13 – 17, pp 429 – 586 Resources Microsoft Developer Network, SQL Server Documentation, http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid= 28000409 http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid= 28000409
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.