“Indigo”: Connected Application Technology Roadmap

Slides:



Advertisements
Similar presentations
Microsoft Windows NT Embedded 4.0
Advertisements

Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright.
Henrico Dolfing Business Segment Partners. Océ Document Technologies GmbH2 June, NET Framework Version 3.0.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
1 Federating Identity and Authorization Across Organizations and Platforms Matthew Hur Lead Program Manager Microsoft Corporation
Module 1: Overview of the Microsoft.NET Framework.
Web Services (ASMX 2.0 and WSE 3.0) Mike Taulty Developer & Platform Group Microsoft Ltd
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.
Getting Started with Windows Communication Foundation 4.5 Ed Jones, MCT, MCPD, MCTS Consultant RBA Inc.
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
SP2 Mikael Nystrom. Agenda Översikt Installation.
Building Rights Management Enabled Applications For Windows "Longhorn" Steve Bourne Chandramouli Venkatesh Microsoft Corporation Steve Bourne Chandramouli.
Winter Consolidated Server Deployment Guide for Hosted Messaging and Collaboration version 3.5 Philippe Maurent Principal Consultant Microsoft.
1 Programming Windows Help Shane McRoberts Group Program Manager Microsoft Corporation Shane McRoberts Group Program Manager Microsoft.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Data Access Design Patterns: Navigating the Data Access Maze Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software Architect Microsoft.
1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager.
.NET Remoting Architecture. Slide 2 CITE 4420.NET Remoting Topics Remoting Boundaries Crossing the Boundaries Distributed Applications Marshalling Channels.
Technology Overview. Agenda What’s New and Better in Windows Server 2003? Why Upgrade to Windows Server 2003 ?  From Windows NT 4.0  From Windows 2000.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
1 Keyboard, Speech, and Pen Input in Your Controls Kevin Gjerstad Lead Program Manager Kevin Gjerstad Lead Program Manager
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
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.
1 “Indigo”: Services And The Future Of Distributed Applications Don Box Architect Microsoft Corporation here –
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
CF and.NET Working Together Using Web Services Geoff Snowman Developer Community Champion Microsoft Corporation.
OFC290 Information Rights Management in Microsoft Office 2003 Lauren Antonoff Group Program Manager.
1 Introduction to Microsoft Windows 2000 Windows 2000 Overview Windows 2000 Architecture Overview Windows 2000 Directory Services Overview Logging On to.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
1.NET Framework Overview: A Road Map Brad Abrams.NET Framework Team Microsoft Corporation Brad Abrams.NET Framework.
Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program.
.NET Enterprise Services COM+ 1.5 麥超俊 Bobby Mak 架構技術推廣經理開發工具暨平台推廣處台灣微軟股份有限公司.
1 Application Model Fundamentals Chris Anderson Software Architect Microsoft Corporation Chris Anderson Software Architect Microsoft.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Web Services Error Handling and Debugging. Agenda Simple SOAP faults Advanced SOAP faults SOAP headers and faults Error handling From a Service Perspective.
“Avalon”: Using UI Automation to Improve Application Testability Robert Sinclair Group Manager Microsoft Corporation Robert Sinclair.
Base Operating System Services CLR TransactionsStorage Protocols Network Services Kernel Mode Base Class Libraries Memory Manager Hosting Layer Code Execution.
1 Integrating Real-time Collaboration into your Applications Stephanie Lindsey Program Manager Microsoft Corporation Stephanie.
1 Programming "Indigo" Part 2: Secure, Reliable, Transacted Services Session Code: WSV 302 Don Box Architect Microsoft Corporation
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.
.NET Mobile Application Development XML Web Services.
SQL Server Notifications: Invalidating Cached Results Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software.
1 “Indigo” & Web Services Roadmap David Gristwood.
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 BizTalk Server 2004, “Indigo” And “Yukon” Scott Woodgate Lead Product Manager E-Business Microsoft Corporation Scott Woodgate Lead Product Manager E-Business.
Jim Fawcett CSE681 – SW Modeling & Analysis Spring 2005
Introducing the Microsoft® .NET Framework
Session Code: CLI312 Windows “Longhorn:” Enhancements For A Trustworthy Application Experience Jude Kavalam Group Program Manager Microsoft Corporation.
Introduction to Windows Azure AppFabric
Using Audio, Video, and Imaging in your Longhorn Applications
System.Search, aka “Find My Stuff”
Avalon – Using Data In Your Applications
Transactional Programming In A Windows World
Michael Wallent General Manager Windows Client Platform
Chapter 3: Windows7 Part 4.
“Whidbey” CLR Internals
Connected Systems Architecture
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
People And Groups Controls In Windows "Longhorn"
Exploiting WinFX from Win32/MFC Applications
Distributed Applications on Windows Vista
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:

