Tôi nên sử dụng phương pháp / công nghệ / công cụ .NET REST nào?


16

Tôi đang triển khai một dịch vụ web RESTful và một số ứng dụng khách chủ yếu trong Silverlight. Tôi đang tìm một loạt các tùy chọn để phát triển cả phía máy chủ và phía máy khách của API nhưng không chắc đó là cách tiếp cận tốt nhất. Tôi lo ngại về sự ổn định cũng như một nền tảng sẽ tiếp tục tồn tại một vài tháng kể từ bây giờ.

Chúng tôi đã bắt đầu sử dụng Bộ khởi động REST với .NET 3.5 nhưng đã chuyển sang API Web WCF mới khi cập nhật lên .NET 4.0. Tất cả tài liệu của họ chỉ ra rằng API Web WCF là sự thay thế cho RSK. Tuy nhiên, API Web chỉ có trong Bản xem trước 4 và không bao gồm hỗ trợ cho các máy khách Silverlight hoặc Windows Phone 7 (chưa).

API Web WCF trông giống như một trình bao bọc bên trên các công cụ Dịch vụ WebHttp của WCF được cung cấp trong System.ServiceModel.Webthư viện, điều này khiến tôi nghĩ rằng có thể đơn giản hơn khi chỉ đi với các công cụ tích hợp nhưng API Web cung cấp một số tính năng hay.

Tôi đặc biệt gắn bó với việc cố gắng xác định khóa học tốt nhất cho phía khách hàng. Yêu cầu chính của tôi là tôi cần hỗ trợ khử lưu huỳnh vào các đối tượng phía máy khách của mình một cách nhanh chóng và dễ dàng. API Web cung cấp một thư viện máy khách đẹp nhưng không có phiên bản Silverlight.

Tôi muốn sử dụng phương pháp mới nhất và bộ công cụ đang được tích cực phát triển và hỗ trợ.

  1. Bộ công cụ REST Starter có thực sự lỗi thời?

  2. Có ai có bất kỳ thành công nào khi thực hiện bộ công cụ API Web WCF không?

  3. Có công đức khi sử dụng một trong hai tính năng này trên các tính năng Dịch vụ WebHttp WCF tích hợp được tìm thấy trong System.ServiceModel.Webkhông?

  4. Có một giải pháp duy nhất hoạt động cho bất kỳ khách hàng nào (web, Silverlight, v.v.) không?

Những đề nghị của bạn là gì?


Tôi thực sự khuyên bạn nên sử dụng dịch vụ phục vụ
Mithir

Câu trả lời:


6

Chỉ cần theo dõi và đóng bài đăng, với Bản xem trước 5, API Web WCF đã có một bước tiến vượt bậc khiến việc tạo API REST trở nên cực kỳ đơn giản. Và trong khi cơ sở mã hiện tại trên Codeplex không bao gồm máy khách Silverlight, có một bộ công cụ ngoài đó và tôi có thể dễ dàng loại bỏ các phần Async-CTP khỏi mã nguồn mở và tạo phiên bản SL.

Tôi thực sự khuyên mọi người quan tâm đến việc vào REST với WCF hãy xem xét khuôn khổ: http://wcf.codeplex.com .

FYI - Nó sẽ là một phần tích hợp của .NET 4.5 và hiện đang được viết lại để chạy trên cùng một khung lõi như ASP.NET MVC (mặc dù tôi được bảo rằng nó chắc chắn sẽ hỗ trợ tự lưu trữ).


1

Tôi chưa sử dụng Bộ khởi động REST nhưng hiện tại tôi đang viết API RESTF .net 4.0 khá chắc chắn rằng nó vẫn tồn tại :)

Tôi muốn giới thiệu bạn có một cái nhìn tại odata. Nó nhanh chóng và đơn giản để mã hóa và chơi độc đáo với ánh sáng bạc.


Một trong những tính năng được cung cấp bởi bộ công cụ API Web WCF là hỗ trợ OData hoạt động độc đáo. Nhưng, không có phiên bản Silverlight không giúp tôi. Làm thế nào bạn xử lý khử lưu huỳnh ở phía khách hàng?
SonOfPirate

Tôi chỉ thực hiện nó với WP7 silverlight. Rằng tôi chỉ cần thêm một sự điều chỉnh dịch vụ và gọi đó. Bạn chỉ có thể sử dụng một webclient và tự giải thích lại phản hồi mặc dù điều đó có hiệu quả hơn với bạn không. Nó không khó
Tom Squires

Tôi không nghĩ rằng việc sử dụng webHttpBinding để bật REST với WCF hỗ trợ điểm cuối mex. Làm thế nào bạn thêm một tài liệu tham khảo dịch vụ? Đó sẽ là sở thích của tôi khi chia sẻ một thư viện chung chứa các hợp đồng dữ liệu của tôi.
SonOfPirate

Yeh, tôi chỉ cần thêm một sự điều chỉnh dịch vụ. Bạn có thể cần xác định điểm cuối trong tệp cấu hình.
Tom Squires

Tôi mới biết (một cách khó khăn) rằng Silverlight không hỗ trợ WebHttpBinding. Vì vậy, mặc dù tôi có thể hiển thị điểm cuối mex và Thêm tham chiếu dịch vụ, dịch vụ sẽ không thực hiện cuộc gọi vì không thể giải quyết điểm cuối.
SonOfPirate

1

API Web WCF không cung cấp bất kỳ thông tin siêu dữ liệu nào bạn sẽ sử dụng để tạo proxy dịch vụ và do đó, có thể thêm một tham chiếu dịch vụ. Nó được thiết kế để dễ dàng sản xuất các dịch vụ REST dưới cái ô WCF, giống như bạn làm với khung API Web ASP.NET ASP.NET 4.

Do đó, không có hỗ trợ cho WP7 hoặc Silverlight, nhưng nó gần như hoàn hảo cho phần còn lại của web.

Tuy nhiên, Dịch vụ dữ liệu WCF trông giống như một ứng cử viên phù hợp, nó cho phép bạn tạo các dịch vụ RESTful và dễ dàng sử dụng chúng với Silverlight.


Chúng tôi đã sử dụng API Web với ứng dụng khách Silverlight của chúng tôi trong gần một năm mà không gặp vấn đề gì.
SonOfPirate
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.