ASP.NET
cung cấp cho bạn ba mô hình để phát triển web, gồm có: ASP.NET Web
Forms, ASP.NET Web Pages và ASP.NET MVC. Bài viết này nhằm giúp bạn lựa
chọn mô hình phù hợp với bạn để có thể bắt đầu viết các ứng dụng bằng
ASP.NET.
Ba
mô hình này được xây dựng trên nền tảng ASP.NET. Mỗi mô hình đều có cấu
trúc ứng dụng riêng biệt, và mỗi mô hình đều có ưu và nhược điểm riêng,
tùy vào mỗi tình huống, tùy vào quy mô và nhu cầu của dự án mà lập
trình viên có thể chọn và sử dụng một mô hình phù hợp.
Để
lập trình với ASP.NET Web Pages, bạn cần sử dụng Web Matrix hoặc Visual
Studio. Còn với ASP.NET Web Forms, và ASP.NET MVC, thì bạn nên cài đặt
Visual Studio Express trở lên.
ASP.NET Web Forms
ASP.NET
Web Forms là nền tảng dành cho các lập trình viên yêu thích mô hình lập
trình hướng sự kiện (event driven development) và muốn tăng hiệu suất
bằng cách sử dụng các controls. Nếu bạn đã quen thuộc với việc lập trình
các ứng dụng khác (như ứng dụng được xây dựng trên Windows Forms,
Silverlight hoặc WPF…), bạn có thể chọn lựa mô hình này vì bạn sẽ dễ
dàng tiếp cận nó. ASP.NET Web Forms hỗ trợ nền tảng lập trình ở phía máy
chủ và cung cấp nhiều các server side controls, chúng đóng gói HTML,
JavaScript và CSS bên trong, giúp bạn có thể thiết kế ứng dụng một cách
dễ dàng và nhanh chóng bằng cách kéo thả các control.
ASP.NET
Web Forms còn cung cấp tính năng data binding nên bạn có thể dễ dàng
phát triển các ứng dụng nặng về việc truy xuất và hiển thị dữ liệu.
Với
ASP.NET Web Forms, bạn có thể dễ dàng quản lý trạng thái của các
control nhờ vào cơ chế post-back và view state. Mọi thay đổi, tương tác
trên form của người dùng đối với trang web sẽ được lưu lại trạng thái và
bạn có thể xử lý chúng bằng mã lệnh từ phía server sau mỗi lần người
dùng post-back (gởi trả lại trang) cho server.
Điều
bất tiện của ASP.NET Web Forms là cấu trúc của nó khiến nó khó có thể
được áp dụng unit-test hoàn toàn. Và nó tách biệt lập trình viên khỏi
kiến thức về CSS, HTML và mô hình lập trình state-less (không lưu giữ
trạng thái của các điều khiển) truyền thống của lập trình web. Với lập
trình viên thiếu kinh nghiệm, ứng dụng ASP.NET Web Forms sẽ trở nên nặng
nề, và không được cấu trúc tốt, giao diện sử dụng CSS và HTML bừa bãi.
Người
lập trình ASP.NET Web Forms, nên làm quen với mô hình lập trình ứng
dụng web theo cách truyền thống như ASP.NET Web Pages, PHP trước khi lập
trình với ASP.NET Web Forms.
ASP.NET MVC
ASP.NET
MVC là mô hình lập trình dành cho những người yêu thích phát triển ứng
dụng theo mô hình test-driven, và áp dụng mẫu lập trình SoC (Separation
of Concerns), nói nôm na là tách biệt các mối quan tâm ra khỏi nhau. Mô
hình này sẽ tách thành phần business logic (logic của ứng dụng) ra khỏi
lớp trình diễn (presentation layer).
ASP.NET
MVC không cung cấp các điều khiển được đóng gói sẵn như server-side
control của ASP.NET Web Froms, thay vào đó bạn bạn phải hiểu biết sâu
hơn về HTML và giao thức hTTP. Mô hình này phù hợp với các lập trình
viên có kinh nghiệm với lập trình web từ trước, trong khi đó những lập
trình viên chưa có kiến thức về lập trình web cũng có thể bắt đầu ngay
với ASP.NET Web Forms.
Nói
tóm lại ASP.NET khuyến khích lập trình viên sử dụng các design patterns
và áp dụng các kiến trúc ứng dụng để xây dựng các ứng dụng dễ mở rộng,
dễ bảo trì, và đặc biệt là dễ dàng kiểm thử bằng unit tests.
ASP.NET Web Pages
ASP.NET
Web Pages là mô hình lập trình đơn giản nhất, và trang web sẽ là tập
hợp nhiều trang web. Nó khá là dễ dàng cho lập trình viên lựa chọn và
học lập trình. Nó sử dụng cú pháp Razor như ứng dụng MVC nhưng nó lại sử
dụng mã server-side ngay bên trong các trang web, hơn là tách chúng ra
thành các lớp điều khiển.
ASP.NET Web Pages cho phép lập trình viên toàn quyền trong việc quyết định mã HTML sẽ được sinh ra như thế nào.
ASP.NET
Web Pages cũng không có vòng đời của trang như Web Forms, nó chỉ đơn
giản là xử lý mã lệnh từ trên xuống dưới thay vì có các sự kiện như pageload hoặc pagerender như bên phía ứng dụng web forms.
Tóm lại
Ba
mô hình đều sử dụng một lõi chung là ASP.NET, và bạn có thể chọn mô
hình phù hợp với mình. Còn riêng theo ý kiến cá nhân của tôi, nếu bạn là
người mới bắt đầu với lập trình web và ASP.NET, bạn nên chọn Web Pages
để học và nắm những yếu tố cơ bản và áp dụng chúng với các ứng dụng nhỏ,
sau đó sẽ chuyển qua mô hình lập trình ASP.NET MVC, và áp dụng chúng
cho các ứng dụng phức tạp hơn.

0 nhận xét:
Đăng nhận xét