Title: Jeremy Boyd Intergen
1WinFXManaged APIs for Windows
- Jeremy Boyd - Intergen
- MSDN Regional Director
- jeremyb_at_intergen.co.nz
2Windows Platform
3Agenda
- Quick tour through WinFX
- Windows Presentation Foundation
- Windows Workflow Foundation
- Windows Communication Foundation
4Windows Presentation Foundation
- Enabling the User Experience for Developers
5Presentation 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?
6Windows 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
7Microsoft Presentation Technologies
Availability
8XAML
- Extensible Application Markup Language
- 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
9XAML in context of WPF
- WPF Rich Control Library
- Border, BulletDecorator , Button, Canvas ,
CheckBox , ComboBox , ContextMenu , Control ,
DockPanel , DocumentViewer, Expander ,
FlowDocumentPageViewer , FlowDocumentReader ,
FlowDocumentScrollViewer , Frame , Grid ,
GridSplitter , GridView , GroupBox , Image ,
Label , ListView , ListBox , Menu , Panel ,
PasswordBox , Popup , Tooltip, etc etc. - Panels
- Styles and Resources
- Animations, Triggers, Storyboards, Timelines
- Bindings
10Windows Presentation Foundation
11Windows Workflow Foundation
- Enabling Workflow in Applications
12What is a Workflow?
- A set of activities
- that co-ordinate people or
- and/or software
- in to some kind of process or flow
- Examples Flowchart, State Diagram
13Software Challenges
- Long Running
- Orders are shipped over 30 days
- Flexible Flow Control
- This must be approved NOW!
- Transparency into running state
- What's going on with this process??
- Transactional
- Its all, or nothing..
14Traditional Implementation
15Windows Workflow Implementation
16Workflow Solutions with WF
- Supports long running transactions
- Allows flexible flow control
- Allows monitoring
- Allows transactional boundaries
- Allows unification of business analyst, developer
and end user view
17Opportunities with Workflow
- Business Applications LOB / B2B
- IT Management
- Information Worker Process
- Participants apps, services
- Flow style prescriptive, protocols
- Data structured, transactional
- Participants people, roles
- Flow style flexible, dynamic
- Data unstructured, documents
18Workflow Basics
- Workflows are sets of activities
- Workflows are hosted in a process
- Workflows are executed in the WF runtime
- Workflows can be persisted
19Windows Workflow Foundation
Base Activity Library
My Workflow built using Visual Designer
Windows Workflow Runtime
Workflow Services
Windows Workflow Foundation
Hosting Process
20Workflow Basics
Workflow is a Class
Workflow can also be defined in markup (XOML)
21Windows Workflow Foundation
22Windows Communication Foundation
- The unified framework for building
Service-Oriented - applications.
23Service-Oriented Tenets
Boundaries are Explicit
Service and Consumer are separated by an explicit
façade.
Services and consumers are independently
versioned, deployed and operated.
Services are autonomous
Data never includes behavior
Share schema contract, not class
Requirements of service declared independent of
contract e.g. Security
Compatibility based on policy
24Endpoints
Endpoint
Endpoint
Endpoint
Endpoint
Client
Service
25Address, Binding, Contract
A
B
C
Client
Service
Address Where?
Contract What?
Binding How?
26Creating and Consuming
A
B
C
Client
Service
27Contract and Service Definition
ServiceContract public interface IHello
OperationContract string Hello(string name)
OperationContract MyMessageOut
DoIt(MyMessageIn m)
public class HelloService IHello public
string Hello(string name) return Hello,
name public MyMessageOut
DoIt(MyMessageIn m) return new
MyMessageOut()
28Service Configuration
App.Config lt?xml version"1.0" encoding"utf-8"
?gt ltconfigurationgt ltsystem.serviceModelgt
ltservicesgt ltservice typeHelloService"
ltendpoint addresshttp//localhost/Hel
loService"
bindingbasicHttpBinding"
contract"IHello" /gt lt/servicegt
lt/servicesgt lt/system.serviceModelgt lt/configurat
iongt
29Standard / Specification Support
30Windows Communication Foundation
31Summary
- Windows Presentation Foundation gives us the
opportunity to build a great user experience - Windows Workflow Foundation gives us the
opportunity to model effective business process - Windows Communication Foundation gives us the
opportunity to build service-oriented systems - WinFX is beta, but with a go-live licence get
it now! ?
32Binding Features
- Encoding
- Transport
- Security
- Reliable Messaging
- Transactions
33Which Binding Do I Use?
Interop?
Local?
No
Yes
NetNamedPipeBinding
No
Yes
What Level?
Need Queues?
Basic
Yes
BasicHttpBinding
NetMsmqBinding
No
WS-
Duplex?
Peer to Peer?
No
Yes
WsHttpBinding
NetPeerTcpBinding
No
Yes
WsDualHttpBinding
NetTcpBinding