Phần mềm Quản lý Online Thiết kê Web chuyên nghiệp Tư vấn Thiết kế Máy tính
 
Đăng ngày: 29/05/2017 

ASP.NET WebForm - Mô hình lập trình rất hiện đại dần bị lãng quên

WebForm là mô hình lập trình rất hiện đại, đơn giản, rỏ ràng, linh động, hoạt động độc lập, không còn trộn code… Là một trong những công nghệ độc đáo của Microsoft dưới thời Bill Gates, nhưng gần đây nó dần bị lãng quên thật đáng tiếc.

Do đâu mà nó dần bị lãng quên?

Nói chung công nghệ nào cũng có điểm mạnh và yếu, WebForm cũng không ngoại lệ. WebForm dựng sẵn (built in) cho người lập trình rất nhiều thứ (như: Master Page, Server Controls, ViewState, PostBack…), nhưng những cái này quá cứng nhắc, thiếu linh động, quá vô dụng, quá vô duyên, tự động phát sinh mã lung tung khó kiểm soát, không áp dụng được thực tế... nên đã làm nản lòng nhiều developer. Đây là cũng là điểm mà nhiều công nghệ khác muốn “dìm hàng” xoáy vào và cũng là điểm mà nhiều mạng xã hội tranh cãi nảy lửa. Ngay từ đầu bước vào Webform cách đây hơn 10 năm, tuy chưa học qua lớp lập trình WebForm nào, chưa có bất kỳ tài liệu nào viết nhưng mình cũng nhận ra điểm yếu này và loại bỏ không sử dụng nó ngay từ đầu. Và nếu theo mô hình WebForm thì không cần sử dụng và quan tâm đến mấy cái đó.

Trong mô hình ASP.NET MVC thay thế “Master Page” -> “Layout”, “Server Controls” -> “HTML helper” cũng chẳng khá hơn. Thực sự thì những control như asp:TextBox ở WebForm hay Html.TextBox ở MVC đều vô dụng như nhau.

Cái điểm yếu và cũng là điểm mạnh thứ hai là: WebForm là mô hình lập trình mở (không ràng buộc, để developer tự do sáng tạo, có thể dùng WebForm để làm theo bất cứ mô hình nào khác). Nên nó gây khó cho những developer mới vào nghề (newbie), nhưng lại là điểm mạnh cho developer có kinh nghiệm (senior) tự do sáng tạo. Còn các mô hình khác thì đưa developer vào một cái khuôn, nên có sự đồng đều giữa newbie và senior. Và đây trở thành đề tài tranh luận không có hồi kết trên các mạng xã hội.

Vậy đâu là cái hiện đại, chuyên nghiệp và đáng giá trong WebForm?

1./ WebForm được sự hỗ trợ của bộ thư viện ASP.NET cực kỳ mạnh mẽ là điều được mọi người công nhận. Ở ASP.NET MVC cũng được hỗ trợ từ bộ thư viện này.

2./ WebForm hỗ trợ Custom Control (User Control) cực kỳ mạnh mẽ, đây được xem như ánh sáng cuối đường hầm cho mô hình này.

Không giống như Custom Control của nhiều mô hình lập trình hay ngôn ngữ lập trình khác. WebForm Custom Control hỗ trợ 2 cách gọi tĩnh và động với nhiều loại tham số (từ base types đến các template) giúp nó rất linh động, có khả năng tuỳ biến cao và hoạt động độc lập. Chúng ta chủ động mã HTML chứ không còn chuyện tự động phát sinh mã HTML lộn xộn và khó kiểm soát như các Built-in Server Control.

Chúng ta có thể dùng cách gọi tĩnh để dùng Custom Control như một “Layout” hay “View” rất rỏ ràng và chuyên nghiệp như ví dụ sau:

a./ Layout

<!DOCTYPE html>

<html lang="{lang_code}">

<head>

<asc:header runat=”server” />

</head>

<body>

<asc:load name=”banner” runat=”server” />

<asc:load name=”menu” runat=”server” />

<asc:load name=”header” runat=”server” />

<asc:load name=”body” runat=”server” />

<asc:load name=”footer” runat=”server” />

/body>

</html>

 

b./ View:

<asc:news runat="server" />

Hoặc:

<asc:news runat="server">

<body>

<!-- body template -->

<body>

< /asc:news >

Hoặc:

<asc:news sort=”news_order asc” runat="server">

<header>

<!-- header template -->

</ header >

<body>

<!-- body template -->

<body>

<detail>

<!-- detail template -->

</ detail >

<footer>

<!-- footer template -->

</ footer >

<empty>

<!-- empty template -->

</ empty >

<edit>

<!-- edit template -->

</ edit >

< /asc:news >

Với các tham số default templatecustom template rất linh động và đầy đủ tính năng (xem danh sách, xem chi tiết, thêm, sửa, xoá, duyệt, copy, tìm kiếm, in ấn…) một cách tự động và chủ động mà không cần code gì thêm.

Như vậy, chúng ta chỉ cần làm duy nhất 1 control với không quá 300 dòng code là có thể xây dựng được 1 web tin tức nhanh chóng và chuyên nghiệp, đặt ở đâu cũng chạy, ở dự án nào cũng được, không cần phải sửa code hay rebuild, khả năng phát sinh lỗi cũng rất thấp nên giảm công test rất nhiều và rất dễ nâng cấp bảo trì…

Cũng tương tự như trên, chỉ cần 3 control là hoàn thành trên 30% tất cả các dự án, từ web tin tức, web thương mại điện tử hay web quản lý ERP.

 

