HI các bạn.... Mình đang có thắc mắc khác nhau giữa webAPI và wcf, lập trình ứng dụng thì bên nào hơn, bác nào có kinh nghiệm tư vấn cho mình với.
Thanks các bác
HI các bạn.... Mình đang có thắc mắc khác nhau giữa webAPI và wcf, lập trình ứng dụng thì bên nào hơn, bác nào có kinh nghiệm tư vấn cho mình với.
Thanks các bác
WCF là cả cái framework để làm Networking Communication nói chung. Nó hỗ trợ rất nhiều protocol như TCP, UDP, HTTP/HTTPS, Odata hoặc bạn có thể tạo ra protocol của riêng mình ví dụ protobuf của Google, bson...
Web API là API via Web, định nghĩa chung là vậy. Web API đồng thời trong ASP.NET MVC là 1 feature. Vì là 1 phần của MVC nên Web API chỉ work trên HTTP/HTTPS.
So sánh giữa WCF và Web API thì WCF như khẩu đại bác còn Web API giống như khẩu súng trường. Với những project Enterprise đòi hỏi Security cao, Federated Security, Transaction controlling, System integration hoặc đòi hỏi bạn phải implement nhiều network protocol khác nhau thì dùng WCF sẽ nhẹ nhàng hơn. Nói vậy chứ cũng ko nhẹ vì WCF stack rất phức tạp, mình chưa thấy cuốn sách nào cover hết được WCF stack.
Web API là lightweight solution để tạo ra REST services trên ASP.NET MVC stack nên nó đơn giản và phù hợp với Single-page app, Mobile app hơn, nhưng vẫn phải dựa trên HTTP.
Mình dùng wcf, cấu hình chạy https khi publish lên iis, quả là gian nan
Cấu hình để Enable script wcf ( dùng js) gọi hàm trong service. Nếu mình chuyển https thi nó ko nhận dòng config này.
<behavior name="wdmAspNetAjaxBehavior">
<enableWebScript/>
</behavior>
Nếu bạn gọi service từ web hoặc mobile thì nên dùng Web API hoặc WCF webHttpBinding.
Thứ nhất là format trả về là JSON hoặc XML dễ làm việc với JavaScript hơn.
Thứ hai là data qua lại nhỏ hơn. Đa số các ***HttpBinding khác dùng SOAP 1.1 và 1.2 message khá cồng kềnh.
WCF cho phép bạn expose service ra nhiều endpoint khác nhau. Bạn có thể vừa expose ra webHttpBinding và wsHttpBinding với cùng 1 sẻvice, nếu bạn muốn tách service host ra khỏi web app thì chỉ cần enable CORS lên Web API hay webHttpBinding service . Https với WCF ko đơn giản chỉ là config IIS, có rất nhiều việc phải làm với WCF. Dùng webHttpBinding thì đơn giản hơn những binding khác.
Bookmarks