1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tổng quát về .NET Framework và ASP.NET

99 873 6
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 99
Dung lượng 3,05 MB

Nội dung

Tài liệu tham khảo kỹ thuật công nghệ, chuyên ngành tin học Tổng quát về .NET Framework và ASP.NET

Trang 1

Mụ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 6

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

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 21

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

2.4.2 Các thành phần của Web form 26

2.4.3 Mô hình Web Form 28

2.4.4 Bộ khung Web Form là một mô hình đối tợng 28

2.4.5 Quá trình xử lý của trang Web form 29

Trang 2

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 33

2.4.9 HTML server control 35

2.4.10 ASP.NET server control 36

2.4.11 Các điều khiển đa năng khác 41

2.4.13 ASP.NET User Web control 42

2.4.13.1 Cấu trúc của User Control 43

2.1.13.2Tạo Web User Control: 43

2.5 Truy xuất dữ liệu với ADO.NET 45

2.5 Mục đích thiết kế cho ADO.NET 46

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 47

2.5.4 Cấu trúc của ADO.NET 47

2.5.5 Lựa chọn giữa DataReader hay DataSet 49

2.5.6 The SQL Server NET Data Provider 51

2.5.7 OLE DB NET Data Provider 51

2.5.8 Nền tảng cần thiết cho ADO.NET: 52

2.6 Truy cập Dữ liệu với ASP.NET 52

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 56

2.7.1 Sự cần thiết của dịch vụ Web 56

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 59

2.8 ASP.NET với dịch vụ Web 60

2.8.1 Định nghĩa một dịch vụ Web 60

Trang 3

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.2.5 Tạo các stored procedure cho ứng dụng 77

3.3 Mô hình đa tầng của ứng dụng 81

3.3.1 Cài đặt đối tợng xử lý trong tầng logic nghiệp vụ 83

3.3.2 Cài đặt trang ASP.NET 97

Danh mục tài liệu tham khảo 107

Kết luận 108

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 tasẽ 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.

Trang 4

Đó 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ànghơn bao 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.

Phầ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 độngdựa trê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ơngtrình ứng dụng mà ta hay goị là browser Tài liệu đợc lu trên máy chủ nào đó,máy khách kế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ờicó thể hiểu đợc bao gồm các đoạn văn bản, hình ảnh, âm thanh, video Và cáctrang tài liệu đầu tiên trên Internet đã dùng ngôn ngữ định dạng HTML (HyperText Markup 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,

Trang 5

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.Từ 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ội dung 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ác dịch vụ khác theo nhu cầu của ngời sử dụng.

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

Trang 6

(Common Gateway Interface) tiếp nhận những yêu cầu của trình khách, thựchiện các thao tác biến đổi trớc khi đa tới Web browser.

1.2.3 Phân loại Web

Theo quan điểm của Martin Rennhackkawp (Tạp chí DBMS 5/97) chorằng có thể phân loại Web thành 3 loại: Trang web tĩnh (static), Form pagesvà 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 Serversẽ 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ác yê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).

Các trình CGI thờng đợc viết bằng visual C++ ,Delphi ,Visual basic.

(các trình biên dịch file thực thi trên môi trờng windows) chúng đợc dịchra file thực thi exe và đặt trong th mục /cgi-bin của trình chủ IIS Mỗi khinhận đợc yêu cầu của khách hàng web server IIS sẽ gọi đến chơng trìnhCGI ,chuyển giao các cầu từ trình khác cho CGI xử lý Hoàn tất quá trình xử lý

Trang 7

CGI sẽ trả hết lại hết cho web server và web server lại trả cho khách dới dạngthể 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ách hà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ên dịch Trình CGI sau khi xây dựng muốn nângcấ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êmvào một số lệnh điều khiển , các lệ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ácscript 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ùngtrình CGI cho mỗi yêu cầu riêng biệt trong khi mã lệnh xử lý của chúng nhnhau.

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ớitrình chủ IIS Thay vì viết CGI xử lý trang động các nhà phát triển có thể xửdụng ISAPI để xây đụng những đơn thể tồn tại cùng với các web server trongsuốt quá trình chờ yêu cầu của trình khách các đơn thể ISAPI đợc viết ở dạngfile 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ủa chình chủ web IIS Tốc độ xử lý của ISAPI do đó rất nhanh tiếtkiệm tài ngyên hơ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á trì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ịchVB scrịpt hay jscript Đơn thể asp.dll (một đơn thể của ISAPI) đợc tích hợp vàoweb sever IIS Khi nhận đợc yêu cầu của trình khách cần hiển thị asp thì trìnhchủ sẽ triệu gọi đơn thể xử lý trang asp.dll trang đợc đọc và thực thi các lệnhcủa kịch bản Kết quả sau đó đợc asp.dll gửi lại trình chủ gửi lại theo yêu cầucủa khách.

