Tôi đang tìm hiểu để sử dụng dịch vụ WCF thay vì chỉ sử dụng webclient hoặc httpwebrequest. Tôi đoán tôi cũng đang tìm hiểu sự khác biệt giữa các mẫu thiết kế phù hợp cho cả hai.Khi nào thích hợp để sử dụng WCF trên webclient hoặc httpwebrequest?
Trả lời
Bạn đang nói về thời điểm tạo một dịch vụ WCF bản thân bạn (qua dịch vụ web), hoặc khi nào tiêu thụ một dịch vụ web hiện có bằng WCF thay vì các máy khách .NET 2.0 ASMX?
Đối với việc tạo ra một dịch vụ WCF bản thân:
- Cung cấp cho bạn rất nhiều tùy chọn về lưu trữ (trong một ứng dụng, Windows Service, IIS, WAS)
- Cung cấp cho bạn tùy chọn bảo mật hơn rất nhiều
- Cung cấp cho bạn nhiều tùy chọn giao thức hơn (ngoài HTTP, bạn cũng có thể sử dụng WS- *, TCP, Đặt tên đường ống, MSMQ và hơn thế nữa)
- Cho phép bạn viết dịch vụ của mình một lần và hiển thị nhiều kết thúc- điểm với các giao thức khác nhau cùng một lúc
Đối với việc sử dụng WCF để nói chuyện với dịch vụ web HTTP (ASMX) hiện tại - tôi không thấy nhiều lợi ích lớn, ngoại trừ WCF sử dụng cấu hình nhiều hơn mã và có thể tốt cách làm mọi thứ, nếu bạn đã sử dụng các dịch vụ WCF khác, dù sao đi nữa.
Marc
Tôi hiện đang sử dụng WCF cho hầu hết những thứ mà tôi sẽ sử dụng WebClient hoặc HttpWebRequest/HttpWebResponse trong quá khứ. Trong khi chắc chắn là chi phí cho sự thèm muốn làm thế nào để thực hiện cuộc gọi đến các phương pháp web bằng cách sử dụng WCF, khả năng mở rộng của WCF và trừu tượng nó cung cấp làm cho nó một ứng cử viên tốt hơn MUCH cho các loại cuộc gọi.
Tôi đã sử dụng nó để thực hiện cuộc gọi đến Akismet và RPX khá dễ dàng.
Để bắt đầu, tôi muốn nhìn vào các phần của tài liệu MSDN có tiêu đề "WCF Web Lập trình Object Model", tọa lạc tại địa chỉ:
- 1. Gửi yêu cầu HTTP bằng C# HttpWebRequest hoặc WebClient?
- 2. Khi nào thích hợp để sử dụng CacheItemRemovedCallback?
- 3. Làm cách nào để chuyển cookie sang HtmlAgilityPack hoặc WebClient?
- 4. Làm thế nào để xử lý/phân tích lỗi cho phần còn lại WCF được gọi là sử dụng WebClient
- 5. Khi nào thích hợp để sử dụng mã lỗi?
- 6. Khi nào thích hợp để sử dụng thuộc tính KnownType?
- 7. Khi nào thích hợp để sử dụng couchDB?
- 8. MonoDroid HttpWebRequest và WebClient không đáng tin cậy?
- 9. Equivallent của .NET WebClient và HttpWebRequest trong Java?
- 10. HttpWebRequest Vs lớp WebClient là người tốt hơn
- 11. nên WebClient trường hợp được tái sử dụng trong Silverlight
- 12. Làm thế nào để hạn chế sử dụng băng thông khi sử dụng HttpWebRequest?
- 13. Sử dụng WCF trên Localhost trên Azure
- 14. FxCop - Sử dụng các thuộc tính khi thích hợp
- 15. Trả lại loại thích hợp sau khi sử dụng OrderBy()
- 16. Khi nào thích hợp để sử dụng mảng ô so với cấu trúc trong Matlab?
- 17. Cách thích hợp để sử dụng JQuery khi sử dụng MasterPages trong ASP.NET?
- 18. Khi nào thích hợp để sử dụng EAR và khi nào các ứng dụng của bạn sẽ có trong WAR?
- 19. Khi nào nó cần thiết/thích hợp để sử dụng InAttribute và OutAttribute cho COM Interop
- 20. Khi nào thích hợp để sử dụng Time # utc trong Rails 2.1?
- 21. Khi nào là thích hợp để sử dụng tĩnh (trên các không gian tên chưa đặt tên) trong C++?
- 22. Sử dụng HTTPS và httpWebRequest
- 23. Khi nào không thích hợp để sử dụng các bảng có nguồn gốc?
- 24. Khi nào thích hợp để sử dụng các biến số trống cuối cùng?
- 25. Khi nào là thời điểm thích hợp để sử dụng từ khóa 'mới'?
- 26. ASN.1 so với JSON khi nào là thích hợp để sử dụng chúng?
- 27. Các trường hợp sử dụng để thực hiện chú thích
- 28. Làm thế nào và khi nào thì thích hợp sử dụng weakref bằng Python
- 29. Webclient/HttpWebRequest với xác thực cơ bản trả về 404 không được tìm thấy cho URL hợp lệ
- 30. Cách thích hợp để sử dụng SyncLock (nói chung)