Recent Post

Sunday, May 26, 2013

Cơ bản với WCF

by Unknown  |  at  8:19 AM










WCF – Một số khái niệm cơ bản




WCF (Windows Communication Foundation):

- Cấu trúc của WCF service.

- Mô hình kết nối ABC.

- Các loại Contract.



Khái niệm


“Windows Communication Foundation (WCF) is Microsoft’s unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments.” (MSDN).


WCF (Windows Communication Foundation) là công nghệ mới nhất được thiết kế theo kiến trúc hướng dịch vụ (Service Oriented Architecture – SOA). Mục đích của WCF là tạo một công nghệ thống nhất cho các công nghệ giao tiếp trước đây như: Web Services, .NET Remoting, Microsoft Message Queuing và COM+.


Ba thành phần chính của một WCF service là:


- Service class: định nghĩa các contact (sẽ trình bày ở bên dưới).


- Hosting environment: WCF service có thể được host lên nhiều “môi trường” khác nhau, bao gồm IIS, Windows service, Selt-hosting.


- End point: Các “cổng” kết nối giữa client và service.
Mô hình kết nối ABC


Việc giao tiếp giữa client và WCF service được thực hiện thông qua các Endpoint. Như vậy một service có thể làm chấp nhận và xử lý nhiều yêu cầu khác nhau thông các endpoint riêng biệt. Mỗi endpoint được tạo thành từ ba thành phần với tên gọi tắt rất dễ nhớ là ABC. Trong đó:


- A – Address (Where): địa chỉ của service.


- B – Binding (How): Cách thức giao tiếp với service. Thành phần này xác định loại giao thức kết nối giữa client và service (như HTTP, TCP, MSMQ,…), kênh xử lý và kiểu mã hóa thông điệp. Danh sách các kiểu binding:



Name

Purpose


BasicHttpBinding

Interoperability with Web services and clients supporting the WS-BasicProfile 1.1 and Basic Security Profile 1.0.


WSHttpBinding

Interoperability with Web services and clients that support the WS-* protocols over HTTP.


WSDualHttpBinding

Duplex HTTP communication, by which the receiver of an initial message does not reply directly to the initial sender, but may transmit any number of responses over a period of time by using HTTP in conformity with WS-* protocols.


WSFederationBinding

HTTP communication, in which access to the resources of a service can be controlled based on credentials issued by an explicitly-identified credential provider.


NetTcpBinding

Secure, reliable, high-performance communication between WCF software entities across a network.


NetNamedPipeBinding

Secure, reliable, high-performance communication between WCF software entities on the same machine.


NetMsmqBinding

Communication between WCF software entities by using MSMQ.


MsmqIntegrationBinding

Communication between a WCF software entity and another software entity by using MSMQ.


NetPeerTcpBinding

Communication between WCF software entities by using Windows Peer-to-Peer Networking.



- C – Contact (What): Bản mô tả các chức năng của service. Cụ thể, đây là các class (structure, enum,…) được định nghĩa bên service để với các phương thức mà client có thể yêu cầu service thực hiện.



Contract


Contract được coi là một bản “hợp đồng” quy định cách thức và phương tiện để hai bên có thể hợp tác và làm việc với nhau. Trong WCF, các contact được coi như những bản mô tả nhiệm vụ, kiểu dữ liệu của service. Client sẽ có được các contact sau khi tham chiếu đến service và thông qua đó để gửi và nhận các thông điệp. Như vậy, service và client không sử dụng cùng các kiểu dữ liệu như nhau, mà chỉ sử dụng chung các contact.


Service Contract


Mô tả các công việc của service, bao gồm các kiểu dữ liệu truyền đi và kiểu dữ liệu trả về. Cụ thể, đây là các khai báo phương thức kèm với các tham số và kiểu trả về của service. Loại contract này có thể được chia ra làm hai phần là service contract (tương ứng với các interface) và operation contract (là các method).


Data Contract


“A data contract is a formal agreement between a service and a client that abstractly describes the data to be exchanged. That is, to communicate, the client and the service do not have to share the same types, only the same data contracts. A data contract precisely defines, for each parameter or return type, what data is serialized (turned into XML) to be exchanged.” (MSDN)


Mô tả các kiểu dữ liệu tự tạo mà client có thể sử dụng. Các contract này dùng để chứa các dữ liệu cần thiết để truyền tải giữa client và service. Nếu service chỉ sử dụng các kiểu dữ liệu đơn giản (như int, string, DateTime,…) thì service đó không cần đến Data Contract.


Message Contract


Tương tự như Data Contract nhưng kiểu contract này nhằm mục đích định nghĩa cấu trúc của các thông điệp được truyền tải dưới dạng SOAP (Simple Object Access Protocol). Một thông điệp SOAP được chia thành 2 phần là header và body.





MSDN – Mối quan hệ của các loại contract với với common language runtime (CLR)






Fault Contract


Loại contact này giúp quản lý các ngoại lệ mà service ném ra khi thực hiện các yêu cầu của client. Khi cần thiết, service sẽ ném ra một FaultException nếu như muốn client bắt được ngoại lệ này.


// nguồn của anh yinyang congdongcviet






examples mình làm về wcf




File Đính Kèm



0 comments:

Proudly Powered by Blogger.