Trang 8

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ạovà chạy các các ứng dụng Web server động, tơng tác và có hiệu quả cao Để làmviệc trong môi trờng này, các ASP coder thờng sử dụng VBScript hoặcJavaScript, 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ũngtơ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ặplệnh "<% %>".

Các đoạn ASP script có thể xuất hiện ở mọi nơi trong trang HTML, ASP &HTML có sự gắn bó chặt chẽ với nhau Với ASP ta có thể chèn các script thựcthi đợc vào trực tiếp các file HTML Khi đó việc tạo ra trang HTML và xử lýscript trở nên đồng thời, điều này cho phép tạo ra các tơng tác của Website mộtcách linh hoạt uyển chuyển, có thể chèn các thành phần HTML động vào trangWeb tuỳ vào từ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(ASP Objects) là những phần tử ActiveX có sẵn và đợc gắn với VbScript ASPcung cấp 4 đối tợng sau: Application, Session, Request, Response, ServerObject Các thành phần của ASP (ASP Components) là những th viện dll tồn tạingoài bộ khung ASP Những thành phần này có thể đợc tạo bằng bất kì ngônngữ nào nhng Microsoft đã kết hợp một số component hữu ích với VisualInterDev ASP cung cấp những component sau: Data Access, File Access,Browser Cappabilities, AdRotator

Trang 9

Phầ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ợnghoạt động tơng tác lẫn nhau Chơng trình của ta cũng là một đối tợng Microsoftgọ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ếntrúc COM+ cho phép các đối tợng COM mở rộng giao tiếp với nhau trên mọinền Windows, từ 98, NT/2000, máy chủ (Server), máy khác (client) đâu đâucũ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

Trang 10

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úcmới này mang tên khung dịch vụ Web thế hệ kế tiếp - Next Generation Webservice Framework hay NGWSG Tuy mang tên Web nhng thực tế kiến trúc nàyđã ăn sâu vào hệ điều hành NGWSG bổ sung các dịch vụ mới cho các đối tợngứng dụng phâ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.

* Đơn giản hoá quá trình tạo lập, phân phối và bảo trì ứng dụng.* 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ácbiệt rấ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ảnASP 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ắnASP theo khái niệm add-on dựa vào kỹ thuật ISAPI DLL ASP 3.0 sử dụng fileth viện asp.dll cùng một vài file phụ khác tạo thành phiên bản ASP 3.0 để nângcấp phiên bản 2.0

Tuy 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 tacần phả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ệmcủa NGWSF là một phần dựa trên ý tởng và nền tảng của kiến trúc “ứng dụngInternet phâ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ànbộ các chơng trình ứng dụng sẽ chạy trên Windows trong tơng lai.

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 11

2.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 (executeengine) 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ân củ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ớptrung gian nh thế, trong khi ứng dụng theo truyền thống có thể dễ dàng nóichuyện trực tiếp với hạt nhân và các dịch vụ của hệ điều hành Nguyên do là tầngtrung gian này sẽ cho phé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ạnh tranh.

Để đạt đợc mụch đích này, bộ khung thực thi runtime của NGWSF đã càiđặt rấ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ự độngthu gom rác vào bộ nhớ (garbage collector), tập các đối tợng đầy đủ những chứcnăng phục vụ cho những công việc lập trình thông thờng nhất Tăng khả năngbảo mật và an toàn cho ứng dụng Chức năng bảo mật sau cùng rất quantrọng,nhất là đối với các chơng trình mở rộng triệu gọi thông qua mạng Internetnh 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 12

viết bằng ngôn ngữ nào đều đợc tự động biên dich thanh ngôn ngữ trung gian gọilà 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ồn thay đổi thì mã IL của trang ASP.NET sẽ đợc thay đổi lại.Các trangASP.NET còn giữ trong vùng đệm cache sẽ bị huỷ bỏ thay bằng các trang biêndịch ASP.NETvới mã 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ànkhác với ngôn ngữ đang đợc dùng để viết ứng dụng Nghĩa là ta có thể tạo ra đốitợng từ một ngôn ngữ, sau đó triệu gọi hoặc thay đổi nội dung đối tợng từ mộtngô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ơngthức, thuộc tí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êntrong bằng C# thay vì C++.

