Bài viết này nhằm hướng dẫn cho bạn cách thiết lập dịch
vụ đơn giản và vận hành nó bằng ứng dụng Console Application. Bạn sẽ
thấy việc xây dựng một dịch vụ WCF và kết nối để sử dụng nó thật dễ
dàng.
Bài viết được hiệu đính bởi Lê Hoàng Dũng (tumivn).
WCF là nền tảng của Microsoft giúp bạn có thể xây dựng được các dịch vụ cung cấp dữ liệu cho các ứng dụng từ nhiều nền tảng khác nhau có thể kết nối và sử dụng. Với WCF bạn có thể cung cấp các dịch vụ thông qua nhiều giao thức khác nhau chỉ bằng một lần cài đặt duy nhất cho dịch vụ và cấu hình bằng mã lệnh hoặc tập tin cấu hình (XML) để cấu hình các giao thức mà dịch vụ hỗ trợ.
Bài viết này nhằm hướng dẫn cho bạn cách thiết lập dịch vụ đơn giản và vận hành nó bằng ứng dụng Console Application. Bạn sẽ thấy việc xây dựng một dịch vụ WCF và kết nối để sử dụng nó thật dễ dàng.
Có nhiều cách khác nhau để host một dịch vụ WCF. Bạn có thể sử dụng :
Bước 1: Bạn tạo 1 project Console Application tên MyCalculatorService. Service chỉ có 3 phương thức chính:
Bước 3:
Tạo interface ISimpleCalculator, thêm thuộc tính ServiceContract và DataContract vào class và hàm như bên dưới. Đối với dữ liệu tự định nghĩa, bạn phải thêm thuộc tính DataContract:
Service Contract: Định nghĩa các phương thức của một dịch vụ, thực chất là các hành động mà client có thể sử dụng ở các điểm cuối (endpoint).
Operation Contract: Chỉ ra phương thức được gắn thuộc tính là phương thức của dịch vụ.
Đối với kiểu dữ liệu tự định nghĩa, bạn phải báo cho WCF kiểu dữ liệu cần trao đổi với client và thêm thuộc tính DataContract cho class và DataMember cho các trường thuộc tính trong class
Bước 4:
Tạo class SimpleCalculatorService thực thi từ Interface ISimpleCalculator
Bước 5:
ServiceHost là class chính để host dịch vụ WCF. Bạn cần truyền contract class và base address cho ServiceHost. Bạn có thể đăng ký nhiều base addresses cách nhau bởi dấu phẩy, nhưng mỗi địa chỉ phải khác nhau về phương thức.
Bạn có thể đăng ký nhiều Endpoint bằng phương thước ServiceHost.AddServiceEndpoint().
Bước 6:
Thực thi host để chạy Service
Bước 7: Tạo chương trình để Test Serivice
Bạn tạo 1 Console Application gọi là Client. Bạn phải tạo 1 proxy class (lớp đại diện thực hiện việc kết nối với Service) cho client. Có nhiều cách để thực hiện:
Nhấp phải vào Project=> Add Service Reference. Gõ địa chỉ hostUrl: http://localhost:8090/MyService/SimpleCalculatorService
Trong file App.config, bạn chú ý đến dòng sau:
WSHttpBinding_ISimpleCalculator: tên Endpoint để kết nối với Service
Nếu bạn chỉ có duy nhất 1 Endpoint, bạn không cần chỉ ra tên Endpoint khi kết nối.
Trường hợp 1 Endpoint:
Trường hợp nhiều EndPoint:
Bước 8: Thực thi chương trình
Như vậy bạn đã thành công trong việc xây dựng cho mình một ứng dụng Console dùng để host WCF Service!
Download demo: MediaFire
Happy coding!
Bài viết được hiệu đính bởi Lê Hoàng Dũng (tumivn).
WCF là nền tảng của Microsoft giúp bạn có thể xây dựng được các dịch vụ cung cấp dữ liệu cho các ứng dụng từ nhiều nền tảng khác nhau có thể kết nối và sử dụng. Với WCF bạn có thể cung cấp các dịch vụ thông qua nhiều giao thức khác nhau chỉ bằng một lần cài đặt duy nhất cho dịch vụ và cấu hình bằng mã lệnh hoặc tập tin cấu hình (XML) để cấu hình các giao thức mà dịch vụ hỗ trợ.
Bài viết này nhằm hướng dẫn cho bạn cách thiết lập dịch vụ đơn giản và vận hành nó bằng ứng dụng Console Application. Bạn sẽ thấy việc xây dựng một dịch vụ WCF và kết nối để sử dụng nó thật dễ dàng.
Có nhiều cách khác nhau để host một dịch vụ WCF. Bạn có thể sử dụng :
- IIS
- WAS
- Windows Service
- Managed Code: Console application, Windows Form, WPF…
Bước 1: Bạn tạo 1 project Console Application tên MyCalculatorService. Service chỉ có 3 phương thức chính:
- Hello()
- HelloWorld()
- Add()
Bước 3:
Tạo interface ISimpleCalculator, thêm thuộc tính ServiceContract và DataContract vào class và hàm như bên dưới. Đối với dữ liệu tự định nghĩa, bạn phải thêm thuộc tính DataContract:
Service Contract: Định nghĩa các phương thức của một dịch vụ, thực chất là các hành động mà client có thể sử dụng ở các điểm cuối (endpoint).
Operation Contract: Chỉ ra phương thức được gắn thuộc tính là phương thức của dịch vụ.
Đối với kiểu dữ liệu tự định nghĩa, bạn phải báo cho WCF kiểu dữ liệu cần trao đổi với client và thêm thuộc tính DataContract cho class và DataMember cho các trường thuộc tính trong class
Bước 4:
Tạo class SimpleCalculatorService thực thi từ Interface ISimpleCalculator
Bước 5:
ServiceHost là class chính để host dịch vụ WCF. Bạn cần truyền contract class và base address cho ServiceHost. Bạn có thể đăng ký nhiều base addresses cách nhau bởi dấu phẩy, nhưng mỗi địa chỉ phải khác nhau về phương thức.
Bạn có thể đăng ký nhiều Endpoint bằng phương thước ServiceHost.AddServiceEndpoint().
Bước 6:
Thực thi host để chạy Service
Bước 7: Tạo chương trình để Test Serivice
Bạn tạo 1 Console Application gọi là Client. Bạn phải tạo 1 proxy class (lớp đại diện thực hiện việc kết nối với Service) cho client. Có nhiều cách để thực hiện:
- Sử dụng SvcUtil.exe, bạn phải tạo proxy class và file app.config với end points.
- Thêm Service reference cho chương trình client.
- Thực thi lớp ClientBase<T>
Nhấp phải vào Project=> Add Service Reference. Gõ địa chỉ hostUrl: http://localhost:8090/MyService/SimpleCalculatorService
Trong file App.config, bạn chú ý đến dòng sau:
WSHttpBinding_ISimpleCalculator: tên Endpoint để kết nối với Service
Nếu bạn chỉ có duy nhất 1 Endpoint, bạn không cần chỉ ra tên Endpoint khi kết nối.
Trường hợp 1 Endpoint:
Trường hợp nhiều EndPoint:
Bước 8: Thực thi chương trình
Như vậy bạn đã thành công trong việc xây dựng cho mình một ứng dụng Console dùng để host WCF Service!
Download demo: MediaFire
Happy coding!
Nhận xét
Đăng nhận xét