MVC gần như LUÔN LUÔN là giải pháp tốt hơn. Đó là tại vì:
Lifecycle của trang đơn giản và hiệu quả hơn.
Không có cái gọi là controls ngoài cáchtml controls. Bạn không cần debugoutput của mình để xem ASP.Net đang tạo ra những gì.
ViewModels cung cấp cho bạn sức mạnh to lớn và loại bỏ nhu cầu thực hiện control binding theo cách thủ công và nó hạn chế nhiều lỗi liên quan đến binding.
Bạn có thể có nhiều form trên một page. Đây là một hạn chế nghiêm trọng của WebForms.
Web là stateless và MVC khớp với kiến trúc của web hơn. Webform giới thiệu state và các lỗi bạn gặp phải thường trong ViewState. ViewState là tự động và hoạt động ở chế độ nền, vì vậy không phải lúc nào nó cũng hoạt động theo cách bạn muốn.
Những ứng dụng web ngày nay cần làm việc với ajax. MVC làm cho ajax trở nên tốt hơn, dễ dàng hơn và hiệu quả hơn rất nhiều với JQuery.
Bởi vì bạn có thể có nhiều form trên một trang và vì kiến trúc được điều khiển bởi các lệnh gọi đến url, bạn có thể thực hiện những việc thú vị như ajax tải một form khác, hoặc một form dùng để chỉnh sửa thông tin vào trang hiện tại của bạn bằng JQuery. Một khi bạn nhận ra điều này cho phép bạn làm gì, bạn có thể làm những điều tuyệt vời một cách dễ dàng.
ASP.Net WebForms không chỉ là một phần trừu tượng so với html, nó còn là một thứ cực kỳ phức tạp. Đôi khi bạn gặp phải một lỗi kỳ lạ và phải vật lộn với nó lâu hơn mức cần thiết. Trong nhiều trường hợp, bạn thực sự có thể thấy nó đang làm gì sai nhưng bạn không thể làm gì với nó. Bạn kết thúc việc kỳ lạ cách giải quyết.
WebForms không tạo ra một công nghệ tốt cho các designers. Các designer thường thích làm việc trực tiếp với html. Trong MVCdesigner chỉ cần nhìn qua, còn trong WebForms là nửa ngày làm việc để designer hoàn thành công việc.
Khi nền tảng web đang phát triển nhanh chóng, WebForms sẽ không theo kịp. Nó không biết về các thẻ hoặc tính năng mới của HTML5, nó sẽ vẫn hiển thị nội dung tương tự trừ khi bạn nhận được (thường xuyên) các controls đắt tiền của bên thứ 3 hoặc chờ đợiMicrosoft phát hành bản cập nhật.
Các controls trong WebForms giới hạn bạn theo nhiều cách. Trong MVC, bạn có thể chỉ cần lấy một thư viện JQuery và tích hợp nó vào các mẫu của bạn.