2016-02-23 20 views
5

Tôi đang tạo ứng dụng thương mại điện tử mới trong máy chủ MVC và sql làm cơ sở dữ liệu. Tôi muốn sử dụng khung Entity cho cùng một. Tôi bối rối trong việc lựa chọn lớp truy cập dữ liệu của tôi. Tôi nên sử dụng cái nào trong WCF so với dịch vụ Web api vs Web. Có thể trong tương lai chúng tôi có thể yêu cầu ứng dụng Android và iOS. Tôi nghĩ rằng Web api sẽ là lựa chọn tốt nhất cho việc này.WCF vs WEb api vs dịch vụ web cho trang web thương mại điện tử mới

Tôi cố gắng tìm sự khác biệt giữa api web và WCF, tôi đã tìm thấy điều gì. ASP.NET Web API mới là sự tiếp nối của dự án WCF Web API trước đó (mặc dù một số khái niệm đã thay đổi).

WCF ban đầu được tạo để bật dịch vụ dựa trên SOAP. Đối với các dịch vụ RESTful hoặc RPCish đơn giản hơn (nghĩ rằng các máy khách như jQuery) ASP.NET Web API nên là lựa chọn tốt. Có hàng ngàn liên kết nói về Phần còn lại, TCP, FTP, xà phòng, Http. Nhưng không có nơi tôi tìm thấy câu trả lời của mình. Tôi vẫn còn bối rối Mà một trong những sẽ thực hiện vấn đề của tôi. Một điều nữa nếu tôi chọn Web api, khung thực thể có thể tích hợp với api Web. Tôi mới để chấm net. bất kỳ trợ giúp sẽ rất hữu ích.

Chỉnh sửa: @win cảm ơn sự giúp đỡ của bạn. Tôi muốn biết, Làm thế nào để quyết định cái nào tôi nên chọn, RESTFull (Web api) hoặc WCF (Soap). Những yếu tố trong ứng dụng quyết định, cái nào để sử dụng.

+1

tôi hy vọng bạn có thể nhận được câu trả lời của mình trong một câu hỏi khác được đăng trong stackoverflow [here] (http://stackoverflow.com/questions/9348639/wcf-vs-asp-net-web-api) –

+0

Thats phụ thuộc vào những gì bạn sẽ tạo ra, những gì bạn cần và mong đợi từ api cốt lõi của bạn. Bạn có thể nhận được cả hai tính năng REST và Web Services với WCF cộng WCF là một nền tảng mà bạn có thể thực hiện các tùy chỉnh sâu. Web Api và dịch vụ Web nhẹ hơn WCF nhưng bạn shoul quyết định rằng trong nhu cầu của bạn. –

+1

** Khung thực thể ** không liên quan gì đến ** Web API ** và ** WCF **. Nếu bạn cần hỗ trợ cả ** SOAP ** và ** REST **, hãy sử dụng ** WCF **. Nếu không, hãy sử dụng ** Web API **. Nếu bạn chưa quen với Web API, [ASP.NET Web API 2: Xây dựng một dịch vụ REST từ đầu đến cuối] (http://www.amazon.com/ASP-NET-Web-API-Building-Service/dp/ 1484201108/ref = sr_1_1? Ie = UTF8 & qid = 1456236356 & sr = 8-1 & từ khóa = web + api + start + to + finish) sẽ hướng dẫn bạn xây dựng API Web theo từng bước * (Lưu ý: Nó sử dụng NHibernate cho Lớp Truy cập Dữ liệu, nhưng bạn có thể thay đổi nó thành Entity Framework một cách dễ dàng) *. – Win

Trả lời

6

WCF cung cấp nhiều chức năng, nhưng với chi phí thiết lập cấu hình điên cuồng. Điên, điên. Nó bao gồm việc xác định một "ABC", Địa chỉ, Ràng buộc, Hợp đồng. Tôi luôn nói với mọi người "với WCF: cấu hình của nó, không phải mã". Chỉ có ~ rất nhiều tùy chọn để cấu hình nó.

Nếu bạn cần đẩy/kéo một lượng nhỏ dữ liệu tới "khách hàng" (trình duyệt, android, iphone), thì WebApi là đặt cược tốt nhất.

Một tính năng, WebApi sẽ cung cấp cho bạn xml HOẶC json qua cách yêu cầu được thiết lập (trong 'tiêu đề').

Với WCF, bạn phải "mã hóa" một trong hai hoặc/cả cho json và xml và nó không phải là siêu tầm thường. Aka, bạn phải đặt thuộc tính vào các dịch vụ-phương pháp ("Hợp đồng" của ABC) để nói "phương pháp này sẽ gửi lại xml" hoặc "phương pháp này sẽ gửi lại json".

Lớp WebApi của bạn sẽ cung cấp dịch vụ. Điều này thường có nghĩa là cung cấp dữ liệu json hoặc tiêu thụ dữ liệu json. Và MS đã chăm sóc "ống nước" cho bạn, do đó, ở phía dịch vụ, điều này xảy ra tự động một cách kỳ diệu.

Tôi đã mã hóa cả hai từ năm 2005 (tốt, WCF năm 2005 và sau, và sau đó với WebApi).

WebApi dễ xử lý hơn, đặc biệt đối với người mới bắt đầu.

Vì vậy, trừ khi bạn có lý do rất cụ thể để sử dụng WCF, tôi sẽ sử dụng WebApi.

Theo như ORM, điều đó xảy ra hoàn toàn ở "phía máy chủ", vì vậy bạn có thể chọn bất kỳ thứ gì bạn muốn. Tôi sẽ chọn Poco/Code-First/Entity-Framework HOẶC NHibernate.

Dưới đây là một giải thích nhỏ về dây tự động ma thuật lên ... trong đó bạn không phân tích cú pháp json ở phía SERVER.

http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/

và đây

http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/

Ngoài ý kiến ​​của tôi ở đây, đây là một Microsoft so sánh Bài chi tiết:

https://msdn.microsoft.com/en-us/library/jj823172.aspx

và báo giá:

Sử dụng WCF để tạo các dịch vụ web đáng tin cậy, an toàn có thể truy cập qua nhiều loại phương tiện. Sử dụng ASP.NET Web API để tạo các dịch vụ dựa trên HTTP có thể truy cập từ nhiều khách hàng khác nhau. Sử dụng ASP.NET Web API nếu bạn đang tạo và thiết kế các dịch vụ kiểu REST mới. Mặc dù WCF cung cấp một số hỗ trợ cho việc viết các dịch vụ kiểu REST, hỗ trợ cho REST trong ASP.NET Web API hoàn chỉnh hơn và tất cả các cải tiến về tính năng REST trong tương lai sẽ được thực hiện trong ASP.NET Web API. Nếu bạn có một dịch vụ WCF hiện có và bạn muốn trưng ra các điểm cuối REST bổ sung, hãy sử dụng WCF và WebHttpBinding.

+0

Ai đó đã nghĩ về nó nhiều hơn tôi đã làm: http://blogs.microsoft.co.il/idof/2012/03/05/wcf-or-aspnet-web-apis -my-hai xu-on-the-chủ đề / – granadaCoder

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