Nền tảng ASP.NET MVC giúp cho chúng ta có thể tạo được các ứng dụng web áp dụng mô hình MVC thay vì tạo ứng dụng theo mẫu ASP.NET Web Form. Nền tảng ASP.NET MVC có đặc điểm nổi bật là nhẹ (lighweigt), dễ kiểm thử phần giao diện (so với ứng dụng Web Forms), tích hợp các tính năng có sẵn của ASP.NET.
MVC là một mẫu thiết kế (design pattern) chuẩn mà nhiều lập trình viên đã quen thuộc. MVC là viết tắt chữ cái đầu của Models, Views, Controllers. MVC chia giao diện UI (User Interface) thành 3 phần tương ứng, đầu vào của các controller là các điều khiển thông qua HTTP request, model chứa các miền logic, view là những thứ được sinh ra trả về cho trình duyệt.
Tại sao nên dùng ASP.NET MVC
- Dễ dàng quản lý sự phức tạp của ứng dụng bằng cách chia ứng dụng thành ba thành phần model, view, controller
- Nó không sử dụng view state hoặc server-based form. Điều này tốt cho những lập trình viên muốn quản lý hết các khía cạnh của một ứng dụng.
- Nó sử dụng mẫu Front Controller, mẫu này giúp quản lý các requests (yêu cầu) chỉ thông qua một Controller.
- Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD)
- Nó hỗ trợ tốt cho các ứng dụng được xây dựng bởi những đội có nhiều lập trình viên và thiết kế mà vẫn quản lý được tính năng của ứng dụng
Các tính năng của nền tảng ASP.NET MVC
– Tách rõ ràng các mối liên quan, mở khả năng test TDD ( Test Driven Developer). Có thể test unit trong ứng dụng mà không cần phải chạy Controllers cùng với tiến trình của ASP.net và có thể dùng bất kỳ một unit testing framework như NUnit, MBUnit, MS Test…
– Có khả năng mở rộng, mọi thứ trong MVC được thiết kế dễ dàng thay thế/ tùy biến (ví dụ có thể lựa chọn engine view riêng routing policy, parameter serialization, …).
– Bao gồm ánh xạ URL mạnh mẽ, cho phép xây dựng ứng dụng với những URL sạch, các URL không cần cs mở rộng (ví dụ có thể ánh xạ địa chỉ /Products/Edit/4 để thực hiện hành động edit của lớp điều khiển ProductControllers hoặc ánh xạ địa chỉ Blog/SomeTopic để thực hiện hành động “Display Topic” của lớp điều khiển BlogEngineController ).
– ASP.net MVC Framework cũng hỗ trợ file ASP.net như .ASPX .ASCX và .Master đánh dấu các tập tin này như một “view template” (có thể dễ dàng sử dụng các tính năng của ASP.net như lồng các trang Master, <%=%> snippets, mô tả server controls, template, data-binding, localization…). Tuy nhiên sẽ không còn postback và interactive back server và thay vào đó là interactive end-user với một controller class (không còn viewstate, page lifecycle).
– ASP.net MVC Framework hỗ trợ đầy đủ các tính năng bảo mật của ASP.net như Form/ Windows authenticate, URL authorization, membership/roles, output và data caching, section/ profile state, configuration system, provider architecture, …