Và WebForm còn cung cấp 2 lệnh gọi động LoadControlLoadTemplate giúp ta điều khiển rất linh hoạt. Tuỳ theo mỗi Context ta có thể chủ động load Layout nào, View nào cho phù hợp với từng Context chứ không cần đến coder khai báo.

3./ WebForm là mô hình lập trình không trộn code, đây là điểm khác biệt và mạnh nhất của mô hình này. Các mã nguồn HTML, C#, CSS, Javascript, SQL… hoàn toàn độc lập và nằm trên các file khác nhau nên rất rỏ ràng, ít phát sinh lỗi, dễ tái sử dụng và dễ nâng cấp bảo trì.

Chính điều này giúp chúng ta dễ dàng phát triển độc lập các loại mã nguồn trên một cách chuyên nghiệp (tức là khi xây dựng hay nâng cấp C# không ảnh hưởng đến Database và ngược lại, analyst có thể thiết kế databse tuỳ ý mà không ảnh hưởng đến coder, cũng như việc thay đổi mã HTML cũng không ảnh hưởng đến các mã khác).

Thực sự không hiểu sao, thế giới đang quay về mô hình MVC, một mô hình khá lâu đời và lạc hậu, một mô hình hướng người lập trình trộn code như ASP Classic. Trong mã file View (HTML) đầy rẩy mã C# rất lộn xộn, trong mã C# thì tùm lum câu lệnh SQL (LINQ) rất cứng nhắc và khó kiểm soát, khó kế thừa và tái sử dụng. Hoạt động theo cơ chế bao cấp và xin cho (tức là View muốn có data phải được ControllerModel cấp cho), tạo ra cái rào cản khá lớn cho sự phát triển.

asp.net life cycle

4./ WebForm là mô hình tự chủ nên rất linh động. Không giống các mô hình lập trình khác theo cơ chế Bao cấp (cấp phát) hay Xin cho (request response) rất cứng nhắc. Mô hình WebForm hoàn toàn tự chủ về tài nguyên và hoạt động nên rất linh động nhưng không mất kiểm soát.

5./ Tốc độ xử lý nhanh, ít sử dụng tài nguyên, bảo mật cao và url thân thiện. Thực chất, mấy cái này phụ thuộc vào developer đến 99%, chứ không phải là công nghệ. Ở WebForm cũng có thể xây dựng web rất nhanh (response time < 10ms), sử dụng tài nguyên rất thấp (RAM < 30MB, CPU < 5%, HDD < 30MB…), độ bảo mật cao và url rất thân thiện và linh động như các mô hình khác. Nút thắt cổ chai là DB chứ thời gian render của code rất thấp (< 2ms), nên không đáng để bàn đến như nhiều mạng xã hội tranh luận.

Nói chung, mỗi công nghệ, mỗi mô hình đều có điểm yếu và mạnh riêng. Chúng ta đừng nên “dìm hàng” và đừng vội đánh giá khi chỉ mới nắm lý thuyết. Giữa lý thuyết với thực tế có một khoảng cách rất xa. Các nhà báo amatuer về công nghệ đừng nên đánh giá linh tinh để giết chết những công nghệ rất hiện đại.

Cuối cùng, mình xin đính kèm một mô hình tiến hoá web và một ví dụ minh hoạ bên dưới để các bạn hiểu rỏ hơn về WebForm và các công nghệ khác đang ở đâu nhé.

Mô hình tiến hoá Web



So sánh asp.net webform và mvc

Tác giả: Lê Văn Khánh
Nguồn:Tài liệu tư vấn Công ty Tin học KhaLa

 Những bài liên quan Trở lại
 ASP.NET MVC liệu có phải mô hình lập trình hay

ASP.NET MVC được hàng triệu lập trình viên trên thế giới tung hô, thần thánh hoá. Hàng loạt bài báo, trang mạng xã hội tung hô và “dìm hàng” ASP.NET WebForm một cách tệ hại. Vậy liệu MVC có phải một mô hình lập trình hay?

 Cách chọn mua máy tính phù hợp

Hiện nay, rất nhiều người mắc sai lầm khi chọn mua máy tính. Trong phạm vi bài này, chúng tôi xin gửi đến quý khách cách chọn mua máy tính như thế nào cho phù hợp với nhu cầu của mình.

 Hơn 14.000 điện thoại bị nghe lén ở Việt Nam

Điện thoại bị theo dõi tin nhắn, danh bạ, ghi âm cuộc gọi, định vị điện thoại, quay phim, chụp ảnh... Nghiêm trọng hơn, toàn bộ dữ liệu được gửi về máy chủ của Công ty Việt Hồng.

 Seagate ra ổ cứng tốc độ "siêu nhanh" cho doanh nghiệp

Ổ cứng lai Enterprise Turbo SSHD của Seagate cho phép đạt tốc độ đọc, ghi ngẫu nhiên nhanh gấp 3 lần so với các ổ cứng thông thường nhưng giá thành chỉ tương đương ổ cứng HDD.

 Ngân sách cho CNTT sẽ không ít hơn 2% mỗi năm

Dự thảo Nghị quyết của Bộ Chính trị về công nghệ thông tin nêu rõ “bảo đảm chi tỷ lệ ngân sách nhà nước cho công nghệ thông tin tương xứng với yêu cầu phát triển, tiến tới mức tương đương với các nước có điều kiện tương đồng trong khu vực và không ít hơn 2% chi ngân sách hàng năm.”