“Indigo”: Connected Application Technology Roadmap 4/24/2017 WSV302 “Indigo”: Connected Application Technology Roadmap Joe Long Product Unit Manager Microsoft Corporation joelong@microsoft.com

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

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

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

4/24/2017 Agenda I have an application – how do I make the binary work with Indigo? Now how do I move the code to Indigo? If I start writing a new app today, what should I do to best set myself up to move to Indigo?

Using Indigo With Existing Systems A.k.a., Wire Interop 4/24/2017 Using Indigo With Existing Systems A.k.a., Wire Interop

4/24/2017 The Problem Client Server API API Infrastructure Infrastructure Wire Protocol Can not recompile or redeploy the client or server application Need to allow incremental upgrades of clients and/or servers

Solution Space Teach existing infrastructure new protocols 4/24/2017 Solution Space Teach existing infrastructure new protocols Better support for Services Build internet scale, secure, reliable, transacted applications that can span trust boundaries Expose internal applications to business partners and customers safely Ride the Wave Better routers, firewalls, tools, etc. Teach new infrastructure existing protocols This becomes a new programming model for building apps using the existing infrastructure Will not solve any of the fundamental issues that the existing protocols have (e.g., interoperability, internet scale, etc.)

Architectural Solutions 4/24/2017 Architectural Solutions Client Server API API Infrastructure New Wire Protocol Infrastructure Infrastructure New Wire Protocol Infrastructure Wire Protocol New Wire Protocol

Wire Interop Options Infrastructure Protocols Infrastructure Client 4/24/2017 Wire Interop Options Infrastructure Protocols Infrastructure Client Binaries Upgraded Server Binaries Upgraded Existing Upgraded Existing Upgraded Existing Web Service Protocols Existing Protocols Upgraded Infrastructure (LH Client, LH Server) Existing Infrastructure (W2K, XP, or W2K03)

Indigo And Existing Technology Binary Interoperability 4/24/2017 Indigo And Existing Technology Binary Interoperability It Just Works – no changes required ASP.NET Web Services (ASMX) The latest version of Web Services Enhancements (WSE) Upgrade to Longhorn required COM+ and MSMQ No Binary Interop .NET Remoting Older versions of WSE Existing Protocols (DCOM/MSMQ) will be fully supported in Longhorn

COM+ Binary Interop Drilldown 4/24/2017 COM+ Binary Interop Drilldown

COM+ Migration Fundamentals 4/24/2017 COM+ Migration Fundamentals Existing binaries just work; No recompilation required Focus on bridging service environments; COM+ services will interact seamlessly with Indigo services COM+ applications can be accessed from Indigo clients Indigo Web services can be accessed from COM clients

COM+ Wire Interop – ASP App 4/24/2017 COM+ Wire Interop – ASP App SQL Expose as a Web Service IIS COM+ IIS COM+ TDS Balancing Load HTTP Firewall HTTP HTTP IIS COM+ TDS HTTP Cluster IIS COM+ SQL HTTP TDS Upgraded Existing Upgraded

COM+ Scenario: Rich Client 4/24/2017 COM+ Scenario: Rich Client Web Services COM+ Expose as a Web Service Upgraded Existing Rich Client Server API API COM+ COM+ DCOM

