1. Trang chủ
  2. » Công Nghệ Thông Tin

MÔ HÌNH LẬP TRÌNH VỚI WINDOWS COMMUNICATION FOUNDATION docx

28 341 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,49 MB

Nội dung

Bài MƠ HÌNH LẬP TRÌNH VỚI WINDOWS COMMUNICATION FOUNDATION Mục lục Mơ hình lập trình WCF .2 1.1 Sử dụng phương pháp hướng đối tượng hay hướng dịch vụ? .2 1.2 Service Model (Mơ hình dịch vụ) 1.3 Các phương pháp lập trình với WCF 1.3.1 Declarative programming (Phương pháp khai báo) 1.3.2 1.3.3 Explicit programming (Phương pháp lập trình trực tiếp) .7 Phương pháp sử dụng tập tin cấu hình Xây dựng dịch vụ WCF 2.1 Cài đặt WCF 2.1.1 NET Framework 3.5 SP1 .9 2.1.2 Visual Studio 2008 SP1 2.2 Tạo dịch vụ WCF bạn .9 2.2.1 Tạo ứng dụng phía server .9 2.2.2 Phát hành thông tin dịch vụ 18 2.2.3 Tạo ứng dụng phía client 23 2.3 Cách khác để tạo tham chiếu client 25 Câu hỏi ôn tập 27 Tài liệu tham khảo 28 Nhìn lướt qua thấy WCF rối rắm phức tạp Tuy nhiên bạn hiểu WSDL (Web Service Description Language) Web services (các dịch vụ web), việc nắm khái niệm WCF đơn giản Nhưng không quen khái niệm trên, để hiểu khái niệm WCF thông qua trước việc sức, WCF có nhiều lớp thành phần Tuy vậy, WCF hay chỗ đem đến mơ hình lập trình dịch vụ đơn giản Mặc dù tảng bên cho WCF tương đối lớn, WCF xây dựng sở NET Framework bạn sử dụng ngơn ngữ lập trình tảng quen thuộc để làm việc với Thêm nữa, phát triển dịch vụ với WCF bạn cần biết cách sử dụng phần lớp mà thơi Cách tốt để học cách phát triển dịch vụ với WCF làm việc trực tiếp với Bài giới thiệu với bạn mơ hình lập trình với WCF, đồng thời hướng dẫn bạn xây dựng dịch vụ WCF Mơ hình lập trình WCF 1.1 Sử dụng phương pháp hướng đối tượng hay hướng dịch vụ? Nếu bạn học qua mơn học phương pháp lập trình hẳn thấy có phương pháp hướng thủ tục hướng đối tượng Và phương pháp hướng đối tượng thời gian gần phát triển mạnh hỗ trợ ngôn ngữ lập trình C# hay VB.NET Khi làm việc với dịch vụ web bạn làm quen với phương pháp lập trình hướng dịch vụ (Serviceoriented programming) Microsoft cung cấp nhiều công cụ NET Framework để hỗ trợ phương pháp lập trình thơng qua lớp không gian tên: System.Web.Services Như làm việc với WCF bạn có hai lựa chọn hướng đối tượng hướng dịch vụ Vậy ta nên sử dụng phương pháp nào? Câu trả lời dùng hai Nói cách đơn giản phương pháp hướng đối tượng sử dụng để phát triển ứng dụng desktop, phương pháp hướng dịch vụ sử dụng để kết nối ứng dụng với Điều quan trọng để hiểu khác hai phương pháp hiểu chúng sử dụng sử dụng đồng thời phải hiểu lợi ích chúng cung cấp Về hướng đối tượng hiểu sau Các ứng dụng hướng đối tượng hai hay nhiều lớp phụ thuộc lẫn chia sẻ chung kiểu liệu Những lớp liên lạc với thông qua lời gọi hàm mà lớp đối tượng cung cấp Các ứng dụng hướng dịch vụ chương trình khơng biết Mỗi ứng dụng liên lạc với ứng dụng khác thông qua tin Điểm đặc biệt tin gửi từ ứng dụng sang ứng dụng khác mà không quan tâm tới tảng mà dịch vụ chạy Khi phát triển dịch vụ WCF, điều quan trọng cần hiểu liên kết hướng đối tượng hướng dịch vụ Khi làm việc với NET Framework bạn chắn quen thuộc với thuật ngữ lớp (class) Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF giao diện (interface) Các thuật ngữ sử dụng phát triển dịch vụ WCF Các lớp giao diện phần hướng đối tượng WCF, phần hướng dịch vụ WCF thấy bạn đưa vào thuộc tính WCF để định nghĩa thực thể Ví dụ, lớp sau định nghĩa giao diện hướng đối tượng public interface DichVuBanHang { decimal TinhGiaVanChuyen(string diachi, decimal trongluong) { // thực tính tốn } decimal TinhTienThue(decimal tongGiaTien) { // thực tính tốn } } Ta có phần hướng dịch vụ cho dịch vụ WCF thêm vào thuộc tính cho giao diện [ServiceContract] public interface DichVuBanHang { [OperationContract] decimal TinhGiaVanChuyen(string diachi, decimal trongluong) { // thực tính tốn } [OperationContract] decimal TinhTienThue(decimal tongGiaTien) { // thực tính tốn } } Như qua ví dụ bạn thấy mối liên kết phương pháp hướng đối tượng hướng dịch vụ WCF Các bạn chưa cần quan tâm tới thuộc tính [ServiceContract] [OperationContract] vội, thuộc tính này, cịn nhiều thứ khác giới thiệu cách chi tiết thích hợp Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 1.2 Service Model (Mơ hình dịch vụ) Nếu bạn làm việc với dịch vụ web, bạn thấy mơ hình quen thuộc với bạn theo cách Khi bạn tạo dịch vụ web, bạn thực tạo dịch vụ (service) Dịch vụ web chứa tài liệu XML để mô tả tất thứ cần biết dịch vụ Tài liệu mô tả ngôn ngữ Web Service Description Language (ngơn ngữ mơ tả dịch vụ web) Nó chứa ba phần:  Service (dịch vụ): Chứa thông tin vị trí dịch vụ  Binding: Chứa thơng tin cách liên lạc với dịch vụ, dịch vụ sử dụng giao thức gì, vv  PortType (kiểu cổng): Giải thích dịch vụ làm Mơ hình dịch vụ WCF tương tự với mơ hình dịch vụ web Điểm khác biệt cách đặt tên Trong WCF phần không gọi service, binding, portType mà gọi tương ứng address (địa chỉ), binding, contract Mơ hình dịch vụ WCF cung cấp không gian tên System.ServiceModel Không gian tên chứa nhiều lớp, bạn hồn tồn khơng cần biết tồn chúng Để sử dụng mơ hình xây dựng dịch vụ, ta thường sử dụng số lớp sau: Lớp Mô tả BasicHTTPBinding Là binding mà điểm cuối dịch vụ sử dụng để liên lạc với ứng dụng khách dịch vụ web (ASMX) NetMsmqBinding Là binding mà điểm cuối dịch vụ sử dụng để liên lạc với MSMQ khách dịch vụ khác NetNamedPipeBinding Là binding mà điểm cuối dịch vụ sử dụng để liên lạc với ứng dụng khách/dịch vụ máy NetTCPBinding Là binding mà điểm cuối dịch vụ sử dụng để liên lạc với ứng dụng khách/dịch vụ máy khác WSHTTPBinding Là binding mà điểm cuối dịch vụ sử dụng để liên lạc với ứng dụng khách/dịch vụ sử dụng giao dịch phân tán phiên làm việc bảo mật tin cậy EndpointAddress Lớp biểu diễn địa cung cấp truy xuất Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF cho máy khách để liên lạc với điểm cuối dịch vụ EndpointAddressBuilding Là phương pháp để tạo địa đầu cuối với giá trị tham số xác định ChannelFactory Là phương pháp kiểu kênh khác tạo quản lý, đưa tới cho ứng dụng khách để gửi tin tới điểm cuối Cách mà định danh xác định, cho phép xác thực Identity điểm cuối trao đổi tin MessageHeader Biểu diễn nội dung đầu đề tin SOAP ServiceHost Phương pháp cung cấp vật chứa cho dịch vụ ReliableSession Cung cấp truy xuất tới thuộc tính thành phần binding phiên làm việc tin cậy Để định nghĩa việc liên lạc dịch vụ, ta thường hay sử dụng lớp sau Lớp Mô tả AddressHeader Phần đầu đề chưa thông tin địa sử dụng để xác định liên lạc với điểm cuối AddressHeaderCollection Một tập hợp đầu đề địa Binding Tập hợp thành phần binding, binding định nghĩa cách mà điểm cuối liên lạc với giới bên BindingContext Cung cấp địa thông tin binding cần thiết cho việc xây dựng kênh BindingElement Biểu diễn thành phần binding, sử dụng để xây dựng binding CustomBinding Sử dụng để định nghĩa xây dựng tuỳ biến binding từ tập thành phần binding Message Một đơn vị liên lạc điểm cuối Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF MessageHeader Nội dung đầu đề tin SOAP MessageHeaders Tập hợp đầu đề tin 1.3 Các phương pháp lập trình với WCF Có số phương pháp lập trình với WCF, phương pháp có ưu điểm khuyết điểm riêng Điều đặc biệt WCF ln có cách để giải vấn đề WCF, bạn không thiết phải chọn phương pháp Trong thực tế, cách làm tốt tổ hợp phương pháp để có linh hoạt mềm dẻo cho dịch vụ bạn Có ba phương pháp hay sử dụng phát triển dịch vụ WCF sau:  Phương pháp khai báo  Phương pháp lập trình trực tiếp  Phương pháp sử dụng tập tin cấu hình 1.3.1 Declarative programming (Phương pháp khai báo) Lập trình khai báo đạt thơng qua thuộc tính Những thuộc tính sử dụng để định nghĩa contract xác định hành xử dịch vụ Chúng sử dụng để xác định thêm tham số để thay đổi chi tiết contract hành xử dịch vụ Thuộc tính ServiceContract dùng để quy định giao diện định nghĩa chức dịch vụ Thuộc tính OperationContract sử dụng hàm để quy định hàm khai báo phần dịch vụ Đó tất cần để tạo dịch vụ WCF Thêm nữa, bạn không thiết phải sử dụng giao diện (interface) cài đặt dịch vụ, điều giống việc bạn không cần phải sử dụng giao diện để định nghĩa lớp Tuy bạn thiết phải quy định phần thuộc dịch vụ Bạn định nghĩa phần khác cần cho giao diện, hàm (phương thức) có gắn thuộc tính [OperationContract] Ví dụ ta có dịch vụ thực phép tính cộng số nguyên AddInt số thực AddDouble Ta khai báo dịch vụ sau: [ServiceContract] public interface ICalcService { [OperationContract] int AddInt(int x, int y); Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF [OperationContract] double AddDouble(double x, double y); } Như dịch vụ sau khai báo có phương thức (khai báo với thuộc tính OperationContract) AddInt AddDouble Tuy nhiên khai báo C#, việc đặt tên AddInt AddDouble, có số hàm add cho kiểu liệu khác, rút gọn lại thành tên hàm Add mà Nhưng dịch vụ lại không cho phép đặt trùng tên hàm Chúng ta khai báo thêm với thuộc tính OperationContract để thực hiện, cách làm sau: [ServiceContract] public interface ICalcService { [OperationContract(Name="AddInt")] int Add(int x, int y); [OperationContract(Name="AddDouble")] double Add(double x, double y); } Các bạn thấy sử dụng phép nạp chồng tên C# sử dụng thêm tham số Name để quy định thêm tên hàm dịch vụ Ngoài ưu điểm việc giải nạp chồng tên hàm, ta cịn thấy lợi ích khác là, việc quy định tham số Name thuộc tính OperationContract cịn cho ta thêm linh hoạt việc đổi tên hàm giao diện mà không làm thay đổi định nghĩa dịch vụ, nghĩa ứng dụng khác sử dụng dịch vụ không cần phải biên dịch lại 1.3.2 Explicit programming (Phương pháp lập trình trực tiếp) Là phương pháp lập trình hướng đối tượng, bạn làm việc trực tiếp với lớp giao diện cung cấp mơ hình đối tượng WCF Làm việc trực tiếp với mơ hình đối tượng cho phép nhà phát triển tính linh hoạt cao khả điều khiển tốt thông qua mã nguồn họ Thêm cho phép điều khiển sâu nhiều so với phương pháp khai báo phương pháp sử dụng tập tin cấu hình 1.3.3 Phương pháp sử dụng tập tin cấu hình Cũng giống phương pháp khai báo, có nhiều thứ mà bạn quy định liên quan đến hành xử dịch vụ thơng qua tập tin cấu hình dịch vụ Điều hay cách tiếp cận thay đổi tập tin cấu hình hồn tồn khơng cần phải biên dịch lại dịch vụ sử dụng Sau ví dụ sử dụng tập tin cấu hình để định nghĩa dịch vụ tính tốn ví dụ phần phương pháp khai báo Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF Xây dựng dịch vụ WCF 2.1 Cài đặt WCF 2.1.1 NET Framework 3.5 SP1 Để xây dựng dịch vụ WCF, bạn cần phải cài đặt NET Framework 3.5 SP1 Thực cần NET Framework 3.0 đủ, nhiên NET Framework 3.5 SP1 cung cấp thêm cho bạn nhiều tính nữa, nên bạn nên cài NET Framework 3.5 SP1 Bản cài đặt framework Microsoft cung cấp trang web http://www.microsoft.com/downloads/details.aspx?familyid=ab99342f-5d1a-413d8319-81da479ab0d7&displaylang=en http://download.microsoft.com/download/2/0/e/20e90413712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe 2.1.2 Visual Studio 2008 SP1 Sau cài đặt NET Framework 3.5 SP1, bạn thực cài đặt Visual Studio 2008 Express Professional tuỳ theo bạn có Nếu kinh phí hạn hẹp, bạn tải Visual Studio 2008 Express Edition miễn phí trang web Microsoft, link đây: http://go.microsoft.com/?linkid=9350817 Giờ bạn sẵn sàng để tạo dịch vụ WCF 2.2 Tạo dịch vụ WCF bạn Bạn hình dung ứng dụng xây dựng sau Công ty Contoso cần xây dựng hệ thống quản lý nhân viên công ty Ban đầu, cần phải xây dựng ứng dụng server  Cung cấp danh sách nhân viên,  Cho phép hỏi ngày sinh nhân viên Sau cần ứng dụng phía client để làm việc sau  Hiển thị danh sách nhân viên  Chọn nhân viên hiển thị ngày sinh nhân viên 2.2.1 Tạo ứng dụng phía server Bước Tạo ứng dụng Mở Visual Studio 2008, chọn tạo C# Console Project đặt tên StaffService, xem Figure Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF Figure Tạo project Thêm tham chiếu tới System.ServiceModel.dll Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 10 Figure Đặt tên cho contract dịch vụ Chọn cách liên lạc HTTP Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 14 Figure Chọn cách liên lạc Tiếp theo chọn phương pháp làm việc Advanced Web Services interoperability, đặt kiểu liên kết Simplex Communication Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 15 Figure Chọn Simplex communication Đặt mặc định (trống) cho trường địa chỉ, bấm Finish, bạn thấy kết sau Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 16 Figure Kết qủa cấu hình dịch vụ Giờ bạn bấm vào biểu tượng Host phía bên trái, sau chọn thêm địa sở cho dịch vụ bạn, đặt địa http://localhost:8000/StaffService Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 17 Figure Thêm địa sở Mở rộng nút EndPoints, chọn điểm cuối, đặt tên ep1 Figure Đặt tên cho điểm cuối 10 Kết thúc q trình bạn có tệp cấu sau: 2.2.2 Phát hành thông tin dịch vụ Để phát hành thông tin dịch vụ cho ứng dụng khác khai thác, ta cần theo bước sau: Mở rộng nút Advanced (bên trái), sau chọn nút Service Behaviors bấm vào New Service Behavior Configuration bên phải Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 18 Figure 10 Tạo cấu hình cho hành xử dịch vụ Đặt tên MetaDataBehavior, bấm Add để thêm thành phần hành xử, chọn ServiceMetaData Figure 11 Thêm hành sử siêu liệu Chọn nút serviceMetadata bên trái nhấp vào giá trị HttpGetEnabled thành true HttpGetUrl http://localhost:8000/StaffService Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 19 Figure 12 Đặt cấu hình cho serviceMetadata Giờ bạn chọn nút StaffService.Staff đặt Behavior Configuration với giá trị “MetaDataBehavior” Figure 13 Đặt BehaviorConfiguration cho dịch vụ Cuối tạo điểm cuối để ứng dụng kết nối tới dịch vụ để lấy thông tin dịch vụ Bấm chuột phải vào Endpoints vào chọn New Service Endpoint sau đặt cấu sau:  Name: ep2  Address: mex Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 20  Binding: mexHttpBinding  Contract: ImetaDataExchange Figure 14 Cấu hình cho điểm cuối Bấm menu Save bạn có tệp cấu sau: Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 21 Giờ bạn chạy dịch vụ Sẽ khơng có lỗi xảy bạn có sau: Figure 15 Thực dịch vụ Nếu sử dụng Internet Explorer truy xuất tới địa http://localhost:8000/StaffService bạn thấy hình sau: Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 22 Figure 16 Sử dụng IE để xem dịch vụ 2.2.3 Tạo ứng dụng phía client Phần hướng dẫn bạn tạo ứng dụng phía client để truy xuất hàm dịch vụ cung cấp Điểm hay WCF bạn cần sử dụng dòng mã nguồn để gọi đến dịch vụ StaffService, dịng mà thơi, thứ khác tạo tự động sử dụng công cụ svcutil.exe Mở console dòng lệnh chuyển tới thư mục bạn muốn tạo tệp, gõ vào lệnh sau bấm Enter: Svcutil.exe http://localhost:8000/StaffService?wsdl Bạn thấy kết sau: Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 23 Figure 17 Kết tạo khai báo dịch vụ Tạo console project đặt tên StaffClient thêm tham chiếu tới System.ServiceModel Thêm vào tệp vừa tạo Staff.cs, đồng thời đổi tên tệp cấu hình thành app.config thêm vào project Kết sau: Figure 18 Tạo client Sau biên dịch chạy chương trình bạn kết sau: Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 24 Figure 19 Kết chạy chương trình 2.3 Cách khác để tạo tham chiếu client Ngồi cách thực dịng lệnh trên, ta hồn tồn sử dụng giúp đỡ công cụ Visual Studio để tạo tham chiếu dịch vụ phía client Cách thực nhanh tiện lợi Cách làm sau: Bước Chọn chuột phải vào project cần thêm tham chiếu, StaffClient, sau chọn menu Add Service Reference hình sau: Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 25 Figure 20 Thêm tham chiếu dịch vụ Bước Gõ vào địa dịch vụ cần thêm, sau bấm nút Go, phía đặt tên cho tham chiếu dịch vụ StaffService hình Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 26 Figure 21 Cấu hình tham số cho tham chiếu dịch vụ Sau bước bạn hồn tồn sử dụng lớp StaffClient để cài đặt ứng dụng phía client Câu hỏi ơn tập Liệt kê mơ hình lập trình với WCF Có mơ hình lập trình chủ yếu với WCF phương pháp hướng đối tượng phương pháp hướng dịch vụ Phương pháp hướng đối tượng thông thường sử dụng phát triển ứng dụng desktop, phương pháp hướng dịch vụ sử dụng để phát triển dịch vụ phía server Mối liên kết hai phương pháp thông qua lớp giao diện (hướng đối tượng) thuộc tính WCF lớp hay giao diện (hướng dịch vụ) Các phương pháp lập trình với WCF Có phương pháp lập trình với WCF phương pháp khai báo, phương pháp hiển hiện, phương pháp sử dụng tệp tin cấu hình Thơng thường làm việc với WCF, ta không sử dụng Microsoft Vietnam – DPE Team | Bài 2: Mơ hình lập trình với WCF 27 riêng biệt phương pháp mà sử dụng kết hợp ba phương pháp để đạt kết tốt Tài liệu tham khảo Programming your first WCF service (URL: http://www.myitblog.com/sundararajan/programming-your-first-wcf-service.html) Your first WCF Service (URL: http://eng.ahmedelmalt.googlepages.com/wcf02.htm) Microsoft Vietnam – DPE Team | Bài 2: Mô hình lập trình với WCF 28 ... Team | Bài 2: Mơ hình lập trình với WCF MessageHeader Nội dung đầu đề tin SOAP MessageHeaders Tập hợp đầu đề tin 1.3 Các phương pháp lập trình với WCF Có số phương pháp lập trình với WCF, phương... programming (Phương pháp lập trình trực tiếp) Là phương pháp lập trình hướng đối tượng, bạn làm việc trực tiếp với lớp giao diện cung cấp mơ hình đối tượng WCF Làm việc trực tiếp với mô hình đối tượng... triển dịch vụ với WCF bạn cần biết cách sử dụng phần lớp mà thơi Cách tốt để học cách phát triển dịch vụ với WCF làm việc trực tiếp với Bài giới thiệu với bạn mơ hình lập trình với WCF, đồng

Ngày đăng: 01/08/2014, 22:21

TỪ KHÓA LIÊN QUAN