This article is currently in the process of being translated into Vietnamese (~99% done).
ASP.NET MVC vs. Web Forms
Phiên bản đầu tiên của ASP.NET được ra mắt và 2002, với view engine là Web Forms là sự lựa chọn duy nhất bấy giờ. Về sau, để hỗ trợ cho những mẫu giống MVC, Microsoft đã mở rộng khả năng hỗ trợ của ASP.NET ra nhiều view engine, dù vậy, trong nhiều năm, khi ASP.NET được dùng đồng nghĩa với Web Forms cũng được sử dụng mặc định tự động.
Mục tiêu của Microsoft trong việc tạo ra Web Forms: Nhằm mục đích tóm gọn lại càng nhiều càng tốt các chi tiết nhỏ và phức tạp của giao thức HTTP và tính chất phi trạng giúp cho việc phát triển web giống với phát triển ứng dụng Window, việc đã được xem là trải nghiệm khá dễ chịu lúc bấy giờ
Để được như trên thì cần có sự ra đời của ViewState, giúp cho trạng thái hiện tại của form được bảo toàn trong khi đăng ngược dữ liệu về server, và điều này đạt được nhờ vào server control đóng các kết xuất đồ họa của HTML vs CSS vào các control tùy ý, những control này cho phép tùy chỉnh các yếu tố logic thay vì phải trộn lẫn HTML và CSS trực tiếp.
Window cũng giới thiệu về mô hình chạy trên sự kiện, loại mô hình đã được biết đến đối với các lập trình viên phát triển Window lúc bấy giờ, đây là mô hình cho phép lập trình viên phản hồi lại các sự kiện thao tác như là nút được bấm, checkbox được đánh dấu, thay vì phải kiểm tra tay mỗi khi trang được tải. Điều nãy cũng đồng nghĩa với việc mã markup và mã thông thường được tách ra, thứ mà trên lí thuyết là rất tốt.
Những mảng mà Web Forms thất bại
Web Form là một luồn gió mới đối với các lập trình viện, và cũng có khả năng cao trong việc giúp đỡ cho những lập trình viên mới hay những lập trình viên chỉ quen với việc phát triển ứng dụng Window, trong việc học cách xây dựng nên ứng dụng web. Không may là Microsoft không thành công trong việc tạo ra công cụ thu gọn hoàn hảo, lí do là nhiều vấn đề nhanh chóng phát sinh. Một số được sửa trong những phiên bản sau, một số thì lại gắn với nên móng cách WebForms hoạt động vì thế khó mà thay đổi được. Công nghệ Web Forms hay bị chỉ trích về các vấn đề sau:
ViewState khiến cho trang nặng hơn
Do dõi tất cả các server control trên trang ở dạng chuỗi(string) ViewState, chuỗi được gửi qua lại giữa server qua mỗi yêu cầu, các trang Web Forms trở nên nặng hơn. Xét về xây dựng trang có độ phức tạp tầm trung thì chuỗi ViewState có thể dẫn tới sự gia tăng tầm vài trăm kilobyte. Điều này dẫn đến thời gian tải chậm hơn, đặc biệt là trên kết nối di động vối sự gia tăng liên lạc của điện thoại thông minh trên toàn thế giới, và đây trở thành vấn đề quan trọng.
Server controls giới hạn khả năng điều khiển đầu ra HTMLcủa lập trình viên
Server control giúp ích cho việc ra những thứ hữu dụng nhanh và dễ dàng, thế nhưng, lập trình viên không bao giờ có hoàn toàn sự điều khiển của HTML được kết xuất. Điều này có thể trở thành một vấn đề khi cần sự tinh chỉnh cũng như nếu trình duyệt có vấn đề trong tương thích.
Web Forms không tốt cho việc kiểm thử tự động
Mô hình Web Forms ra đời trước khi kiểm thử tự động/đơn vị trở nên lớn mạnh và khi đó, có thể dễ dàng thấy rằng Web Forms khó, thậm chí là bất khả thi, để kiểm thử đơn vị một cách hiệu quả.
Vị trí mà ASP.NET MVC hơn Web Forms
ASP.NET MVC bỏ đi nhiều thao tác rút gọn nằm trong Web Forms. Một ví dụ là thông thường, người lập trình sẽ đưa ra những tất cả các đoạn HTML, thay vì dựa vào server control. Và ViewState cũng không còn tồn tại để duy nữa, do đó loại bỏ được những rắc rối một cách hiệu quả (nhưng cùng lúc cũng khiến một số server control như GridView và Repeater trở nên vô dụng).
Mô hình MVC hoàn hảo cho việc kiểm thử tự động/đơn vị, dựa vào cách liên kết rời (loose coupling) giữa các lớp khác nhau.
Công nghệ nào nên được chọn?
Một điều quan trọng cần được nhắc đến là mặc dù Web Form dựa trên những dòng trên nhìn giống như một công nghệ lỗi thời, sự thật là hoàn toàn không phải, Web Forms vẫn đang được Microsoft chú trọng phát triển và vẫn là một lựa chọn khả dĩ khi tham gia vào mội trường phát triển web với ASP.NET. Web Forms đặc biệt phù hợp với tình huồng cần một thứ gì được tạo thành nhanh chóng trong cấp bách - lí giải là nhờ vào lượng lớn server control cấp cao giúp cho việc tạo nên thứ gì đó cực kì hữu hiệu trong cấp bách, và với cái giá phải trả là sự linh hoạt trong việc cho phép tự tay viết markup.
Đối với người đã biết cách sử dụng Web Forms thì nên thử qua ASP.NET MVC, đặc biệt là khi đã trải nghiệm qua những vấn đề được nêu trên. Nếu như mới làm quen với phát triển web và cần có sự quyết định trong việc chọn 1 trong 2 loại công nghệ, ASP.MVC cũng sẽ được đề xuất sử dụng. Mô hình MVC thoạt nhìn có vẻ gò bó đối với một số lập trình viên, và việc phải đi theo một khuôn mẫu sẽ tất nhiên khó khăn hơn vào lúc ban đầu so với việc không ép vào khuôn mẫu nào, nhưng khi đã thành tạo sử dụng thì MVC khá dễ chịu khi sử dụng và khi xét về số lượng chú ý đối với mô hình này thì nhìn chung là sẽ còn tồn tại lâu dài.
Tóm tắt lại
Kết luận lại là dù rằng khi mới bắt đầu, ASP.NET Web Forms có thể sẽ dễ hơn đôi chút, lập trình viên mới bước vào thế giới phát triển web nên thử qua ASP.NET MVC trước tiên. Và cũng không cần lo lắng vì bài hướng dẫn sẽ giúp cho việc bắt đầu và xuyên suốt qua trình phát triển ứng dụng ASP.NET MVC đầu tiên.