1 / 65

Microsoft Development Platform and Services

Microsoft Development Platform and Services. Ivan Pavlovi ć, Hive Studios Visual C# MVP, MCSD, MCDBA, MCT paki@hive-studios.com http://msforge.net/blogs/paki. Agenda. BizLayer. Communication + Workflow + Services "Dublin" Server Enhancements Azure .NET Services Software Factories.

page
Download Presentation

Microsoft Development Platform and Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microsoft Development Platform and Services Ivan Pavlović, Hive Studios Visual C# MVP, MCSD, MCDBA, MCT paki@hive-studios.com http://msforge.net/blogs/paki

  2. Agenda

  3. BizLayer • Communication + Workflow + Services • "Dublin" Server Enhancements • Azure .NET Services • Software Factories

  4. Microsoft Development Platform In the Cloud On Premise Client & UI Composition User Interface & Interaction Business Layer Composition .NET Framework Azure Services, .NET Framework WCF WCF, WF Windows Azure Azure .NET Services Data Layer Access to Back-end

  5. Unified Programming Model .NET Remoting ASMX Interop with other platforms Extensibility Location transparency Managed COM+ APIs Message- Oriented Programming WS-* Protocol Support Enterprise Services System.Messaging WSE

  6. Client Service A B C A B C C B A A B C Address Where? Contract What? Binding How? Endpoint Address, Binding & Contract • A Service Endpoint has an Address, a Binding, and a Contract (ABC). • An Address is a network address indicates where the service is located. • A Binding specifies how a client can communicate with the endpoint including transport protocol, encoding, and security requirements. • A Contract identifies what operations are available to the clients.

  7. Service Addresses • Every service is associated with a unique address. • Base address format [transport]://[host name][:optional port]/[optional path] • Base address describes where it provides the metadata for the service (WSDL) • Endpoint address format [base address]/[optional path] • Endpointaddress is where the service is actually listening. This can be an absolute URI or relative to the baseaddress. • Build-in transports: HTTP/S, TCP, P2P, IPC and MSMQ • Examples http://localhost:8001/MyService/BP http://localhost:8001/MyService/WS net.tcp://localhost:8002/MyService net.pipe://localhost/MyPipe net.msmq://localhost/private/MyQueue

  8. Security Channel TCP Transport Security Channel CLR Type Integration CLR Type Integration Transaction Behavior Transaction Behavior Instancing Behavior TCP Transport Messaging Layer Service Model Layer Influences and adds to the programming model based on incoming messages Moves messages back and forth and adds transfer semantics (channels) WCF Composable Architecture Service Code

  9. Error Handling Behavior Security Channel Security Channel CLR Type Integration CLR Type Integration Concurrency Behavior Throttling Behavior Custom Behavior Transaction Behavior Transaction Behavior Instancing Behavior Instancing Behavior Metadata Behavior HTTP Transport Queue Transport HTTP Transport TCP Transport TCP Transport Custom Channel Custom Channel Named Pipes Reliable Messaging Reliable Messaging MSMQ Integration WCF Composability in Action Service Model Layer Messaging Layer Behaviors Channels

  10. Type Integ. Behavior … MetadataBehavior ErrorBehavior TransactionBehavior Instance Behavior Throttling Behavior ConcurrencyBehavior ASP.NET WPF WAS NT Service COM+ WinForm WCF Architecture Detail Application Hosting Environments ServiceModel Messaging Text/XML Encoder … Secure Channel Reliable Channel Binary Encoder TCP Channel HTTP Channel Queue Channel

  11. WCF Contracts • Service • Describes the operations a service can perform. Maps CLR types to WSDL. • Data • Defines data structures (complex types) that will be sent on the wire. Maps CLR types to XSD. • Message • Defines the structure of the message on the wire. Maps CLR messages to SOAP messages • “ContractDescription” class represents WCF Contract

  12. WCF Contracts Sample Contract defines the operations of a service [ServiceContract] public interface IMyContract { [OperationContract] string Hello(string name); } Implementing the service public class MyService : IMyContract { public string Hello(string name) { string greeting = "Hello " + name; Console.WriteLine(greeting); return greeting; } }

  13. Windows Activation Service (WAS) NP Listener Adapter HTTP Listener Adapter (IIS7) TCP Listener Adapter Named Pipes Transport Listener TCP Transport Listener HTTP.SYS WCF Hosting Options • Manual hosting in any managed application • ASP.NET, COM+, EXE, WindowsService, Windows Forms, WPF • Hosted in IIS • Windows Activation Service • Used for hosting in IIS7 or outside IIS7

  14. .NET 4.0 WCF Improvements • Increased developer productivity • Serialization, web prog. model, debugging • Support for syndication • Performance and scalability Improvements • IIS7 performance increase (5-10×) • Data platform support • Support for ADO.NET Entity Framework in WCF services • WCF Tools improvements • Testclient, Config editor, Single-click publish

  15. Building WCF ServicesSimple Echo Service Duplex Communication

  16. What is WF? Tooling VS Designer VS Debugger Rehosted Designer • WF is a way to coordinate work with minimal ceremony • Activities • Runtime • Tooling Host Process (.exe, IIS, "Dublin", Strata, …) Workflow Activity Library WF Runtime Extensions Persistence Tracking …

  17. Why WF? • Coordinate Asynchronous (Distributed?) Work • Write Persistable Applications • Customizable Vocabulary & Design Experience • Gain Visibility into your Application

  18. Activities Activities execute in pulses of work – which can result in the scheduling of other activities Activities are the primitive abstraction for behavior Activities are composable Sequence Activity State Machine Activity • Send • Message • Activity • Assign • Activity • Receive • Message • Activity • Delay • Activity WF Runtime Execution, State Management, Persistence

  19. Activities An Activity may contain user-defined Variables for data storage Arguments can be bound to Variables up the parent chain Activities define arguments to declare the type of data that can flow into or out of an Activity Sequence Variables InArgument<object> OutArgument<object> State Machine • Send • Message • Assign Variables Variables OutArgument<Message> InArgument<TimeSpan> • Receive • Message • Delay WF Runtime Execution, State Management, Persistence

  20. WF over the years… WF 3.0 WF Rules 3.0 • Independent Technologies WF 3.5 WF Rules 3.5 WF + WCF 4.0 WCF 3.5 WCF 3.0 • Deep Integration • Unification of Activities and Rules • Fully Declarative Workflow Services • Performance • Rich Workflow Host • Correlation • Workflow as WCF Service

  21. Activity Library Custom Activities <YOUR CODE HERE> Base Activity Library BPEL Utilities Expressions Error Handling WCF Messaging Database WF Primitives PowerShell Interop Control Flow Activities Flowchart Sequential State Machine Rules Activity Model & Runtime

  22. Workflow Service in .NET 3.5 .cs DataContracts MessageContracts ServiceContract Workflow code .svc .dll .xaml .config WorkFlowServiceHost .xaml Workflow Implementation .config Bindings Behaviors 24

  23. Future of Workflow Services .xaml Addresses Bindings Contracts Workflow Activities Implementation Behaviors .xaml Workflow ServiceHost

  24. Why XAML? • Developer / BA collaboration • Declarative expression • Application transparency • Custom tooling • Deployment flexibility

  25. Other WF 4.0 Improvements • Activity • Usability (80% Code Reduction) • Alignment across Expressions, Rules, and Activities • Completely Fractal Composition Model • Fully declarative workflows and activities • Runtime • 10-100X Performance Improvements • Integrates with App Models (WCF/WPF/ASP.NET) • Flow-in Transactions • Partial Trust Support • Full control over persistence • Tools • Designer Performance and Usability • Rehosting Improvements • Unified Debugging Experience • And much much more….

  26. Using WF in your applicationExpense Report

  27. Writing WCF Services with Workflow? • Consider Workflow Services if your service does any of the following: • Calls a database, Calls another service, or Uses the File system • Coordinates parallel work • Coordinates messages with application state • Is long running • Requires rich tracking information • Prefer code services when your service • Is a set of independent operations w/ no shared state

  28. Workflow Services Workflow Service Host Instance Store Workflow Runtime Service Dispatcher Workflow Instance Channel XAML 30

  29. Integrated Framework Services are the unit of modularity for “loosely-coupled” composition Service Activity Service Activity Activity Service Activities are the unit of modularity for “tightly-coupled” composition

  30. WCF 4.0 Improvements • Rest toolkit • Channels: UDP, InProc • Standards: SOAP over UDP, WS-Discovery, WS-BA, BP 1.2 • Standard Endpoints • Durable Duplex • Config • …

  31. Workflow 3.5 to 4.0 Path • Prefer XAML • Think about designing models and storing models in a repository/database • Build custom activities • Code won't port, custom activities will • Prefer WCF 3.5 send and receive • WCF/WF integration is even tighter Microsoft .NET 4.0 • Use WorkflowServiceHost even when not exposing workflows as services • NetNamedPipesBinding

  32. Microsoft Servers& Tools In the Cloud On Premise Client & UI Composition User Interface & Interaction Business Layer Composition Azure .NET Services Windows Server (“Dublin”) Biztalk Server, SQL Server Visual Studio Team System Data Layer Access to Back-end

  33. BizLayer • Communication + Workflow + Services • "Dublin" Server Enhancements • Azure .NET Services • Software Factories

  34. What is “Dublin” • Host for WF and WCF • Managabiltiy • Supportabilty • Scaleabily • Extensions to IIS/WAS Visual Studio Oslo Windows Server “Dublin” Administration Tools System Center WF and WCF services .NET Framework IIS/WAS

  35. Microsoft's Application ServerToday Process Activation Management Logging HealthMonitoring Request Pipeline Caching • (For web applications only) ProcessManagement Configuration ASP.NET System Center Visual Studio Expression Web Designer Internet Information Services XML Communications Workflow Web UI Security Transactions Data .NET Framework 3.5 Virtualization Resource Management Management Scripting Queuing Networking Stack Windows Server

  36. Microsoft's Application ServerTomorrow Services and Workflows Runtime Persistence WorkflowActivation MessagingServices MonitoringServices App Hosting “Dublin” Process Activation Management Management Logging HealthMonitoring Request Pipeline Caching • (For web applications only) ProcessManagement Configuration ASP.NET System Center Visual Studio Expression Web Designer Internet Information Services XML Communications Workflow Workflow Web UI Security Transactions Data Communications .NET Framework 4.0 Virtualization Resource Management Management Scripting Queuing Networking Stack Windows Server

  37. Dublin Software Stack Partners Dublin Fx Windows Oslo Visual Studio IIS Manager WCF and WF Templates WCF and WF IIS Manager Modules Management APIs (PowerShell command-lets) Runtime Services & Components Hosting Monitoring Persistence Instance Recovery Service Error Handling Behavior Lock Retry Behavior Auto-Start Provider Event Collector System Center “Dublin” Management Pack .NET Framework SQL Persistence Provider Instance Control Endpoint Durable Timer Service XAML & Config Activation Service Hosting Environment Routing (Forwarding) Service WF Tracking Provider ETW Tracking Participant WCF Message Logger WCF Analytic Trace Runtime Databases (SQL / SQL Express) Monitoring schema Persistence schema IIS/WAS

  38. “Dublin” Scalability Via HTTPS to WMSVC InetManager Dublin InetManager PowerShell PowerShell s1 s2 Via WS-MAN to WinRM . . . Load Balancer Dublin s1 s2 Queue Dublin s1 s2 configuration & control data access messages

  39. Manageability • Consolidated view of all Services on a server • Easy export and import of Services • Integration into VS 2010 • Various tracking profiles out of the box • Basic Workflow Tracking • Verbose WCF Service Tracking • Verbose Workflow Tracking • Custom tracking

  40. Supportability • Adds tooling to existing features • Powershell commands for all UI Elements • Tracing and Message Logging via easy user interface (or Powershell) • Persisted Instance viewer • Running • Blocked • Ready-to-Run • Suspended

  41. Dublin vs Biztalk • "Dublin" will not replace BizTalk • BizTalk will continue to be Microsoft's Premier Integration Server • "Dublin" fits for • Scable, supportable, host for WF and WCF • Non-Integration solutions • Low mapping and adapter scenarios • Both clients with and without BizTalk Server

  42. When is “Dublin” • Post Visual Studios 10 (Mid 2010) • Available as a web download • Eventually baked into Windows

  43. BizLayer • Communication + Workflow + Services • "Dublin" Server Enhancements • Azure .NET Services • Software Factories

  44. Microsoft Services Platform Azure™ Services Platform

  45. A Look Inside Azure Your Applications … ServiceBus Workflow Database Analytics Identity Contacts AccessControl … Reporting … Devices … Compute Storage Manage …

  46. .NET Services • Services for application integration

  47. Service Bus • Key developer challenges • Want to make it easy and secure for partners to use your application • Don’t always know the characteristics or scale of the integration • Partners / customers / users have devices and services running behind firewalls • Approach • Provide a high-scale, high-available “Service Bus” that supports open Internet protocols

  48. Service Registry [http|sb]://servicebus.windows.net/services/account/svc/… Service Registry Root account svc The service registry provides a mapping from URIs to services servicebus.windows.net services Root contoso Multi-Tenant …

  49. Connectivity • Two key capabilities • Relay • Direct connect • Relay • Ensure applications connect • Available to all via the service registry • Direct connect • Uses the relay to establish communication • Then shortcuts for efficiency • Available via HTTP / REST / ATOM • Available in .NET via WCF Bindings

More Related