Rõ ràng bộ khung thực thi đã và đang hớng chúng ta đến môi trờng lậptrì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ình nào Kết quả mã nhị phân của chúng là nh nhau Đây quả là một điềutuyệt vời đối vớ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ện nay.

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ộkhung mớ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 ra nhữ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 nhanhchóng và đơn giản Thành phần rich control chạy trên Server và có khả năng tạora mã 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ểsinh mã 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áchnh HTML 4.0 Các dịch vụ hỗ trợ bởi Internet Explorer 4,5,6…Ta có thể mở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ácthành phần chuẩn của th viện sẵn có.

Trang 13

+ 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µ datasettrong XML) lu tr÷, ®ãng gãi vµ truyÒn ®i trong m¹ng D÷ liÖu XML cã thÓ ®äcvµ 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Òu hµnh nÒn (platform) ph¶i v÷ng ch¾c vµ kh¶ n¨ng më réng trªn m«i trêngtruy xuÊt lín cho phÐp ®ång thêi xö lý nhiÒu kÕt nèị M«i trêng thùc thi NGWSFcung cÊp c¸c chøc n¨ng tù ®éng kiÓm tra lçi vµ c¸c trêng hîp qu¸ t¶ị NGWSFsÏ t×m c¸ch khë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Óunh÷ng lçi nh tµi nguyªn hÖ thèng c¹n kiÖt,kÕt nèi t¾c nghÏn…Ta cã thÓ më.

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Òu phè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¶omË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Ýchhîp trong mét tæng thÓ thèng nhÊt sö dông còng nh ph©n bè tµi nguyªn mét c¸chhîp lý.

+ 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,DCOMvµ 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êngNGWSF míị

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

Trang 14

