Data Access Design Patterns: Navigating the Data Access Maze Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software Architect Microsoft.

Slides:



Advertisements
Similar presentations
Michael Pizzo Software Architect Data Programmability Microsoft Corporation.
Advertisements

DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
1 Federating Identity and Authorization Across Organizations and Platforms Matthew Hur Lead Program Manager Microsoft Corporation
Chapter 12: ADO.NET and ASP.NET Programming with Microsoft Visual Basic.NET, Second Edition.
Module 1: Overview of the Microsoft.NET Framework.
Managing Employee Earnings Statements: PAYSTUB 3.0 A centralized, intranet-based application used to view employee earnings statements online Published:
SQL Server 2005 CLR Integration ADO.NET 2.0 Mike Taulty
1 Introducing ClickOnce: The New Application Deployment Model for Windows Forms and “Avalon” Jamie Cool Program Manager Microsoft.
1 Building Management Applications with SQL Server “Yukon” SQL Management Objects (SMO): Overview Bruce Prang Development Manager Microsoft Corporation.
Building Rights Management Enabled Applications For Windows "Longhorn" Steve Bourne Chandramouli Venkatesh Microsoft Corporation Steve Bourne Chandramouli.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
1 Programming Windows Help Shane McRoberts Group Program Manager Microsoft Corporation Shane McRoberts Group Program Manager Microsoft.
DAT304 Leveraging XML and HTTP with Sql Server Irwin Dolobowsky Program Manager Webdata Group.
DBA230 Introducing SQL Server 2000 Reporting Services Jason Carlson Product Unit Manager SQL Server Microsoft Corporation.
Plataformas.NET para desenvolvimento de aplicações web José António Silva
1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager.
Visual Studio ®.NET Data with XML Carlotta Eaton ( Associate Professor of IST New River Community College Slides by Microsoft Modified.
1 Keyboard, Speech, and Pen Input in Your Controls Kevin Gjerstad Lead Program Manager Kevin Gjerstad Lead Program Manager
Developing Reporting Solutions with SQL Server
Module 1: Overview of the Microsoft.NET Platform.
“Indigo”: Building Peer-To-Peer Applications Todd R. Manion Program Manager Microsoft Corporation Todd R. Manion Program Manager.
Distributed Communication via ASP.Net Web Services and.Net Remoting By Richard King.
Overview of Data Access MacDonald Ch. 15 MIS 324 Professor Sandvig.
Project “Astoria” first announced in Mix 2007 Shared early prototypes, got tons of feedback Now we’re talking about the real deal Production quality bits,
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
DAT 379 XML Today And Tomorrow Mark Fussell Lead Program Manager Microsoft Corporation.
1.NET Framework Overview: A Road Map Brad Abrams.NET Framework Team Microsoft Corporation Brad Abrams.NET Framework.
DotNet Michelle Johnston, Firebird Services Ltd. What is Dot Net Aims to simplify web development Language independent – CLR (Common Language Runtime)
James Akrigg Microsoft Ltd Integrating InfoPath Forms Into Workflow Solutions And Business Processes.
.NET Enterprise Services COM+ 1.5 麥超俊 Bobby Mak 架構技術推廣經理開發工具暨平台推廣處台灣微軟股份有限公司.
1 Application Model Fundamentals Chris Anderson Software Architect Microsoft Corporation Chris Anderson Software Architect Microsoft.
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Microsoft.Net Sven Groot. Common Language Runtime Superset of ECMA Common Language Infrastructure Defines  Language-neutral platform  Intermediate Language.
“ WinFS” Future Directions: Building Data-Centric Applications Using Windows Presentation Foundation “Avalon” and Windows Forms Ramesh Nagarajan DAT310.
“Avalon”: Using UI Automation to Improve Application Testability Robert Sinclair Group Manager Microsoft Corporation Robert Sinclair.
1 Integrating Real-time Collaboration into your Applications Stephanie Lindsey Program Manager Microsoft Corporation Stephanie.
EBIZ302 Jupiter Business Process Automation and Web Services David Fong Program Manager.
1 Interop Best Practices and Common Pitfalls (That We Learned the Hard Way) Please write your name on a card in the back and place it in the box… Please.
DEV332 Programming for the Middle Tier in Visual Basic.NET Billy Hollis Author / Consultant.
DAT 405 Extreme SqlXml Irwin Dolobowsky Program Manager – SqlXml Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
SQL Server Notifications: Invalidating Cached Results Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software.
Introduction to.NET Building.NET Applications Mike Taulty Developer & Platform Group Microsoft Ltd
Extending Workflow With Custom Activities Dennis Pilarinos COM328 Program Manager Microsoft Corporation.
1 Programming ADO.NET in Whidbey Pablo Castro/Brad Rhodes ADO.NET Team Microsoft Corporation Pablo Castro/Brad Rhodes.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Building Enterprise Applications Using Visual Studio®
Introducing the Microsoft® .NET Framework
Integrating Enterprise Applications Into SharePoint® Portal Server
Using Audio, Video, and Imaging in your Longhorn Applications
System.Search, aka “Find My Stuff”
Chris Menegay Sr. Consultant TECHSYS Business Solutions
Avalon – Using Data In Your Applications
Visual Studio Tools for Office 2005
Transactional Programming In A Windows World
Michael Wallent General Manager Windows Client Platform
Mobile Application Development 2005 By Sam Nasr July 25, 2006
“Whidbey” CLR Internals
11/17/2018 9:30 PM Session Code: ARC 420
Building Rich, Interactive Controls for Windows “Longhorn”
New User Interface Possibilities in Longhorn
"Avalon": Building Applications With Controls And Dialogs
DAT381 Team Development with SQL Server 2005
Visual Studio 2005 Tools For Office: Creating A Multi-tier Application
Chapter 10 ADO.
People And Groups Controls In Windows "Longhorn"
NAMESPACE.
Session Code: CLI391 Windows Forms: Exploiting Windows “Longhorn” Features from Within Your Application Mark Boulter .NET Client Team Microsoft Corporation.
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Data Access Design Patterns: Navigating the Data Access Maze Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software Architect Microsoft Corporation Session Code: ARC404

Agenda Whidbey Data Access System.Data Namespace Data Access Solutions Sample Application Whidbey Data Access Solutions DataSets and Data Providers ObjectSpaces SQLXML Related Technologies WinFS, MBF, and ObjectSpaces ObjectSpaces and Typed DataSets Summary Whidbey Data Access System.Data Namespace Data Access Solutions Sample Application Whidbey Data Access Solutions DataSets and Data Providers ObjectSpaces SQLXML Related Technologies WinFS, MBF, and ObjectSpaces ObjectSpaces and Typed DataSets Summary

Tools Client Application Model AvalonWindows Forms Web & Service Application Model ASP.NET / Indigo Win FS Compact Framework Yukon Mobile PC Optimized System.Help System.Drawing System.NaturalLanguageServices Data Systems Application Model Presentation Data Mobile PC & Devices Application Model Communication Command Line NT Service DataSet Mapping ObjectSpaces ObjectSpace Query Schema Item Relationship Media Audio Video Images System.Messaging System. Discovery System.DirectoryServices System.Remoting System.Runtime.Remoting Active Directory Uddi System.Web.Services Web.Service Description Discovery Protocols System.MessageBus Transport Port Channel Service Queue PubSub Router System.Timers System.Globalization System.Serialization System.Threading System.Text System.Design Base & Application Services Fundamentals System.ComponentModel System.CodeDom System.Reflection System.EnterpriseServices System.Transactions Security System.Windows. TrustManagement System.Web. Security System.Message Bus.Security Authorization AccessControl Credentials Cryptography System.Web.Configuration System.MessageBus.Configuration System.Configuration System.Resources System.Management System.Deployment System.Diagnostics ConfigurationDeployment/Management System.Windows System.Windows.Forms System.Console System.ServiceProcess System.Windows.Forms System.Web System.Storage System.Data.SqlServer Animation Controls Control Design Panel Controls Dialogs SideBar Notification System.Windows Documents Text Element Shapes Shape Ink UI Element Explorer Media System.Windows.Forms Forms Control Print Dialog Design System.Web.UI Page Control HtmlControls MobileControls WebControls Adaptors Design Ports InteropServices System.Runtime System.IO System.Collections Generic System.Search Annotations Monitoring Logging Relevance System.Data SqlClient SqlTypes SqlXML OdbcClient OleDbClient OracleClient Core Contact Location Message Document Event System.Storage System.Web Personalization Caching SessionState System.Xml Schema Serialization Xpath Query Permissions Policy Principal Token System.Security System.Collaboration RealTimeEndpoint TransientDataSession SignalingSession Media Activities HttpWebRequest FtpWebListener SslClientStream WebClient System.Net NetworkInformation Sockets Cache System.Web Administration Management Navigation Peer Group Policy Serialization CompilerServices Recognition System.Speech Synthesis SqlClient ObjectSpaces SqlXML DataSet

What’s New In System.Data Enhancements to System.Data Features added to relational APIs ADO.NET with ObjectSpaces Extending the programming model to support objects over SQL Server ADO.NET with SQLXML Extending the programming model to support XML Ability to query and update SQL Server as XML documents via XML Views Enhancements to System.Data Features added to relational APIs ADO.NET with ObjectSpaces Extending the programming model to support objects over SQL Server ADO.NET with SQLXML Extending the programming model to support XML Ability to query and update SQL Server as XML documents via XML Views

Selecting a Solution You are part of the answer… …your skills …your background …your familiarity What are you doing with the data? Does it contain business logic? What tools are you using with it? What is the destination of the data? Are you exchanging it with other partners? What type of project are you working on? Self-contained app versus enterprise framework You are part of the answer… …your skills …your background …your familiarity What are you doing with the data? Does it contain business logic? What tools are you using with it? What is the destination of the data? Are you exchanging it with other partners? What type of project are you working on? Self-contained app versus enterprise framework

ADO.NET Data Access Support DataSet and DataReader in ADO.NET ObjectSpaces in ADO.NET Technology Strengths Use if… SQLXML in ADO.NET Business level objectsBusiness level objects Relational mapping via metadataRelational mapping via metadata Decoupled from database schemaDecoupled from database schema Smaller working set than other object abstractionsSmaller working set than other object abstractions Interoperability. Format for the Web – B2B, A2AInteroperability. Format for the Web – B2B, A2A Sparse (semi-structured) dataSparse (semi-structured) data XML Services e.g. XQuery, XSDXML Services e.g. XQuery, XSD Relational mapping via metadataRelational mapping via metadata Decoupled from database schemaDecoupled from database schema Relational (tabular) modelRelational (tabular) model Highest performanceHighest performance Explicit controlExplicit control Fully exposes database functionalityFully exposes database functionality You need a strong business object layerYou need a strong business object layer You know the shape of the results you want to work withYou know the shape of the results you want to work with You need to query data from XML data sources e.g. XML Web ServicesYou need to query data from XML data sources e.g. XML Web Services You use vertical industry XML schemas for content publishing e.g. XBRL, RIXML, FinXMLYou use vertical industry XML schemas for content publishing e.g. XBRL, RIXML, FinXML You need to load XML documents into database tablesYou need to load XML documents into database tables You are using UI bound controls for XMLYou are using UI bound controls for XML You are comfortable with the relational modelYou are comfortable with the relational model You require maximum control/performance/functionalityYou require maximum control/performance/functionality You are using UI bound controlsYou are using UI bound controls Data is relational is objects is XML is Data

ReferenceNewsTradesPositionsCustomersAccounts News Loader (Windows Service) Stock Information (Web App) Customer Reporting (Web App) Trade Resolution/ History (Windows App) Portfolio Manager (Web App) Sample Application XML HTML XML XML ObjectSpaces DataReader DataSet

Agenda Whidbey Data Access System.Data Namespace Data Access Solutions Sample Application Whidbey Data Access Solutions DataSets and Data Providers ObjectSpaces SQLXML Related Technologies WinFS, MBF, and ObjectSpaces ObjectSpaces and Typed DataSets Summary Whidbey Data Access System.Data Namespace Data Access Solutions Sample Application Whidbey Data Access Solutions DataSets and Data Providers ObjectSpaces SQLXML Related Technologies WinFS, MBF, and ObjectSpaces ObjectSpaces and Typed DataSets Summary

DataSets And Data Providers Overview Architecture Scenarios Demo Overview Architecture Scenarios Demo

DataSets And Data Providers: Overview Goal: Integrate manipulation of relational data with the.NET Framework Accessing a Relational Store (.NET Data Providers) Connecting, Executing Commands, Retrieving Results Common in-memory representation for tabular data (DataSet) Container of tables, columns, relations, constraints May be populated from any store, application, XML Connectionless, provider-independent Explicit Architecture Predictable behavior, semantics Optimized performance Goal: Integrate manipulation of relational data with the.NET Framework Accessing a Relational Store (.NET Data Providers) Connecting, Executing Commands, Retrieving Results Common in-memory representation for tabular data (DataSet) Container of tables, columns, relations, constraints May be populated from any store, application, XML Connectionless, provider-independent Explicit Architecture Predictable behavior, semantics Optimized performance

.NET Data Provider DataReader Command Connection DataSet And Data Providers: Architecture DataSet DataAdapter

DataSets And Data Providers: Scenarios Work with data as relational tables Retrieve a single value from the database Execute a command and process the results as a stream Bind tabular results to a Windows Client Cache a set of results in memory Remote a collection of records Combine results from multiple stores Bulk load query results into SqlServer Work with data as relational tables Retrieve a single value from the database Execute a command and process the results as a stream Bind tabular results to a Windows Client Cache a set of results in memory Remote a collection of records Combine results from multiple stores Bulk load query results into SqlServer

DataSets And Data Providers Carl Perry Program Manager WebData Carl Perry Program Manager WebData

Positions Table System.Data Demo Architecture Account Table Customer Information ASP.Net Page Reader (Paging) Command Trade Resolution/History Windows Form App Data Set Connection Customers Table Customer Information Account Number Connection Data Adapter

ObjectSpaces Overview Architecture Scenarios Demo Overview Architecture Scenarios Demo

ObjectSpaces: Overview Access and manipulate data as domain objects: Customer, Order, Address Not as tables, columns, and rows Any CLR object of your choice can be persisted No need to inherit from our classes Provides a separation between business logic and data access logic We handle the CRUD operations Declarative mapping between objects and relational tables Natural, easy-to-use query language: OPath Single method call to persist a graph Access and manipulate data as domain objects: Customer, Order, Address Not as tables, columns, and rows Any CLR object of your choice can be persisted No need to inherit from our classes Provides a separation between business logic and data access logic We handle the CRUD operations Declarative mapping between objects and relational tables Natural, easy-to-use query language: OPath Single method call to persist a graph

ObjectSpaces: Architecture

ObjectSpaces: Scenarios Work with a common set of data classes across development organization Query results in terms of data classes Retrieve results as data classes Work with a set of data classes Add new objects Make changes to existing objects Delete Objects Submit changes back to database Work with a common set of data classes across development organization Query results in terms of data classes Retrieve results as data classes Work with a set of data classes Add new objects Make changes to existing objects Delete Objects Submit changes back to database

ObjectSpaces Dinesh Kulkarni Program Manager WebData Dinesh Kulkarni Program Manager WebData

Trades Table Positions Table System.Data.ObjectSpaces Demo Architecture Accounts Table ObjectReader ObjectSpace Customers Table Customer Information Managed Provider QueryUpdate Trade Business Objects ASP.Net Page

SQLXML Overview Architecture Scenarios Demo Overview Architecture Scenarios Demo

SQLXML: Overview Growing number of applications unifying under XML based interfaces Loose coupling Coping with decentralized data Managing sparse (semi-structured) data SQLXML supports XML over SQLServer XML programming model for queries and updates XQuery - Full fledged XML query language XML Views Mapping technology to expose logical XML views of SQL Server relational tables XML Views provide XQuery support over SQL Server. Growing number of applications unifying under XML based interfaces Loose coupling Coping with decentralized data Managing sparse (semi-structured) data SQLXML supports XML over SQLServer XML programming model for queries and updates XQuery - Full fledged XML query language XML Views Mapping technology to expose logical XML views of SQL Server relational tables XML Views provide XQuery support over SQL Server.

ADO.NET With SQLXML

SQLXML: Scenarios Represent data as XML Source and sink for XML Content management systems, B2B scenarios Queries and updates against XML Views Loading large XML data sets Bulk load data into existing relational table structure E.g. Catalog information Transfer data as XML between databases Agree on transfer format Apply mappings at either end Represent data as XML Source and sink for XML Content management systems, B2B scenarios Queries and updates against XML Views Loading large XML data sets Bulk load data into existing relational table structure E.g. Catalog information Transfer data as XML between databases Agree on transfer format Apply mappings at either end

SQLXML Alex Laskos Program Manager WebData Alex Laskos Program Manager WebData

SQLXML: Demo Architecture Reference Tables News XML Files News Query ASP XQueryProcessor XmlViewSchema Loader Application XmlBulkLoad XmlViewSchema News Table StockSymbol ArticleDate NewsXML

Agenda Whidbey Data Access System.Data Namespace Data Access Solutions Sample Application Whidbey Data Access Solutions DataSets and Data Providers ObjectSpaces SQLXML Related Technologies WinFS, MBF, and ObjectSpaces ObjectSpaces and Typed DataSets Summary Whidbey Data Access System.Data Namespace Data Access Solutions Sample Application Whidbey Data Access Solutions DataSets and Data Providers ObjectSpaces SQLXML Related Technologies WinFS, MBF, and ObjectSpaces ObjectSpaces and Typed DataSets Summary

Prescriptive Object model / Existing Storage Prescriptive Object Model / Prescriptive Storage Model Plain Old CLR Objects WinFS, MBF, And ObjectSpaces Programming Model Greater Flexibility Greater Functionality ObjectSpaces MBF WinFS

ObjectSpaces And Typed DataSets Typed DataSets: Strongly typed Relational objects Code-Gen classes for strongly typed access/navigation ObjectSpaces: Persistence of your objects Mapping and Query Services Typed DataSets: Strongly typed Relational objects Code-Gen classes for strongly typed access/navigation ObjectSpaces: Persistence of your objects Mapping and Query Services Typed DataSetsObjectSpaces Work with relational data in a strongly typed manner General object persistence Types based on relational classesDefine your own business classes Access to underlying datarowsEncapsulates underlying data Populate using SQLQuery in terms of Objects Generated mapping in codeDeclarative mapping in file Individual application classesShared classes across an enterprise Visual Studio designer experienceExplicit object modeling experience

Summary It’s all about Data… Understand the strengths of each technology DataSet and Data Providers Relational Model Ultimate Performance, Control ObjectSpaces Object Model Strong Business Objects decoupled from storage SQLXML XML Model Interoperable, self-describing format Pick the technology appropriate to your scenario How results will be used Tools to be applied Your knowledge/comfort level It’s all about Data… Understand the strengths of each technology DataSet and Data Providers Relational Model Ultimate Performance, Control ObjectSpaces Object Model Strong Business Objects decoupled from storage SQLXML XML Model Interoperable, self-describing format Pick the technology appropriate to your scenario How results will be used Tools to be applied Your knowledge/comfort level

Related Sessions Wednesday 10:00AM DAT402 Building Database Applications with SQL Server "Yukon": XQuery, XML Datatype 2:00PM ARC380.NET Framework: What's New in System.Xml for "Whidbey“ 5:00PM DAT410.NET Framework: Developing Applications Using the New Object-Relational Technologies in "Whidbey“ Caching Techniques for Scalable Enterprise Applications Wednesday 10:00AM DAT402 Building Database Applications with SQL Server "Yukon": XQuery, XML Datatype 2:00PM ARC380.NET Framework: What's New in System.Xml for "Whidbey“ 5:00PM DAT410.NET Framework: Developing Applications Using the New Object-Relational Technologies in "Whidbey“ Caching Techniques for Scalable Enterprise Applications

Other Resources “A First Look at ADO.NET and System.Xml V2” by Addison Wesley

Questions?

SQL Server Resources Week long SQL Server “Ask the Experts” lounge in: Foyer outside Room 309 Support for SQL Server “Yukon” PDC Preview at SQLJunkies SQL Server “Yukon” FAQ Blog at SQLTeam Other Key Resources world wide user groups, Our most active SQL Server newsgroups, Microsoft.public.sqlserver.programming Microsoft.public.sqlserver.server Microsoft.public.sqlserver.dts Microsoft.public.sqlserver.olap Microsoft.public.sqlserver.setup Microsoft.public.sqlserver.replication Microsoft.public.sqlserver.msde Week long SQL Server “Ask the Experts” lounge in: Foyer outside Room 309 Support for SQL Server “Yukon” PDC Preview at SQLJunkies SQL Server “Yukon” FAQ Blog at SQLTeam Other Key Resources world wide user groups, Our most active SQL Server newsgroups, Microsoft.public.sqlserver.programming Microsoft.public.sqlserver.server Microsoft.public.sqlserver.dts Microsoft.public.sqlserver.olap Microsoft.public.sqlserver.setup Microsoft.public.sqlserver.replication Microsoft.public.sqlserver.msde

© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.