Share Code Web - Chia sẻ niềm đam mê bất tận > Lập trình > ASP/ASP.Net > Sự khác nhau giữa Asp.net webform và Asp.net MVC
Sự khác nhau giữa Asp.net webform và Asp.net MVC
Nguyễn Trung Hiếu
Share Code Web Company 2013

Sự khác nhau giữa Asp.net webform và Asp.net MVC

Sự khác nhau giữa Asp.net webform và Asp.net MVC cái nào hay hơn, cái nào phát triển hơn, thường dùng hơn. Bài viết này sẽ giúp bạn có cái nhìn tổng quan hơn về vấn đề này nhé.

Giới thiệu

Dạo qua một số diễn đàn, cộng đồng về tin học, lập trình, chúng ta thường bắt gặp một số câu hỏi kiểu như:

Và trong bài viết này, mình sẽ giúp các bạn có cái nhìn đúng hơn về 2 mô hình này.
Đầu tiên, theo như mình tìm hiểu, thì ASP.NET MVC sẽ không thay thế được ASP.NET Webforms. Cả 2 mô hình sẽ cùng phát triển và được sử dụng vào các ứng dụng ASP.NET. Cả 2 đều có ưu và nhược điểm mà chúng ta sẽ cùng thảo luận và so sánh ở dưới đây

So sánh MVC và Webform

mvs-vs-webforms

ASP.NET Webforms ASP.NET MVC
ASP.NET Webforms sử dụng các Page Controller để render ra các layout. Mọi page sẽ được các controller kiểm soát, và file code-behind sẽ thực hiện các request từ người dùng ASP.NET MVC sử dụng Front Controller. Cách tiếp cận này có nghĩa rằng là một controller chung sẽ được sử dụng cho nhiều Page để thực hiện các request
Mỗi trang aspx sẽ được điều khiển bởi chính controller đó trong code behind là là các file aspx.cs/vb, cả 2 liên kết chặt chẽ với nhau View và Controller được tách hẳn nhau
Chính vì thế nên việc tự động kiểm tra thực sự gặp khó khăn hơn Testability là một tính năng quan trọng trong ASP.NET MVC. Việc kiểm tra hướng phát triển diễn ra khá dễ dàng.
Để nắm bắt được trạng thái của một controller nào đó, thì chúng ta phải sử dụng ViewState ASP.NET MVC không có khái niệm ViewState
Chúng ta sẽ gặp nhiều vấn đề trong môi trường web nếu ViewState quá lớn. Vì ViewState lớn thì đồng nghĩa với việc gia tăng kích thước trang, tăng thời gian load và tài nguyên hơn Controller và View không có khái niệm ViewState, cho nên sản phẩm đầu ra trông rất “sạch”
Chỉ yêu cầu kiến thức tối thiểu về HTML, Javascript và CSS Yêu cầu kiến thức sâu về HTML, Javascript và CSS
Có nhiều công cụ hỗ trợ về công nghệ khác ví dụ như RAD… Đối với MVC thì thực sự là một trở ngại
Rất phù hợp cho các ứng dụng quy mô nhỏ và kích thước và số nhóm tham gia hạn chế Phù hợp với các ứng dụng quy mô lớn, có nhiều team cùng tham gia lập trình

Chốt

Thông qua sự so sánh trên, phần nào đã đem đến cho bạn cái nhìn tổng quan về 2 mô hình. Tùy vào một kịch bản phù hợp mà mình cần sử dụng mô hình nào mà thôi.

Bài viết dựa trên ý kiến chủ quan, và còn sơ sài, chúng ta cùng nhau tham khảo để đi đến cái nhìn tổng quan nhất cho những “lứa măng non” tham khảo nhé.

Related Posts

Tác giả: Nguyễn Trung Hiếu

Một blogger ... cùi bắp! Đơn giản: tôi muốn ghi lại những gì xảy ra xung quanh, cả công việc lẫn cuộc sống và chia sẻ với các bạn đọc. Nếu bạn cảm thấy bài viết có nhiều điểm không chính xác, hãy comment và chia sẻ để tôi còn được học hỏi từ những góp ý của bạn. Email: hieunt.dcn@gmail.com

http://sharecodeweb.net/?s={search_term_string}