Sự khác biệt giữa tham chiếu web và tham chiếu dịch vụ trong WCF là gì? Cái nào thích hợp hơn trong WCF?
Sự khác biệt giữa tham chiếu web và tham chiếu dịch vụ trong WCF là gì? Cái nào thích hợp hơn trong WCF?
Câu trả lời:
Câu trả lời cấp thấp ở đây là Tham chiếu web sẽ tạo một lớp proxy máy khách cho phép mã của bạn nói chuyện với Dịch vụ web được mô tả qua WSDL và giao tiếp qua SOAP hoặc HTTP GET (các áp phích khác chỉ ra rằng đó chỉ là ASMX, nhưng Tài liệu tham khảo web cũng có thể nói chuyện với Dịch vụ web dựa trên Java hoặc dựa trên Python hoặc Ruby miễn là tất cả chúng đều nói về WSDL và tuân thủ tiêu chuẩn tương tác WS-I).
Tham chiếu dịch vụ sẽ tạo một lớp proxy máy khách liên lạc với dịch vụ dựa trên WCF: bất kể dịch vụ WCF đó có phải là Dịch vụ web hay không.
Tham chiếu web cho phép bạn liên lạc với bất kỳ dịch vụ nào dựa trên bất kỳ công nghệ nào triển khai Cấu hình cơ bản WS-I 1.1 và hiển thị siêu dữ liệu có liên quan dưới dạng WSDL. Trong nội bộ, nó sử dụng ngăn xếp giao tiếp ASMX ở phía khách hàng.
Tham chiếu dịch vụ cho phép bạn liên lạc với bất kỳ dịch vụ nào dựa trên bất kỳ công nghệ nào thực hiện bất kỳ giao thức nào được WCF hỗ trợ (bao gồm nhưng không giới hạn trong Hồ sơ cơ bản WS-I). Trong nội bộ, nó sử dụng ngăn xếp giao tiếp WCF ở phía máy khách.
Lưu ý rằng cả hai định nghĩa này đều khá rộng và cả hai đều bao gồm các dịch vụ không được viết bằng .NET.
Hoàn toàn có thể (mặc dù không được khuyến nghị) để thêm Tham chiếu web trỏ đến dịch vụ WCF, miễn là điểm cuối WCF sử dụng basicHttpBinding
hoặc một số biến thể tùy chỉnh tương thích.
Cũng có thể thêm Tham chiếu dịch vụ trỏ đến dịch vụ ASMX. Khi viết mã mới, bạn phải luôn sử dụng Tham chiếu dịch vụ đơn giản vì nó linh hoạt hơn và không bị ràng buộc trong tương lai.
Client
hậu tố.
Tham chiếu dịch vụ là giao diện mới hơn để thêm các tham chiếu cho tất cả các cách dịch vụ WCF (chúng có thể không phải là dịch vụ web) trong khi tham chiếu Web đặc biệt liên quan đến các tham chiếu web ASMX.
Bạn có thể truy cập các tham chiếu web thông qua các tùy chọn nâng cao trong thêm tham chiếu dịch vụ (nếu tôi nhớ chính xác).
Tôi sử dụng tài liệu tham khảo dịch vụ bởi vì theo tôi hiểu, đó là cơ chế mới hơn của cả hai.
Tài liệu tham khảo dịch vụ xử lý các điểm cuối và các ràng buộc, hoàn toàn có thể cấu hình. Họ cho phép bạn trỏ proxy máy khách của mình đến WCF thông qua bất kỳ giao thức truyền tải nào (HTTP, TCP, Bộ nhớ dùng chung, v.v.)
Chúng được thiết kế để làm việc với WCF.
Nếu bạn sử dụng WebProxy, bạn sẽ bị ràng buộc khá nhiều khi sử dụng WCF qua HTTP
Một điểm khác cần xem xét là giao diện người dùng mới cho Giao diện dịch vụ sẽ giúp bạn linh hoạt hơn nhiều về cách bạn muốn tạo lớp proxy của mình. Ví dụ, nó sẽ cho phép bạn ánh xạ hợp đồng dữ liệu tới các dll hiện có, nếu chúng khớp (thực ra đây là hành vi mặc định).