(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ểnvà 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ột phá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áttriển để xây dựng các ứng dụng ở mức kinh doanh (enterprise) ASP.NET cungcấ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òncung cấp một kiể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 đầy sứ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.NET thêm vào đó toàn bộ nền tảng NET framework sẵn sàng để sử dụngcho 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ếpcậ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ừa kế

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ộMircrosoft Visual Studio NET không chỉ làm cho việc phát triển Web dễ dànghơn, nó còn cung cấp tất cả các lợi ích mà những công cụ này đa ra, bao gồmmột GUI mà các nhà phát triển có thể dùng để kéo thả các server controls lêntrang Web và cung cấ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:

Trang 15

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ữ:

Khụ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 chophé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ậtsự, xoá đi đợc biên giới client/server.

+ Namespace và Class Framework phong phú:

Trang 16

Nhờ 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ụngkhá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ụngdễ dàng hơn.

+ Tăng tốc độ thực hiện

ASP.NET khụng những chạy nhanh hơn ASP cổ điển gấp 5 lần mà cũn cúthể duy trỡ kiểu mẫu cập nhật gọi là kiểu mẫu 'just hit save', nghĩa là ASP.NETtự động dũ tỡm mọi sự thay đổi và compile files khi cần thiết cũng như lưu trữkết quả compile đú để cung ứng dịch vụ cho những yờu cầu tiếp theo sau, nhờvậy ứng dụng của ta luụn luụn cập nhật húa và chạy nhanh hơn rất nhiều.

+ Output caching:

ASP.NET cú khả năng lưu trữ một kết quả chung trong phõn bộ memorycủa trang để gởi giải đỏp cho cựng một yờu cầu từ nhiều khỏch hàng khỏc nhauvà nhờ đú khụng những tiết kiệm được sự lặp đi lặp lại cụng tỏc thi hành củamột trang web mà cũn gia tăng hiệu xuất một cỏch ngoạn mục do giới hạn tối đaviệc chất vấn cỏc cơ sở dữ liệu (eliminating the need to query the database onevery request) rất tốn nhiều thời gian.

+ NET so sánh với J2EE:

Trang 17

Trong 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ìnhxử lý riêng rẽ trên một máy riêng rẽ hay CSDL, cho phép các sesion qua server.điều nà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 18

Các thiết lập cấu hình cho một ứng dụng ASP.NET đợc lu trong một filedạng XML ngời lập trình có thể dễ dàng đọc và thay đổi lại đợc Mỗi một ứngdụ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àoyêu cầu của ngờ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ào trong 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 khaimạng nhắm vào thị trường những cell phone hay PDA với gần hơn 80Mobile 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 đú

Trang 19

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ợpvới hệ điều hành Chúng ta cần nhìn ASP.NET ở một khía cạnh khác ASP.NETkhac gì 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 ứngdụng ASP cũ trên nền ASP.NET ta có thể không nhận ra đợc sự khác biệt giữaASP 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ớithậm chí ta cha từng thấy trớc đó trong ASP Chúng ta sẽ tìm hiểu về sự khácbiệt quan trọng giữ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ảnkhác của ASP và ASP.NET sẽ giúp ta nh thế nào trong việc phát triển các ứngdụng Web 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 saoMS 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:

* 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ộckiểu mạnh nh C++ hay Visual Basic ASP.NET cho phép sử dụng ngôn ngữtrung lậ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…Ta có thể mở.

Trang 20

* 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 Weblớn thờ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 filechơng trình duy nhất Các trang ASP của ứng dụng do đó rất khó bảo trì khi tamuốn thêm vào các mã lập trình mới hay thay đổi lại giao diện ASP.NET chophép tách rờ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 FORMcần phải viết mã Muốn kiểm tra tính hợp lệ của dữ liệu (validate) do ngời dùngnhập vào, cần phải viết mã Để trang ASP tăng tốc bằng cách dùng vùng đệmcache, cần phải viết mã ASP.NET thực sự là mô hình đối tợng thành phần loạibỏ rất nhiều công đoạn viết mã mà lập trình viên Web thờng phải làm.ASP.NETcung cấp các thành phần điều khiển hoạt động phía chính chủ (server sidecontrol) hoạt động theo hớng sử lý sự kiện (tơng tự các điều kiển ta sử dụng trênForm của chơng trình Visual Basic) Ta chỉ cần khai báo thành phần điều kiển sửdụng và trong hầu hết các trờng hợp, ta không cần phải viết thêm mã lệnh Mọiviệc kiểm soát trạng thá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ến trú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ện thoại di động,may Palm, TV có thể kết nối với Internet…Ta có thể mở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 phải xử lý trên máy chủ rất nhiều Chẳng hạn ngoài việc xử lý trangHTML ta còn phải có khả năng tạo các trang WML phục vụ cho điện thoại diđộng, xử lý và trao dổi dữ liệu XML…Ta có thể mở Những công việc này ta có thể sử lý bằngASP những cần phải thêm các th viện phục và đòi hỏi quá trình viết mã rất côngphu ASP.NET có sẵn cá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áncó 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 đốitợ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úchạ 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ọiSOAP (Simple Oject Access Protocol-giao thức truy xuất đối tợng giản đơn), chophép thực hiện chuyển đổi dữ liệu XML phục vụ cho môi trờng thơng mại điệntử B2B(Business to Business) ASP.NET cung cấp đầy đủ mọi dịch vụ từ bảo mật

Trang 21

đến cấ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 ợng, cân bằ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 đợc những mục tiêu này, ASP đã thay đổi toàn bộ để trở thành môitrờ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ệtlà ASP.NET Môi trờng lập trình mới của Microsofl trên nền Windows khôngphân biệt ngôn ngữ ASP.NET có thể viết bằng bất kỳ ngôn ngữ nào có trongVisual Studio NET nh C#, VB, C++ Ta có thể sử dụng các công cụ phát triểnứng dụng khác nhng chắc rằng chúng sẽ không vợt qua đợc các công cụ pháttriển của Microsofl.

t-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ạora Để 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ớinhất củ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.

Và 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 ờng của ứng dụng, để thiết kế các trang tài liệu khác nhau.Ví dụ có thể tạo 100trang HTML để 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ụngWeb hiện tạ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ầu của trình khách để lựa chọn và sinh ra các trang tài liệu phù hợp vớimục đích sử dụng mà trình khách đang cần Cách này tuy linh động nhng đòi hỏiphải xây dựng và viết mã lệnh công phu Mặc dù vậy với ASP.NET ta không cầnphải viết mã 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ận dạng và sinh mã tuỳ theo mục đích và yêu cầu sử dụng cuối cùng củatrình khách.

tr-2.4 ASP.NET Web form

2.4.1 giới thiệu về ASP.NET Web form

Trang 22

Web form là một công nghệ lập trình trong ASP.NET cho phép ta tạo ra cáctrang 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 VisualBasic, C# và Jscript NET.

Do 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ác form.

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 logic trang 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ừngsử 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ơng tá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

Trang 23

các Web form server control để đặt lên form Trang là một file có phần mở rộng “.aspx”.

Giao diện logic ngời dùng cho Web form bao gồm mã lệnh mà ta tạo để ơ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.

t-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ông giố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ạy trê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ụngchia 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ộttrang, 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àmkhó 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 Truy 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.

Trang 24

Độ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 duytrì 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.

Nâ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ácthành phần HTML và các control Web Form Mã lệnh thì đợc chứa ở một lớpfile riêng biệt hay ngay trong file aspx Trong hầu hết các trờng hợp ta sẽ sửdụng chú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ã

Trang 25

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 đợcbắt nguồ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ớpPage hoạt động nh một lớp chứa các control và ánh xạ các các control đợc tạo tạithờ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ácvới ASP 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êndịch) sau đó đặt kết quả trở lại mã HTML tĩnh trớc khi gửi tới trình duyệt.

