ARTICLEs

Chọn lựa ASP.NET WebForm, ASP.NET WebPage, ASP.NET MVC để phát triển website?0

An article of Truong Minh Tuan created at 2017-03-28 14:32:09

Khi nhắc đến công nghệ ASP.NET của Microsoft thì chắc hẳn chúng ta đều biết đến WebForm, WebPage, MVC. Đây là bộ 3 mô hình để phát triển website ASP.NET. Và việc lựa chọn mô hình nào để phát triển là một vấn đề rất nan giải, theo tôi suy nghĩ thì tuỳ theo sở trường, cấu trúc của ứng dụng, quy mô phát triển và thậm chí là theo thời đại mà mỗi developer có sự lựa chọn phù hợp nhất.

Mô hình WebMatrix, Visual Studio giúp cho Developer phát triển nền tảng ASP.NET WebPage, ngược thì thì Visual Studio lại phù hợp cho việc phát triển nền tảng ASP.NET WebForm, ASP.NET MVC.

Dưới đây, tôi gửi đến các bạn vài thông điệp về những điểm nổi bật của 3 mô hình trên:

ASP.NET WEBFORM

Đây được coi là nền tảng được yêu thích nhất của đa phần lập trình viên khi mới bắt đầu học và làm sản phẩm website với Microsoft. Vì nó mang tính hướng sự kiện và dễ dàng khi vận dụng hết khả năng của các Control mà bộ Visual Studio đã cung cấp.

Trước khi tôi đến với .NET thì tôi đã làm qua các sản phẩm của Microsoft như Access, Foxpro, VB6, Window Form, WCF thì việc phát triển website trên nền tảng WebForm lại là đều rất dễ dàng. ASP.NET WebForm hỗ trợ nền tảng lập trình phía Server và cung cấp khá nhiều Server Side Control (có cả HTML, CSS, Javascript). Việc của bạn chỉ cần nắm thả (Drop) các Control vào ứng dụng của mình. Và cá nhân tôi sau 2 năm miệt mài phát triển và update sản phẩm thì CMS WebControl của tôi cũng ra đời và phát triển gần 80 sản phẩm trong 5 năm qua, và tôi cảm thấy đây là điều rất tuyệt vời khi sử dụng nền tảng này.

ASP.NET còn cung cấp cho developer tính năng rất quan trọng đó là data binding, giúp cho việc truy xuất đến database trở nên dễ dàng hơn. Một điểm đặc biệt khác nữa là WebForm cung cấp IsPostback, Viewstate, để quản lý các trạng thái của Control, nhưng đây cũng là một điểm yếu vì nó vô tình làm cho website của bạn trở nên cồng cềng và load chậm hơn.

Điểm khuyết của ASP.NET WebForm là khả năng unit-test khó có thể được áp dụng hoàn toàn. Bởi các Control đã đóng gói cả HTML, CSS, Javascript, và đây là việc developer khó quản lý và nắm kiến thức nền tảng về HTML, CSS, Javascript, điều mà các ứng dụng website trước kia ASP VBScript, PHP đã làm rất tốt.

ASP.NET WEBPAGE

Đây là nền tảng cơ bản, đơn giản nhất, phù hợp cho những ai mới lựa chọn học và tìm hiểu về ASP.NET của Microsoft. Bởi WebPage tập hợp nhiều trang web và sử dụng cú pháp Razor như mô hình MVC vì thế WebPage cho phép developer chỉnh sữa mã HTML của nó nhưng bù lại nó sử dụng mã Server Side ngay bên trong website hơn là tách chúng thành các class điều khiển, điều này tương tự như SharePoint. 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, PageRender như WebForm.

ASP.NET MVC

Đây là mô hình hoàn toàn mới và chỉ dành riêng cho những developer yêu thích việc test-driven và áp dụng SoC (Separation of Concerns). Và nó tách biệt hoàn các layer (Model, View, Controller) giống như việc tách biệt Business logic và Presentation layer

ASP.NET MVC đòi hỏi developer phải hiểu rõ mô hình Server-Client, HTTP, HTML, CSS, JavaScript thì mới có thể ứng dụng và phát triển website được. Do đó, những developer mới thì nên chọn học WebForm trước sau đó nâng cấp lên MVC sau, còn việc bỏ qua WebForm mà học thẳng MVC thì rất khó khăn và chắc hẳn việc phát triển các ứng dụng đôi khi không chuyên nghiệp bằng khi được học bài bản từ cơ bản đến nâng cao. Ở đây, bạn hiểu là ASP.NET MVC chỉ dành cho những developer có kinh nghiệm trước đó.

ASP.NET khuyến khích developer sử dụng 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à dễ dàng kiểm thử bằng Unit tests. Và đặc biệt tất cả mô hình trên đều sử dụng lõi chung là ASP.NET và hiện nay đã có ASP.NET Core 1.

Vậy việc lựa chọn mô hình nào để phát triển website là tuỳ theo vào mỗi Developer có định hướng về nghiệp lâu dài, các bạn đừng quá cố chấp vào kiến thức từ Nhà trường hay kinh nghiệm của những developer đi trước mà quên đi một điều là tương lai, gia đình đều nằm trong lòng bàn tay của mỗi bạn và bạn chính là người quyết định số phận mình sống lâu năm trong nghề này hay chỉ vài năm rồi chậm chân chạy chỗ khi mà các ngôn ngữ mới liên tục được tung ra, trong khi bản thân mình không theo kịp.

Với kinh nghiệm 1 năm làm PHP, 1 năm làm ASP VBScript, 6 năm ASP.NET WebForm, ASP.NET MVC, 1 năm NodeJS thì tôi khuyên bạn nên học hỏi những điều cơ bản nhất trong lập trình và nên có những định hướng cho bản thân để bạn có thể bắt đầu trở thành một developer chuyên nghiệp và đủ khả năng để lèo lái con thuyền tương lai của mình đến suốt cuộc đời.

Hãy comment với tôi, cùng chia sẽ quan điểm và cùng trao đổi kiến thức nhé.
Xin chúc các bạn thành công.

Trương Minh Tuấn.







TRUONG MINH TUAN - support: ifsoft@live.com