Thứ Tư, 10 tháng 9, 2014

Sự khác biệt Giữa MVC và WebForm

 Trong lập trình web với ASP.net, các bạn có thể sử dụng ViewState để quản lý ASP.net WebForm, các trang ASP.net đều có lifecycle, postback và dùng các web controls, các event để thực hiện các hành động cho UI (User Interface) khi có sự tương tác với người dùng nên hầu hết ASP.net WebForm xử lý chậm.
-  ASP.net MVC chia ra làm 3 phần: Models, View, Controller. Mọi tương tác của người dùng với Views sẽ được thực hiện hành động trong Controllers, không còn postback, lifecycel và events.
-  Việc kiểm tra (test), gỡ lỗi (debug) với ASP.net WebForm đều phải chạy tất cả các tiến trình của ASP.net, và sự thay đổi ID của bất kỳ Controls nào cũng ảnh hưởng đến ứng dụng. Đối với MVC thì việc đó có thể sử dụng các unit test có thể thẩm định rất dễ dàng các Controllers thực hiện như thế nào.

-  Sau đây là bảng so sánh các tính năng của ASP.net WebForm với ASP.net MVC


Các tính năng
ASP.net WebForm
ASP.net MVC
Kiến trúc chương trình
Kiến trúc mô hình WebForm –> Bussiness –> Database
Kiến trúc sử dụng việc phân chia chương trình thành: Models, Views, Controllers
Cú pháp chương trình
Sử dụng cú pháp của WebForm, tất cả các sự kiện và controls do server quản lý
Các sự kiện được điều khiển bởi controllers, các controls không do server quản lý.
Truy cập dữ liệu
Sử dụng hầu hết các công nghệ truy cập dữ liệu trong ứng dụng
Phần lớn dùng LINQ và SQL class để tạo mô hình truy cập đối tượng.
Debug
Debug phải thực hiện tất cả bao gồm các lớp truy cập dữ liệu, sự hiển thị, điều khiển các controls.
Debug có thể sử dụng các unit test để kiểm tra các phương thức trong controllers.
Tốc độ phân tải
Tốc độ phân tải chậm khi trong trang có quá nhiều các controls vì ViewState quá lớn
Phân tải nhanh hơn do không phải quản lý ViewState để quản lý các controls trong trang.
Tương tác với JavaScript
Tương tác với JavaScript khó khăn vì các controls được điều khiển bởi server
Tương tác với JavaScript dễ dàng vì các đối tượng không do server quản lý điều khiển không khó
URL address
Cấu trúc địa chỉ URL có dạng:
<filename>.aspx?&<các tham số>
Cấu trúc địa chỉ rành mạch theo dạng Controllers/Action/ID

Không có nhận xét nào:

Đăng nhận xét