Thứ Năm, 21 tháng 2, 2008

Ví Dụ Cơ Bản WCF trong VS 2008

WCF là công nghệ nền tảng nhằm thống nhất nhiều mô hình lập trình giao tiếp được hỗ trợ trong .NET 2.0 thành một mô hình duy nhất. Vào tháng 11 năm 2005, .NET 2.0 được Microsoft phát hành trong đó có cung cấp các hàm API riêng biệt cho các liên lạc dựa trên SOAP để tối đa hoá sự làm việc giữa các nền tảng sử dụng Web Services, đồng thời .NET 2.0 còn cung cấp các API để tối ưu việc liên lạc dựa trên mã nhị phân giữa các ứng dụng chạy trên hệ thống Windows gọi là .NET Remoting, các API cho các giao dịch phân tán, và API cho liên lạc dị bộ. WCF thống nhất các API này thành một mô hình duy nhất nhằm đáp ứng mô hình lập trình hướng dịch vụ.

WCF có thể sử dụng các bản tin SOAP giữa hai tiến trình, do đó làm cho các ứng dụng dựa trên WCF có thể làm việc với các tiến trình khác thông qua việc giao tiếp sử dụng bản tin SOAP. Khi một tiến trình WCF liên lạc với một tiến trình không là WCF, các bản tin SOAP được mã hoá trên cơ sở XML, nhưng khi nó liên lạc với một tiến trình WCF khác, bản tin SOAP có thể được tối ưu hoá dựa trên mã hoá nhị phân.


Bây giờ các bạn tạo một service windows đơn giản bằng WCF, WCF là viết tắt của cụm từ "Windows Communication Foundation" cái này các bạn tự hiểu nhé, WCF có sẵn trong .net 3.0 và 3.5 nếu các bạn dùng .net 2.0 là không chạy được đâu, code này mình dùng C# 3.0 để viết.

Trước tiên các bạn mở VS ra đã, chọn "New Project", một dialogBox hiện ra tiếp đến chọn "WCF", tiếp chọn "Wcf Service Library", trong mục "Name" các bạn đặt tên cho project là "ServiceDemo".

OK vậy là xong bước đầu tiên, một project "ServiceDemo" được tạo ra và VS cũng tự động sinh ra 2 file là: IService1.cs, và Service1.cs, mình xin nói qua một chút về 2 file này.

Ở đây IService1.cs đây là một Interface khai báo các function, các function sẽ cài đặt trong class Service1,Service1.cs cài đặt các function mà Service làm việc, một cách tổng quan thì chức năng của service sẽ nằm ở đây.

Bây giờ nếu "F5", chương trình sẽ hiện ra 1 form "WCF test Client" có 2 khung, khung trên là "Request" và khung dưới "Reponse" và nếu để ý một chút các bạn sẽ thấy xuất hiện 1 biểu tượng của WCF ở "TraySystem", mặc định thì VS tạo sẵn cho ta 2 function :

Code:

public interface IService1
{
[OperationContract]
string GetData(int value);

[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);

}
 
Quay lại với form "WCF test Client", Double-click vài "GetData" -> sẽ hiện ra 1 cửa sổ để ta test -> ở khung "Request" trong cột "value " các bạn điền và "5" rồi -> click "Invoke", đợi 1 chút nhìn xuống dưới các bạn sẽ thấy cột "value" của "Response" có giá trị là "You entered 5".

Giải thích 1 chút nhé, khung "Request" chứa mã trên Service (dịch vụ) xử lý các yêu cầu của " client " gửi đến, còn "Response" gửi các yêu cầu đã được xử lý trên "Service" về "Client"

Tiếp đến mình sẽ hướng dẫn các bạn viể vào 1,2 method để hiểu kỹ hơn chút nữa về "Service", các bạn mở file IService1.cs và code vào 2 method, bây giờ các bạn có thể xóa bỏ 2 method mặc định đi cũng được :

Code:

 public interface IService1
{
[OperationContract]
int Add(int n1, int n2);

[OperationContract]
int Subtract(int n1, int n2);
}

Nhớ đừng quên "[OperationContract]", các bạn tam thời công nhận vậy, cái này để sau mình sẽ giải thích.
OK chức năng của 2 method này quá rõ ràng rồi kô cần nói đến nữa, ở đây chỉ là 2 method simply các bạn có thể phát triển thêm nếu muốn, tiếp đến mở file Service1.cs code vào như sau.

Code:

public class Service1 : IService1

{
public int Add(int n1, int n2)
{
return n1 + n2;
}
public int Subtract(int n1, int n2)
{
return n1 - n2;
}
}



OK giờ có thể "F5" được rồi đấy, cũng như ở bài trước các bạn sẽ thấy 2 method "Add" và "Subtract", giờ các bạn chỉ việc "click" điền giá trị cho n1 và n2 và "invoke". 

DangTrung.

Không có nhận xét nào:

Đăng nhận xét