2016-04-06 16 views
7

Tôi đang truy vấn trong một thời gian dài. Chúng tôi cần sử dụng API WEB ở đâu và chúng tôi nên sử dụng các dịch vụ WCF ở đâu. Những gì chúng tôi muốn đạt được trong WEB API chúng tôi có thể đạt được trong WCF Rest. Tôi đã cố gắng để khai thác vào câu trả lời nhưng tôi đã nhận chúng tôi cần phải làm thiết lập thêm trong wcf như URI mẫu, Hợp đồng, thiết bị đầu cuối. Nhưng nhiều hơn về cài đặt, nhưng tôi muốn biết lý do thực sự đằng sau việc sử dụng WCF Restful Services.Sự khác nhau giữa các dịch vụ an toàn wcf và WEB API

+0

nếu bạn muốn hiển thị dịch vụ HTTP sử dụng Web Api nếu không hãy sử dụng WCF – Thomas

+0

Bản sao có thể có của [WCF vs ASP.NET Web API] (http://stackoverflow.com/questions/9348639/wcf-vs-asp-net -web-api) – Thomas

Trả lời

18

Web Service

  • Nó dựa trên SOAP và trả về dữ liệu ở định dạng XML.
  • Nó chỉ hỗ trợ giao thức HTTP.
  • Nó không phải là nguồn mở nhưng có thể được sử dụng bởi bất kỳ khách hàng nào hiểu XML.
  • Chỉ có thể lưu trữ trên IIS.


WCF

  • Nó cũng dựa trên SOAP và trả về dữ liệu ở định dạng XML.
  • Đó là sự phát triển của các dịch vụ web (ASMX) và hỗ trợ các giao thức khác nhau như TCP, HTTP, HTTPS, Đặt tên đường ống, MSMQ.
  • Vấn đề chính với WCF là cấu hình tẻ nhạt và phong phú của nó.
  • Nó không phải là nguồn mở nhưng có thể được sử dụng bởi bất kỳ khách hàng nào hiểu XML.
  • Nó có thể được lưu trữ trong ứng dụng hoặc trên IIS hoặc sử dụng dịch vụ cửa sổ.


WCF REST của

  • Để sử dụng WCF như một dịch vụ WCF REST của bạn phải kích hoạt webHttpBindings.
  • Nó hỗ trợ các động từ HTTP GET và POST bằng các thuộc tính [WebGet][WebInvoke] tương ứng.
  • Để bật các động từ HTTP khác, bạn phải thực hiện một số cấu hình trong IIS để chấp nhận yêu cầu của động từ cụ thể đó trên các tệp .svc.
  • Truyền dữ liệu qua các tham số bằng cách sử dụng cấu hình WebGet cần. Phải ghi rõ UriTemplate.
  • Nó hỗ trợ định dạng dữ liệu XML, JSON và ATOM.


Web API

  • Đây là khuôn khổ mới cho việc xây dựng các dịch vụ HTTP một cách dễ dàng và đơn giản.
  • API Web là nguồn mở là nền tảng lý tưởng để xây dựng các dịch vụ RESTful bằng .NET Framework.
  • Không giống như dịch vụ REST WCF, nó sử dụng đầy đủ các tính năng của HTTP (như URI, yêu cầu/tiêu đề phản hồi, bộ nhớ đệm, phiên bản, các định dạng nội dung khác nhau).
  • Nó cũng hỗ trợ các tính năng của MVC như định tuyến, bộ điều khiển, kết quả hành động, bộ lọc, chất kết dính mô hình, container IOC hoặc tiêm phụ thuộc, kiểm tra đơn vị làm cho nó đơn giản và mạnh mẽ hơn.
  • Nó có thể được lưu trữ trong ứng dụng hoặc trên IIS.
  • Đây là kiến ​​trúc có trọng lượng nhẹ và phù hợp cho các thiết bị có băng thông hạn chế như điện thoại thông minh.
  • Câu trả lời được định dạng bằng MediaTypeFormatter của API Web thành JSON, XML hoặc bất kỳ định dạng nào bạn muốn thêm dưới dạng MediaTypeFormatter.


Lựa chọn giữa WCF hoặc Web API

  • Chọn WCF khi bạn muốn tạo ra một dịch vụ mà nên hỗ trợ các tình huống đặc biệt như tin nhắn một cách, hàng đợi tin nhắn, thông tin liên lạc, vv duplex
  • Chọn WCF khi bạn muốn tạo một dịch vụ có thể sử dụng các kênh truyền tải nhanh khi có sẵn, chẳng hạn như TCP, Named Pipes hoặc thậm chí UDP (trong WCF 4.5) và bạn cũng muốn hỗ trợ HTTP khi tất cả các kênh truyền tải khác không có sẵn.
  • Chọn Web API khi bạn muốn tạo một dịch vụ hướng tài nguyên qua HTTP có thể sử dụng đầy đủ các tính năng của HTTP (như URI, yêu cầu/phản hồi tiêu đề, bộ nhớ đệm, phiên bản, định dạng nội dung khác nhau).
  • Chọn API Web khi bạn muốn hiển thị dịch vụ của mình cho nhiều khách hàng bao gồm trình duyệt, điện thoại di động, iPhone và máy tính bảng.

Để biết thêm chi tiết, bạn có thể tham khảo http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/.

+0

Tôi vẫn chưa nhận được câu trả lời, chúng tôi vẫn có thể đạt được mọi thứ trong WCF Rest mà chúng tôi có thể thực hiện trong API WEB. Tại sao sau đó microsoft có WEB API, đó là nhược điểm lớn của WCF Rest trên WebApi Không bao gồm tất cả các thiết lập trên WCF phần – abhijit

+2

xem abhijit nếu bạn muốn hiển thị chức năng của mình cho nhiều người dùng như thế này. ofcourse webApi là lựa chọn tốt nhất bạn có với trọng lượng nhẹ và các chức năng khác. – Mohit

Các vấn đề liên quan