COM+ Binary Migration Details 4/24/2017 COM+ Binary Migration Details Requirements Use a TLB Be installed in COM+ Declare all co-classes and all interfaces on each co-class in the tlb Declare explicit interface types as parameters Avoid Explicit use of COSERVERINFO Let config decide where the service lives Using interface pointers in custom UCPs Marshal-by-value approach works better Calling CoSetProxyBlanket after first use of proxy Will not be supported Proxy/stub marshalling

MSMQ Binary Interop Drilldown 4/24/2017 MSMQ Binary Interop Drilldown

MSMQ Server Wire Interop 4/24/2017 MSMQ Server Wire Interop Web Services MSMQ Expose as a Web Service Upgraded Existing Client Server API API MSMQ MSMQ MSMQ / SRMP

MSMQ Binary Migration Details 4/24/2017 MSMQ Binary Migration Details Requirements Upgrade the platform Avoid Nothing: The full set of MSMQ features will interop Will not be supported

Other Programming Models 4/24/2017 Other Programming Models ASMX: Indigo V1 will fully support ASMX wire protocol (SOAP 1.1 and SOAP 1.2) WSE: The last version of WSE will have wire interop with Indigo V1 .NET Remoting: No binary interop supported Stay tuned for a great code migration path!

Why Upgrade Your Infrastructure 4/24/2017 Why Upgrade Your Infrastructure Better support for services Build internet scale, secure, reliable, transacted applications that can span trust boundaries Expose internal applications to business partners and customers safely Rich client server internet applications enabled Application context (e.g., transactions and security) flows across boundaries Ride the Wave Better routers Better firewalls Better tools Etc. Allows new clients to talk to existing servers Migrate at your own speed

Migrating Existing Code To Indigo 4/24/2017 Migrating Existing Code To Indigo

Migrating Managed Code To The Indigo Programming Model 4/24/2017 Migrating Managed Code To The Indigo Programming Model Existing Code Base Simple and Mechanical ASMX (ASP.NET Web Services) P .NET Remoting Enterprise Services WSE O System.Messaging Simple and Mechanical: Read a whitepaper and write a script

Managed Code Migration Details 4/24/2017 Managed Code Migration Details

General Migration The code “inside the function” will work unmodified 4/24/2017 General Migration The code “inside the function” will work unmodified Parameters work unmodified You can always use Indigo and the existing stacks in the same App Domain Avoid or abstract existing extensibility models

ASMX To Indigo Client Code 4/24/2017 ASMX To Indigo Client Code // using System.Web.Services;  using System.ServiceModel; using System.Web.Services;  public class Client {     public static void Main(string[] args)     {                 AccountingOperation credit = new AccountingOperation("Accounts payable", 100);         AccountingOperation debit = new AccountingOperation("Assets", 100);         accountingService.AddEntry(debit, credit);            } } // Accounting accountingService = new Accounting(); Accounting accountingService = ServiceManager.CreateProxy<Accounting>(); Accounting accountingService = new Accounting();

ASMX To Indigo Server Code 4/24/2017 ASMX To Indigo Server Code // using System.Web.Services; using System.Web.Services;      public class AccountingOperation {     public string AccountName;     public long Amount;        } public class Accounting : WebService     [WebMethod(TransactionOption=TransactionOption.RequiresNew)]     using System.ServiceModel; using System.ServiceModel.Compat; [Service] // [WebMethod(TransactionOption=TransactionOption.RequiresNew)] public int AddEntry(AccountingOperation debit,                         AccountingOperation credit)     {         // Add entry to internal accounting book         // return id.     } } [ServiceMethod] [TransactionScope]

4/24/2017 ASMX Code Migration The code “inside the function” will work unmodified Parameters work unmodified WebMethodAttribute and XML Serialization attributes fully supported SOAPExtensions will be simple and mechanical to rewrite