Tó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 quanhệ 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ộc tí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 ”Project1.WebPage1” … %>”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à chonó 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ệntuần tự xảy ra khi trang Web Form đợc xử lý.

Vòng đời của một trang Web FormRound 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ó

Trang 26

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 Formnh để 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-ơng tá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 buttonkết quả trả về trong một round trip Vì lý do này các sự kiện có sẵn trong servercontrol đề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-ờng xuyên nh mouseonover, vì mỗi lần sự kiện xảy ra nó cần một round tripkhác tới server, 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ôngtin về trang đó Lần kế tiếp khi trang đợc post lên server, server bắt đầu lại toànbộ trang và xử lý.Vì vậy, Web pages thờng đợc nói là sự phi trạng thái, giá trịcác biế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 tinmà ngời dùng điền vào các control, bởi vì thông tin đợc gửi tới server khi postcác form 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 đềubị 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 đầutiê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ứng dụng (không chỉ là giá trị của các control) giữa các round trip hay khi qualại giữa cá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 trong phơng thức đó.

Page_Init

Trang 27

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

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 ở phía server Trong các sự kiện phát sinh ở phía client, mô hình sự kiện WebForm 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.

Trang 28

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 changetrong control 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 servertấ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ý ớc, sau đó sự kiện click gây ra việc post form đợc thực hiện.

tr-Ta có thể đặt sự kiện change để có thể post form ngay lập tức bằng thuộctính Autopostback=”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ốngnh các sự kiện trong control của Asp.NET, sự kiện phía server của các controlHTML thờng bị giới hạn trong sự kiện đơn nh click hay change Các sự còn lạithờ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.

Trang 29

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-ơng thức có dạng nh sau:

[Visual Basic]

Private Sub methodname(ByVal sender As Object, ByVal e as

EventArgs)Ví dụ:[C]

<%@ Page Language="C" %>

<%@ Import Namespace="System.Collections" %><HTML>

Các điều khiển phía ServerGiớ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.

Trang 30

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 controltrong form nh button textbox chúng còn có những control có mục đích đặc niệtnh Calendar

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ạomenu, 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 HTMLtrong trang 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 server 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ầnthêm thuộc tính RUNAT=SERVER thông báo này sẽ cho server biết cần phảitạ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 theocông nghệ lập trình hớng đối tợng Mỗi server control mở rộng các thuộc tínhcho 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.

Trang 31

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 HTMLserver control thì chúng đợc lu lại một cách tự động khi trang đợc gửu trở lạitrì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.

2.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ọn ngà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điều khiển:

<html> <body>

<h3><font face="Verdana">Declaring Server Controls</font></h3>

This sample demonstrates how to declare the &lt;asp:label&gt; server control and

manipulate its properties within a page <p>

<br>

Trang 32

<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:

Sau đâ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ằngcá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ànhphần HTML, 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àta thêm vào, nhng thờng thiết lập theo cách sau đây.

Trang 33

Cá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ủamột control 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ànhphần của ASP.NET Sử dụng tiếp đầu ngữ làm phân vùng tên namespace chophé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 đặttrong các th việ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

Cá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úngkhô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

Trang 34

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 ratrang Web Form Thờng thì ta chỉ nên sử dụng control này khi muố đoạn text đócủa ta thay đổi trong lúc thực thi Sử dụng label control thì đơn giản hơn việcdùng textbox hay các control khác, vì kết quả của nó là tĩnh trên trang Web, ngờidùng khô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ànphím khá 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.Litstbox: hiển thị danh sách các mục để lựa chọn cho phép chọn mỗi lầnmột đề mục.

Thuộc tính Autopostback

Các điều khiển trên đều có một thuộc tính quản lý trạng thái làAutopostback Thông thờng dữ liệu và kết quả tơng tác của ngời dùng chỉ đợcgửi lên server xử lý sau khi đã nhấn nút submi Tuy nhiên, nếu ta muốn thao tácpostback thực hiện ngay khi nút radio, checkbox hay danh sách đợc chọn ta cóthể đặt thuộc tính autopostback của mỗi nút chọn có giá trị là true với chỉ địnhthủ tục xử lý sự kiện trên server.

