Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager.

Similar presentations


Presentation on theme: "1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager."— Presentation transcript:

1 1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation douglasp@microsoft.com Doug Purdy Program Manager Microsoft Corporation douglasp@microsoft.com WSV303

2 2 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 Serialization

3 3 Agenda Overview What’s new in “Whidbey” What’s new in “Indigo” Moving to “Indigo” What’s in the PDC bits Wrap Up Discussion Overview What’s new in “Whidbey” What’s new in “Indigo” Moving to “Indigo” What’s in the PDC bits Wrap Up Discussion

4 4 Serialization Overview The transformation of a graph of objects to a stream and back again System.Xml.Serialization System.Runtime.Serialization The transformation of a CLR type into an another type system (XSD) and back again System.Xml.Serialization Framework-wide feature Web Services, Remoting, Yukon, etc. End-user feature The transformation of a graph of objects to a stream and back again System.Xml.Serialization System.Runtime.Serialization The transformation of a CLR type into an another type system (XSD) and back again System.Xml.Serialization Framework-wide feature Web Services, Remoting, Yukon, etc. End-user feature

5 5 Serialization In “Whidbey”

6 6 What’s New For Whidbey XmlSerializer New imperative model Schema import extensibility Serializer pregeneration Generics support SqlTypes BinaryFormatter Version tolerant serialization Performance improvements Generics support XmlSerializer New imperative model Schema import extensibility Serializer pregeneration Generics support SqlTypes BinaryFormatter Version tolerant serialization Performance improvements Generics support

7 7 Version Tolerant Serialization System.Runtime.Serialization

8 8 Serialization In “Indigo”

9 9 Base Operating System Services CLR TransactionsStorage Protocols Network Services Kernel Mode Base Class Libraries Memory Manager Hosting Layer Code Execution Loader Security Serialization Lightweight Transactions Lightweight Transactions Transaction Coordinator Kernel Transaction Manager Logging Service Kernel Hardware Abstraction Layer Process Manager Process Manager Security Reference Monitor LPC Facility Memory Manager Power Manager Config Manager Plug and Play Transacted NTFS Transacted NTFS Cache Manager Cache Manager Universal Data Format Universal Data Format Filter Engine Filter Engine TPC, UDP IPV4, IPV6 TPC, UDP IPV4, IPV6 IPSEC QOS HTTP Listener HTTP Listener Internet Connection Firewall Demand Activation and Protocol Health PNRP Native WiFi Native WiFi SIP TCP Listener TCP Listener UDP Listener UDP Listener IPC Listener IPC Listener Network Class Library GDI/GDI+ Window Manager Window Manager Global Audio Engine Global Audio Engine DirectX Graphics Graphics drivers DDI Input Manager Input Manager Audio Drivers Audio Drivers DirectX Graphics Mini port DirectX Graphics Mini port Redirectors SCSI/FC 802.3 802.11.. Device Drivers Management PresentationDataCommunication WinFSIndigo Make the connection Windows Forms Avalon ASP.NET ObjectSpaces DataSet SQL XML Providers Framework Services Schemas Data Model ADO.NET Connectivity Synchronization (WinFS, Win32..) InfoAgent (PreferenceRules..) InfoAgent (PreferenceRules..) FileSystem Services (MetaDataHandlers..) FileSystem Services (MetaDataHandlers..) Calendar Media Document … … Items Relationships Extensions Communications Manager (Port) Messaging Services Transport Channels (IPC, HTTP, TCP…) Transport Channels (IPC, HTTP, TCP…) IO Manager Channels (Datagram, Reliable, Peer, …) Policy Engine Policy Engine Message Encoder Message Encoder Channel Security Channel Security Queuing Eventing Routing Transaction Desktop Services Desktop Services Desktop Window Manager Desktop Window Manager Presentation Object Manager Desktop Composition Engine Animation and Composition Media Services Hardware Rendering Hardware Rendering Media Processing Capture and Sourcing Capture and Sourcing Software Rendering and Sinks Software Rendering and Sinks Adaptive UI Engine Adaptive UI Engine Page/Site Composition Personalization and Profiling Services Personalization and Profiling Services Membership and Security Services Membership and Security Services Designer Services Designer Services Controls Interop Engine Controls Interop Engine Controls Windows Forms Application Services Application Services Application Deployment Engine (Click-Once) Application Deployment Engine (Click-Once) People Group Identity & Security System Identity & Security System Collaboration People and Groups People and Groups Collaboration History Collaboration History Real-Time Activities Real-Time Activities Signaling Federation System Services FAT 16/32 Filter Manager Filter Manager Distributed File System Distributed File System Backup / Restore Backup / Restore File Replication Service File Replication Service Virtual Disk Service Virtual Disk Service Models Service Object T/SQL XML Document UI Media

10 10 Connector Communications Manager (Port) Transport Channels (IPC, HTTP, TCP…) Transport Channels (IPC, HTTP, TCP…) Channels (Datagram, Reliable, Peer, …) Policy Engine Policy Engine Message Encoder Message Encoder Channel Security Channel Security Service Model Hosting Environments Instance Manager Context Manager Type Integration Service Methods Declarative Behaviors Transacted Methods ASP.NET.container.exe NT Service DllHost Messaging Services System Services Queuing Routing Eventing … … Transaction Federation … … “Indigo” Architecture

