building data-centric smart client applications rajiv sodhi microsoft india

29
Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Upload: christian-holland

Post on 30-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Building Data-Centric Smart Client ApplicationsBuilding Data-Centric Smart Client Applications

Rajiv SodhiMicrosoft India

Page 2: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

AgendaAgenda

Introduction To Smart ClientsPerforming Connected OperationsPerforming Client-Side OperationsCreating an Offline Application

Page 3: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Smart clients are easily deployed and managed client applications that provide an adaptive and interactive experience by leveraging

local resources and intelligently connecting to distributed data sources.

Web Services &Offline/Online

support

DeviceAdaptability

Tough toDeploy

HeavyFootprint

DLL Hell

NetworkDependency

Poor UserExperience

Rich UIComplex

To Develop

Rich UserExperience

DeveloperProductivity

Responsive

BroadReach

Easy ChangeManagement

Ease ofDeployment

Page 4: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Microsoft Smart Client Platforms

Mobile Mobile Field Field

Mobile Mobile Field Field

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Office System 2003 Windows MobileWindows Forms

Version 1.1

Version 2.0

CurrentCurrentGenerationGeneration

NextNextGenerationGeneration

Version 1.0

Version 1.1“Whidbey”

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

E-GovernmentE-GovernmentE-GovernmentE-Government

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Mobile Mobile Field Field

Mobile Mobile Field Field

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Page 5: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Mobile Mobile Field Field

Mobile Mobile Field Field

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Windows Forms

Version 1.1

Version 2.0

CurrentCurrentGenerationGeneration

NextNextGenerationGeneration

“Whidbey”

Radically simplified application deployment

ClickOnce deployment, update, rollback

Visually Appealing UINew Data ControlsOffice Look and Feel

Developer productivitySimplify working with dataFewer lines of codeFew clicks

.NET Framework distribution120 million deploymentsPreinstalled on 60% of new machines and growingIncluded on SP2 CDConsumer

55% installed by end of ’0475% installed by end of ’05

Enterprise50% installed by end of ’0468% installed by end of ‘05

Office System 2003 Windows Mobile

Version 1.0

Version 2.0

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

E-GovernmentE-GovernmentE-GovernmentE-Government

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Mobile Mobile Field Field

Mobile Mobile Field Field

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Microsoft Smart Client Platforms

Page 6: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Office System 2003

Version 1.0

Version 2.0

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

E-GovernmentE-GovernmentE-GovernmentE-Government

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Connect live business data to your documents & access them off-line

Increase velocity and accuracy of decision makingIncrease worker productivityReduce error caused by data re-entry & copy/paste

Leverage existing Office experience of end users

Reach 400+ million practiced Office usersEliminate training and ramp up time on new applicationsReduce new application burn-in errors

Leverage rich and robust Office functionality

High developer productivity = reduced time to develop Greatly improved maintainability & deployment optionsOptimize use of PC & central resources

Mobile Mobile Field Field

Mobile Mobile Field Field

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Windows Forms

Version 1.1

Version 2.0

CurrentCurrentGenerationGeneration

NextNextGenerationGeneration

“Whidbey”

Windows Mobile

Mobile Mobile Field Field

Mobile Mobile Field Field

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Microsoft Smart Client Platforms

Page 7: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Office System 2003

Version 1.0

Version 2.0

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

Integrating Integrating Office XML Office XML

with with Enterprise Enterprise

Data Data

E-GovernmentE-GovernmentE-GovernmentE-Government

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Mobile Mobile Field Field

Mobile Mobile Field Field

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Smart Client Smart Client Front-end to Front-end to

Enterprise LOB Enterprise LOB SystemsSystems

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Windows Forms

Version 1.1

Version 2.0

CurrentCurrentGenerationGeneration

NextNextGenerationGeneration

“Whidbey”

Windows Mobile

Mobile Mobile Field Field

Mobile Mobile Field Field

Instant access to data anywhere, anytimeForm factor and instant-on more appropriate for most field workAccess existing Web services in SOAsLeverage .NET development skills and code on devices with .NET Compact Framework

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Web siteWeb siteSmart ClientSmart ClientExperiencesExperiences

