Tìm hiểu về .NET Framework và ASP.NET
Trang 1Mục Lục
Lời nói đầu 4
Phần I: Các kĩ thuật tạo trang tài liệu 5
1.1 Trang tài liệu Internet HTML 5
1.2.Các khái niệm cơ bản: 6
1.2.1 Web browser: 6
1.2.2 Web server: 6
1.2.3 Phân loại Web 7
1.3 Các trình CGI (Common Gateway Interface) 7
1.4 Giao diện của lập trình ứng dụng Internet ISAPI 8
1.5 ASP 8
Phần II : ASP.NET 11
2.1 Bộ Khung Dịch Vụ Web Thế Hệ Kế Tiếp(NGWSF) 11
2.1.2 Tìm Hiểu Về Khung Nền NGWSF 12
2.1.3 Mô hình NET Framework 13
2.1.4 Ngôn Ngữ Trung Gian Phổ Dụng 13
2.1.5 Cở Sở Hạ Tầng Của ứng Dụng Web 14
2.2 Giới thiệu ASP.NET 16
2.2.1 T i sao ta l i quan tõm v phỏt tri n m ng v i ASP.NETạ ạ à ể ạ ớ 16
2.2.2 Tóm tắt các đặc điểm chính trong ASP.NET 17
2.3 Những điểm khác biệt của ASP so với ASP.NET 22
2.3.1 Ưu điểm lớn nhất của ASP.NET 24
2.4 ASP.NET Web form 25
2.4.1 giới thiệu về ASP.NET Web form 25
Trang 22.4.2 Các thành phần của Web form 26
2.4.3 Mô hình Web Form 29
2.4.4 Bộ khung Web Form là một mô hình đối tợng 29
2.4.5 Quá trình xử lý của trang Web form 30
2.4.6 Các chặng trong quá trình xử lý Web Form 31
2.4.7 Mô hình sự kiện của Web Form 32
2.4.8 Các sự kiện Application và Session 34
2.4.9 HTML server control 35
2.4.10 ASP.NET server control 37
2.4.11 Các điều khiển đa năng khác 41
2.4.13 ASP.NET User Web control 43
2.4.13.1 Cấu trúc của User Control .43
2.1.13.2Tạo Web User Control: 44
2.5 Truy xuất dữ liệu với ADO.NET 46
2.5 Mục đích thiết kế cho ADO.NET 47
2.5.1Giữ lại những hiểu biết về ADO 47
2.5.2 Hỗ trợ mô hình lập trình N-Tier 47
2.5.3 Tích hợp với XML 48
2.5.4 Cấu trúc của ADO.NET 48
2.5.5 Lựa chọn giữa DataReader hay DataSet 50
2.5.6 The SQL Server NET Data Provider 51
2.5.7 OLE DB NET Data Provider 52
2.5.8 Nền tảng cần thiết cho ADO.NET: 52
Trang 32.6 Truy cập Dữ liệu với ASP.NET 53
2.6.1 Ràng buộc dữ liệu với Repeater Control 54
2.6.2 Ràng buộc dữ liệu với DataGrid server control 55
2.7 Dịch vụ Web 57
2.7.1 Sự cần thiết của dịch vụ Web 57
V.7.2 Vậy dịch vụ Web là gì? 58
2.7.3 Cách hoạt động của dịch vụ Web 60
2.8 ASP.NET với dịch vụ Web 60
2.8.1 Định nghĩa một dịch vụ Web 60
2.8.2 Định nghĩa một phơng thức cho dịch vụ Web 61
2.8.3 Sử dụng dịch vụ Web 62
2.9 Bảo mật ứng dụng Web 63
Phần III: Xây dựng một ứng dụng với ASP.NET 66
3.1 Mục đích: 66
3.2Thiết kế Cơ sở dữ liệu 71
3.2.1 Định nghĩa các yêu cầu 72
3.2 Sơ đồ phân rã chức 73
3.2.3 Mô hình logic 74
3.2.4Mô hình Vật lý 76
3.2.5 Tạo các stored procedure cho ứng dụng 78
3.3 Mô hình đa tầng của ứng dụng 82
3.3.1 Cài đặt đối tợng xử lý trong tầng logic nghiệp vụ 84
3.3.2 Cài đặt trang ASP.NET 98
Trang 4Kết luận 109
Lời nói đầu
Thế hệ kế tiếp của Internet sẽ như thế nào? Nhiều người trong chỳng ta
sẽ hỡnh dung một thế giới trực tuyến trong đú cỏc mỏy PC, server, thiết bịthụng minh và cỏc dịch vụ trờn nền Internet cú thể tương tỏc khăng khớt vớinhau Cỏc doanh nghiệp sẽ cú thể chia xẻ dữ liệu, tớch hợp cỏc quỏ trỡnhnghiệp vụ cũng như sức lực để đem lại cỏc giải phỏp tổng hợp cho khỏchhàng Và thụng tin mà ta hoặc doanh nghiệp của ta cần đến sẽ luụn luụn sẵnsàng bất cứ đõu và trờn bất kỳ một nền tảng hoặc một ứng dụng nào
Đó cũng là lý do mà Microsoft đa ra NET Framework, nền tảng làm thay
đổi tận gốc kiểu lập trình truyền thống, làm cho tầm nhìn trên hoàn toàn có thể
đạt tới Cùng với ASP.NET công việc lập trình máy chủ giờ đây dễ dàng hơnbao giờ hết và không phải học thêm ngôn ngữ mới
Trong khuôn khổ của một đồ án tốt nghiệp, đồ án sẽ tập trung vào việccung cấp một cái nhìn tổng quát về NET Framework và ASP.NET mà không
đi sâu vào tìm hiểu thủ thuật lập trình
Với một ứng dụng nhỏ với ASP.NET và cơ sở dữ liệu Oracle chỉ để giúphiểu sâu hơn về ASP.NET cha thực sự là một ứng dụng kinh doanh hoàn chỉnh
Trang 5Phần I: Các kĩ thuật tạo trang tài liệu
1.1 Trang tài liệu Internet HTML.
Sự ra đời của Internet đã tạo một môi trờng thông tin tuyệt vời nhất từ trớc tớinay cho nhu cầu học hỏi và trao đổi thông tin của con ngời Internet hoạt động dựatrên sự liên kết của hàng ngàn máy chủ và hệ thống mạng trên khắp thế giới Ban
đầu ngời ta chỉ có nhu cầu lấy các tài liệu và đọc chúng bằng một chơng trình ứngdụng mà ta hay goị là browser Tài liệu đợc lu trên máy chủ nào đó, máy kháchkết nối vào và lấy về theo một giao thức mạng
Tài liệu ở đây đợc nói đến tất cả những gì chứa đựng thông tin mà con ngời cóthể hiểu đợc bao gồm các đoạn văn bản, hình ảnh, âm thanh, video Và các trangtài liệu đầu tiên trên Internet đã dùng ngôn ngữ định dạng HTML (Hyper TextMarkup Language- Ngôn ngữ đánh dấu siêu văn bản)
HTML xoay quanh khái niệm chủ yếu gọi là tiêu thức (tag) làm nền tảng Đểtạo ra một siêu văn bản ta có thể dùng bất cứ một trình soạn thảo nào nh NC,EDIT của DOS ,NotePad của Windows Và chỉ cần nắm vững các tiêu thức củaHTML và chú ý khi ghi lên đĩa thì ghi dới dạng *.html hay *.htm
Toàn bộ các tag của HTML đợc chia ra thành 7 nhóm thành phần nh sau:
Từ khoá xác lập cấu trúc tài liệu
Từ khoá tạo điểm móc nối
Từ khoá định dạng khối
Trang 6Từ khoá khai báo danh sách.
Từ khoá khai báo loại thông tin và định dạng mẫu chữ
Từ khoá đa hình ảnh vào tài liệu
Từ khoá lập mẫu biểu bảng
Để hiểu đợc các trang tài liệu HTML ta cần có một chơng trình ứng dụng cóthể hiểu đợc quy ớc của các tag đó ứng dụng này chính là trình duyệt Trìnhduyệt sau khi nhận đợc trang tài liệu HTML nó sẽ phân tích các thẻ và hiển thị nộidung cuả các thẻ này theo quy ớc Từ khi HTML ra đời cho đến nay đã có rấtnhiều trình duyệt phục vụ việc hiển thị tài liệu
1.2.Các khái niệm cơ bản:
1.2.1 Web browser:
Web browser là công cụ truy xuất dữ liệu trên mạng, là phần mềm giao diệntrực tiếp với ngời sử dụng Nó có khả năng yêu cầu thông tin từ Web server và cácdịch vụ khác theo nhu cầu của ngời sử dụng
+ Netsape Navigator
+ Microsof Internet Explorer
+ Lynx ( Unix )
Phần lớn các Web browser đều hỗ trợ một danh sách các đặc trng với khả năng
xử lý với các file*.HTML, *.GIF, JPG Nhiều Web browser có khả năng xử lývới Java và JavaScvipt
1.2.2 Web server:
Bớc đầu của công nghệ Web, Web server chỉ đơn giản là lấy toàn bộ nội dungcủa file dữ liệu trên máy chủ để trả về cho trình khách Tuy nhiên, xuất phát từnhu cầu xử lý động, trình chủ Web server cho phép cài đặt các ứng dụng CGI(Common Gateway Interface) tiếp nhận những yêu cầu của trình khách, thực hiệncác thao tác biến đổi trớc khi đa tới Web browser
Trang 71.2.3 Phân loại Web
Theo quan điểm của Martin Rennhackkawp (Tạp chí DBMS 5/97) cho rằng
có thể phân loại Web thành 3 loại: Trang web tĩnh (static), Form pages và web
động (dynamic)
+ Trang Web tĩnh
Tài liệu đợc phân tán rất đơn giản từ hệ thống file của Server Web Server
sẽ tiến hành tìm kiếm và xác định đúng vị trí của các file đó và gửi trả lại kếtquả cho Client Việc sử dụng trang Web tĩnh có u, nhợc điểm rõ ràng
Ưu điểm: Khi cơ sở dữ liệu nhỏ thì việc phân phát dữ liệu có hiệu quả Cácyêu cầu từ Client đợc đáp ứng nhanh chóng
Nhợc điểm: Không năng động, không đáp ứng nhu cầu thông tin, vì vậykhông đáp ứng đợc những yêu cầu phức tạp của ngời sử dụng
MICROSOFT cung cấp trình chủ web server (IIS: Internet InformationServce) cho phép sử dụng cách thức tạo web động bằng CGI, ISAPI và ASP
1.3 Các trình CGI (Common Gateway Interface).
Trang 8(các trình biên dịch file thực thi trên môi trờng windows) chúng đợc dịch rafile thực thi exe và đặt trong th mục /cgi-bin của trình chủ IIS Mỗi khi nhận đ-
ợc yêu cầu của khách hàng web server IIS sẽ gọi đến chơng trình CGI ,chuyểngiao các cầu từ trình khác cho CGI xử lý Hoàn tất quá trình xử lý CGI sẽ trả hếtlại hết cho web server và web server lại trả cho khách dới dạng thể hiện HTML.Quá trình gọi và xử lý CGI là hoàn toàn trong suốt (transparent) đối với kháchhàng do các trình CGI là chờng trình thực thi nhị phân đòi hỏi các ngôn ngữ biêndịch Trình CGI sau khi xây dựng muốn nâng cấp đòi hỏi phải biên dịch lại Một số trình CGI cho phép ngời sử dụng thêm vào một số lệnh điều khiển , cáclệnh điều khiển này đợc đặt ngay trong tài liệu (chúng đợc gọi là các lệnh Script)CGI sẽ đọc và biên dịch thực thi trục tiếp các script này Mặc dù vậy cơ chế CGI
tỏ ra châm chạm và kém hiệu quả
Mỗi lần nhận đợc yêu cầu của trình khách , web server, phải nạp lại trìnhCGI vào bộ nhớ, xử lý nó sau đó giải phóng và thể hiện (instance) của cùng trìnhCGI cho mỗi yêu cầu riêng biệt trong khi mã lệnh xử lý của chúng nh nhau
1.4 Giao diện của lập trình ứng dụng Internet ISAPI
ISAPI (Internet Server Application Programing Interface) gắn liền với trìnhchủ IIS Thay vì viết CGI xử lý trang động các nhà phát triển có thể xử dụngISAPI để xây đụng những đơn thể tồn tại cùng với các web server trong suốt quátrình chờ yêu cầu của trình khách các đơn thể ISAPI đợc viết ở dạng file dll mãlệnh của chúng hoạt động trao đổi dữ liệu trong cùng không gian địa chỉ củachình chủ web IIS Tốc độ xử lý của ISAPI do đó rất nhanh tiết kiệm tài ngyênhơn hẳn CGI
1.5 ASP
Một trở ngại của đơn thể ISAPI cũng nh trình CGI đó là phải sử dụng các ngôn ngữ biên dịch khả năng và bảo trì và thiết kế một ứng dụng là rất thấp Nếu CGI hỗ chợ kịch bản thông dịch ở dạng script làm đơn giản hoá và loại bỏ quá
Trang 9trình viết mã của các ngôn ngữ biên dịch thấp, kỹ thuật ISAPI cũng cho phép ta sửdụng các trang cha script các trang này chính là ASP (Ative Server Page)
Trang ASP đơn thuần là file văn bản chứa mã HTML kết hợp thông dịch VBscrịpt hay jscript Đơn thể asp.dll (một đơn thể của ISAPI) đợc tích hợp vào websever IIS Khi nhận đợc yêu cầu của trình khách cần hiển thị asp thì trình chủ sẽtriệu gọi đơn thể xử lý trang asp.dll trang đợc đọc và thực thi các lệnh của kịchbản Kết quả sau đó đợc asp.dll gửi lại trình chủ gửi lại theo yêu cầu của khách
Mô hình xử lý trang ASP thay cho CGI.
Microsoft Active Server Pages (ASP) không hẳn là một ngôn ngữ lập trình,Microsoft gọi nó là môi trờng server-side scripting, môi trờng này cho phép tạo vàchạy các các ứng dụng Web server động, tơng tác và có hiệu quả cao Để làm việctrong môi trờng này, các ASP coder thờng sử dụng VBScript hoặc JavaScript, cảhai loại này đều tự động hỗ trợ ASP
Trong các HTML, mỗi tag đợc bắt đầu và kết thúc bởi cặp "< />" , ASP cũng
t-ơng tự nh vậy Để đánh dấu nơi nào ASP script bắt đầu và kết thúc dùng cặp lệnh
Trang 10hoạt uyển chuyển, có thể chèn các thành phần HTML động vào trang Web tuỳ vàotừng trờng hợp cụ thể.
Các đối tợng và thành phần của ASP không khác gì so với các thành phầnActiveX thông thờng, các ActiveX dll đợc sử dụng trong Vb, VC++ hay Java Sựkhác biệt là ở chỗ chúng đã đợc kết hợp với VbScipt Đối tợng của ASP (ASPObjects) là những phần tử ActiveX có sẵn và đợc gắn với VbScript ASP cung cấp
4 đối tợng sau: Application, Session, Request, Response, Server Object Cácthành phần của ASP (ASP Components) là những th viện dll tồn tại ngoài bộkhung ASP Những thành phần này có thể đợc tạo bằng bất kì ngôn ngữ nào nhngMicrosoft đã kết hợp một số component hữu ích với Visual InterDev ASP cungcấp những component sau: Data Access, File Access, Browser Cappabilities,AdRotator
ASP không đợc hỗ trợ nhiều từ hãng thứ ba
Các ứng dụng ASP tỏ ra chậm hơn so với Java
Tính bảo mật không cao Không giông nh các ứng dụng CGI hay Javaservlet, các mã ASP đều có thể đọc đợc nếu ngời dùng có quyền truy cập vàoWeb server Có lẽ đây là lý do quan trọng nhất để ngời dùng không chọn côngnghệ ASP
Trang 11Phần II : ASP.NET
2.1 Bộ Khung Dịch Vụ Web Thế Hệ Kế Tiếp(NGWSF)
Hệ điều hành đợc Microsoft xem là một tập hợp bao gồm nhiều đối tợng hoạt
động tơng tác lẫn nhau Chơng trình của ta cũng là một đối tợng Microsoft gọi môhịnh này với cái tên khá phổ biến là COM (Compontent Objoct Model) Tất cảmọi thứ đều quy về đối tợng với phơng thức, thuộc tính và các dịch vụ mà đối tợng
có thể cung cấp Phát triển hơn nữa Microsoft mở rộng COM thanh kiến trúcCOM+ cho phép các đối tợng COM mở rộng giao tiếp với nhau trên mọi nềnWindows, từ 98, NT/2000, máy chủ (Server), máy khác (client) đâu đâu cũng làcác thành phần đối tợng có thể giao tiếp và triệu gọi nhau xuyên suốt
Với sự bùng nổ của Internet, Microsoft một lần nữa lại đa kiến trúc COM+thanh mô hìng đối tợng cao hơn ảnh hởng đết toàn bộ hệ điều hành Kiến trúc mớinày mang tên khung dịch vụ Web thế hệ kế tiếp - Next Generation Web serviceFramework hay NGWSG Tuy mang tên Web nhng thực tế kiến trúc này đã ăn sâuvào hệ điều hành NGWSG bổ sung các dịch vụ mới cho các đối tợng ứng dụngphân tán COM+ bao gồm:
* Một tập các th viện lập trình phong phú và thống nhất
* Bộ thực thi chơng trình đa ngôn ngữ (multi-language runtime engine)vàbảo vệ an toàn mã thực thi
Trang 12* Tăng tính mềm dẻo và khả chuyển cho các úng dụng phân tán.
* Bảo vệ các phần mềm hiện có và giảm đầu t về đào tạo
2.1.2 Tìm Hiểu Về Khung Nền NGWSF
Việc tích hợp ASP vào hệ điều hành ở phiên bản ASP.NET là điểm khác biệtrất quan trọng so với các phiên bản khác của ASP trớc đó Các phiên bản ASP trớc
đây(2.0 hoặc3.0) chỉ đợc dùng và gắn vào hệ thống nh thành phần hỗ trợ(add-on)
Kể cả phiên bản mới nhất là 3.0 cũng vẫn tồn tại khái niệm kết gắn ASP theo kháiniệm add-on dựa vào kỹ thuật ISAPI DLL ASP 3.0 sử dụng file th viện asp.dllcùng một vài file phụ khác tạo thành phiên bản ASP 3.0 để nâng cấp phiên bản 2.0Tuy nhiên, bộ khung trong kiến trúc NGWSF đã thay đổi hoàn toàn khainiệm về ứng dụng công nghệ thông tin trên nền tảng Internet Với NGWSF ta cầnphải thay đổi lại toàn bộ cách nhìn nhận so với các ứng dụng trong môi trờngWindows cũ Kiến trúc NGWSF cho phép ta hoàn chỉnh mọi kiểu ứng dụng từ
đóng gói, phát triển bảo trì, kiểm tra các ứng dụng trên trình khách (client) cho
đến các ứng dụng phân tán phức tạp trên trình chủ (server).Toàn bộ khái niệm củaNGWSF là một phần dựa trên ý tởng và nền tảng của kiến trúc “ứng dụng Internetphân tán” (DNA-Distributed Internet Application)
Tuy nhiên,điều quan trọng ta cần nên nhớ đó là bộ khung NGWSF không
đơn thuần chỉ dành riêng cho ASP.NET Khung NGWSF này ảnh hởng đến toàn
bộ các chơng trình ứng dụng sẽ chạy trên Windows trong tơng lai
Hạt nhân hệ điều hành
Bộ khung NET Framework
Trang ASP.NET
ASP.NET Webservice
Thành phần hỗ trợ.NET
ứng dụng Windows truyền thống
Windows
và các dịch
vụ hệ điều hành.
Trang 132.1.3 Mô hình NET Framework.
Khung làm việc NGWSF cung cấp bộ máy thực thi mã lệnh (execute engine)cùng với tập hợp các lớp hay thanh phần hớng đối tợng có thể sử dụng để tạo nênứng dụng Bộ khung này làm việc nh là lớp giao tiếp giữa ứng dụng và hạt nhâncủa hệ điều hành Ta có thể hỏi tại sao chúng ta lại cần đến một lớp trung gian nhthế, trong khi ứng dụng theo truyền thống có thể dễ dàng nói chuyện trực tiếp vớihạt nhân và các dịch vụ của hệ điều hành Nguyên do là tầng trung gian này sẽ chophép các ứng dụng này sử dụng tốt hơn các u diểm của hệ điều hành, đơn giản hoáquá trình phát triển và phân phối ứng dụng trong môi trờng thơng mại đầy cạnhtranh
Để đạt đợc mụch đích này, bộ khung thực thi runtime của NGWSF đã cài đặtrất nhiều đặc điểm mà lập trình viên hay một môi trờng ngôn ngữ lập trình cụ thểnào đó phải tự cài đặt trớc đây Bộ khung này cung cấp các cơ chế nh tự động thugom rác vào bộ nhớ (garbage collector), tập các đối tợng đầy đủ những chức năngphục vụ cho những công việc lập trình thông thờng nhất Tăng khả năng bảo mật
và an toàn cho ứng dụng Chức năng bảo mật sau cùng rất quan trọng,nhất là đốivới các chơng trình mở rộng triệu gọi thông qua mạng Internet nh ngày nay
Microsoft đang hớng đến mô hình máy ảo tởng tợng tơng tự nh Virtualmachine của Java ở kiến trúc NGWSF này
2.1.4 Ngôn Ngữ Trung Gian Phổ Dụng
Tuy nhiên một trong những u điểm nổi bật nhất của bộ khung thực thi cung
Trang 14viết bằng ngôn ngữ nào đều đợc tự động biên dich thanh ngôn ngữ trung gian gọi
là IL(Intermediate Language) Bộ khung thực thi sẽ tạo ra mã nhị phân cuối cunghình thanh lên ứng dụng và điều khiển mã Đối với các trang ASP.NET, mã nguồn
sẽ đợc dịch ra và chỉ có mã IL và chỉ có mã IL đợc gọi thực thi Khi mã nguồnthay đổi thì mã IL của trang ASP.NET sẽ đợc thay đổi lại.Các trang ASP.NET còngiữ trong vùng đệm cache sẽ bị huỷ bỏ thay bằng các trang biên dịch ASP.NETvớimã IL mới
Một u điểm nữa là ta gọi mã lệnh của một ngôn ngữ lập trình hoàn toàn khácvới ngôn ngữ đang đợc dùng để viết ứng dụng Nghĩa là ta có thể tạo ra đối tợng từmột ngôn ngữ, sau đó triệu gọi hoặc thay đổi nội dung đối tợng từ một ngôn ngữkhác.Ví dụ, nh ta có thể tạo ra một đối tợng từ ngôn ngữ C# sau đó kế thừa và tạo
ra một đối tợng từ ngôn ngữ Visual Basic (VB) nh thêm vào phơng thức, thuộctính, thay đổi hoặc đè chồng lên các phơng thức trớc đó Thực tế, một phần của bộkhung NGWSF và toàn bộ mô hình ASP.NET đợc cài đặt bên trong bằng C# thayvì C++
Rõ ràng bộ khung thực thi đã và đang hớng chúng ta đến môi trờng lập trình
đa ngôn ngữ thuần nhất Ta có thể cùng một ứng dụng từ bất kỳ ngôn ngữ lập trìnhnào Kết quả mã nhị phân của chúng là nh nhau Đây quả là một điều tuyệt vời đốivới các nhà phát triển phân phối ứng dụng trên môi trờng Internet đa nền nh hiệnnay
2.1.5 Cở Sở Hạ Tầng Của ứng Dụng Web
Hạ tầng của các ứng dụng Web nằm trong một phần của kiến trúc NETNGWSF.Chung bao gồm các dịch vụ Web và trang ASP.NET.Cùng với bộ khungmới của môi trờng thực thi ứng dụng NET,các ứng dụng và dịch vụ Web đa ranhững đặc điểm nổi bật sau:
+ Hỗ Trợ Giao Diện Ngời Dùng
Các thanh phần điều khiển đa năng (Rich control) là một phần trong cài đặtcủa th viện ASP.NET Những điều khiển này giúp ta tạo ra giao diện Web nhanh
Trang 15chãng vµ ®¬n gi¶n Thµnh phÇn rich control ch¹y trªn Server vµ cã kh¶ n¨ng t¹o ram· HTML 3.2 t¬ng thÝch víi hÇu hÕt c¸c tr×nh duyÖt cò §ång thêi ta cã thÓ sinhm· tËn dông c¸c tÝnh n¨ng n©ng cao hç trî bëi tr×nh duyÖt phÝa m¸y kh¸ch nhHTML 4.0 C¸c dÞch vô hç trî bëi Internet Explorer 4,5,6…Ta cã thÓ më réng, kÕthõa vµ t¹o ra c¸c thµnh phÇn ®iÒu khiÓn ®a n¨ng kh¸c dùa trªn c¸c thµnh phÇnchuÈn cña th viÖn s½n cã.
+ Hç Trî Truy XuÊt D÷ LiÖu
M«i trêng NGWSF cung cÊp phiªn b¶n míi cña ADO goi lµ ADỢ Phiªnb¶n ADƠcho phÐp truy xuÊt d÷ liÖu bÊt kÓ khu«n d¹ng vµ vÞ trÝ cña d÷ liÖụADƠ thiÕt kÕ theo m« h×nh híng ®èi tîng trªn d÷ liÖu quan hÖ, chóng cho phÐpc¸c nhµ ph¸t triÓn cã kh¶ n¨ng trÝch rót d÷ liÖu tõ c¸c nguån ph©n t¸n kh¸c nhaụADƠ còng t¨ng cêng kh¶ n¨ng hç trî d÷ liÖu XML(cßn gäi lµ dataset trongXML) lu tr÷, ®ãng gãi vµ truyÒn ®i trong m¹ng D÷ liÖu XML cã thÓ ®äc vµ hiÓu
®îc bëi rÊt nhiÒu øng dông trªn Internet
+ Kh¶ N¨ng Më Réng Dµnh Cho C¸c øng Dông ph©n t¸n
Hai yÕu cÇn thiÕt ®èi víi tÊt c¶ c¸c øng dông dùa trªn nÒn Web ®ã lµ hÖ ®iÒuhµnh nÒn (platform) ph¶i v÷ng ch¾c vµ kh¶ n¨ng më réng trªn m«i trêng truy xuÊtlín cho phÐp ®ång thêi xö lý nhiÒu kÕt nèị M«i trêng thùc thi NGWSF cung cÊpc¸c chøc n¨ng tù ®éng kiÓm tra lçi vµ c¸c trêng hîp qu¸ t¶ị NGWSF sÏ t×m c¸chkhëi ®éng vµ t¸i t¹o c¸c øng dông còng nh thµnh phÇn ®èi tîng ®Ó kh¶ n¨ng phôc
vô cña chóng cho c¸c kÕt nèi tèt h¬n §iÒu nµy sÏ gi¶m thiÓu nh÷ng lçi nh tµinguyªn hÖ thèng c¹n kiÖt,kÕt nèi t¾c nghÏn…
HÖ ®iÒu hµnh còng ®îc cËp nhËt víi nh÷ng dÞch vô h¹ tÇng míi nh dÞch vôcho phÐp tù qu¶n lý vµ dän dÑp r¸c trong bé nhí (garbage collector), dÞch vô ®iÒuphèi vµ lµ trung gian trong c¸c lêi gäi ®èi tîng ph©n t¸n tõ xa, dÞch vô b¶o mËt vµ
an toµn trong c¸c truy xuÊt tµi nguyªn m¹ng TÊt c¶ c¸c dÞch vô ®îc tÝch hîp trongmét tæng thÓ thèng nhÊt sö dông còng nh ph©n bè tµi nguyªn mét c¸ch hîp lý
Trang 16+ Tơng Thích Với Phần Mềm Hiện Có Và Giảm Chi Phí Đầu T
Mặc dù có thay đổi lớn trong hệ điều hành và môi trờng thực thi nhngWindows vẫn chú trọng đến tính tơng thích với các phiên bản của COM,DCOM vàASP.Trong hầu hết các trờng hợp những ứng dụng COM, DCOM, trang ASP,những kịch bản hoặc file thực thi đều hoạt động trơn tru trong môi trờng NGWSFmới
2.2 Giới thiệu ASP.NET
2.2.1 Tại sao ta lại quan tõm và phỏt triển mạng với ASP.NET
Ta phải cụng nhận một điều là NET Framework và cỏc ứng dụng của nú
đó và đang tạo một cuộc cỏch mạng kỹ thuật trong cụng nghệ Tin Học(Information Technology), thay đổi tận gốc rễ cỏc kiểu mẫu lập trỡnh hayphỏt triển và triển khai mạng trờn thế giới và do đú tạo một vận hội mới đỏpứng mọi yờu cầu khẩn thiết cho cỏc ngành nghề kỹ thuật và thương mại hiệnnay cũng như vạch một hướng đi vững chắc và dài lõu cho tương lai Tin Học.ASP.NET chớnh là một trong những ứng dụng quan trọng nhất để phỏt triển
và triển khai mạng một cỏch dễ dàng chưa từng thấy từ xưa đến nay Thậtvậy, hóy lắng nghe thử chớnh Microsoft đó núi về ASP.NET như thế nào:
“ASP.NET is a revolutionary programming framework that enables therapid development of powerful web applications and services Part of theMicrosoft NET Platform, it provides the easiest and most scalable way todevelop, deploy and run distributed web applications that can target anybrowser or any application.” ( trích MSDN)
Asp.NET hơn hẳn phiên bản trớc của nó là Active Server Page(ASP); nó là mộtphát triển Web thống nhất cung cấp các dịch vụ cần thiết cho các nhà phát triển đểxây dựng các ứng dụng ở mức kinh doanh (enterprise) ASP.NET cung cấp một sốlợng lớn các cú pháp tơng thích với ASP, mặt khác ASP.NET còn cung cấp một
Trang 17kiểu lập trình và một cơ sở hạ tầng mới cho phép ta tạo các lớp ứng dụng mới đầysức mạnh Ta có thể tự do thêm vào các chức năng của ASP đã tồn tại.
ASP.NET là một môi trờng biên dịch trên nền NET; Ta có thể tạo các ứngdụng bằng bất kì ngôn ngữ nào tơng thích với NET, Visual Basic, C#, Jscript.NETthêm vào đó toàn bộ nền tảng NET framework sẵn sàng để sử dụng cho bất kì mộtứng dụng Asp.NET nào Các nhà phát triển có thể dễ dàng tiếp cận đến các lợi ích
từ công nghệ này bao gồm một môi trờng CLR đợc quản lý, kiểu an toàn, tính thừakế
ASP.NET đợc thiết kế để làm việc một cách liền một khối với các trình biêntập HTML kiểu WYSIWYG và các công cụ lập trình khác bao gồm bộ MircrosoftVisual Studio NET không chỉ làm cho việc phát triển Web dễ dàng hơn, nó còncung cấp tất cả các lợi ích mà những công cụ này đa ra, bao gồm một GUI mà cácnhà phát triển có thể dùng để kéo thả các server controls lên trang Web và cungcấp các tiện ích gỡ rối và lần vết đầy đủ, chi tiết
2.2.2 Tóm tắt các đặc điểm chính trong ASP.NET
+ Mô hình lập trình đơn giản:
ASP.NET giỳp ta phỏt triển và triển khai cỏc ứng dụng về mạng trong một thời gian kỷ lục vỡ nú cung cấp cho ta một kiểu mẫu lập trỡnh dễ dàng và gọn gàng nhất Cỏc trang ASP.NET cú thể làm việc với mọi browsers hiện nay như Internet Explorer (IE), Netscape, Opera, AOL, mà khụng cần phải đổi lại cỏc nguồn mó rất vất vả như trước
+ Hỗ trợ đa ngôn ngữ:
Trang 18Khụng như ASP kiểu cổ điển chỉ giới hạn với VBScripts and JScripts,ASP.NET hỗ trợ trờn 25 NET ngụn ngữ lập trỡnh (dĩ nhiờn ngoài cỏc ngụn ngữmới thiết lập đó cài sẵn trong NET framework như là VB.NET, C# vàJScript.NET cũn cú MC++.NET, Smalltalk.NET, COBOL.NET, Eiffel.NET,Perl.NET, Component Pascal.NET, Mercury.NET, Oberon.NET,Python.NET, ).
+ Hỗ trợ nhiều công cụ
Mặc dự ta cú thể chỉ cần dựng tới Notepad để triển khai cỏc trangASP.NET nhưng Visual Studio.NET giỳp năng suất triển khai mạng thờm phầnhiệu quả vớ ta cú thể quan sỏt cỏc dự án của ta dễ dàng hơn khi phỏt họa (design)cỏc thành phần của ASP.NET bằng hỡnh ảnh với ASP.NET Web Forms hayServices theo phương phỏp 'drag-drop-doubleclick' quen thuộc của nềnWindows Thờm nữa, lại cũn hỗ trợ ta trong việc phỏt hiện và loại bỏ những lỗisai một cỏch rất thuận lợi trong khi phỏt triển cỏc ứng dụng về mạng (support fordebugging and deploying ASP.NET Web applications)
+ Thành phần điều khiển phía server
ASP.NET cung cấp một vài điều khiển phía server để đơn giản hoá việc tạotrang Các thành phần điều khiển này gói gọn một số tác vụ thông thờng nh hiểnthị lịch, kiểm tra dữ liệu nhập (Validate) Các thành phần điều khiển này cho phép
ta ràng buộc dữ liệu tơng tự nh ta đang viết một ứng dụng với desktop thật sự, xoá
đi đợc biên giới client/server
+ Namespace và Class Framework phong phú:
Trang 19Nhờ nền tảng vững vàng và tài nguyờn phong phỳ của NET Frameworkvới hơn 5000 classes bao gồm như XML, data access, file upload, regularexpressions, transactions, message queuing, SMTP mail, Nờn việc thiết kế cỏcđặc tớnh trong một ứng dụng trở nờn nhẹ nhàng và thoải mỏi hơn xưa rất nhiều.Namespace đợc sử dụng nh là một hệ thống tổ chức - một cách để thể hiệncác thành phần (Component) đợc mở rộng cho các chơng trình và ứng dụng khác.Namespace bao gồm cả Class.
Namespace giống nh các th viện Class và có thể làm việc viết các ứng dụng
+ NET so sánh với J2EE:
Trang 20Trong việc đối đầu với nhau về hiệu xuất (performance) và scalability vớicựng một ứng dụng phỏt triển giữa Sun's Java Pet Store J2EE và ASP.NET thỡASP.NET khụng những nhanh vượt trội hơn J2EE đến 28 lần (khoảng 2700%),nguồn mó lại ớt hơn nhiều (khoóng 1/4 nguồn mó của J2EE) mà cũn dựng bộ xử
lý (processor) chỉ khoóng 1/6 lần so với việc sử dụng processor của J2EE
+ Khai triển dễ dàng
ASP.NET đơn giản húa việc triển khai ứng dụng mạng, do đú biến việc triển khai toàn bộ ứng dụng trở nờn dễ dàng và thuận lợi hơn hẳn trước kia vỡ bõy giờ ta chỉ cần sao (với XCOPY) và lưu trữ ở Server chứ khụng cần phải chạy chương trỡnh 'regsrv32' để đăng ký bất cứ thành phần nào cả, và thờm nữa, khi cần lưu trữ những yếu tố phụ cần thiết cho việc thiết lập hay bố trớ cỏc ứng dụng, ta chỉ cần lưu giữ nú vào trong một hồ sơ dưới dạng XML là đủ
+ Truy xuất dữ liệu
Từ ASP.NET truy xuất dữ liệu là một kỹ thuật thờng xuyên sử dụng để biểudiễn dữ liệu cho ngời dùng Giờ đây ASP.NET khiến cho việc làm với mục đíchnày dễ dàng hơn bao giờ hết hơn nữa nó còn cung cấp việc quản lý dữ liệu trongcơ sở dữ liệu
+ Tăng khả năng bảo mật
Trong ASP chỉ có duy nhất một kiểu xác thực đó là ta sử dụng kiểu xác thựccủa Windows, trong khi đó ASP.NET cho phép nhiều loại đăng nhập và xác thựcngời dùng: Windows, Pasport và Forms
+ Mở rộng
Trong ASP.NET, trạng thái sesion bây giờ đợc duy trì trong một quá trình xử
lý riêng rẽ trên một máy riêng rẽ hay CSDL, cho phép các sesion qua server điềunày cho phép ta thêm nhiều Web server khi muốn mở rộng ứng dụng
+ Dễ dàng thiết lập cấu hình cho ứng dụng web
Trang 21Các thiết lập cấu hình cho một ứng dụng ASP.NET đợc lu trong một file dạngXML ngời lập trình có thể dễ dàng đọc và thay đổi lại đợc Mỗi một ứng dụng đều
có một file cấu hình riêng và việc mở rộng các scheme tuỳ thuộc vào yêu cầu củangời lập trình Các file dll bây giờ không cần phải đăng ký, ta chỉ cần đặt nó vàotrong th mục /bin của ứng dụng
+ Cập nhật và chạy tự động
ASP.NET cho phộp ta tự động cập nhật húa (update) cỏc thành phần đócompiled (compiled components) mà khụng cần phải khởi động lại (re-start) cỏcWeb Server
+ Dễ dàng phát triển các thành phần cũ:
Ta khụng cần phải du nhập những ứng dụng được phỏt triển và triển khaibằng ASP cổ điển hiện cú của ta vào ASP.NET vỡ ASP.NET cú thể chạysong song với ASP ở cựng một Internet Information Server (IIS) trong nềnWindows 2000 hay nền Windows XP Cỏc ứng dụng cũ vẫn tiếp tục chạy hếtsức thoải mỏi với ASP.DLL trong khi ASP.NET engine sẽ xử lý cỏc ứngdụng mới Ngoài ra, ASP.NET cũn cho phộp ta dựng lại những thành phầnthương mại hiện nay kiểu COM cổ điển trong cỏc ứng dụng của nú
+ XML Web Services:
Dịch vụ mới về mạng với XML cũng cho phộp ta truyền đạt (communicate)
và chia xẻ (share) cỏc dữ kiện (data) xuyờn qua mạng Internet dễ dàng tới cỏcSOAP client mà khụng hề phõn biệt đối xử cỏc hệ điều hành hay cỏc ngụn ngữlập trỡnh khỏc nhau (regardless of OS or programming language) Nhờ đú, takhụng cần phải học thờm hay đào sõu cỏc kiến thức về Networking, XML haySOAP,
+ Mobile Web Service Support:
Thờm nữa, ASP.NET Mobile Controls cũn giỳp ta phỏt triển và triển khai
Trang 22Mobile Web Services đuợc cung cấp trong NET framework Ta chỉ cần lậptrỡnh cho ứng dụng của ta như thường lệ rồi phú mặc cho Mobile Controls đú
tự động phỏt sinh ra những nguồn mó như WAP/WML, HTML hay iModethớch hợp với từng loại thiết bị (device) riờng biệt
Mô hình hoạt động của ASP.NET
2.3 Những điểm khác biệt của ASP so với ASP.NET
Chúng ta đã xem sơ qua về vai trò của ASP.NET trong môi trờng tích hợp với
hệ điều hành Chúng ta cần nhìn ASP.NET ở một khía cạnh khác ASP.NET khacgì so với ASP và tại sao lại có sự khác biệt này? Nếu ta chạy lại những ứng dụngASP cũ trên nền ASP.NET ta có thể không nhận ra đợc sự khác biệt giữa ASP vàASP.NET Mặc dù vậy nếu mở tài liệu hớng dẫn SDK của ASP.NET và chọn đềmục “What’s new”ta sẽ thấy Windows đa ra rất nhiều khái niệm mới thậm chí tacha từng thấy trớc đó trong ASP Chúng ta sẽ tìm hiểu về sự khác biệt quan trọnggiữa ASP.NET và ASP ngay trong phần này
Trớc hết, tại sao Microsoft lại quyết định thay đổi và tạo một phiên bản kháccủa ASP và ASP.NET sẽ giúp ta nh thế nào trong việc phát triển các ứng dụngWeb tơng lai ?
ASP đã cho thấy sự thành công của nó trong các ứng dụng Web, vậy tại sao
MS lại quyết định thay đổi công nghệ và cho ra đời ASP.NET là một phiên bảnhoàn toàn mới so với ASP Có 4 nguyên nhân chính sau đây:
Trang 23* Hiện tại,ASP chỉ là một ngôn ngữ kịch bản phi định kiểu (none-type) dựatrên VBScript hoặc Jscript ASP không tận dụng đợc các ngôn ngữ rằng buộc kiểumạnh nh C++ hay Visual Basic ASP.NET cho phép sử dụng ngôn ngữ trunglập.Trang ASP.NET có thể viết bằng rất nhiều ngôn ngữ nh: VBScript, Jscript,Visual Basic,C++,C#,Perl….
* Một bất tiện của các trang ASP đó là mã lệnh giao diện (định dạng bằngcác thành phần HTML) trộn lẫn với nhau Khi phát triển những ứng dụng Web lớnthờng các dự án cần tách ra làm hai nhóm Một nhóm thiết kế giao diện(Webdesigner)và một nhóm viết lệnh lập trình (programmer) Kết quả cuối cùng thờng
là sự trộn lẫn giữa phần thiết kế giao diện và mã lệnh ASP để tạo ra một file chơngtrình duy nhất Các trang ASP của ứng dụng do đó rất khó bảo trì khi ta muốnthêm vào các mã lập trình mới hay thay đổi lại giao diện ASP.NET cho phép táchrời giữa mã lập trình và nội dung tài liệu
* Trong phiên bản ASP trớc, ta hầu nh phải viết mã chơng trình để quản lýmọi chuyện Ta muốn quản lý trạng thái của các trờng nhập liệu trong FORM cầnphải viết mã Muốn kiểm tra tính hợp lệ của dữ liệu (validate) do ngời dùng nhậpvào, cần phải viết mã Để trang ASP tăng tốc bằng cách dùng vùng đệm cache, cầnphải viết mã ASP.NET thực sự là mô hình đối tợng thành phần loại bỏ rất nhiềucông đoạn viết mã mà lập trình viên Web thờng phải làm.ASP.NET cung cấp cácthành phần điều khiển hoạt động phía chính chủ (server side control) hoạt độngtheo hớng sử lý sự kiện (tơng tự các điều kiển ta sử dụng trên Form của chơngtrình Visual Basic) Ta chỉ cần khai báo thành phần điều kiển sử dụng và trong hầuhết các trờng hợp, ta không cần phải viết thêm mã lệnh Mọi việc kiểm soát trạngthái và tơng tác với thành phần điều kiển đều đợc trình chủ Web Server với kiếntrúc ASP.NET lo liệu
* Ngày nay, thế giới đã thay đổi nhanh tróng với các thiết bị cầm tay nh điệnthoại di động,may Palm, TV có thể kết nối với Internet…Những thiết bị mới này
đều chuẩn bị khả năng kết nối với Internet và máy chủ phục vụ Web Công việc
Trang 24phải có khả năng tạo các trang WML phục vụ cho điện thoại di động, xử lý và traodổi dữ liệu XML… Những công việc này ta có thể sử lý bằng ASP những cần phảithêm các th viện phục và đòi hỏi quá trình viết mã rất công phu ASP.NET có sẵncác dịch vụ này để ta sử dụng.
Bên cạnh đó, chúng ta còn phải có khả năng xây dựng các đối tợng phân tán
có thể triệu gọi từ xa và sử dụng lại trên nhiều hệ điều hành khác nhau Các đối ợng phải dễ thiết kế và cài đặt khi đa vào sử dụng ASP.NET cung cấp kiến trúc hạtầng để xây dựng các ứng dụng phân tán trên Web theo giao thức triệu gọi SOAP(Simple Oject Access Protocol-giao thức truy xuất đối tợng giản đơn), cho phépthực hiện chuyển đổi dữ liệu XML phục vụ cho môi trờng thơng mại điện tửB2B(Business to Business) ASP.NET cung cấp đầy đủ mọi dịch vụ từ bảo mật đếncấp phát bộ nhớ, thu gom rác, theo dõi sự quá tải của các thành phần đối tợng, cânbằng tải (load balance) giảm thiểu tối đa các kết nối tiêu tốn tài nguyên
t-Để đạt đợc những mục tiêu này, ASP đã thay đổi toàn bộ để trở thành môi ờng lập trình mới Visual Studio.NET (hay phiên bản Visual Studio 7.0) củaMicrosofl là công cụ tuyệt vời nhất để ta xây dựng các ứng dụng Web, đặc biệt làASP.NET Môi trờng lập trình mới của Microsofl trên nền Windows không phânbiệt ngôn ngữ ASP.NET có thể viết bằng bất kỳ ngôn ngữ nào có trong VisualStudio NET nh C#, VB, C++ Ta có thể sử dụng các công cụ phát triển ứng dụngkhác nhng chắc rằng chúng sẽ không vợt qua đợc các công cụ phát triển củaMicrosofl
tr-2.3.1 Ưu điểm lớn nhất của ASP.NET
Vấn đề thách thức lớn nhất đối với các ứng dụng Web ngày nay là sự tơngthích trên các trình duyệt cùng với độ phức tạp của trang tài liệu do ứng dụng tạo
ra Để tạo một trang tài liệu Web hấp dẫn tận dụng đợc những tính năng mới nhấtcủa trình duyệt nhng đồng thời vẫn hiển thị đúng đắn trên các trình duyệt cũ quả là
ác mộng đối với lập trình viên và các nhà thiết kế Web
Trang 25Và sự việc càng trở lên tồi tệ hơn khi các thiết bị cầm tay nh điện thoại di
động và đòi hỏi nhu cầu sử dung Internet Các trang tài liệu thiết kế cho những thiết bị này yêu cầu phải nhỏ gọn và không thể sử dụng cách định dạng cho tài liệu
nh trên các trinh duyệt hiện đại
Một trong những cách giải quyết vấn đề trên đó là hớng đến trong môi trờngcủa ứng dụng, để thiết kế các trang tài liệu khác nhau.Ví dụ có thể tạo 100 trangHTML để hỗ trợ cho các trình duyệt trên máy PC, 100 trang WML khác hỗ trợcho kết nối điện thoại di động Nói chung chúng ta xây dựng 2 site riêng biệt để h-ớng đến hai mục đích sử dụng khác nhau Đây là cách mà các ứng dụng Web hiệntại đang sử dụng Tuy nhiên, một lựa chọn khác là trình chủ có thể tuỳ vào yêu cầucủa trình khách để lựa chọn và sinh ra các trang tài liệu phù hợp với mục đích sửdụng mà trình khách đang cần Cách này tuy linh động nhng đòi hỏi phải xâydựng và viết mã lệnh công phu Mặc dù vậy với ASP.NET ta không cần phải viếtmã lệnh, các thành phần điểu khiển hoạt động trển trình chủ có khả năng nhậndạng và sinh mã tuỳ theo mục đích và yêu cầu sử dụng cuối cùng của trình khách
2.4 ASP.NET Web form
2.4.1 giới thiệu về ASP.NET Web form
Web form là một công nghệ lập trình trong ASP.NET cho phép ta tạo ra các trang web có thể lập trình đợc Chúng biểu diễn thông tin bằng việc sử dụng bất kỳngôn ngữ đánh dấu nào và sử dụng các mã lệnh phía server để thực hiện các thành phần phía server.Web form:
Có thể chạy trên bất cứ browser nào và tự động dịch một cách chính xác, browser – tuân thủ theo mã HTML cho một số chức năng nh styles, layout Có thể lập trình bằng bất cứ ngôn ngữ thực thi (CLR) nào, bao gồm Visual Basic, C# và Jscript NET
Trang 26Do xây dựng trên CLR và đợc cung cấp tất cả các lợi ích từ công nghệ này, bao gồm một môi trờng thi hành đợc quản lý, kiểu an toàn, tính thừa kế và sự biên dịch động.
Hỗ trợ các công cụ biên tập kiểu WYSIWYG và các công cụ phát triển RAD mạnh mẽ nh Microsoft Visual Studio NET, cho việc thiết kế và lập trình cácform
Cung cấp một bộ công cụ đa năng cho phép các nhà phát triển gói gọn logictrang vào trong các thành phần có thể sử dụng lại và nắm bắt các sự kiện trong trang một cách rõ ràng
Cho phép phân cách giữa mã và nội dung trong một trang, loại trừ các mã
“spaghetti-code” thờng gặp trong các trang ASP
Cung cấp một bộ các chức năng quản lý trạng thái để bảo vệ trạng thái nhìn thấy đợc trong trang giữa các lần truy vấn
Có thể mở rộng với các control mà ngời dùng tự tạo hay do các nhà cungcấp thứ ba
2.4.2 Các thành phần của Web form.
Web form phân chia giao diện ngời dùng của các ứng dụng web thành hai phần: thành phần trực quan và giao diện logic ngời dùng Nếu trớc đây ta đã từng
sử dụng với các công cụ phát triển nhanh nh Microsoft Visual Basic Microsoft C++, ta sẽ nhận thấy sự khác biệt giữa các thành phần của form và phần mã lệnh tơngtác với form
Giao diện ngời dùng cho các trang Web Form bao gồm một file chứa các thành phần đánh dấu và các thành phần Web form đặc biệt File này thờng đợc hiểu nh là “trang”.Trang này làm việc nh là một lớp chứa văn bản và các control
mà ta muốn hiển thị Ta có thể sử dụng bất kỳ trình biên tập HTML nào có thêm các Web form server control để đặt lên form Trang là một file có phần mở rộng
“.aspx”
Trang 27Giao diện logic ngời dùng cho Web form bao gồm mã lệnh mà ta tạo để tơng tác với form Ta có thể lựa chọn logic lập trình đợc chứa bên trong file aspx, hoặc trong một file riêng biệt ( thờng đợc gọi là file mã ẩn- code behind), đợc viết bằng
VB, C# khi ta chạy form, file lớp mã ẩn sẽ chạy kết quả đa ra trang một cách
động
Việc lập trình các ứng dụng Web đối mặt với nhiều thử thách nảy sinh khônggiống nh khi lập với các ứng dụng client truyền thống Trong số các thử thách này là:
Giao diện ngời dùng phong phú Một giao diện ngời dùng với một số lợng lớn nội dung, một cách bài trí phức tạp, sự tơng tác ngời dùng đẹp mắt có thể gây khó khăn và nhàm chán khi tạo và lập trình nếu sử dụng các tiện ích HTML Và trở nên đặc biệt khó khi tạo một giao diện ngời dùng cho các ứng dụng có thể chạytrên nhiều trình duyệt khác nhau
.Sự phân chia giữa client và server Trong một ứng dụng web, client
(Browser) và server là các chơng trình khác nhau thờng chạy trên các máy tính khác nhau (thậm chí hệ điều hành khác nhau) Do đó hai phần của một ứng dụng chia xẻ rất thông tin; chúng có thể giao tiếp, nhng thông thờng chỉ trao đổi các thông tin đơn giản
Sự thi hành phi trạng thái Khi một Web server nhận một truy vấn cho một trang, nó tìm trang, xử lý chúng, gửi nó tới browser và sau đó không còn lu trữ thông tin gì về trang đó Nếu ngời dùng truy vấn đến cùng một đó, server lặp lại toàn quá trình xử lý từ đầu, hay nói một cách khác các server không nhớ gì về trang mà chúng đã xử lý Do đó, nếu một ứng dụng cần duy trì thông tin về một trang, việc này trở thành một vấn đề phải đợc xử lý trên mã ứng dụng
Không biết gì về khả năng của client Trong một số trờng hợp các ứng dụng web đợc tiếp cận bởi nhiều ngời dùng với nhiều trình duyệt khác nhau, làm khó khăn khi hơn khi tạo ra một ứng dụng một cách bình thờng với tất cả chúng
Trang 28Truy xuất dữ liệu Đọc và ghi vào nguồn dữ liệu trong các ứng dụng web truyền thống thờng rất phức tạp và tập trung nhiều công sức.
Đối mặt với các thử thách này một ứng dụng web cần nhiều thời gian và nỗ lực Web form là giải pháp để giải quyết các vấn đề này
Độc lập với mọi trình duyệt Tạo mã rõ ràng cho các trình duyệt khác nhau Tuy nhiên, nó vẫn cho phép có đợc các lợi ích của các chức năng đặc biệt trong trình duyệt một cách tự động để cải thiện việc trình bày
Mô hình lập trình sự kiện Web form mang đến các ứng dụng Web một mô hình để viết các phơng thức cho các sự kiện xảy ra ở phía server cung nh ở client, chuyển giao nó tới server, và việc gọi hander thích đáng là hoàn toàn tự động và trong suốt Kết quả là cấu trúc mã lệnh thật đơn giản và rõ ràng
Mô hình đối tợng nhất quán, trừu tợng, trực quan Bộ khung web form đa ra một mô hình đối tợng cho phép ta nghĩ đến những form nh là một đơn vị, không làcác phần riêng biệt giữa client và server Trong mô hình Web form ta có thể lập trình một cách trực quan hơn các ứng dụng web truyền thống, bao gồm khả năng thiết lập thuộc tính cho các thành phần của form và đáp trả các sự kiện Thêm vào
đó, Web Form control là một cách nhìn trừu tợng về nội dung vật lý của một trang HTML và của sự tơng tác giữa browser với server Tóm lại, ta có thể sử dụng Web Form control theo kiểu ta dùng nh các control trong các ứng dụng client thông th-ờng và không phải nghĩ về việc sinh mã HTMLđể hiển thị và xử lý các control và nội dụng của chúng
Quản lý trạng thái Bộ khung Web Form nắm bắt các tác vụ trong việc duy trì trạng thái của form hay các control trong nó một cách tự động và cung cấp nhiều cách ró ràng để duy trì thông tin ứng dụng đặc biệt
Trang 29Nâng cấp server Bộ khung Web Form cho phép ta nâng cấp ứng dụng từmột máy tính với bộ xử lý đơn đến một tầng máy tính mà không cần các thay đổiphc tạp trong logic ứng dụng.
2.4.3 Mô hình Web Form
Một Web Form bao gồm hai phần, các thành phần nhìn thấy đợc và mãlệnh Các thành phần có thể đợc chứa trong cùng một trang; Tuy nhiên, ta cóthể các thành phần này thành hai trang riêng biệt Các thành phần nhình thấy đ-
ợc có thể đợc tạo trong các file aspx và hoạt động nh một lớp chứa các thànhphần HTML và các control Web Form Mã lệnh thì đợc chứa ở một lớp fileriêng biệt hay ngay trong file aspx Trong hầu hết các trờng hợp ta sẽ sử dụngchúng theo cách thứ hai
2.4.4 Bộ khung Web Form là một mô hình đối tợng
Mặc dù ta tạo các Web Form từ các thành phần riêng rẽ, chúng tạo nên mộtkhối thống nhất Khi Web form đợc biên dịch, ASP NET phân tích trang và mãcủa chúng, tạo ra một lớp mới, và sau đó biên dịch mới lớp này Lớp tạo ra đợc bắtnguồn từ lớp ASP.NET Page, nhng có thêm các thành phần mở rộng với cáccontrol, mã lệnh, văn bản HTML tĩnh trong file aspx
Lớp trang mới này trở thành một file có thể thi hành và đợc thi hành ở phíaserver mỗi khi trang Web Form đợc yêu cầu Trong khi thực thi, lớp Page xử lýcác yêu cầu gửi đến và phản hồi bằng cách tạo ra mã HTML một cách động và gửi
nó tới browser Nếu trang có chứa các control (thông thờng là nh vậy) thì lớp Pagehoạt động nh một lớp chứa các control và ánh xạ các các control đợc tạo tại thời
điểm thực thi, cũng nh vậy sinh ra các mã HTML Điều này hoàn toàn khác vớiASP Trong ASP, trang bao gồm mã HTML tĩnh đặt rải rác với mã thực thi Bộ xử
lý của ASP đọc trang rút ra và chạy các mã lệnh (thông dịch hơn là biên dịch) sau
đó đặt kết quả trở lại mã HTML tĩnh trớc khi gửi tới trình duyệt
Trang 30Tóm lại toàn bộ Web form, theo hiệu quả nào đấy, là một chơng trình đa ramã HTML Mô hình xử lý giống nh bất kỳ các thành phần có thể gọi nào trongtrang đợc thi hành khi có triệu gọi.
Bởi vì file aspx không phải là các module theo kiểu truyền thống, mối quan
hệ của nó với file lớp đợc thành lập với các chỉ thị ở ở đầu trang Đặc biệt là thuộctính thừa kế trong chỉ thị @Page đợc sử dụng để chỉ định lớp file mà file aspx cónguồn gốc
<%@ Page Inherits= Project1.WebPage1 %>” ” …
2.4.5 Quá trình xử lý của trang Web form
Bộ khung Web form thực hiện rất nhiều dịch vụ cho ứng dụng Web của ta
ví dụ bộ khung Web Form có thể nắm bắt các thông tin có liên quan và là cho
nó có giá trị trong thuộc tính của các đối tợng
Để lập trình Web Form một cách có hiệu quả ta cần biết về các sự kiện tuần
tự xảy ra khi trang Web Form đợc xử lý
Vòng đời của một trang Web Form
Round trip
Một trong những điều quan trọng để hiểu đợc quá trình xử lý trong trang WebForm là về sụ phân chia hoạt động trong Web Form Browser hiển thị Form tớingơừi dùng và ngời dùng tơng tác với form Tuy nhiên tất cả quá trình xử lý mà có
sự tơng tác với các thành phần phía server phải xảy ra trên server Điều này cónghĩa là form phải đợc post lên server, xử lý và trả về trình duyệt Sự tuần tự này
đợc gọi là round trip
Mặc dù ta có thể tạo môt số script hữu ích ở phía client trong trang Web Form nh
để kiểm tra dữ liệu nhập vào cho một số UI, nhng các script này không thể tơngtác với các thành phần ở phiá server
Trong Web form, hầu hết các hành động của ngời dùng nh là click một button kếtquả trả về trong một round trip Vì lý do này các sự kiện có sẵn trong server
Trang 31control đều có giới hạn Hầu hết các server control chỉ lộ ra sự kiện click, chúngkhông đa ra các sự kiện xảy ra thờng xuyên nh mouseonover vì mỗi lần sự kiệnxảy ra nó cần một round trip để xử lý Chúng không đa ra các sự kiện xảy ra thờngxuyên nh mouseonover, vì mỗi lần sự kiện xảy ra nó cần một round trip khác tớiserver, nó chiếm một thời gian đáng kể.
Sự tạo lại trang
Trong bất kỳ kiểu xử lý Web nào, các trang đợc tạo từ đầu trong mỗi round trip.Khi sevver kết thúc quá trình xử lý trang nó gửi tới browser và bỏ đi các thông tin
về trang đó Lần kế tiếp khi trang đợc post lên server, server bắt đầu lại toàn bộtrang và xử lý.Vì vậy, Web pages thờng đợc nói là sự phi trạng thái, giá trị cácbiến trong trang và control không đợc bảo quản trên server
Trong các ứng dụng truyền thống, thông tin mà server có đợc là những thông tin
mà ngời dùng điền vào các control, bởi vì thông tin đợc gửi tới server khi post cácform Các thông tin khác, nh giá trị của biến hay các thuộc tính thiết lập đều bị bỏqua
Bộ khung Web Form giải quyết các giới hạn này theo một vài cách đầu tiên
nó ghi lại trang thái và các thuộc tính của control giữa các round trip Sau đó nócung cấp các tiện ích quản lý trạng thái để trả lại các thông tin cụ thể trong ứngdụng (không chỉ là giá trị của các control) giữa các round trip hay khi qua lại giữacác trang
2.4.6 Các chặng trong quá trình xử lý Web Form
Trong quá trình xử lý,Web form qua mỗi số chặng khác nhau.Mỗi chặng bộ
xử lý Web form gọi trang có liên quan xử lý các phơng thức và chạy mã lệnh trongphơng thức đó
Page_Init
Trang 32Sau sự kiện này , trang đợc khởi tạo Sự kiện này chịu trách nhiệm cho tất cả các hoạt động khởi tạo Nếu ta muốn khởi tạo các giá trị một vài biến trớc khi nạp trang, ta khai báo nó trong sự kiện Page_Init.
Mặc định, chỉ sự kiện click mới submit một form lên server Sự kiện Change
đợc lu lại trong hàng đợi chỉ đợc xử lý sau khi form đợc post lên server bằng một
2.4.7 Mô hình sự kiện của Web Form
Sự kiện trong Web Form thờng khác với các sự kiện trong form client truyền thống hay các ứng dụng web thuần client
Trong các ứng dụng thuần client, các sự kiện phát sinh và đợc nắm bắt bởi clien Trong Web Form hầu hết các sự kiện phát sinh ở phía client và đợc nắm bắt
Trang 33ở phía server Trong các sự kiện phát sinh ở phía client, mô hình sự kiện Web Form cần thông tin đợc nắm bắt ở phía client và thông điệp về sự kiện đợc chuyển tới server Vì cách làm việc của Web, thông điệp này phải đợc post qua HTTP Bộ khung Web Form phải thông dịch thông tin này để xác định sự kiện nào đã phát sinh, và sau đó gọi phơng thức tơng ứng trong mã lệnh để nắm bắt sự kiện.
Sự kiện Postback và Non_Postback
Trong các control của Asp (không phải của HTML) mặc định chỉ sự kiệnbutton_click() trong form xảy ra thì post thông tin tới server Sự kiện change trongcontrol của ASP.NET đợc nắm bắt nhng không post ngay lập tức Thay vào đóchúng đợc cache cho tới khi post xảy ra Sau khi trang đợc xử lý trên server tất cảcác sự kiện đợc xử lý lần lợt
Trong khi trang đợc xử lý trên server, tất cả các sự kiện change đợc xử lý
tr-ớc, sau đó sự kiện click gây ra việc post form đợc thực hiện
Ta có thể đặt sự kiện change để có thể post form ngay lập tức bằng thuộc tínhAutopostback=”True” mà không cần đợi sự kiện click
Phản hồi sự kiện tới cả Client và server trong HTML server control
Các server control trong ASP.NET chỉ cung cấp các sự kiện ở phía client.Tuy nhiên các sự kiện trong bộ HTML server control ( button và textbox) chophép ta tạo các sự kiện có thể đợc nắm bắt ở cả hai phía client và server Giống nhcác sự kiện trong control của Asp.NET, sự kiện phía server của các control HTML
Trang 34thờng bị giới hạn trong sự kiện đơn nh click hay change Các sự còn lại thờng cho
ta dùng trong client script
2.4.8 Các sự kiện Application và Session
Ngoài các sự kiện trong trang và các sự kiện trong các control, bộ khungASP.NET còn cung cấp các sự kiện ở mức độ cao hơn:
Application Sự kiện ApplicationStart() xảy ra khi ứng dụng Web của ta lần
đầu tiên đợc bắt đầu Điều này cho phép ta khởi tạo các nguồn tài nguyên
đợc sử dụng trong suốt thời gian hoạt động của ứng dụng Một sự kiện tơng
đơng với nó, ApplicationEnd() hữu ích để ta đóng lại các tài nguyên đã sử dụng.Session Các sự kiện Session cũng giống nh Application (SessionStart vàSesstionEnd) nhng phát sinh với mỗi session duy nhất trong ứng dụng (Mộtsession bắt đầu khi một ngời dùng yêu cầu đến một trang lần đầu tiên trong ứngdụng của ta và kết thúc khi ứng dụng của ta đóng phiên kết nối hay khi các phiênkết nối hết thời hạn)
Để tạo phơng thức sự kiện theo cú pháp ASP.NETTrong các thành phần server control, chỉ cần gắn một phơng thức cho tên một sựkiện:
<asp:Button id="Button1" runat="SERVER" OnClick="MyMethod" />Sau đó tạo phơng thức để nắm bắt sự kiện đó trong mã lệnh của ta Phơngthức có dạng nh sau:
protected void Button1_Click(object Source, EventArgs e){
Label1.Text="You clicked the button";
Trang 35<asp:Button id=Button1 runat="server"
Các điều khiển phía Server
Giới thiệu về Server control
Khi tạo một Web Form, ta có thể sử dụng các loại điều khiển sau:
HTML server control Các thành phần HTML đợc mở rộng cho phía server
do đó ta có thể lập trình với chúng, HTML server control này thất sự là các đối ợng rất gần gũi với các thành phần HTML mã chúng đaị diện
t-ASP.NET server control Các control này có nhiều các chức năng nội tại hơn
HTML server control ASP server contrl không chỉ gồm các loại control trongform nh button textbox chúng còn có những control có mục đích đặc niệt nhCalendar
Control kiểm tra và nhập dữ liệu Control này là một kiểu logic chặt chẽ chophép ta kiểm tra dữ liệu nhập vào Ban có thể gắn nó với một control nhập dữ liệu
để kiểm tra tính hợp lệ của dữ liệu nhập
User control Các control mà ta tự tạo nh các trang Web form Ta có thể
nhúng các user control trong các trang Web Form khác, thật dễ dàng để tạo menu,thanh công cụ, hay các thành phần có thể sử dụng lại khác
Ta có thể sử dụng tất cả các control này trong cùng một form
2.4.9 HTML server control
HTML server control là các thành phần HTML có chứa các thuộc tính có thểhiển thị và lập trình đợc trên server Theo mặc định các thành phần HTML trongtrang Web Form thờng bị bỏ qua và đợc coi nh các đoạn văn bản bình thờng trên
Trang 36server Tuy nhiên khi chuyển HTML sang HTML serverr control, ta có thể mởrộng chúng nh là các thành phần có thể lập trình đợc trên server.
Mô hình đối tợng của HTML server control gần giống nh các thành phầnHTML mà chúng đại diện Ví dụ các đặc trng của HTML đợc mở rộng nh là cácthuộc tính trong HTML server control
Bất kỳ thành phần HTML nào trong trang cũng có thể đợc chuyển thànhHTML server control Sự chuyển đổi này là một quá trình đơn giản ta chỉ cần thêmthuộc tính RUNAT=SERVER thông báo này sẽ cho server biết cần phải tạo một
đối tợng cho thành phần này khi xử lý
Nếu ta muốn tham chiếu một control trong mã lệnh ta cần phải gán thuộctính ID cho control đó
Các đặc diểm của HTML server control
Là một mô hình đối tợng mà ta có thể lập trình với nó trên server theo côngnghệ lập trình hớng đối tợng Mỗi server control mở rộng các thuộc tính cho phép
ta thao tác với các đặc trng của HTML theo kiểu lập trình
Một bộ các sự kiện mà ta có thể viết các phơng thức theo cách mà ta thờnglàm với các control trong Window form chỉ khác là các sự kiện này đợc nắm bắt ởphía server
Khả năng nắm bắt sự kiện ở phía client
Tự động quản lý trang thái cho các giá trị của control trong form Nếu cómột round trip xảy ra tới server mà giá trị ngời dùng nhập vào trong HTML servercontrol thì chúng đợc lu lại một cách tự động khi trang đợc gửu trở lại trình duyệt.Tơng tác với các control kiểm tra dữ liêu nhập (validation controls) do đó dễdàng buộc ngời dùng diền các thông tin hợp lệ vào trong form
Ràng buộc dữ liệu với thuộc tính trong các control khác
Hỗ trợ kiểu HTML 4.0
Trang 372.4.10 ASP.NET server control
ASP.NET server control là bộ control thứ hai đợc thiết kế với rất nhiều khácbiệt Chúng không thể hiện giống hệt nh các HTML server control Thay vào đóchúng đợc định nghĩa nh là các control trừu tợng mà đại diện cho các thành phầnHTML vì các control này thật sự khác với mô hình để lập trình Ví dụRadioButtonList trong ASP.NET là một control nhng nó lại gồm các table trongmã HTML
ASP.NET server control bao gồm các control trong form truyền thống nhbutton và textbox các control phức tạp nh table Chúng cũng gồm có các controlcung cấp các chức năng thớng xuyên sử dụng nh là hiển thị dữ liệu trong lới, chọnngày tháng
Ví dụ sau miêu tả làm thế nào để đa vào trong trang aspx một thành phần
This sample demonstrates how to declare the
<asp:label> server control and
manipulate its properties within a page.
<asp:label id="Message2" size="20"
font-italic="true" forecolor="blue" runat=server>This is Message
Two</asp:label>
<br>
<asp:label id="Message3" size="24"
font-underline="true" forecolor="green" runat=server>This is Message Three</asp:label>
</body>
</html>
và sự thể hiện của nó trên trình duyệt:
Trang 38Sau đây là các đặc điểm thêm vào trong các control ASP.NET:
Mô hình đối tợng phong phú cung cấp nhiều khả năng lập trình
Tự động xác định trình duyệt Các control có thể xác định trình duyệt và tạomã tơng ứng cho trình duyệt đó
Một số control có khả năng định dạng theo cách ta muốn thể hiện bằng cách
sử dụng templates
Một số control có khả năng xác định các sự kiện và ngay lập tức post lênserver hoặc là đợc cache và phát sinh khi form đợc đệ trình
Trong lúc thiết kế ở dạng HTML, các control xuất hiện trong trang có dạng:
<asp:button attributes runat=”server”/>
Các thuộc tính trong trờng hợp này không giống nh các trong các thành phầnHTML, thay vào đó chúng là các thuộc tính của Web control
Khi trang Web form chạy, các web server control trong trang thờng đợc thểhiện nh các thành phần HTML Ví dụ một textbox control thì giống nh kiểu thẻ
<INPUT> hay <TEXTAREA>
Để thêm các Control vào trang Web Form
Việc thêm các server control vào trang Web Form đơn giản nh thêm cácthành phần HTML Cú pháp chính xác mà ta sử dụng phụ thuộc vào control mà tathêm vào, nhng thờng thiết lập theo cách sau đây
Trang 39Các control phải có thuộc tính runat=”server”.
Đặt thuộc tính ID cho các control trừ khi các control đó là một phần của mộtcontrol phức tạp và sẽ đợc lặp lại( nh các control Repeater, DataList và DataGrid).Web server control đợc khai báo với một thẻ XML mà tham chiếu đến aspnamespace Các thẻ phải đợc đóng lại, ta có thể sử dụng thẻ đóng cụ thể hay nếucác control không có các thành phần con ta có thể dùng thẻ tự đóng
Tiếp đầu ngữ asp: cho biết điều kgiển đợc tạo ra từ th viện là một thành phầncủa ASP.NET Sử dụng tiếp đầu ngữ làm phân vùng tên namespace cho phép ta tạo
ra nhiều phần tử hay thành phần điều khiển cùng tên nhng đợc đặt trong các thviện khác nhau
ASP.NET cho phép các nhà phát triển thứ 3 cung cấp th viện riêng của họ,những thành phần điều khiển thêm vào sẽ hoạt động chung với các thành phần
điều khiển ASP.NET sẵn có thông qua namespace riêng biệt
Thật sự là mô hình đối tợng
Các Web server control thật sự là mô hình đối tợng Có thể tơng tác với nóthông qua các phơng thức, thuộc tính và sự kiện (tơng tự mô hình hớng đối tợngtrong Visual Basic )
Sub button1_onclick (Object Sender, EventArgs E)
Điều khiển server control nội tại
Trang 40Các server control nội tại thiết kế để thay thế cho các điều khiển HTML Lý
do việc thay thế này là do tính thuần nhất và tơng thích Một trong những vấn đềyếu kém của HTML đó là không thuần nhất và tơng thích trong cách đặt tên chocác thành phần các chức năng tơng tự nhau Ví dụ: Bằng thẻ <input> ta có thể tạo
ra rất nhiều điều khiển khác nhau “radio”, ”checkbox”, “button”, Chúng không
rõ ràng bằng việc định nghĩa các điều khiển nội tại do ASP.NET cung cấp
Kết quả cuối cùng mà điều khiển nội tại sinh ra để hiển thị trên trình duyệtcũng chỉ là mã HTML đơn giản
Giới thiệu một số Web Server Control
Label Web Server control: cung cấp cho ta cách để đa một đoạn text ra trangWeb Form Thờng thì ta chỉ nên sử dụng control này khi muố đoạn text đó của tathay đổi trong lúc thực thi Sử dụng label control thì đơn giản hơn việc dùngtextbox hay các control khác, vì kết quả của nó là tĩnh trên trang Web, ngời dùngkhông thể thay đổi
Button: tơng tự nh các Submit trong HTML Sử dụng các thành phần điềukhiển nút nhấn này khi ta muốn postback dữ liệu lên trình chủ
Linkbutton (nút liên kết):cho phép ta thực hiện một số thao tác trớc khi postlên trình chủ
Imagebutton: tơng tự nh button nhng cho phép ta gắn một hình ảnh vào đó.Hyperlink chức năng nh thẻ <a> trong HTML
Điều khiển textbox: thành phần này cho phép ta nhập dữ liệu vào từ bàn phímkhá tơng tự với hộp text trong Visual Basic
Điều khiển lựa chọn
checkbox: cho phép chọn nhiều đề mục cùng một lúc
Radio button: Cho phép chọn duy nhất một đề mục trong các đề mục đa ra