Ngày đăng: 16/01/2018  

ASP.NET WebForms Template - Công nghệ lập trình đỉnh cao

Khi nói đến WebForms, rất nhiều người nghĩ rằng nó có ViewState, DrivenEvents khó kiểm soát. Nhưng có lẽ ít người biết WebForms hỗ trợ công nghệ lập trình Template rất hiện đại, rất đơn giản và rất linh động mà không dùng tới ViewState, DrivenEvents.

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Lập trình Template là công nghệ lập trình hiện đại mà một số thư viện javascript (như: jQuery, ReactJS, AngularJS...) đang áp dụng, tuy nhiên nó còn rất nhiều hạn chế (như: render phía client nên khó sử dụng cache, làm chậm máy client, khó seo). Có lẽ ít người biết trong ASP.NET WebForms cũng hỗ trợ cách lập trình này rất đơn giản, trong sáng, tự nhiên, linh động, chạy nhanh và mạnh mẽ hơn mà không cần sử dụng đến các thư viện javascript này.

Chúng ta biết ASP.NET WebForms là một mô hình lập trình rất hiện đại khi tách biệt được các mã code (HTML, CS, JS và SQL). Giúp người lập trình dễ dàng kiểm soát các code này, dễ kế thừa tái sử dụng, dễ nâng cấp và bảo trì. Giúp người lập trình tự nhiên hơn khi viết code.

Chúng ta có thể dùng ASP.NET WebForms để xây dựng một Template Control rất đơn giản nhưng rất tự nhiên, linh động và mạnh mẽ như sau:

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Nó có thể dùng để view bản tin (news):

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Có thể dùng để view sản phẩm (product):

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Cũng có thể xuất ra định dạng json (một định dạng khá phổ biến hiện nay):

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Cũng có thể tạo ra form nhập liệu:

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Có thể tạo một slideshow hình ảnh khá đơn giản:

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Cũng có thể xuất ra định dạng xml:

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Và có thể dùng Template Control để làm một layout khá đơn giản:

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Tuy được sử dụng đơn giản và linh động cho rất nhiều mục đích, nhưng code behind (c#) rất đơn giản. Chỉ có mấy dòng code mà có thể xử lý mọi nghiệp vụ khác nhau.

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Template Control sẽ tự động binding data theo cấu trúc khá đơn giản như dưới đây mà không cần thêm bất kỳ dòng code nào. Nó sẽ dựa vào httpContext, menu_urlmenu_data để xác định data cần xử lý.

asp-net-webform-template-cong-nghe-lap-trinh-dinh-cao


Như trên chúng ta thấy rỏ, các mã (HTML, C#, SQL) hoàn toàn tách biệt nhau. Chúng ta có thể lập trình độc lập mà không sợ đụng nhau (Khi sửa C# cũng không cần quan tâm đến HTML hay SQL và ngược lại). Chúng ta kiểm soát hoàn toàn mã code mà không lo hệ thống phát sinh mã lung tung không như ý muốn. Chúng ta cũng có thể test rất dễ dàng. Code được xử lý theo khối (block) nên chạy rất nhanh và ít sử dụng tài nguyên máy chủ. Chúng ta toàn quyền kiểm soát cache giúp hệ thống chạy rất nhanh. Mã code cũng rất tự nhiên nên dễ kiểm soát lỗi và quản lý code. Và đặc biệt là dễ kế thừa tái sử dụng, dễ nâng cấp bảo trì, đó là những yếu tố sống còn trong phát triển phần mềm.


Công nghệ lập trình Template đã loại bỏ tất cả các điểm yếu (ViewState, SessionState, DrivenEvents, PostBack, PageLifeCycle, MasterPage...) của WebForms và phát huy tất cả các điểm mạnh (simple, clear, native, flexible, performance, powerful...) của nó. Giúp WebForms trở thành công nghệ lập trình độc đáo nhất trong các công nghệ lập trình hiện có.


Công ty KhaLa đã áp dụng công nghệ này hơn 10 năm và rút ngắn được thời gian làm dự án từ 2 tháng -> 2 ngày. Tuy dùng VPS (Virtual Private Server) có cấu hình rất thấp (2 Cores, 3GB RAM) nhưng vẫn có thể cài cả trăm apps chạy rất nhanh (response time < 100 ms) và có thể đáp ứng hàng trăm ngàn requests cùng lúc. Cùng khả năng nâng cấp (thêm sửa xoá chức năng, nghiệp vụ...) rất đơn giản và nhanh chóng mà không cần sửa code, không cần restart app, không làm gián đoạn hệ thống đang chạy.


Mong sao Microsoft sớm có bản nâng cấp WebForms và tích hợp vào .Net Core để có thêm ưu điểm chạy được trên nhiều hệ thống (cross platform). Và tất nhiên nên bỏ hết những yếu điểm trên và bỏ luôn chữ "runat" cho code được đơn giản và rõ ràng hơn.


Trên đây chỉ là ví dụ cơ bản, còn trong thực tế còn nhiều chức năng rất độc đáo nữa.


Cám ơn mọi người đã dành thời gian để đọc bài viết này!

Tác giả: Lê Văn Khánh
Nguồn:Tài liệu chia sẻ kinh nghiệm Công ty Tin học KhaLa







Những bài liên quan
ASP.NET WebForms Template - High development technology

In term of WebForms, many people thought that it has ViewState, DrivenEvents so it is difficult to control, whereas other few people recognized that Web Forms supports template programming technology. It is very simple, modern and flexible technology. We even do not need use ViewState, DrivenEvent

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

WebForms 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.

ASP.NET WebForms - The very modern design pattern model is gradually oblivion

WebForms is a very modern, simple, clear, flexible, decouple design pattern model. It was one of Microsoft's wonderful technologies, but unluckily it has been gradually oblivion recently.

Hỗ trợ trực tuyến



Liên hệ

Công ty Tin học KhaLa

61A Đường số 8, P.Linh Trung, Q. Thủ Đức, TP.HCM

https://khala.com.vn

Copyright © 2014-2020 KhaLa. All rights reserved.

Developed by KhaLa

Chúng tôi trên các kênh