6

Tiêu đề thực sự tổng hợp câu hỏi của tôi là gì. Tôi đã sử dụng cả hai công nghệ nhưng tôi không chắc chắn về những gì mà một trong những cung cấp khác biệt đáng kể so với cái kia. Về bản chất:Sự khác nhau chính giữa API Web và ASP MVC

Tiêu chí và/hoặc hướng dẫn nào nên xem xét khi chọn ASP MVC hoặc API Web khi thiết kế một ứng dụng web an toàn?

Trả lời

16

Mục đích

ASP.NET MVC là tập trung vào làm cho đầu ra của HTML dễ dàng. ASP.NET Web API tập trung vào việc tạo ra dữ liệu thô dễ dàng.

Trong thế giới WebForms, ASP.NET MVC sẽ tương đương với các trang .aspx và ASP.NET Web API sẽ là .asmx.

Mặc dù không có gì là không thể

Trong khi nó có thể làm cho Web API HTML đầu ra và đầu ra MVC dữ liệu thô, bạn sẽ cần phải làm việc thêm. Ví dụ: tạo các lớp bổ sung để xử lý văn bản/html trong quá trình đàm phán nội dung trong API Web hoặc thêm logic để xử lý các truy vấn OData trong MVC.

Giả

Giả định mặc định cho cả MVC và Web API khác nhau quá. MVC theo mặc định giả định dữ liệu do người dùng gửi có thể đến từ nhiều nguồn, có thể là trong chuỗi truy vấn hoặc trong biểu mẫu.

API Web theo mặc định giả định rằng kiểu nguyên thủy đến từ chuỗi truy vấn và các loại không phải nguyên thủy đến từ biểu mẫu. Nó cũng giả định rằng bạn sẽ chỉ muốn đọc các hình thức cơ thể một lần, mà không có bộ nhớ đệm, để có sử dụng bộ nhớ thấp hơn và hiệu suất tốt hơn.

Đi ngược lại các giá trị mặc định yêu cầu công việc bổ sung, điều đó đối với tôi, không có ý nghĩa gì cả.

EDIT:

Ngoài ra, GET yêu cầu AJAX bị chặn bởi JsonResult MVC bằng cách mặc định để ngăn chặn CSRF, trong khi Web API cho phép GET yêu cầu AJAX theo mặc định.

Cập nhật cho MVC 6

MVC 6 thống nhất MVC và Web API và cho phép bạn quay trở lại ViewResult như trong MVC hoặc đối tượng như trong Web API, và khuôn khổ sẽ chăm sóc đàm phán nội dung, tạo ra mã HTML , JSON hoặc XML cho bạn. Sử dụng bộ nhớ thấp hơn cũng đến trong MVC, bằng cách sử dụng đường dẫn tùy chỉnh của nó thay vì những gì được cung cấp bởi System.Web.

Vì vậy, về sau, không có sự phân biệt giữa MVC và API Web.

+1

Nếu tôi hiểu chính xác, bạn đang nói rằng sự khác biệt chính giữa hai là ASP MVC được thiết kế để xuất HTML và Web API được thiết kế để xuất mọi thứ khác. Đây có phải là yếu tố duy nhất mà người ta nên xem xét? – Nathan

+2

Theo như tôi biết, có. Tôi sẽ sử dụng MVC cho trang web của mình, trong khi Web API cung cấp dữ liệu mà ứng dụng dành cho thiết bị di động của tôi cần. Cả hai đều có thể cư trú trong cùng một dự án. –

+0

@JeowLiHuan Thật dễ dàng để loại bỏ các giá trị mặc định trong hộp từ Web Api và sử dụng các thiết lập mặc định của riêng bạn. Bằng cách đó, nó có thể trở thành nền tảng cho khuôn khổ api web của bạn. –

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