ASMX Code Migration – Caveats 4/24/2017 ASMX Code Migration – Caveats HTTP Context object not supported The information is available to the developer only when running over HTTP No ASP.NET application state support No ASP.NET session state that can survive process recycles Indigo will not support the WSDL customization features of ASMX But will support the full set of scenarios

.NET Remoting To Indigo Client Code 4/24/2017 .NET Remoting To Indigo Client Code // using System.Runtime.Remoting;  Accounting accountingService = ServiceManager.CreateProxy<Accounting>(); using System.ServiceModel; using System.Runtime.Remoting;  public class Client {     public static void Main(string[] args)     {         RemotingConfiguration.Configure("Client.Config");         Accounting accounting = new Accounting();              AccountingOperation credit = new AccountingOperation("Accounts payable", 100);         AccountingOperation debit = new AccountingOperation("Assets", 100);         accounting.AddEntry(debit, credit);     } } // RemotingConfiguration.Configure("Client.Config"); // Accounting accounting = new Accounting();

.NET Remoting To Indigo Host Code 4/24/2017 .NET Remoting To Indigo Host Code // using System.Runtime.Remoting; using System.ServiceModel;  using System.Runtime.Remoting; public class Host {     public static void Main(string[] args)     {         RemotingConfiguration.Configure("Server.Config"); // RemotingConfiguration.Configure("Server.Config");    Console.WriteLine("Host is ready to process remote messages."); Console.ReadLine();     } } ServiceManager manager = new ServiceManager("http://pdc-svr"); manager.Services.Add("/Accounting", typeof(Accounting));

.NET Remoting to Indigo Server Object Code 4/24/2017 .NET Remoting to Indigo Server Object Code // using System.Runtime.Remoting; using System.Runtime.Remoting;      public class AccountingOperation {     public string AccountName;     public long Amount;        } public class Accounting : MarshalByRefObject     public int AddEntry(AccountingOperation debit,                         AccountingOperation credit)     {         // Add entry to internal accounting book         // return id.     } using System.ServiceModel; [RemoteObject]

.NET Remoting Code Migration 4/24/2017 .NET Remoting Code Migration The code “inside the function” will work unmodified Parameters work unmodified Fully support the transparent remoting programming model Except for “new”

.NET Remoting Migration – Caveats 4/24/2017 .NET Remoting Migration – Caveats Channels and Sinks are implemented in a new way in Indigo and do not move forward Plumbing that was built to support features missing in .NET Remoting (such as security) may be in Indigo and this code can just be thrown away Plumbing that was built to support features not in Indigo will have to be rewritten using Indigo extensibility The SynchronizationAttribute is no longer needed nor recognized in Indigo (there is no ContextBoundObject in Indigo)

EnterpriseServices to Indigo (1 of 3) 4/24/2017 EnterpriseServices to Indigo (1 of 3) // using System.EnterpriseServices; using System.ServiceModel.Compat; using System.EnterpriseServices; [ComponentAccessControl] [SecureMethod] [Transaction(TransactionOption.Required)]   public class Accounting {            public void AddCreditEntry(string creditAccount, int creditAmount)     {             } } : ServicedComponent

EnterpriseServices to Indigo (2 of 3) 4/24/2017 EnterpriseServices to Indigo (2 of 3) // using System.EntepriseServices; // [ComponentAccessControl] // [SecureMethod] // [Transaction(TransactionOption.Required)] using System.EnterpriseServices; [ComponentAccessControl] [SecureMethod] [Transaction(TransactionOption.Required)] using System.ServiceModel;   public class Accounting {            public void AddCreditEntry(string creditAccount, int creditAmount)     {             } } [RemoteObject] : ServicedComponent : MarshalByRefObject // ServicedComponent [TransactionScope] [SecurityRole("PostGroup")]

EnterpriseServices to Indigo (3 of 3) 4/24/2017 EnterpriseServices to Indigo (3 of 3) // using System.EntepriseServices; // [ComponentAccessControl] // [SecureMethod] // [Transaction(TransactionOption.Required)] using System.EnterpriseServices; [ComponentAccessControl] [SecureMethod] [Transaction(TransactionOption.Required)] using System.ServiceModel;   public class Accounting {            public void AddCreditEntry(string creditAccount, int creditAmount)     {             } } [Service] : ServicedComponent //:ServicedComponent [ServiceMethod] [TransactionScope] [SecurityRole("PostGroup")]