Microsoft Smart Client Platforms

Page 8: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

AgendaAgenda

Introduction To Smart ClientsPerforming Connected OperationsPerforming Client-Side OperationsCreating an Offline Application

Page 9: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Connected OperationsConnection Class

Performing Connected OperationsConnection Class

Represents a connection to a databaseSqlConnection, OracleConnection, etc.

Requires a connection stringEx: “server=(local);database=Northwind;integrated security=true”

Common methodsOpen

Creates a connection to the database

CloseCloses the connection to the database

BeginTransactionStarts a transaction and returns a Transaction object

Page 10: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Connected OperationsCommand

Performing Connected OperationsCommand

Executes SQL statements in the databaseCommandTextDML, DDL, and DCL

Contains a collection of parametersCommon methods

ExecuteReaderExecutes a Select statement and returns a DataReader

ExecuteNonQueryExecutes SQL statement, except SelectReturns number of rows affected

ExecuteScalarExecutes a Select statement and returns a single value

Page 11: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Connected OperationsDataReader

Performing Connected OperationsDataReader

Server-Side, forward-only, read-only cursorContains a collection of columns

Ex: dr[“CustomerID”].ToString();

Common methodsRead

Advances to the next rowReturns True if row exists

CloseCloses the DataReader and releases rowset

GetXReturns a specific data type for the column valueGetString, GetInt32, GetDateTime, etc.

Page 12: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Connected OperationsPopulating an SqlDataReader