Các điều khiển đa năng (Rich control)Điều khiển Adrotator

Trang 35

Chọn ngẫu nhiên các thông tin quảng cáo đợc định dạng sẵn vào trang tàiliệu mỗi khi hiển thị.

Điều khiển lịch Calendar

Là điều khiển đơn giản nhng mang lại nhiều tác dụng Hiển thị lịch vàotrang tài liệu theo các kiểu mà ta định mẫu Ngoài ra ngời dùng có thể tơng tácvới điều khiển lịch này Ví dụ sau hiển thị một calendar đã đợc định dạng lạimẫu.

2.4.11 Các điều khiển đa năng khác

Hiện Microsoft đang xây dựng một tập gồm rất nhiều điều khiển đa năngnh treeview, listview, Menu những thành phần điều khiển này hoạt động tơng tựnh trong môi trờng phát triển desktop Thành phần điều khiển đa năng thật sựđem lạicho các nhà phát triển Web khả năng xây dựng ứng dụng nhanh chóng vàhiệu quả Loại bỏ công việc phải xây dựng lặp đi lặp lại các điều khiển thôngdụng.

Web server control dùng để kiểm tra dữ liệu nhập vào (validate control)Một trong những lợi ích của việc tạo các trang Web Form cho việc nhập dữ liệu là có thể kiểm tra tính hợp lệ thông tin nhập vào của ngời dùng ASP.NET cung cấp một bộ control để thực hiện việc này, chúng rất dễ sử dụng có thể kiểmtra lỗi nếu cần thiết thông báo lỗi.

2.4.12 Sử dụng Validation Control

Để kiểm tra dữ liệu nhập vào của ngời dùng, ta cần phải thêm vào trong trang Web Form các validation control cho mỗi control Có nhiều các validation

Trang 36

Loại kiểm tra Control đợc sử dụng ý nghĩaBắt buộc phải

nhập RequiredFieldValidator Ngời dùng khôngthể bỏ qua

so sánh giá trị CompareValidator So sánh giá trịnhập vào với một hằngsố, hay giá trị của cáccontrol sử dụng cácphép so sánh.

Kiểm tra giới hạn RangeValidator Kiểm tra giá trịnhập vào trong mộtkhoảng xác định, giớihạn với các chữ số,chữcái

Ngời dùng thiết

cách sử dụng các quyđịnh của ta.

Mỗi input server control có thể đợc gắn với nhiều Validator để thực hiệnnhiều tác vụ Ví dụ, ta có thể gắn vào một input để kiểm tra điều kiện bắt buộcphải nhập kết hợp với kiểm tra giới hạn nhập vào.

Tuy nhiên các control kiểm tra dữ liệu nhập làm việc giới hạn đối với cácthành phần sau:

Các điều khiển trong ASP NET đã cung cấp nhiều chức năng rất có ích, ng chúng vẫn không thể đáp ứng đợc hết các yêu cầu trong nhiều hoàn cảnh khácnhau Web user control cho phép ta dễ dàng định nghĩa các control mà ta cầntrong những ứng dụng, sử dụng cùng một ký thuật lập trình tơng tự nh khi taviết với các trang Web form Ta có thể thậm chí chuyển đổi từ một trang Webform thành một Web User Control chỉ với vài thay đổi nhỏ Có một điều nên nhớcác Web User Control không thể chạy riêng nếu nh nó không đợc đặt vào mộttrang Web Form nào Các User Control đợc xác định có phần mở rộng là ascx

Trang 37

nh-2.4.13.1 Cấu trúc của User Control

Một User Control tơng tự nh một Web Form hoàn chỉnh, với cả hai giaodiện ngời dùng và mã ẩn Tuy nhiên trang giao diện ngời dùng có một số điểmkhác biệt với Web Form:

file User Control có tên mở rộng là ascx.

Trong User Control không còn thẻ <HTML>, <BODY> và thẻ <FORM>Một User Control cũng nh môt trang Web Form Ta có thể sử dụng cácthành phần HTML và Web Control trong User Control hoàn toàn giống với cáchlàm nh với trang Web Form Ví dụ ta có thể tạo một user control để sử dụng nhtoolbar, đặt vào trong đó các Button Web server control tạo sự kiện và nắm bắtcác sự kiện đó.

2.1.13.2Tạo Web User Control:

Đoạn mã sau tạo một Web user control đơn giản đợc sử dụng nh là mộtmenu Có bốn menu lựa chọn là các thành phần Hyperlink:

<%@ Control Language="vb" AutoEventWireup="false"

Codebehind="menu.ascx.vb" Inherits="myProj.menu"%><P>

<asp:HyperLink id=lnkLogin runat="server" _

NavigateURL="Login.aspx">Login</asp:HyperLink>&nbsp; <asp:HyperLink id=lnkAddToCart runat="server" _

NavigateURL="Cart.aspx>Add to Cart</asp:HyperLink>&nbsp; |<asp:HyperLink id=lnkTechSupport runat="server" _

NavigateURL="TechSupport.aspx">Technical Support </asp:HyperLink>&nbsp; |

<asp:HyperLink id=lnkAbout runat="server" _

NavigteURL="AboutUs.aspx">About Us</asp:HyperLink></P>

Thêm các User Control vào Web Form

Ta có thể thêm một Web User Control vào Web Form bằng việc thêm mộtchỉ thị @ Register và một thẻ cho control đến trang Bằng cách này control đóđã trở thành một phần của trang và nó đợc biểu diễn khi trang dợc xử lý Hơnnữa các thuộc tính công cộng, sự kiện, phơng thức đợc phơi bày ra cho trang vàcó thể lập trình đợc ta cũng có thể thêm vào trang các user control một theo cáchlập trình.

Để thêm một User Control vào trang Web Form, tại đầu trang trớc cả thẻ<HTML> phải thêm một chỉ thị để đăng ký thông báo cho trang khi nó đợc xửlý Chỉ thị ta đa vào có gắn với một tên và một namespace bằng giá trị cụ thể:

Trang 38

<%@ Register TagPrefix="myNameSpace" TagName = "myUserControl"Src="userControl1.ascx" %>

TagPrefix Chỉ định một namespace duy nhất cho user Control, vì vậy trong trang của ta có thể có nhiều user control có tên giống nhau, nhng chúng có thể là hoàn toàn khác nhau Ví dụ

<myNameSpace:myUserControl ID="mnuMain" runat="server" />Nếu control của ta có thuộc tính, ta có thể đặt cho nó trong lúc thiết kế, cácthuộc tính đó thờng có giá trị ngay trong thẻ:

<myNameSpace:myUserControl ID="mnuMain" runat="server"

selected="Login"backColor="black" />Tạo một Web User Control

Ta có thể dùng một trình soạn thảo text hay bất kỳ trình soạn thoả HTMLnào để tạo một Web User control Cú pháp để định nghĩa một User control rấtgiông nh Web For; điểm khác biệt chính là các User control không có các thẻ<HTML>,<BODY> và <FORM> trên nội dung của nó.

User control chó thể là các file text đơn giản hay có thể chứa các điều khiểnphía server Sau đây là một mã tạo một form login đơn giản mà ta có thể đa vàonhiều trang trong ứng dụng của ta:

Trớc hết để khai báo hai thuộc tính mới trong control của ta và thao tác nóvới các thành phần ASP khác:

[Visual Basic]

<script language="VB" runat="server">Public Property UserId() As [String]Get

Return User.TextEnd Get

Trang 39

User.Text = valueEnd Set

End Property

Public Property Password() As [String]Get

Return Pass.TextEnd Get

Pass.Text = valueEnd Set

End Property</script>

Sau đó đặt tên cho control của ta và save nó với tên file mở rộng là ascx

2.5 Truy xuất dữ liệu với ADO.NET

Một trong những lý do khiến cho ASP phát triển rộng rãi là những tiện íchcủa nó để truy cập cơ sở dữ liệu khác nhau ngay trong ứng dụng Web ASP gắnvới Ado có thể truy cập đến mọi loại cơ sở dữ liệu hiện có ASP.NET mở rộngkhả năng này bằng việc giới thiệu ADO.NET (hay ADO +) Cung cấp cơ chế xửlý dữ liệu linh động dễ dàng thao tác và ràng buộc mọi kiểu dữ liệu vào cácthành phần điều khiển Web hiện có.

ActiveX Data Object cho NET Framework (ADO.NET) là một bộ các lớpđể thực hiện các dịch vụ truy xuất dữ liệu cho các lập trình viên .NET,ADO.NET cung cấp rất nhiều các component phong phú cho việc tạo các ứngdụng phân tán và chia xẻ dữ liệu Nó là một phần đợc tích hợp trong NETframework, hỗ trợ để truy xuất đến cơ sở dữ liệu quan hệ, XML và cơ sở dữ liệuứng dụng Ngoài ra, ADO.NET còn đáp ứng các nhu cầu đa dạng của nhà pháttriển.