11 11 A Tale Of Two Type Systems Act One (“Whidbey”) CLR XSD Challenging CLR XSD Straight Forward CLR CLR Really easy XmlSerializer Provides CLR programming model for some XSD constructs Maps some CLR types into XSD SoapFormatter Maps some CLR types (simple types) into XSD Custom SOAP encoding for the rest BinaryFormatter No support for XSD CLR  CLR only XmlSerializer Provides CLR programming model for some XSD constructs Maps some CLR types into XSD SoapFormatter Maps some CLR types (simple types) into XSD Custom SOAP encoding for the rest BinaryFormatter No support for XSD CLR  CLR only Serialization

12 12 A Tale Of Two Type Systems Act Two (“Indigo”) CLR XSD Challenging CLR XSD Straight Forward CLR CLR Really Easy There are really two areas Xml Programming Serialization Xml Programming is about, well, Xml XmlSerializer XPathNavigator … Serialization is about making CLR types Interoperable (XSD) Loosely coupled Enter the XmlFormatter... There are really two areas Xml Programming Serialization Xml Programming is about, well, Xml XmlSerializer XPathNavigator … Serialization is about making CLR types Interoperable (XSD) Loosely coupled Enter the XmlFormatter... XML Programming Serialization

13 13 XmlFormatter Architecture Serializable Types Data Contract [Serializable] Representations text/xml binary/xml Serialization Engine XmlFormatter SerializationContext Xml Processing XmlReader XmlWriter ISerializable Extensibility Surrogates Type Binders

14 14 Serializable Types Existing Types [Serializable] & ISerializable types just work Gain loose coupling & version resilient Data Contract New explicit programming model Enables loose coupling for CLR types Version resilient by default Foundation for the future Working Together Inheritance and composition just work Existing Types [Serializable] & ISerializable types just work Gain loose coupling & version resilient Data Contract New explicit programming model Enables loose coupling for CLR types Version resilient by default Foundation for the future Working Together Inheritance and composition just work

15 15 XmlFormatter And Serializable Types System.Runtime.Serialization

16 16 “Indigo” XSD Support Every serializable type is interoperable We export valid XSD for any CLR construct Our mapping is not extensible (POR for v1) Every XSD schema is supported XmlFormatter We provide a canonical CLR  XSD mapping No mapping extensibility (POR for v1) XML programming models Supports all schema constructs XmlSerializer, XPathNavigator, … Every serializable type is interoperable We export valid XSD for any CLR construct Our mapping is not extensible (POR for v1) Every XSD schema is supported XmlFormatter We provide a canonical CLR  XSD mapping No mapping extensibility (POR for v1) XML programming models Supports all schema constructs XmlSerializer, XPathNavigator, …

17 17 XSD Support System.Runtime.Serialization

18 18 Moving To “Indigo” “Indigo” works well with COM+, MSMQ, WSE, and ASMX apps “Indigo” nodes are easy to integrate into existing systems Existing applications have an easy migration path to “Indigo” Existing serializable types and serialization extensibility points just work Follow the prescriptive guidance for writing distributed applications Read and follow the serializable type guidelines “Indigo” works well with COM+, MSMQ, WSE, and ASMX apps “Indigo” nodes are easy to integrate into existing systems Existing applications have an easy migration path to “Indigo” Existing serializable types and serialization extensibility points just work Follow the prescriptive guidance for writing distributed applications Read and follow the serializable type guidelines

19 19 About The PDC Bits Two “Whidbey” features are available IXmlSerializable SqlTypes The rest are being coded as we speak System.Serialization Successor to the XmlSerializer Yet another XML programming model Taught us invaluable lessons Will likely not ship with “Indigo” Two “Whidbey” features are available IXmlSerializable SqlTypes The rest are being coded as we speak System.Serialization Successor to the XmlSerializer Yet another XML programming model Taught us invaluable lessons Will likely not ship with “Indigo”

20 20 For More Information Anytime E-Mail: douglasp@microsoft.comdouglasp@microsoft.com Blog: http://www.douglasp.comhttp://www.douglasp.com LHDC: http://msdn.microsoft.com/longhornhttp://msdn.microsoft.com/longhorn NS: microsoft.public.windows.developer.winfx.indigo At PDC Hands on labs: On-site or download from CommNet Web/Services Lounge: 309 Foyer Ask The Experts: Tuesday 7 P.M. – 9 P.M. Hall G, H PDC Weblogs: http://pdcbloggers.nethttp://pdcbloggers.net Anytime E-Mail: douglasp@microsoft.comdouglasp@microsoft.com Blog: http://www.douglasp.comhttp://www.douglasp.com LHDC: http://msdn.microsoft.com/longhornhttp://msdn.microsoft.com/longhorn NS: microsoft.public.windows.developer.winfx.indigo At PDC Hands on labs: On-site or download from CommNet Web/Services Lounge: 309 Foyer Ask The Experts: Tuesday 7 P.M. – 9 P.M. Hall G, H PDC Weblogs: http://pdcbloggers.nethttp://pdcbloggers.net

21 21 This Talk In A Nutshell “Whidbey” offers a number evolutionary features to current serialization stacks “Indigo” delivers a unified serialization engine Interoperable Backward compatibility Version resilient High performance “Indigo” supports many XML programming models We need your feedback!!! “Whidbey” offers a number evolutionary features to current serialization stacks “Indigo” delivers a unified serialization engine Interoperable Backward compatibility Version resilient High performance “Indigo” supports many XML programming models We need your feedback!!!

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


Download ppt "1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager."

Similar presentations


Ads by Google