Performing Connected OperationsPopulating an SqlDataReaderusing System.Data.SqlClient…SqlCommand cmd = new SqlCommand("SELECT * FROM Customers,cn);

cn.Open();SqlDataReader dr =

cmd.ExecuteReader( CommandBehavior.CloseConnection);

if(dr.Read()){

txtCustomerID.Text = dr["CustomerID"].ToString();txtCompanyName.Text = dr["CompanyName"].ToString();txtContactName.Text = dr["ContactName"].ToString();

}

dr.Close();

Page 13: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Connected OperationsExecuting an SqlCommand

Performing Connected OperationsExecuting an SqlCommandusing System.Data.SqlClient…SqlConnection cn = new

SqlConnection(“server=localhost;database=Northwind;integrated security=yes”);

SqlCommand cmdDeleteProduct = new SqlCommand("DELETE FROM Products WHERE ProductID = @ProductID",cn);

cmdDeleteProduct.Parameters.Add(new SqlParameter("@ProductID", System.Data.SqlDbType.Int, 4));

cmdDeleteProduct.Parameters["@ProductID"].Value = ProductID;

cn.Open();cmdDeleteProduct.ExecuteNonQuery();cn.Close();

Page 14: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Database Performing Database Operations DirectlyOperations Directly

Page 15: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

AgendaAgenda

Introduction To Smart ClientsPerforming Connected OperationsPerforming Client-Side OperationsCreating an Offline Application

Page 16: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Client-Side OperationsDataSet

Performing Client-Side OperationsDataSet

Set of DataTables and DataRelations Tightly integrated with XMLPopulation

Add DataTablesLoad XML

Common MethodsWriteXML/ReadXMLWriteXMLSchema/ReadXMLSchemaHasChangesGetChanges, AcceptChanges and RejectChangesMerge

Page 17: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Client-Side OperationsDataAdapter

Performing Client-Side OperationsDataAdapter

Bridge between a database and a DataTableRepresents a set of Command objects

SelectCommand, InsertCommand, UpdateCommand and DeleteCommand

Common methodsFill

Executes SelectCommand and populates DataTable

UpdateExecutes appropriate Command for each changed row

Open and close connection if necessary

Page 18: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Client-Side OperationsPopulating a DataSet

Performing Client-Side OperationsPopulating a DataSetusing System.Data;using System.Data.SqlClient;…SqlConnection cn = new

SqlConnection(“server=localhost;database=Northwind;integrated security=yes”);

daOrderDetails = new SqlDataAdapter("SELECT OrderID, ProductID, UnitPrice, Quantity, Discount FROM [Order Details]",cn);

daOrderDetails.MissingSchemaAction = MissingSchemaAction.AddWithKey;

DataSet dsNorthwind = new DataSet();daOrderDetails.Fill(dsNorthwind, “Order Details”);

Page 19: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Client-Side OperationsUpdating the Database

Performing Client-Side OperationsUpdating the Database

DataRow tracks changesRowState propertyRow version

GetChangesDataSet/DataTableReturns DataSet/DataTable of changed rows

Page 20: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Client-Side OperationsUpdating the Database

Performing Client-Side OperationsUpdating the DatabaseDataAdapter.Update

Updates the databaseExecutes appropriate command

DataSet.MergeMerges contents into DataSet

DataSet, DataTable or DataRow

Matches data on primary key

AcceptChangesSets original value equal to current valueSets RowState property to DataRowState.Unchanged

Page 21: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Client-Side OperationsUpdating the Database

Performing Client-Side OperationsUpdating the Database…DataTable dtChanges;dtChanges = ds.Tables["Employees"].GetChanges(DataRowState.Added);if(dtChanges != null){

daEmployees.Update(dtChanges);ds.Merge(dtChanges);

}

dtChanges = ds.Tables[“Orders"].GetChanges(DataRowState.Added);if(dtChanges != null){

daOrders.Update(dtChanges);ds.Merge(dtChanges);

}…ds.AcceptChanges();

Page 22: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Performing Client-Performing Client-Side Database Side Database

OperationsOperations

Page 23: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

AgendaAgenda

Introduction To Smart ClientsPerforming Connected OperationsPerforming Client-Side OperationsCreating an Offline Application

Page 24: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Creating an Offline ApplicationPersisting a DataSetCreating an Offline ApplicationPersisting a DataSet

Populate DataSetDataAdapter.Fill

WriteXmlCan write data, schema, and changesOutput determined by XmlWriteModeUse instead of DataAdapter.Update

XmlWriteMode.DiffGramXML formatOriginal and values of DataSet

Page 25: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Creating an Offline ApplicationDiffGram Current ValueCreating an Offline ApplicationDiffGram Current Value<?xml version="1.0" standalone="yes"?><diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"

xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <EmployeesOrdersDS xmlns="http://tempuri.org/EmployeesOrdersDS.xsd">…

<Orders diffgr:id="Orders831" msdata:rowOrder="830"> <OrderID>11078</OrderID> <CustomerID>ALFKI</CustomerID> <EmployeeID>10</EmployeeID> <OrderDate>2003-07-01T00:00:00.0000000-04:00</OrderDate> <RequiredDate>2003-08-01T00:00:00.0000000-04:00</RequiredDate> <ShippedDate>2003-07-05T00:00:00.0000000-04:00</ShippedDate> <Freight>0</Freight> <Total>180.0000</Total>

</Orders>…

Page 26: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Creating an Offline ApplicationDiffGram Original ValueCreating an Offline ApplicationDiffGram Original Value… <diffgr:before> <Orders diffgr:id="Orders831" msdata:rowOrder="830"

xmlns="http://tempuri.org/EmployeesOrdersDS.xsd"> <OrderID>11078</OrderID> <CustomerID>ALFKI</CustomerID> <EmployeeID>10</EmployeeID> <OrderDate>2003-07-01T00:00:00.0000000-04:00</OrderDate> <RequiredDate>2003-08-01T00:00:00.0000000-04:00</RequiredDate> <Freight>0</Freight> <Total>180.0000</Total> </Orders> </diffgr:before></diffgr:diffgram>

Page 27: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Creating an Offline ApplicationRestoring a DataSetCreating an Offline ApplicationRestoring a DataSet

ReadXmlCan read data, schema, and changesInput determined by XmlReadModeUse instead of DataAdapter.Fill

XmlReadMode.DiffGramReads DiffGramAdds current and original values to DataSet

Update the databaseDataAdapter.Update

Page 28: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

Creating an Offline Creating an Offline ApplicationApplication

Page 29: Building Data-Centric Smart Client Applications Rajiv Sodhi Microsoft India

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.Content created by 3 Leaf SolutionsContent created by 3 Leaf Solutions