Thursday, March 26, 2015

Điểm khác biệt giữa ASP.NET MVC và ASP.NET WEB API

Khi lập trình với MVC, nhiều bạn vẫn thường nhầm lẫn sang Web API, vì MVC cũng trả về dữ liệu kiểu JSON bằng cách sử dụng JsonResult và cũng sử dụng được với các Ajax request. Trong bài viết này chúng ta  cùng đi phân tích một số điểm giống và khác nhau giữa Asp.Net Web API và Asp.Net MVC:
  • MVC trả về cả View và Data trong đó Web API chỉ trả về Data.
  • Web APi giúp xây dựng REST-full services trên nền tảng .NET. Hỗ trợ content-negitiation (tự động trả dữ liệu có kiểu phù hợp với client – Json, Xml, Atom,…), self-hosting mà MVC không có.
  • Web API sẽ giúp bạn chuyển kiểu dữ liệu trả về theo thuộc tính Accept trong header của request và bạn không cần quan tâm đến điều đó. MVC thì chỉ trả về kiểu JSON.
  • Web API, Request được mapping với các Actions dựa trên phương thức, vd: GET, PUT, POST, … Còn MVC thì Request được mapping với tên các Action.
  • Asp.Net Web API là một nền tảng mới và là một phần của Asp.net. Các tính năng như model binding, filters, routing và nhiều tính năng khcá của MVC cũng có trong Web API nhưng nó được đóng gói vào System.Web.Http. Trong MVC những tính năng này nằm trong System.Web.MVC. Vì vậy Web API có thể được sử dụng với Asp.Net hay đứng độc lập.
  • Bạn có thể dùng cả Web API và MVC controller trong cùng 1 project để xử lý các Ajax Request trả về dữ liệu kiểu Json, Xml,.. . Cái này gọi là Web API self-hosting.
  • Khi dùng cả Web API và Web MVC, bạn cần kiểm soát quyền truy cập. Và như vậy trong hệ thống của bạn sẽ tồn tại 2 filter, một cho Web Api và một cho Web MVC.
  • Hơn hết, Web API là một kiến trúc gọn nhẹ ngoài việc dùng cho các ứng dụng web, nó còn dùng được với các ứng dụng smart phone.

No comments:

Post a Comment