Enterprise Services Code Migration 4/24/2017 Enterprise Services Code Migration Most Enterprise Services code is simple and mechanical to migrate Fully integrated with .NET config and hosting model Attributes for Transactions, Security, Lifetime management are fully supported

Enterprise Services Code Migration – Caveats 4/24/2017 Enterprise Services Code Migration – Caveats QC, LCE, and CRM will not be migrated All of the scenarios are supported with new programming model Attributes that configure the COM+ catalog or the COM+ process model will no longer be needed nor recognized by Indigo

4/24/2017 WSE Code Migration WSE is a vehicle for early adopters to take advantage of leading edge Service Oriented technology WSE should be used when gaining a first mover advantage is more important than having code portability to the next major revision of the platform Migrating WSE code to Indigo may require a non-trivial development investment We will provide whitepapers on how to migrate WSE code to Indigo

System.Messaging Code Migration 4/24/2017 System.Messaging Code Migration No plan to implement System.Messaging on top of Indigo

Prescriptive Guidance 4/24/2017 Prescriptive Guidance

Application Architectures 4/24/2017 Application Architectures Object Orientation Assume homogeneous platform and execution environment Share types, not schemas Assume cheap, transparent communication Are linked: Object identity and lifetime maintained by infrastructure Typically require deployment of both client and server in sync Are easy to talk about and become a natural path for customers to follow Customers have 20+ years of experience and great intuition about what “object oriented is” Service Orientation Assume heterogeneous platform and execution environment Share schemas, not types Assume variable cost, explicit communication Are autonomous: Security and failure isolation are a must Ease “continuous deployment” of client and server separately Builds on ideas from component software, distributed objects, and MOM Dominant theme is to manage/reduce sharing between services

Application Boundaries 4/24/2017 Application Boundaries Application boundaries Platform Deployment Trust Objects are appropriate within boundaries Services are appropriate across and within boundaries

Today’s Prescriptive Guidance 4/24/2017 Today’s Prescriptive Guidance Build services using ASMX Enhance your ASMX service with WSE if you need the WSE feature set and you can accept the support policy Use object technology in a service’s implementation Use Enterprise Services if You need ES rich feature set You are communicating between components on the local machine and have performance issues with ASMX or WSE Use .NET Remoting if You need to integrate with an existing proprietary protocol You are communicating in-process, cross app domain Use System.Messaging if you need the reliable messaging and queuing features in MSMQ

Today’s Caveats ASMX .NET Remoting Enterprise Services 4/24/2017 Today’s Caveats ASMX Avoid or abstract using low-level extensibility such as the HTTP Context object .NET Remoting Avoid or abstract using low-level extensibility such as .NET Remoting sinks and channels Enterprise Services Avoid passing object references inside of ES Do not use COM+ APIs – use System.EnterpriseServices Do not use MSMQ APIs – use System.Messaging

Customer Migration Summary 4/24/2017 Customer Migration Summary We will make Indigo work well with COM+, MSMQ, WSE, and ASMX apps New Indigo nodes can be easily integrated into existing systems There is an easy migration path to Indigo from today’s RPC style programming models Understand and follow the prescriptive guidance for writing distributed applications

4/24/2017 Discussion

For More Information Come see me 4/24/2017 For More Information Come see me Immediately after this session Web/Services Lounge: 309 Foyer MSDN “Longhorn” DevCenter http://msdn.microsoft.com/longhorn Newsgroup microsoft.public.windows.developer.winfx.indigo At PDC Hands on labs: On-site or download from CommNet Ask The Experts: Tuesday 7 P.M. – 9 P.M. Hall G, H PDC Weblogs: http://pdcbloggers.net

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

4/24/2017