
Tạo các ứng dụng .NET bằng C#
C# có thể dùng để tạo các ứng dụng console: các ứng dụng thuần văn bản
chạy trên DOS window. Hầu như bạn chỉ tạo các ứng dụng console khi cần
kiểm tra các thư viện lớp, hoặc cho các tiến trình daemon Unix/Linux. Tât
nhiên, bạn cũng có thể dùng C# để tạo các ứng dụng dùng cho các công
nghệ tương thích .NET. Trong phần này, chúng ta xem qua về các kiểu ứng
dụng khác nhau có thể tạo ra bằng C#.
Tạo các ứng dụng ASP.NET
ASP là một công nghệ của Microsoft dùng để tạo các trang web có nội dung
động. Một trang ASP thực chất là một file HTML có nhúng các khối server-
side VBScript hay JavaScript. Khi một trình duyệt khách yêu cầu một trang
ASP page, web server sẽ sinh ra mã HTML, xử lí các server-side script khi
chúng đến. Thường thì các script sẽ truy cập vào một cơ sở dữ liệu để lấy dữ

liệu, và biểu diễn trên trang HTML. ASP là cách đơn giản nhất để tạo các
ứng dụng browser-based.
ASP tất nhiên cũng có một vài hạn chế. Trước tiên, các trang ASP thỉnh
thoảng trở nên rất chậm bởi vì mã server-side được thông dịch thay vì đựơc
biên dịch. Thứ hai, các file ASP khó bảo trì bởi vì chúng không có cấu trúc;
mã server-side ASP và HTML được trộn lẫn với nhau. Thứ ba, ASP đôi khi
kho phát triển bởi nó không quan tâm đến bẫy lỗi và kiểm tra kiểu. Cụ thể,
nếu bạn dùng VBScript và muốn bẫy lỗi trên các trang của bạn, bạn phải
dung câu lệnh On Error Resume Next, và cho phép tất cả các thành phần gọi
thông qua một Err.Number để chắc rằng tất cả đều tốt.
ASP.NET là một phiên bản mới của ASP đã cải tiến rất nhiều các thiếu xót
của nó. Nó không chỉ thay thế ASP; hơn thế, các trang ASP.NET có thể sống
chung với các ứng dụng ASP trên cùng một máy chủ. Tất nhiên bạn có thể
lập trình ASP.NET với C#!
Mặt dù các chương (14-16) sẽ bàn kĩ về ASP.NET, nhưng chúng ta cũng nói
qua một vài đặc tính quan trọng của nó.
Các đặc tính của ASP.NET
Trước tiên, và có lẽ là quan trọng nhất, các trang ASP.NET là các trang có
cấu trúc. Có nghĩa là mỗi trang là thực tế là một lớp được thừa kế từ lớp

.NET System.Web.UI.Page, và có thể ghi đè một tập các phương thức sẽ
dùng trong thời gian sống của trang web (bạn hãy tưởng tượng rằng nhữn sự
kiện này như là anh em bà con với các sự kiện OnApplication_Start và
OnSession_Start trong file global.asa của ASP cũ.) Bởi vì bạn có thể chuyển
các thao tác của một trang thành các sự kiện sáng nghĩa hơn, chính vì thể mà
các tramg ASP.NET dễ hiểu hơn.
Một điểm mạnh khác là các trang ASP.NET có thể được tạo trong VS.NET,
cùng chung môi trường với các thành phần luận lí và dữ liệu sẽ được dùng
trong các trang web này. Một nhóm đề án VS.NET, hoặc solution, chứa tất
cả các file liên quan đển một ứng dụng. Hơn thế nữa bạn có thể bẫy lỗi các
trang ASP của bạn ngay trong trình thiết kế; trước đây, thật là khó khăn để
có thể cấu hình InterDev và các đề án web server để thực hiện bẫy lỗi.
Rõ ràng, đặc tính ASP.NET's code-behind giúp các bạn có thể dễ dàng cấu
trúc một trang web. ASP.NET cho phép bạn tách biệt các chức năng server-
side của trang thành một lớp, biên dịch lớp đó thành một DLL, và đặt DLL
đó vào một thư mục bên dưới phần HTML. Một code-behind chi phối đỉnh
của một trang web tương đương với file DLL của nó. Khi một trình duyệt
yêu cầu trang, web server phát ra các sự kiện trong lớp của page's code-
behind DLL.

Cuối cùng không kém phần quan trọng, ASP.NET thật sự đáng chú ý với
khả năng tăng cường sự thực thi. Ngược lại với các trang ASP được thông
dịch cho mỗi yêu cầu, web server lưu giữ lại các trang ASP.NET sau quá
trình biên dịch. Nghĩa là các yêu cầu sau của một trang ASP.NET sẽ thực thi
nhanh hơn trang đầu tiên.
ASP.NET dễ tạo các trang hơn bởi vì nó được chiếu bởi trình duyệt, bạnc có
thể sử dụng một môi trường mạng intranet. Theo kinh nghiệm truyền thống
thì một ứng dụng form-based thường là tốt hơn một user interface, nhưng
cũng khó bảo trì hơn vì nó chạy trên nhiều máy khác nhau.
Với sự ra đời của Internet Explorer 5 và sự thực thi mơ hồ của Navigator 6,
tất nhiên các đặc tính của ứng dụng form-based bị che mờ. IE 5's hỗ trợ nhất
quán và mạnh mẽconsistent cho DHTML cho phép các nhà lập trình tạo các
ứng dụng web-based đẹp là lớn hơn. Tất nhiên, các ứng dụng này bắt buộc
phải theo chuẩn của IE và không được hỗ trợ bởi Navigator. Trong nhiều
lĩnh vực công nghiệp, chuẩn này đã trở nên phổ biến.
Web Forms
Để dễ dàng cho việc tạo các trang có cấu truc, Visual Studio .NET cung cấp
Web Forms. Chúng cho phép bạn tạo các trang ASP.NET sinh động như
cách mà VB 6 hay C++ Builder windows đã làm; nó cách khác, bằng cách
kéo các controls từ toolbox vào form, sau đó sắp xếp cho đẹp, điền mã quản

lí sự kiện thích hợp vào control đó. Khi bạn dung C# để tạo các Web Form,
bạn đang tạo một lớp C# được thừa kế từ lớp Page base, và một trang ASP
được chỉ định như là code-behind. Tất nhiên, không bắt buộc phải dùng C#
để tạo một Web Form; bạn có thể dùng VB.NET hoặc một ngôn ngữ biết
.NET khác.
In the past, the difficulty of web development has discouraged some teams
from attempting it. To succeed in web development, you had to know so
many different technologies, such as VBScript, ASP, DHTML, JavaScript,
and so on. By applying the Form concepts to web pages, Web Forms
promise to make web development easier. Only time will tell, however, how
successful Web Forms and Web Controls (which we'll look at next) will be
at insulating the developer from the complexities of web design.
Web Controls
Các control thường được cư trú trên một Web Form không phải là các
ActiveX control. Hơn nữa, chúng là XML tags trong ASP namespace và
browser có thể chuyển sang HTML và client-side script khi một trang được
yêu cầu. Đặc biệt hơn, web server có thể các điều khiển server-side control
theo nhiều cách khác nhau, sinh ra sự biến đổi phù hợp với các yêu cầu của
các web browser riêng biệt. Điều này có nghĩa là sẽ dễ dàng viết các giao

