OTS Solutions is a leading Software Development Company; make use of latest technologies like ASP.NET, WCF, Ajax-enabled WCF and REST WCF Services by its skilled Developers.
2. Agenda
Introduction to WCF
What is it? Why use it?
Architecture
Fundamentals and the ABCs of WCF
Hosting
Tooling Support
Handling faults
4. What is WCF?
Stands for Windows Communication Foundation
One of the 4 pillars of .NET 3.0
Microsoft’s unified programming model (the service
model) for building Service-Oriented Applications
7. SOA
Service
Small program interacted by well defines message
exchanges
Agile, Reliable, Stable, Interoperable, Secure
Four Tenets
Boundaries are Explicit
Services are Autonomous
Services share schema and contract, not class
Service compatibility is based upon policy
10. Windows Communication Foundation
WCF provides:
an SDK for creating SOA
a runtime for running Services on Windows
Services send and receive messages
All messages are SOAP messages
WCF takes care of all the plumbing
11. Why use WCF?
Interoperable and Standards based
Supports WS-* protocols
Unified Programming Model
Unifies previous models like .NET Remoting,
ASMX web services, COM+ etc
Productive Programming Model
Declarative
Imperative
Configuration based
15. WCF Endpoints
Every service has
Address
Where the service is
Binding
How to talk to the service
Contract
What the service can do
16. Address
Combination of transport, server name,
port & path
Transport is determined by the binding
Examples
http://localhost:8001
net.tcp://localhost:8002/MyService
net.pipe://localhost/MyPipe
net.msmq://localhost/private/MyService
net.msmq://localhost/MyService
17. Bindings
Transport
HTTP
TCP
MSMQ
Message formats and encoding
Plain text
Binary
Message Transmission Optimization Mechanism (MTOM)
Communication security
No security
Transport security
Message security
Authenticating and authorizing callers
19. Contracts
Service contracts
Defines operations, communications and
behaviours.
Data contracts
Defines data entities and parameter types.
Fault contracts
Defines error types
Message contracts
Defines message formats
20. Service Contracts
[ServiceContract] – Defines a ‘set’ of operations
[OperationContract] – Defines a single method
[ServiceContract]
public interface IService
{
[OperationContract]
string GetData(int value);
}
public class ConcreteService : IService
{
public string GetData(int value)
{ ... }
public string OtherMethod()
{ ... }
}
21. Data Contracts
[DataContract] – Specifies type as a data contract
[DataMember] – Members that are part of contract
[DataContract]
public class CustomType
{
[DataMember]
public bool MyFlag { get; set; }
[DataMember]
public string MyString { get; set; }
}
22. Alternative – DataContract
DataContract: created specifically for WCF to
serialize types
Attribute contains Name and Namespace
properties
DataMember is needed to specify which
properties/fields will form part of the contract
Contains EmitDefaultValue, IsRequired, Name,
Order properties
23. Metadata Exchange
Service can also expose endpoint for Metadata
Exchange (MEX)
It provides a mechanism for clients to find out
about:
Address of other end points
Bindings that are used
Contracts used – Service, Operation, Data, etc
24. Hosting
IIS
HTTP only
WAS (Windows Activation Service)
Can use any transport
Vista and Windows Server 2008 only
Self hosting
Can use any transport
Can be hosted within Console, WinForms, etc
Applications
26. Tooling Support
Visual Studio
Separate projects for WCF
“Add Service reference” menu
WCF Configuration Editor
WCF Service Host
WCF Test Tool
SvcUtil – To generate proxies
SvcTraceViewer – To view logs
28. SOAP Faults
Three main kinds of Exceptions can occur:
Communication errors
Unexpected error on the service
Errors thrown by the service on purpose
.NET Exceptions are technology specific
All Exceptions come across the wire as SOAP
Faults
29. Faults
In WCF, SOAP faults are passed in as
FaultException objects
Rather than throwing Exceptions, services should
throw FaultExceptions
Or better still FaultException<T>
Throwing FaultExceptions will not fault the proxy
and the channel
30. FaultContracts
Specifies what kind of Exceptions, an operation
can throw
[ServiceContract]
public interface IEmployeeService
{
[OperationContract]
[FaultContract(typeof(ValidationException))]
public void AddEmployee(Employee e);
}
31. Advantage
Its made of a lot of different components, so you can
create new components for security, transport,
authentication.
In WCF, there is no need to make much change in code
for implementing the security model and changing the
binding. Small changes in the configuration will make
your requirements.
Its faster than ASMX
Its Interoperability, for java, and more.
WCF is interoperable with other services when
compared to .Net Remoting, where the client and
service have to be .Net
WCF services provide better reliability and security in
compared to ASMX web services.
32. Disadvantage
WCF is Microsoft's implementation of SOA and hence its
APIs are solely controlled by MS which makes
interoperability a bit difficult.
To deploy WCF apps, need more underlying hardware
resources on the platform on which the WCF
applications will be running, since there is an additional
layer of abstraction to deal with.
33. Summary
WCF provides a runtime for creating Service Oriented Apps
Provides a productive programming model. Takes care of:
Messaging and Exchange formats
All Plumbing: Transaction, Reliability, Security, etc
Supports Declarative (via attributes), Imperative (via code)
and Configuration based (via config files) programming model
ABCs of Endpoints
Address: Where to go?
Binding: How to get there?
Contract: What to do?
Hosting
IIS, WAS, Self-hosting
35. USA
4433 Merlin United kingdom India
Way , Soquel 88 Wood Street
10th Floor London
Gurgaon ( Haryana )
CA 95073
795, Udyog Vihar, Phase-V
United States EC2V 7RS
Gurgaon(Haryana) India
Ph: +1 408 540 0001 Ph: +44 208 099 1660
Ph: +91 124 4101350
+91 124 4748100
Write to us at:
Write to us at: sales@otssolutions.com
sales@otssolutions.com Write to us at: sales@otssolutions.com
http://www.otssolutions.com/
Notes de l'éditeur
WCF combines many previous Microsoft messaging technologies together into a standard coding framework. A service is written as a logical piece of work and is then exposed using whichever method is most appropriate. This keeps the service logic and the technical transportation pieces of the service separate and reduces the complexity.
There are numerous ways that a message can be formatted/sent/secured, this allows you to tailor your service for the compatibility/performance you require for your solution. Because there is such a large number of choices that can be made these have been packaged into ‘standard binding’ sets for easy use. A service can support multiple sets of bindings, however each must be on a separate address. The Client must use exactly the same binding as service otherwise they will not be able to communicate properly.
We will talk about just the first three in this presentation. Message Contracts help in specifying the actual SOAP message and isn’t used as much as the other 3
To expose a class and methods as a service you need to decorate them with metadata, this allows .NET to map this the CLR to WCF. A single Class can implement multiple ServiceContracts it just needs to implement multiple Interfaces. The methods exposed with [ OperationContract] can only use primitive or data contracts as parameters.
To expose a class and methods as a service you need to decorate them with metadata, this allows .NET to map this the CLR to WCF. A single Class can implement multiple ServiceContracts it just needs to implement multiple Interfaces. The methods exposed with [ OperationContract] can only use primitive or data contracts as parameters.
Self hosting can be done in any .NET application: WPF, Winforms, WF, console, windows service, etc. An advantage of hosting on IIS or WAS over self hosting is that the process needs to be running constantly with a self hosted solution, whereas one hosted on IIS or WAS isn’t launched until there is a client request.