330 likes | 401 Views
Introducing WinFX Discover Next Generation Managed APIs. Christian Weyer thinktecture christian.weyer@thinktecture.com 7 & 8 March 2006 ICC Gent. Christian Weyer and. Support and consulting services for software developers and architects Renowned experts in today’s technologies
E N D
Introducing WinFXDiscover Next Generation Managed APIs Christian Weyer thinktecture christian.weyer@thinktecture.com 7 & 8 March 2006 ICC Gent
Christian Weyer and • Support and consulting services for software developers and architects • Renowned experts in today’s technologies • We track future technologies and work closely with Microsoft • My area of expertise are distributed applications, Web Services in particular, Web Services interoperability and all things service orientation • http://www.thinktecture.com • christian.weyer@thinktecture.com • Independent Microsoft Regional Director for Germany • Microsoft MVP for Solution Architecture
Agenda • The Windows Platform • Presentation Foundation • Communication Foundation • Workflow Foundation
Microsoft Windows PlatformArchitectural Principles Presentation Data Communication Avalon Base Operating System Services
System.ServiceModel (Contract, Activation, Behaviors, …) Message Binding (WS-*, HTTP/XML, …) Channel (TCP, PeerChannel, MSMQ, Security, Reliability, …) People Near Me 802.11 AutoConfig Extensible Authorization Protocol NTFS / Transacted DFS (NS, Replication) FAT 16/32,UDFS Network &Offline FS Lightweight Transactions IPV4, IPV6 UDP, TCP IPSEC QOS HTTP Listener Shadow Copy Volume Encryption Bandwidth Manager Virtual Disk Service TransactionCoordinator 802.3 802.11 RAS Plug andPlay MemoryManager PowerManager Common Logging Services TransactionManager Process Manager Config Manager Cache Manager SecurityMonitor RPC / LPC I/O Manager Device Bus Manager (USB, PCI, ...) Windows Driver Foundation Windows API V.Next Presentation Data Communication Windows Presentation Foundation Windows Forms ASP.NET Windows Data Foundation Windows WorkflowFoundation (System.Workflow) Identity and AccessServices (AD, RMS, AD-STS, “InfoCard” Services) … Language Integrated Query Documents UI Media “Atlas” Client Script Library Application Services Controls, Control Interop Server Controls “Atlas” Services Bridge Standard Query Operators “XLinq” (System.XML) “DLinq” (ADO.NET) … Windows Communication Foundation Elements Desktop Window Manager Page App Services Visual System Objects XML SQL WinFS DB2, Oracle, Files, … … Application Services Desktop Composition Engine Designer Services Application Hosting Hardware Rendering Software Rendering Network Class Library Base Operating System Services COM CLR Base Class Libraries Windows Activation Service / Internet Information Service (Demand Activation and Protocol Health) COM / DCOM Memory Manager Code Execution Loader Security Serialization OLE32 Click-Once Deployment Hosting Layer Security, Identity & Access Services (Crypto, SSPI, ACLs, Audit, WinLogon, SmartCard, Integrity, …) Management Services (MMC, Eventing, Tracing, WMI, Update, Group Policy, Scheduler) File System Filter Manager Portable Media Devices Support (Camera, Cell, …) GDI/GDI+ Window Manager DirectX (Direct 3D, Direct Sound, …) Network Access Protection Network Diagnostics Framework Name Resolution (PNRP,…) Network Location Awareness PMD Drivers Input Manager Printer Drivers Audio Drivers Display Drivers (VDDM) Storage Drivers (ScsiPort, StorPort, UFD, …) IPMI Driver Hardware Abstraction Layer
Supported Platforms • Windows Vista • Windows "Longhorn" Server • Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 R2 • Separate Install • Get it via Microsoft Update, App Bootstrapper, MSI on CD, etc. ... • ... just like the .NET Framework today
Presentation Challenges How do I improve productivity and usability? How can software exploit available hardware and form factors? How do I differentiate my software from my competition? How can my software reach the broadest possible audience? How can developers and designers collaborate?
PresentationWindows Presentation Foundation • Unified approach to UI, Documents, and Media • Integration as part of development and experience • Integrated, vector-based composition engine • Utilizing the power of the PC throughout the graphics stack • Declarative programming • Bringing designers directly into application development • Ease of deployment • Allowing administrators to deploy and manage applications securely
WPF Application Model Document Model Graphics Model Tools and Languages Element Services Media Integration Layer Composition and Rendering .NET Framework DirectX Integrating UI Technologies • Application Model • Composable component architecture • Layout engine • Two-way transformable data binding • Rich visual styling and theming • Browser hosting • Graphics Model • 2D & 3D Graphics • Imaging • Text • Video and audio • Animation • Document Model • Fixed, flow and adaptive layouts • Advanced typography • Container services • Rights management
<Button Width="100"> OK <Button.Background> LightBlue </Button.Background> </Button> Button b1 = new Button(); b1.Content = "OK"; b1.Background = new SolidColorBrush(Colors.LightBlue); b1.Width = 100; Dim b1 As New Button b1.Content = "OK" b1.Background = New _ SolidColorBrush(Colors.LightBlue) b1.Width = 100 XAML • Markup for Windows • Build applications in simple declarative statements • Can be used for any CLR object hierarchy • Code and content are separate • Streamline collaboration between designers and developers • Easy for tools to consume and generate
New Graphics Tooling • Microsoft Expression Tools Suite • Graphic Designer • brings together the best of vector and pixel-based capabilities, letting you explore new creative and cutting edge possibilities • Interactive Designer • helps you create streamlined, innovative and just plain beautiful applications. Users experience increased satisfaction, while you develop in a flexible, productive environment • Web Designer • gives you all the powerful tools you'll need to produce high-quality, standard-based Web sites the way you want them
Introducing “WPF/E”Lightweight WPF runtime • Interactive experiences for devices and PC platforms • Strict subset of Windows Presentation Foundation • Lightweight download • Programming model uses XAML + JScript • Access to all WPF tooling WPF-based Tools <XAML> <Button Width="100px"> OK <Button.Background> LightBlue </Button.Background> </Button> </XAML>
Where does it fit? • ASP.NET, Atlas, Windows Forms, WPF, Office – oh my! • ASP.NET • Web apps; broad reach; no deployment and versioning issues • Atlas • Web apps; enhanced user experience • Windows Forms • Windows apps; proven and mature • WPF • Windows and browser apps; new and evolving; consolidated concepts; ‘everything’ is first-class citizen; different form and device factors
Communication Challenges How can I write one program that talks to everything? How do I manage identity and access between applications? How do I make it work over peer-to-peer and enterprise networks? How do I create applications that cross trust boundaries? How do I ensure reliable and secure connections?
Peer to peer infrastructure for collaborative applications PeerChannel PeerNet People near me Federated Identity CommunicationWindows Communication Foundation Unified communication platform for distributed applications • Web Services • REST/POX • MSMQ Channel • Instrumentation and Tracing
The unified programming model for rapidly building service-oriented applications on the Windows platform Windows Communication Foundation Unifies today’s distributed technology stacks Appropriate for use on-machine, cross machine, and cross Internet Unification ServiceOrientation • Codifies best practices for building distributed applications Interoperates with applications running on other platforms Integrates with Microsoft’s own distributed stacks Integration
Messages & Endpoints Client Service Endpoint Endpoint Endpoint Endpoint
A A A B B B C C C C B A Address, Binding, Contract Client Service Address Where? Binding How? Contract What? Endpoint
Contracts in WCF public class Order{ public int orderID; public int partNumber; public int price; public string info; public void Process(); public GetInfo();} [DataContract] public class Order{ [DataMember] public int orderID; [DataMember] public int partNumber; [DataMember] public int price; [DataMember] public string info; } [DataContract] public class Query{ [DataMember] public int orderID;} [DataContract]public class Info{ [DataMember] public string info;} [ServiceContract]public interface IOrderService{ [OperationContract] void Process(Order o); [OperationContract] Info GetInfo(Query q); }
Features Summary Address Binding Contract Behavior Request/Response InstancingBehavior HTTPTransport WS-SecurityProtocol ConcurrencyBehavior http://... Peer Transport net.p2p://... Throttling Behavior WS-RMProtocol TCP Transport net.tcp://... MetadataBehavior NamedPipeTransport WS-CoordProtocol One-Way net.pipe://... Error Behavior TransactionBehavior MSMQTransport DuplexChannel net.msmq://... CustomBehavior SecurityBehavior Duplex CustomTransport CustomProtocol xxx://... Externally visible, per-endpoint Opaque, per-service, endpoint, or operation
Standard Bindings T = Transport Security | S = WS-Security | O = One-Way Only
Why does Workflow matter? • Workflow is everywhere • Every “if” statement • Every Web page transition • Top driver of application complexity • Need to take the next step • Capture complex workflows • Expose them to developers • Enable on-the-fly extensions
Windows Workflow Foundation The workflow framework & tools for Microsoft products and partner/customer ecosystem • Single workflow technology for Windows • Base for Microsoft products and ISV/customer solutions • One technology for human and system workflow scenarios • A framework for building workflow into applications • A framework to build on - not an application or server • Exposed to developers via WinFX • Brings workflow to mainstream .NET development • Transform workflow from niche to mainstream paradigm • Build strong partner & solution ecosystem
Windows Workflow Foundation Visual Designer Workflows are a set of Activities AWorkflow Key Concepts Workflows run within a Host Process: any application or server Developers can build their own Custom Activity Libraries AnActivity Custom Activity Library Components Windows Workflow Foundation Base Activity Library:Out-of-box activities and base for custom activities Base Activity Library Runtime Engine:Workflow execution and state management Runtime Engine Runtime Services:Hosting flexibility and communication Runtime Services Visual Designer:Graphical and code-based construction Host Process
State1 State2 Flexible Control Flow State Machine Workflow Sequential Workflow External events drive processing order Sequential structure prescribes processing order Step1 Event Step2 Event • Prescriptive, formal • Automation scenarios • Flowchart metaphor • Reactive, event-driven • Skip/re-work, exception handling • Graph metaphor Rules-driven Activities Rule1 Step1 Rules + data state drive processing order Data Step2 Rule2 • Data-driven • Simple Conditions, complex Policies • Constrained Activity Group
Runtime Engine • provides intrinsic behaviors to activities WorkflowExecution State Management TrackingInfrastructure Dynamic Update • Runtime Services • hosting flexibility - pluggable implementations (with defaults) Tracking … Persistence Communication Runtime Engine and Services My Workflow Workflow Foundation • Base Activity Library Host Process
Workflow Designers (À la ‘WinForms’ Designer) • Create new workflows • Visual (/code) authoring • Seamlessly integrate .NET code with round-tripping • Visual debugging • Themes support • Designer re-hosting Sequential Designer State Machine Designer Activity Designer (À la ‘UserControl’ Designer) • Create new activities • Visual (/code) authoring • Inherit from base activities or start from scratch • Black-box/Gray-box composition support Activity Designer Visual Studio Workflow Designers
“All together now!” • ‘Perfect’ fit: WF and WCF • Have WCF activities for WF • Have a WF host for WCF • Both WF and WCF will be at the core of a number of other technologies and products • WPF always kind of orthogonal to other two pillars • But can be used hand-in-hand quite nicely • Demo app: Microsoft Max • We can expect some interesting cross-pillar applications in the upcoming months
WinFX In-Depth Session • WinFX - A Lap Around the Windows Presentation Foundation • March 7, 2006 - 13:00 - 14:15Speaker: Bart De Smet • WinFX - Windows Communications Foundation: Building Next Generation Distributed Applications • March 7, 2006 - 14:30 - 15:45Speaker: Christian Weyer • WinFX - Workflow-based Applications using Windows Workflow Foundation • March 7, 2006 - 16:15 - 17:30Speaker: Christian Weyer
System.ServiceModel (Contract, Activation, Behaviors, …) Message Binding (WS-*, HTTP/XML, …) Channel (TCP, PeerChannel, MSMQ, Security, Reliability, …) People Near Me 802.11 AutoConfig Extensible Authorization Protocol NTFS / Transacted DFS (NS, Replication) FAT 16/32,UDFS Network &Offline FS Lightweight Transactions IPV4, IPV6 UDP, TCP IPSEC QOS HTTP Listener Shadow Copy Volume Encryption Bandwidth Manager Virtual Disk Service TransactionCoordinator 802.3 802.11 RAS Plug andPlay MemoryManager PowerManager Common Logging Services TransactionManager Process Manager Config Manager Cache Manager SecurityMonitor RPC / LPC I/O Manager Device Bus Manager (USB, PCI, ...) Windows Driver Foundation Windows API V.Next Presentation Data Communication Windows Presentation Foundation Windows Forms ASP.NET Windows Data Foundation Windows WorkflowFoundation (System.Workflow) Identity and AccessServices (AD, RMS, AD-STS, “InfoCard” Services) … Language Integrated Query Documents UI Media “Atlas” Client Script Library Application Services Controls, Control Interop Server Controls “Atlas” Services Bridge Standard Query Operators “XLinq” (System.XML) “DLinq” (ADO.NET) … Windows Communication Foundation Elements Desktop Window Manager Page App Services Visual System Objects XML SQL WinFS DB2, Oracle, Files, … … Application Services Desktop Composition Engine Designer Services Application Hosting Hardware Rendering Software Rendering Network Class Library Base Operating System Services COM CLR Base Class Libraries Windows Activation Service / Internet Information Service (Demand Activation and Protocol Health) COM / DCOM Memory Manager Code Execution Loader Security Serialization OLE32 Click-Once Deployment Hosting Layer Security, Identity & Access Services (Crypto, SSPI, ACLs, Audit, WinLogon, SmartCard, Integrity, …) Management Services (MMC, Eventing, Tracing, WMI, Update, Group Policy, Scheduler) File System Filter Manager Portable Media Devices Support (Camera, Cell, …) GDI/GDI+ Window Manager DirectX (Direct 3D, Direct Sound, …) Network Access Protection Network Diagnostics Framework Name Resolution (PNRP,…) Network Location Awareness PMD Drivers Input Manager Printer Drivers Audio Drivers Display Drivers (VDDM) Storage Drivers (ScsiPort, StorPort, UFD, …) IPMI Driver Hardware Abstraction Layer
Resources • WinFX Developer Center • http://msdn.microsoft.com/winfx/ • WPF • http://msdn.microsoft.com/windowsvista/building/presentation/ • WCF • http://windowscommunication.net/ • WF • http://www.windowsworkflow.net/ • Microsoft Max • http://www.microsoft.com/max/ • Blog Christian Weyer • http://blogs.thinktecture.com/cweyer/
{ } In-depth support and consulting for software architects and developers http://www.thinktecture.com/ christian.weyer@thinktecture.com http://blogs.thinktecture.com/cweyer/