Qua ADO.NET các trình tiêu thụ (consumer) dữ liệu chia xẻ có thể tiếpcập đến nguồn dữ liệu nh SQL Server hay các nguồn dữ liệu đợc hỗ trợ bởi OLEDB và XML thực hiện các thao tác hay cập nhật dữ liệu.

ADO.NET gồm có NET data provider để thực hiện việc kết nối tới cơ sở dữliệu, bộ thực hiện lệnh và kết quả nhận đợc Những kết quả này có thể đợc xử lýmột cách trực tiếp hoặc đợc lu trong đối tợng DataSet để ngời dùng có thể quảnlý, kết hợp với dữ liệu từ các các nguồn dữ liệu khác, hay di chuyển đi xa giữacác tầng Đối tợng DataSet trong ADO.NET có thể đợc sử dụng một cách độc lậpnh là một trình cung cấp dữ liệu NET để quản lý dữ liệu địa phơng cho ứngdụng hay là nguồn cho XML ADO.NET cung cấp cho ngời phát triển việc viết

Trang 40

mã lệnh đợc quản lý một cách chức năng hoá nh các chức năng mà các nhà pháttriển khi dùng với ADO.

2.5 Mục đích thiết kế cho ADO.NET

Ngày nay ngày càng nhiều các ứng dụng sử dụng XML để mã hoá dữ liệukhi qua các kết nối mạng Các ứng dụng Web sử dụng HTTP nh là bộ khungchung trong việc truyền thông giữa các tầng, và từ đó trạng thái giữa các lầntriệu gọi phải đợc nắm bắt một cách rõ ràng Mô hình mới này rất khác với kiểulập trình kết nối chặt chẽ mà cụ thể là kiểu client/server, nơi mà một kết nối đợcmở trong suốt thời gian sống của ứng dụng và không có thông tin về trạng tháinào đợc nắm bắt.

Microsoft đã nhận thấy rằng cần phải có một kiểu lập trình mới để truy cậpdữ liệu ADO.NET đợc thiết kế để giải quyết các vấn đề trong mô hình lập trìnhmới này: Cấu trúc dữ liệu không kết nối, gắn bó chặt chẽ với XML, thể hiện dữliệu thông thờng với khả năng kết hợp dữ liệu từ các nguồn dữ liệu khác nhau vàkết hợp các tiện ích trong việc tơng tác với Cơ sở dữ liệu, tất cả đợc đa vàotrong NET Framework.

Trong khi thiết kế ADO.NET, Microsoft đã đa vào những mục đích thiết kếsau:

2.5.1Giữ lại những hiểu biết về ADO.

Mô hình lập trình trong ADO.NET tơng tự giống với ADO, vì thế các nhàphát triển với ADO không phải bắt đầu lại từ đầu trong việc học một công nghệtruy cập dữ liệu mới ADO.NET là một phần nội tại của NET Framework dờngnh không hoàn toàn xa lạ với các lập trình viên ADO.

2.5.2 Hỗ trợ mô hình lập trình N-Tier

ADO.NET hỗ trợ môi trờng lập trình n-tier không kết nối Khái niệm làmviệc với dữ liệu không kết nối dã trở thành tâm điểm của mô hình lập trình ADOlà giải pháp cho kiểu lập trình này bằng đối tợng DataSet.

2.5.3 Tích hợp với XML.

XML và việc truy cập dữ liệu có quan hệ sâu sắc với nhau-XML thì thựchiện các việc liên quan đến mã hoá dữ liệu và việc truy cập dữ liệu trở lên nhanhhơn với XML.

2.5.4 Cấu trúc của ADO.NETCác thành phần của ADO.NET

Ngày đăng: 21/11/2012, 09:58

HÌNH ẢNH LIÊN QUAN

Hình sau đây thể hiện kiến trúc của Ado.NET. - Tổng quát về .NET Framework và ASP.NET
Hình sau đây thể hiện kiến trúc của Ado.NET (Trang 47)
3.2. Sơ đồ phân rã chức - Tổng quát về .NET Framework và ASP.NET
3.2. Sơ đồ phân rã chức (Trang 71)
Bảng Products - Tổng quát về .NET Framework và ASP.NET
ng Products (Trang 74)
Bảng Categories - Tổng quát về .NET Framework và ASP.NET
ng Categories (Trang 74)
Bảng SubCategories - Tổng quát về .NET Framework và ASP.NET
ng SubCategories (Trang 74)
Bảng Users: - Tổng quát về .NET Framework và ASP.NET
ng Users: (Trang 75)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w