Getting Started with WCF 4.5

advertisement
GETTING STARTED WITH
WINDOWS COMMUNICATION
FOUNDATION 4.5
Ed Jones & Grey Guindon
WELCOME TO TWIN CITIES CODE CAMP!
P:2
OVERVIEW
What does it mean to be SOA?
Contracts and Service Implementation
Bindings and Behaviors
Hosting the Service
Consuming WCF Services
What’s New in 4.5?
P:3
CAMP GOLDY
CODE CAMPING RESERVATION SYSTEM
A simple service that allows one to make, alter,
or cancel a reservation at the Camp Goldy Code
Campground
The reservation system is available to any client,
regardless of type of code, native OS, etc.
P:4
SERVICE ORIENTED ARCHITECTURE
AND PRINCIPLES
P:5
WHAT IS SERVICE ORIENTATION?
Service-Oriented Architecture (SOA) is a set
of principles and methodologies for designing
and developing software in the form of
interoperable services. These services are welldefined business functionalities that are built as
software components (discrete pieces of code
and/or data structures) that can be reused for
different purposes. SOA design principles are
used during the phases of systems development
and integration.
-Wikipedia, “Service-Oriented Architecture”
P:6
SOA DESIGN PRINCIPLES
Explicit Boundaries
Share Contract and Schema, not Classes
Autonomous
Stateless
Interoperable
P:7
WHAT IS WCF?
Windows Communication Foundation (WCF) is a
framework for building service-oriented
applications. It is a runtime and a set of APIs for
creating systems that send messages between
services and clients.
WCF is the foundation for other distributed
technologies by Microsoft, such as Azure,
AppFabric, and BizTalk
And speaking of Azure…
– Free 90-day trial at http://www.windowsazure.com
– Click “Try It Free”
P:8
HOW IT WORKS: A WCF OVERVIEW
P:9
WCF CONTRACTS
Building out service and data contracts
P:11
CONTRACTS CAN BE KIND OF STICKY…
P:12
WCF CONTRACTS
Contracts determine what data and operations
are exposed
Service contracts define operations
Data contracts define the data (duh!)
And you’ve got other contracts, too
– Message Contracts
– Fault Contracts
P:13
A CONTRACT IS JUST A SCHEMA…
P:14
SERVICE CONTRACTS & DATA CONTRACTS
P:15
CONFIGURING THE SERVICE
P:16
BINDINGS
The binding controls the messaging details (what
happens on the wire) for that endpoint.
Common bindings are common recipes as to
how WCF will configure the underlying channel
stacks.
There are countless extensibility points found
throughout the WCF channel layer.
P:17
ABC’S: ADDRESS, BINDING, CONTRACT
P:18
HOSTING THE SERVICE
P:19
HOSTING THE SERVICE
A WCF Service is a library, it has no life of its
own
The host brings the WCF service to life by
providing the process in which it operates.
Most of the time, WCF services will run in a
ready-made host environment such as Internet
Information Server (IIS) or Azure
And speaking of Azure…
– Free 90-day trial at http://www.windowsazure.com
– Click “Try It Free”
A lot of things require a host!
P:20
USING A WCF SERVICE
P:21
CONSUMING A SERVICE
Because WCF exposes service functionality
through open standards, such as SOAP, you can
use almost any type of client to consume the
service.
Allowing a .NET client to consume the service is
as easy as creating a service reference or
generating a proxy through a command-line
utility (svcutil.exe)
Non-.NET clients would typically use SOAP to
consume a WCF Service
P:22
OTHER THINGS YOU CAN DO WITH WCF
Secure Services
RESTful Services
Routing
Streaming Data
Discovery
Web Sockets
…and much, much, more
P:23
WHAT’S NEW IN WCF 4.5
Config File Tooltips, IntelliSense
Contract-First Generation
Generate Classes from Sample XML
ASP.NET compatibility mode
(aspNetCompatibilityEnabled) defaults to “true”
WCF Configuration Validation
Streaming Improvements
Single WSDL
WebSocket Support
ChannelFactory Caching
UDP Support
HttpClient Class
P:24
REFERENCES
Wikipedia – “Service-Oriented Architecture”
http://en.wikipedia.org/wiki/Serviceoriented_architecture
Stefan Tilkov, “10 Principles of SOA”
http://www.infoq.com/articles/tilkov-10-soa-principles
John Spacey, “The 9 Principles of Service Oriented
Design” http://simplicable.com/new/the-9-principlesof-soa-design
MSDN, “How to: Host a WCF Service in a Managed
Windows Service” http://msdn.microsoft.com/enus/library/ms733069.aspx
P:25
THANK YOU!
Ed Jones,
MCT, MCPD (Web, Azure), MCTS (WCF, BizTalk)
– Email: ed.jones@rbaconsulting.com
– Blog (Extremely Talented Monkeys):
http://talentedmonkeys.wordpress.com
P:26
Download