Tài liệu tham khảo công nghệ thông tin Nghiên cứu ngôn ngữ lập trình ASP.NET
Trang 2Mục lục
Nội dungTrang
I Giới thiệu sơ qua về NETI.1 Nguồn gốc của NET
I.2.Định nghĩa NET
I.3.Mục tiêu của NET
I.4 Các dịch vụ của.NET
I.5.Tác động của NET đến người làm CNTT
I.6.Tác động của NET đến người dùng
I.7 Cơ sở hạ tầng của NETII.Nghiên cứu về ASP.NET
II.1.Giới thiệu chung về ASP.NETII.2.Ứng dụng của ASP.NET
A.Khái quát.
B.Tập tin Global.asax.
C.Làm việc với thực thể HttpApplication
D Lập trình lại (Overriding) phương thức Init và Dispose.
E Sử dụng các Module trong tập tin Global.asax.
II.3.Cấu hình ASP.NET
A Khái quát
B Định dạng của tập tin cấu hình trong ASP.NET.
II.4.Truy cập dữ liệu A ADO.NET
B.Cấu trúc của ADO.NET:
C.Dataset.
D.NET Data Provider:
E.Đối tượng Connection
F.DataAdapter
G.Đối tượng Command
III.Triển khai một ứng dụng:
III.1.Mục đích nghiên cứu:
III.2.Báo cáo chi tiết :
IV.Triển khai ứng các ứng dụng ứng WEB Projects
IV.1.Làm việc với WEB Projects:
IV.2.Biên dịch và triển khai ứng dụng WEB Projects
IV.3.Triển khai một ứng dụng ASP.NET3
I.Giới thiệu sơ qua về NET:
Trang 3I.1.Nguồn gốc của NET:
Đầu năm 1998, sau khi hoàn tất version 4 của Internet Information Server (IIS), một đội lập trình ở Microsoft nhận thấy họ còn rất nhiều sáng kiến để kiện toàn IIS Họ bắt đầu thiết kế một architecture mới dựa trên những ý đó và project đuợc đặt tên là Next
Generation Windows Services (NGWS.(
Sau khi Visual Basic 6 đuợc trình làng vào cuối năm 1998, dự án kế tiếp mang tên Visual Studio 7 đuợc xáp nhập vào NGWS Đội ngũ COM+/MTS góp vào một universal runtime cho tất cả các ngôn ngữ lập trình trong Visual Studio, mà họ có ý định cho ngay cả các
ngôn ngữ lập trình của công ty khác dùng luôn.
Công tác nầy được giữ bí mật mãi đến hội nghị Professional Developers' Conference ở Orlando vào tháng 7/2000 Đến tháng 11/2000 thì Microsoft cho phát hành Beta 1 của NET gồm ba CD Tính đến lúc ấy thì Microsoft đã làm việc trên dự án ấy gần ba năm rồi
Điều ấy cắt nghĩa tại sao Beta 1 version tương đối rất vững chải.
I.2.Định nghĩa NET
Để bắt đầu công việc khảo sát NET, chúng ta phải xác định rõ ranh giới công việc cần thực hiện Vì NET có nghĩa một nền tảng hơn là một sản phẩm đơn lẻ, cho nên cách định nghĩa nó có thể đa dạng, có phần hơi khó hiểu và mơ hồ Một cách đơn giản NET được định nghĩa dưới dạng một khung ứng dụng (application framework) .NET cung cấp một khung cho những ứng dụng nào được xây dựng; nó xác định những ứng dụng truy nhập các hàm như thế nào qua các hệ thống và các mạng .Net cung cấp một nền tảng mà trên đó các giải pháp và các dịch vụ Web có thể được xây dựng, một nền tảng giải phóng những sự ràng buộc và tự bản thân nó giải phóng khỏi Microsoft Windows (về mặt kĩ thuật) Nói cách khác, NET là một cách để xây dựng các ứng dụng và các dịch vụ mà nó hoạt động không phụ thuộc vào một nền tảng (platform) nào Đây là một cách để tạo ra các trao đổi thông tin (truyền thông) giữa những hệ thống đa dạng và các ứng dụng cũng
như tích hợp nhiều thiết bị vào trong việc trao đổi thông tin này.
Trang 4Xét cho cùng, Internet là một phương tiện truyền thông không thể tin nổi cho phép thực hiện thương mại điện tử Trong khi đây là thực tế, thì một cái nhìn khác về Internet và thương mại điện tử là điều cần thiết Ngày nay Internet cung cấp những giải pháp thương mại điện tử thực sự hiệu quả, nhưng trước hết chúng ta hãy khảo sát mô hình của Internet Internet hoạt động trên mô hình khách/chủ (client/server) mà ở đó những khách hàng (client) phải tương tác với các máy phục vụ (server) để xem dữ liệu Những trình duyệt đã được phát triển để thông dịch mã HTML và trả lại trang Web cho người dùng Về cơ bản việc sử dụng trình duyệt và Internet là công việc không thể thay đổi Bạn có thể nhập thông tin vào trong các CSDL thông qua trình duyệt của bạn, nhưng phần lớn bạn không thể điều khiển việc sử dụng hay thao tác thông tin Bạn phải tương tác với các máy phục vụ Web và các CSDL của chúng, và nhiều ứng dụng Web thường không tương thích Nếu bạn sử dụng những thiết bị truy nhập Internet khác nhau như PC hay cell phone thì cách sửdụng những thiết bị đó là rất khác nhau Những thiết bị này không tích hợp tốt với nhau, thậm chí ngay cả trên Internet Từ một viễn cảnh công việc kinh doanh, nhiều công nghệ thương mại điện tử để lại những hệ thống đang tồn tại đằng sau chúng, đây quả là một vấn
đề tốn kém và khó khǎn.
Ý tưởng NET được thiết kế để hỗ trợ chúng ta tiến tới một Web thân thiện hơn, tích hợp tốt hơn, một nơi mà ở đó các ứng dụng và các quá trình giao dịch có thể tương tác với nhau một cách tự do không phụ thuộc vào chương trình và nền tảng Tóm lại, NET làm cho thông tin trên Web có thể được tiếp cận một cách dễ dàng: bạn có thể sử dụng bất kì thiết bị nào, trên bất kì nền tảng nào .NET còn có thể hỗ trợ các hệ thống máy phục vụ và ứng dụng liên lạc với nhau một cách thông suốt (seamlessly) và xây dựng hệ thống tính toán phân tán trên Web, làm cho Web trở thành một nơi tương tác nǎng động hơn giữa các
dịch vụ Web, các ứng dụng và khách hàng.
I.3.Mục tiêu của NET
Microsoft NET trợ giúp loại bỏ các thành phần riêng biệt khỏi một nền tảng và ứng dụng và như vậy nó cho phép thông tin được trao đổi và xây dựng trên một nền tảng chung hơn
Bạn có thể nghĩ "Microsoft được lợi gì từ ý tưởng này?" Xét cho cùng, việc tạo ra một
nền tảng (platform) độc lập và nó không cần các sản phẩm của Microsoft để thực thi (implement) xem ra đã tự phá huỷ Trên thực tế Microsoft đang ôm một ý tưởng ở đâu đó
Trang 5và tại một lúc nào đó, các nhà phát triển công nghệ phải đua tranh với nhau ở mức ứng dụng và dịch vụ chứ không phải là mức nền tảng (platform
.(
Ngành công nghiệp điện toán từ xưa đã cạch tranh với nhau ở mức nền tảng (platform level) Những sản phẩm của Microsoft không làm việc được với các sản phẩm của Apple Computer Microsystem và chúng cũng không làm việc được với các sản phẩm của Sun và cứ tiếp tục như thế Mỗi một công ty tự xây dựng nền tảng tính toán của riêng mình và quyết định cái gì có thể chạy trên nền tảng đó và chạy như thế nào Dẫu cho những công nghệ và những sự phát triển phải tiếp tục được sở hữu độc quyền như chúng vẫn thế, NETgiúp những người sử dụng có quan niệm rằng sự cạnh tranh phải dựa trên những sản phẩm, chứ không phải các chuẩn .NET cung cấp một cách để thoát khỏi phạm vi các chuẩn có quyền sở hữu bởi việc cung cấp một kiểu tiếp cận các chuẩn trên Web một cách hợp lí từ các dịch vụ ứng dụng nào được xây dựng ngay cả trên các sản phẩm không phải của Microsoft Một trong những mục tiêu của NET là thoát khỏi sự cạnh tranh các chuẩn
Cách tiếp cận này là một tin tức tốt lành cho mọi khách hàng và cho thương mại điện tử.
Mục tiêu thứ hai của nền tảng NET (.NET platform) là truyền thông thương mại điện tử (TMĐT) Điều đó có nghĩa NET cung cấp một cách cho các ứng dụng khác nhau sử dụng phần mềm khác nhau trong những môi trường Web khác nhau để trao đổi và sử dụng thông tin Thành quả này được hoàn tất khi sử dụng XML[4] XML đem lại một số lượng lớn những người ủng hộ và có thể được sử dụng để làm tiêu chuẩn hoá các máy phục vụ truyền thông, nơi những ứng dụng khác nhau và các dịch vụ chạy trên các ứng dụng này
có thể dễ dàng liên lạc với một ứng dụng khác và trao đổi thông tin một cách tự nhiên.
I.4 Các dịch vụ của.NET
Để thực thi mô hình NET, một vài khối hợp nhất (building block) cơ sở phải được đặt đúng chỗ (các block này định rõ các dịch vụ Web được xây dựng như thế nào) Các dịch vụ này cố gắng để trợ giúp các nhà phát triển xây dựng các ứng dụng NET Microsoft
định nghĩa các dịch vụ khối hợp nhất NET sau đây:
Authentication: Khi sử dụng các công nghệ Authentication (chứng thực) cũng như
Passport (hộ chiếu) của Microsoft các nhà phát triển tạo ra các dịch vụ cho riêng mình và bảo vệ các dịch vụ như mong muốn
Messaging: Các đặc tính Messaging (truyền thông điệp) của NET được xây dựng
trên MSN Hotmail Web ã dựa vào dịch e-mail, Microsoft Exchange Server 2000, và
Trang 6Instant Messaging (truyền thông điệp tức thì) Những hệ thống truyền thông điệp này và những đặc tính có thể được phân tán đến bất kì thiết bị nào do tính không
phụ thuộc nền tảng của chúng.
Personalized Experience (kinh nghiệm cá nhân): NET cho người dùng nhiều
kiểm soát hơn thông qua các qui tắc xử lý dữ liệu và quyền ưu tiên mà nó xác định rõ dữ liệu phải được di chuyển và quản lý như thế nào
XML (Extensible Markup Language): XML được xem như một ngôn ngữ chung
mà nó cho phép dữ liệu được di chuyển từ dạng này sang dạng khác trong khi bảo trì tính toàn vẹn của nó Cùng với SOAP[5], XML có thể cung cấp một dịch vụ linh
hoạt để quản lý và điều khiển dữ liệu.
Một trong những thực thi (implementation) đầu tiên được đề nghị của dịch vụ NET là Microsoft HailStorm HailStorm là một dịch vụ trung tâm-người dùng (user-centric), nó cung cấp cho những người-dùng-cuối khả nǎng lưu trữ thông tin cá nhân như các cuộc hẹn, lịch hay các thông tin tài chính Kết quả việc một người dùng đǎng kí dịch vụ này là thông tin được chia sẻ với các ứng dụng khác (thông tin dùng chung) theo ý muốn của họ, và nó trở thành một phần của người dùng khi điều khiển các hoạt động trên Web Trong thời gian tới bạn sẽ được tiếp cận các dịch vụ tương tự được đề xuất trên Web bởi các công ty bán cho bạn thông qua việc đǎng kí vào dịch vụ của họ Như chúng ta đã thấy NET đã chuẩn bị cho việc sử dụng một số công nghệ của Microsoft mà nó bắt đầu thích
nghi và được sự chấp nhận bởi cộng đồng tin học và Internet.
I.5.Tác động của NET đến người làm CNTT
Chiến lược NET có thể tác động đến các chuyên gia CNTT theo một số cách Trước hết chúng ta hãy xem xét NET có thể tác động như thế nào đến các nhà phát triển và sau đó đánh giá tác động của nó đối với những nhà quản trị hệ thống và các chuyên gia CNTT
Những nhà phát triển cảm thấy có một tác động mạnh mẽ từ ý tưởng NET Để hiểu tác động này, đầu tiên chúng ta phải biết công việc phát triển ứng dụng đã thay đổi như thế nào Trước đây các nhà phát triển xây dựng các ứng dụng trên các dịch vụ hệ thống cục
Trang 7bộ Một ứng dụng riêng biệt được xây dựng để chạy trên các dịch vụ được cung cấp bởi một hệ điều hành riêng biệt Trong hệ thống này những nhà phát triển đã có thể kiểm soát một cách cụ thể ứng dụng hoạt động như thế nào trên nền tảng đó Những ứng dụng cho những nền tảng riêng biệt thì không liên lạc (truyền thông) tốt được với nhau Giai đoạn thứ hai của sự thay đổi xuất hiện có nghĩa các nhà phát triển phải chuyển sang một mức độkhác, gọi là mức thứ n (n-tier) Điều đó cho phép các nhà phát triển tạo ra các ứng dụng mà nó hoạt động trên một mức mạng Nói cách khác, sự phát triển xuất hiện liên tục từ cácdịch vụ hệ thống cục bộ cho đến các dịch vụ mạng toàn cầu Sự phát triển này đã tạo ra khả nǎng phát triển các phần mềm doanh nghiệp mà thực chất tập chung hơn vào công
việc kinh doanh mà nó tạo ra nǎng suất làm việc cao hơn.
Chúng ta hiện đang ở vào giai đoạn tiếp theo của công cuộc thay đổi thông qua XML và SOAP, dịch vụ Web Dịch vụ Web cho phép các ứng dụng tương tác với nhau thông qua Internet và cung cấp các dịch vụ tới người dùng hay các ứng dụng khác Đây là một sự thay đổi cơ bản theo cách các ứng dụng đã được mô tả trước đây khi mà chúng ta nghĩ về những ứng dụng như một sản phẩm: bạn mua CD-ROM và cài đặt sản phẩm trên một máy tính Một dịch vụ Web hoàn tất một vài kiểu giao dịch và trao đổi thông tin Khi xây dựng trên XML, các dịch vụ Web có thể được sử dụng bởi bất kỳ người nào với bất kỳ thiết bị đơn lẻ nào tại bất kỳ thời điểm đã cho nào Đặc tính này cho phép bất cứ số lượng tiến trình chuyên biệt (đặc trưng riêng biệt cho từng ứng dụng) nào xuất hiện liên tục
(seamlessly) trên Internet không có sự can thiệp của người dùng.
Quy trình dịch vụ Web được hoàn thành bởi việc sử dụng cả hai đặc tính chương trình ghép nối lỏng và ghép nối chặt Qui trình nghiệp vụ của việc tính toán n-tier (ghép nối chặt) được kết hợp với các chuẩn truyền thông điệp ghép nối lỏng và các phương pháp truy nhập dữ liệu trên Internet Do ý tưởng NET được tìm thấy trên cơ sở của XML và khái niệm dịch vụ Web, các nhà phát triển có một cách mới để tạo ra các ứng dụng mà nó hoạt động và tích hợp dễ dàng hơn Sự thách thức của các nhà phát triển là tích hợp những
khái niệm đó với cái mà nền tảng NET được xây dựng trên nó.
Để cho các chuyên gia CNTT khác, ý tưởng NET sẽ không thay đổi hoàn toàn công việc quản lý máy phục vụ CNTT Các chuyên gia CNTT phải nhìn thấy sự giải toả chung trong việc quản trị bởi vì mô hình tính toán phân tán NET đã được sẵn sàng, nhưng việc quản lý
Trang 8các máy phục vụ xí nghiệp (Enterprise server) NET và các máy trạm sẽ hoạt động phần lớn theo cùng một cách
I.6.Tác động của NET đến người dùng
Nền tảng NET có thể có tác động sâu sắc đến kinh nghiệm người dùng (theo hướng tích cực) Trước khi khảo sát khả nǎng này, chúng ta hãy xem xét mô hình tính toán hiện thời Hiện tại, việc tính toán người dùng chủ yếu là nằm ở phần cứng và hệ điều hành Những người dùng sở hữu những thiết bị phần cứng như PC, laptop hay PDA và họ cài đặt phần mềm và cấu hình các hệ thống đó Dữ liệu chủ yếu được quản lý và thao tác (và cả dữ liệu đã mất) cũng trên các hệ thống đó Do sự tǎng trưởng của công nghệ, số lượng PC tại gia và vǎn phòng ngày càng tǎng lên nhanh chóng Có ai đã từng nghĩ rằng một người dùng cóthể cần đến 13 Gbyte ổ cứng? Mô hình tính toán hiện thời gây ra nhiều vấn đề do số lượngngười sử dụng máy tính của họ ngày càng nhiều Người dùng phải chú ý đến dữ liệu và
thiết bị của chính họ và Internet được coi không gì hơn là một thứ đồ chơi tô vẽ.
.NET có khả nǎng thay đổi cách tiếp cận Do sức mạnh của Internet, người dùng không còn thấy cần thiết phải lưu giữ tất cả dữ liệu và phần mềm trên máy tính cá nhân của họ Thay vào đó, dữ liệu và ngay cả việc sử dụng các ứng dụng có thể được lưu trữ trên các máy phục vụ trên Internet (thông thường chi phí ở đây là không đáng kể) Đặc tính này đã xoá bỏ trách nhiệm người dùng về mặt quản lý Người dùng truy nhập và thao tác dữ liệu, nhưng người quản trị trên máy phục vụ quản lí công việc lưu giữ, sự chấp nhận lỗi và lập kế hoạch cấu hình Người dùng không còn phải lưu giữ dữ liệu cục bộ Một khi dữ liệu được đưa lên Internet, chiến lược NET sẽ bắt đầu vận hành Hãy nhớ rằng NET cho ta
một cách để truyền dữ liệu một cách thông suốt thông qua XML và SOAP.
I.7 Cơ sở hạ tầng của NET
Việc tạo nên một khung (framework) mà những hàm theo cách được mô tả trong mục này chắc chắn không phải là một nhiệm vụ dễ dàng Để nó có thể làm việc được, chiến lược NET phải cung cấp một cơ sở hạ tầng mà trên đó các dịch vụ Web có thể được xây dựng May thay, NET đã cung cấp cơ sở hạ tầng này để giải phóng các nhà lập trình tập trung hơn vào việc xử lí các tác vụ kinh doanh hơn là chú trọng đến việc lập trình bản thân nó Tại mức cơ sở cơ sở hạ tầng NET xem những thành phần chương trình như những dịch vụWeb, nó lấy ra những đặc tính tốt nhất của COM[11] của Microsoft và trộn lẫn chúng với ý tưởng truyền thông điệp ghép nối lỏng Do những đặc tính này mà cơ sở hạ tầng tồn tại
Trang 9cho người lập trình và như vậy họ có thể tập trung vào công việc xử lý các tác vụ kinh doanh cần sự phát triển mà không cần phải tạo ra các thành phần (component) riêng biệt
hoạt động với nhau.
Cơ sở hạ tầng NET tạo ra framework (khung) trên đó các dịch vụ Web được xây dựng Bathành phần cho.NET framework này được giới thiệu sơ lược dưới đây
1 Thực thi ngôn ngữ chung CLR (Common Language Runtime(
Tất cả các ngôn ngữ lập trình đều có một runtime (thi hành), một dịch vụ hoạt động cùng với ngôn ngữ lập trình Common Language Runtime (CLR là bộ thi hành ngôn ngữ chung)là một thành phần cốt lõi (cơ bản nhất) của NET Nó cung cấp nền cơ sở mà trên đó các ứng dụng cho NET được xây dựng CLR quản lí nhiều khía cạnh của chu trình phát triển theo quan điểm của người phát triển Chẳng hạn, khi làm việc với COM, các nhà phát triểnphải lưu tâm đến vấn đề quản lí bộ nhớ, những sự khởi tạo luồng (thread) và loại bỏ nó, các thành phần bảo mật và những vấn đề tương tự Điều đó gây ra một số khó khǎn do các nhà phát triển phải tiêu tốn quá nhiều thời gian vào các vấn đề này Bộ thi hành ngôn ngữ chung CLR quản lí tất cả các vấn đề nảy sinh đó một cách tự động và giải phóng cho các nhà phát triển tập trung vào việc xử lý giao dịch logic CLR cung cấp một runtime chung mà nó được sử dụng với tất cả các ngôn ngữ Thành phần này làm cho NET có một khả
nǎng "hỗ trợ mọi ngôn ngữ" (language-free.(
2Các lớp lập trình hợp nhất (Unified Progrgamming Classes(
Những thư viện lớp lập trình hay các giao diện lập trình ứng dụng (API) được sử dụng bởi nhiều ngôn ngữ khác nhau Để sử dụng những ngôn ngữ lập trình khác nhau, các nhà phát triển nghiên cứu các bộ thư viện lớp khác nhau để làm việc với các ngôn ngữ lập trình khác nhau Vấn đề này đã làm chậm quá trình phát triển ứng dụng và làm cho công việc phát triển trở nên tẻ ngắt và lãng phí khá nhiều thời gian .NET cung cấp các lớp lập trình hợp nhất với một bộ API dùng chung cho mọi ngôn ngữ lập trình Các ngôn ngữ có thể tương tác với một ngôn ngữ khác và các lớp lập trình hợp nhất này cho phép các nhà phát triển lựa chọn bất cứ ngôn ngữ nào mà họ muốn trong khi chỉ cần duy nhất một bộ API mà
3 ASP.NET (Active Server Pages NET(
ASP.NET được sử dụng chung với các lớp lập trình mà nó có thể tạo các ứng dụng Web một cách dễ dàng cho người lập trình ASP.NET cung cấp cách truy cập giao diện HTML
Trang 10chung và nó chạy trên chương trình máy phục vụ nhưng thể hiện kết quả thông qua HTML(ví dụ như text box chẳng hạn) Giao diện ASP.NET làm cho việc phát triển các ứng dụng Web trở nên nhanh hơn do bởi các đối tượng điều khiển chung này Như một kết quả (của)các lớp lập trình chung và những đặc tính chuẩn của ASP.NET, các nhà phát triển tiêu tốn ít thời gian hơn khi viết các mã mới và cần nhiều thời gian hơn khi sử dụng các mã đã có ASP.NET được sử dụng ở phần trên của hai thành phần thực thi ngôn ngữ chung CLR và
các ngôn ngữ lập trình hợp nhất để tạo ra các dịch vụ Web.
II.Nghiên cứu về ASP.NET
II.1.Giới thiệu chung về ASP.NET
ASP.NET là phiên bản kế tiếp của Active Server Page (ASP); nó là một nền phát triển ứng dụng Web hợp nhất, cung cấp nhiều dịch vụ cần thiết cho lập trình viên xây dựng các lớp ứng dụng chuyên nghiệp Cú pháp ASP.NET tượng thích với cú pháp ASP, ngoài ra ASP.NET còn cung cấp một mô hình lập trình mới, nền tảng an toàn (secure), linh hoạt (scalable),và ổn định (stable) Sẽ cảm thấy dễ chịu khi nâng cấp ứng dụng ASP hiện có, bằng cách đưa vào các hàm ASP.NET cho chúng (lời của MS).ASP.NET là biên dịch, dựa trên môi trường NET và có thể xây dựng bằng bất cứ ngôn ngữ nào tương thích NET, baogồm Visual Basic NET, C#, and JScript NET Ngoài ra, toàn bộ thư viện NET
Framework có thể sử dụng với ứng dụng ASP.NET, lập trình viên tận dụng dễ dàng nhữnglợi ích của các kỹ thuật được cung cấp, bao gồm quản lý môi trường thực thi ngôn ngữ
cung (common language runtime), kiểu an toàn (type safety), kế thừa (inheritance), v.v.
ASP.NET được thiết kế làm việc với các trình soạn thảo WYSIWYG HTML đi kèm và cáccông cụ lập trình khác được đưa vào trong Microsoft Visual NET Tất cả các công cụ này không phài chỉ dùng để phát triển ứng dụng Web được dễ dàng, tuy nhiên có thể sử dụng một vài chức năng thông thường cho ứng dụng Web, bao gồm một GUI cho phép lập trình viên có thể dễ dàng đặt các server control vào trang web (web page), và một trình debug
rất mạnh mẽ.
Khi tạo một ứng dụng Web lập trình viên có thể chọn Web Forms hoặc Web Services, ngoài ra cũng có thể kết hợp hai loại này với nhau theo bất kỳ cách nào Cà hai loại này có một nền cơ bản, cho phép sử dụng authentication schemes, cache frequently used data, hoặc chỉnh sửa cấu hình ứng dụng (customize application’s configuration) Tuy nhiên mỗi
loại có một vài khả năng riêng:
Trang 11Một XML Web Service cung cấp điều kiện (mean) để truy cập các hàm ở server từ xa Khi sử dụng Web Service, trong kinh doanh người ta có thể đưa ra các giao diện lập trình được cùng với dữ liệu, hoặc kết quả kinh doanh, những cái này có thể được nhận, hiệu chỉnh bởi các ứng dụng client và server Web Server cho phép trao đổi dữ liệu theo hai kịch bản (scenarios) client-server và server-client, sử dụng chuẩn HTTP và thông diệp XML (XML messaging) để di chuyển dữ liệu qua tường lữa (firewall) XML Web Service có thể được viết bằng mọi ngôn ngữ lập trình, sử dụng mọi mô hình thành phần
(component model), và có thể chạy trên bất kỳ hệ điều hành nào có thể truy cập XML WebServices
Trang 12Với người đã có kỹ năng lập trình ASP thì mô hình lập trình mới ASP.NET sẽ rất gần gũi Tuy là như vậy nhưng ASP.NET đã có những thay đổi rất đặc biệt so với ASP, ASP.NET đãcó cấu trúc hơn và hướng đối tượng Thật đáng tiết, điều này có nghĩa là tất cả các trang ASP đã tồn tại đều phải được chỉnh sửa một vài nơi để có thể chạy dưới ASP.NET Ngoài ra, Visual Basic và Visual Basic.NET đã có một sự khác biệt rất lớn, điều này có nghĩa là các trang được viết bằng Visual Basic Scripting Edition sẽ không thể chuyển trực tiếp sang
ASP.NET, cần thiết phải có một số thay đổi nhất định để có thể chuyển sang ASP.NET
ASP.NET tạo ra những chương trình dễ sử dụng và những session-state facility gần gủi vớilập trình viên ASP và sẳn sàng tương thích với tất cả các giao diện lập trình NET
Framework khác (other NET Framework APIs
(
Đối với những lập trình viên cao cấp, người muốn sử dụng những giao diện lập trình mạnhnhư giao diện ISAPI (có trong ASP), ASP.NET giới thiệu hai giao diện: IhttpHandler và IhttpModule Cài đặt giao diện IHttpHandler cho phép chương trình tương tác với các yêu cầu mức thấp (low-level request) và những dịch vụ hồi báo (response services) của IIS Web Services và cung cấp một vài chức năng giống với phần mở rộng ISAPI, nhưng với một mô hình lập trình rất đơn giản Cài đặt giao diện IhttpModule cho phép lập trình viên
đưa vào những customize event riêng trong mỗi yêu cầu (request) sinh ra trong ứng dụng
ASP.NET có được những chất lượng thực thi được tìm thấy trong NET Framework và thực thi ngôn ngữ chung (common language runtime) Ngoài ra ASP.NET đã được thiết kế cho mục đích nâng cao khả năng thực thi vượt qua ASP và tất cả các nền ứng dụng Web
khác (Lời của MS
.(
Trang 13Tất cả mã của ASP.NET đều được biên dịch, việc này cho phép kết hợp dễ (early binding),kiễu mạnh (strong type), trình biên dịch tức thời (JIT) tương thích native code Ngoài ra ASP.NET còn cung cấp catch mở rộng cho lập trình viên có thể tối ưu hóa ứng dụng trong
một vài trường hợp
Tạo được các câu lệnh debug (custom debug statements) cho trang web, nó rất hữu ích trong khi giãi quyết sự cố (troubleshooting).Nền NET Framework và ASP.NET cung cấp sơ đồ (schemes) chứng nhận(authentication) và cấp phép (authorization) cho ứng dụng
Web, có thể dễ dàng xóa, thêm, hiệu chỉnh sơ đồ
Web Form.
HTML Server Side Controls: các thành phần điều khiển HTML có khả năng xử lý ngay trên trình chủ(Server) dựa trên thuộc tính và phương thức tương tự như cách thức hoạt động của trình khách(client) Những thành phần điều khiển này còn cho phép ta kết hợp mã xử lý của pages ASP.NET với một sự kiện nào đó phát sinh phía client được xem như đang diễn ra trên trình server(mô hình
chuyển giao- deligate.(
Rich controls: tập các điều khiển đa năng.Các Rich Controls chạy trên server và có thể tạo ra các phần tử cũng như các đối tượng HTML phức hợp trên client (Grid, calendar,table, view,…) Rich controls còn cho phép bạn ràng buộc dữ liệu và xử lý dữ liệu tương tự như bạn đang viết một ứng dụng desktop thật sự
Xoá đi biên giới mô hình Client/server.
Web Service: các dịch vụ Web Trang ASP.NET có thể không cần hiển thị kết xuất cho client Chúng hoạt động như những chương trình xử lý yêu cầu ở hậu
Trang 14cảnh VD trang ASP.NET nào đó có thể là đối tượng cung cấp phương thức trả về giá trị nào đó khi nhận được yêu cầu từ client
Cấu hình & phân phối: đơn giản và dễ dàng với các file cấu hình theo định dạngvăn bản của XML.Không cần phải đăng ký hệ thống khi sử dụng nữa(Quên đi regsrv32.exe!) Chúng ta chỉ cần copy các trang ASP.NET hay các đối tượng lênmáy chủ, chỉ ra vị trí của chúng và thế là chương trình cũng như dịch vụ của
chúng ta đã sẵn sàng.!
trong môi trường đa ngôn ngữ VB.NET,C++,C.#
nhằm tăng tốc cho ứng dụng.
Một tập các đối tượng phong phú: ASP.NET hỗ trợ một tập phong phú các thư viện và các đối tượng phục vụ hầu hết những gì mà những nhà ứng dụng cần đến Bằng những thư viện này công việc viết ứng dụng cho Web trở nên dễ dànghơn.VD: bạn có thể sử dụng các thành phần đối tượng “Send mail ” để gửi nhậnthư, Đối tượng mã hoá để giải mã thông tin, Web Counter(đếm số người truy
Các đối tượng nội tại khác như Request, Response, Form, Cookies, ServerVaribles, đều được giữ lại và hoàn toàn tương thích với ASP Tuy nhiên, ASP.NET đã cung cấp thêm chonhững đối tượng này rất nhiều những thuộc tính và phương thức mới giúp nâng cao khả
năng xử lý các ứng dụng.
Trang 15Một ứng dụng được triển khai bằng ASP.NET sẽ thừa hưởng được các thế mạnh của ASP.NET như: tốc độ nhanh, linh động, an toàn và có tính thực thi cao Điều này dựa trên
các ưu điểm nổi bật sau của ASP.NET(đứng ở góc độ lập trình:(.
1.Thành phần điều khiển đóng gói các chức năng thường xuyên sử dụng rất tiện lợi như: quản lý trạng thái (State), kiểm tra dữ liệu nhập(validate), … những
công việc này trứơc đây thường phải viết rất thủ công.
2.Mã nguồn dễ dùng, dễ đọc: Mọi công việc thao tác hay xử lý không cần thiết trước đây(như kiểm tra tính hợp lệ của dữ liệu, bảo vệ trạng thái của session,…)đều được chuyển giao cho kiến trúc và bộ khung ASP.NET xử lý Trang
ASP.NET viết mã ít hơn, ngắn gọn hơn đồng thời cũng thực thi nhanh hơn trangASP do trang ASP.NET đã được biên dịch và được đưa vào vùng đệm bộ nhớ
trong suốt quá trình thực thi.
3.Với trang ASP.NET chúng ta có thể tạo trang tài liệu HTML kết xuất phía đầu cuối đẹp mắt bằng một tập phong phú các thành phần điều khiển giao diện thân
thuộc trong Windows đã được xây dựng lại.
4.Trong ASP.NET không còn phụ thuộc vào ngôn ngữ phi định kiểu như VBScriptnữa, mà nó 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ữ lập trình hiện đại: C++, C#, VB.NET, Perl…,
Ngoài ra, còn có những ưu điểm khác so với ASP thường: Ở trang ASP mã lệnh và giao diện trộn lẫn với nhau Khi phát triển những ứng dụng Web lớn, thường các dự án cần được tách ra làm 2 phần Một nhóm thiết kế giao diện(Web Designer) và một nhóm viết lệnh lập trình(coder) Kết quả cuối cùng thường là một sự trộn lẫn giữa phần thiết kế giao diện và mã lệnh ASP để tạo thành một file chương trình duy nhất Các trang ASP của ứng dụng đó rất khó bảo trì khi bạn muốn thêm vào các mã lập trình mới hay thay đổi giao
diện ASP.NET cho phép tách rời giữa mã lập trình và nội dung tài liệu.
Ngày nay, các thiết bị cầm tay: ĐTDĐ, máy Palm,… thay đổi rất nhanh, đòi hỏi nhu cầu sử dụng Internet ngày càng cao Vấn đề là 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 những trình duyệt hiện đại Một trong những cách giải quyết vấn đề trên đó là ta sẽ xây dựng 2 site khác nhau để hướng đến 2 ứng dụng khác nhau hoặc là trong cùng một site chúng ta code nhận dạng từng loại thiết bị rồi viết mã từng site cho phù hợp(Select case …) Cách
Trang 16này lập trình rất khó, chi phí cao và hiện đang được sử dụng nhiều nhất Tuy nhiên, với ASP.NET chúng ta không cần viết mã lệnh, các thành phần điều khiển hoạt động trên Server có khả năng nhận dạng và phát sinh mã tuỳ theo yêu cầu sử dụng cuối cùng của
II.2.Ứng dụng của ASP.NET
A.Khái quát
Một ứng dụng ASP.NET được định nghĩa là tất cả những tập tin, những điều khiển
(handler), những module và mã thực thi (executable code) có thể được gọi từ một cây thư mục ảo (virtual directory) trên ứng dụng Web Server Có thể sử dụng mọi mô hình lập trình ASP.NET (ASP.NET programming models) trong ứng dụng Tất cả chúng phải cùng
tồn tại trong một cấu trúc thư mục ảo riêng lẻ.
B.Tập tin Global.asax.
Tập tin Global.asax, còn được hiểu như tập tin ứng dụng ASP.NET, là một tập tin tùy
chọn chứa mã để đáp ứng (responding) những sự kiện mức ứng dụng (application-level
events) được phát ra bởi ASP.NET hoặc những module HTTP Tập tin Global.asax được
đặt tại thư mục gốc (root directory) của một ứng dụng ASP.NET Khi ứng dụng chạy (run),
tập tin Global.asax được phân tích và biên dịch thành một lớp class NET Framework dẫn
xuất từ lớp HttpApplication Bản thân tập tin Global.asax được cấu hình để từ chối bất kỳ yêu cầu URL trực tiếp nào; người sử dụng bên ngoài (external users) không thể download
hoặc xem mã được viết bên trong nó.
Tập tin Global.asax của ASP.NET có thể cùng tồn tại với tập tin Global.asa của ASP Có
thể tạo tập tin Global.asax bằng trình thiết kế WYSIWYG, bằng Notepad, hoặc như là
một lớp được biên dịch thành assambly đặt trong thư mục \bin là thư mục con của thư mụcứng dụng
Tập tin Global.asax là một tùy chọn, nếu không định nghĩa tập tin Global.asax thì
framework (ASP.NET page framework) sẽ xem như (assumes) không có bất kỳ một event application handler và event session handler nào được định nghĩa
.
Trang 17Nếu nội dung tập tin Global.asax bị thay đổi trong lúc ứng dụng ASP.NET đang hoạt
động thì ASP.NET Page Framework sẽ tự động dò tìm sự thay đổi này Nó sẽ thực hiện xong tất cả những yêu cầu hiện tại, gởi sự kiện Application_OnEnd đến tất cả những bộ lắng nghe (listeners), và khởi động lại miền ứng dụng (application domain) Trong thực tế, ứng dụng này được khởi động lại, đóng tất cả những browse sesstion, xóa (flushing) tất cả những thông tin trạng thái Khi có yêu cầu kế tiếp đến từ browse, ASP.NET page
framework sẽ phân tích và biên dịch lại tập tin Global.asax thành đối tượng trong bộ nhớ
khi nó đã xử lý xong yêu cầu hiện tại
Lớp HttpApplication cho phép lập trình (overriding) truy xuất (access) các phương thức (method), cũng như những sự kiện Application_OnStart và Application_OnEnd Ngoài ra, nó còn cho phép truy xuất đến bất kỳ sự kiện nào được đưa ra (exposed) bởi các module HTTP
Trang 18D Lập trình lại (Overriding) phương thức Init và Dispose
Phương thức HttpApplication.Init được gọi ngay sau khi một thực thể (instance) của lớp
HttpApplication được tạo (sau khi tất cả các module quản lý sự kiện đã được add vào) Có thể sử dụng phương thức này để tạo và cấu hình bất kỳ đối tượng nào được sử dụng xuyên
suốt (across) trong tất cả các thao tác xử lý sự kiện
HttpApplication được hũy Có thể sử dụng nó để xóa bất kỳ local resource nào
Phương thức Dispose không giống với sự kiện Application_OnEnd, bởi vì nó luôn luôn được gọi trong tất cả các thực thể của lớp HttpApplication trong phạm vi một ứng dụng Sự kiện Application_OnEnd chỉ được phát ra duy nhất một lần trong suốt cuộc sống của ứng dụng, khi thực thể cuối cùng của lớp HttpApplication được hũy (torn down) Chỉ sử dụng sự kiện Application_OnEnd để xóa những trạng thái hoặc những resource được chia sẽ bới tất cả các thực thể pipeline, như là đối tượng ApplicationState Không sử dụng nó để xóa các biến cục bộ, bởi vì biến cục bộ không được chia sẽ sử dụng bởi nhiều thực thể
public override void Init} ()
Trang 19//Init override code goes here.
public override void Dispose} ()
//Init override code goes here.
D.1 Quản lý những sự kiện của thực thể HttpApplication
Có thể sử dụng tập tin Global.asax để xử lý bất kỳ sự kiện nào được đưa ra (exposed) bởi
lớp cơ bản HttpApplication Mẫu sau đây được cung cấp để thực hiện công việc này:
Ví dụ: đoạn mã sau đây giải quyết các sự kiện OnStart, BeginRequest, và OnEnd cho một ứng dụng ASP.NET, phải đặt đoạn mã vào trong tập tin Global.asax, đoạn mã trong giống
như sau:
>Script language="C#" runat="server<"
public void Application_OnStart} ()
//Application start-up code goes here.
public void Application_BeginRequest} ()
//Application code for each request could go here.
public void Application_OnEnd} ()
//Application clean-up code goes here.
/>script<
Trang 20
E Sử dụng các Module trong tập tin Global.asax
1
Khái quát.
ASP.NET cung cấp những module khác nhau và riêng biệt trong mỗi yêu cầu và những sự kiện được đưa ra (exposed), có thể quản lý (handle) các module này ngay trong tập tin
Global.asax hoặc ngay trong một lớp được dẫn xuất từ lớp HttpApplication Có thể sửa
đổi (custmize) và mở rộng các module này, hoặc thậm chí có thể tạo một module mới để xử lý thông tin về các yêu cầu HTTP Ví dụ, có thể tạo một module output cache để cài đặt
(implements) output-caching làm việc (behaviors) cho toàn bộ ứng dụng.
Tất cả các module, cả những module tự tạo và những module chuẩn được cung cấp bởi ASP.NET, đều phải cài đặt giao diện IHttpModule Chỉ cần các module được đăng ký với
ứng dụng là có thể dễ dàng tương tác (interact) với các yêu cầu HTTP đi vào ứng dụng.
2 .Quản lý HTTP Module Events.
Có thể sử dụng các module trong tập tin Global.asax để quản lý bất kỳ sự kiện nào được
phát sinh trong các yêu cầu HTTP Ví dụ, có thể tạo một custom authentication module choứng dụng Web định xây dựng, trong module có xử lý sự kiện OnAuthenticateRequest để chứng thực người dùng Lệnh viết để điều khiển sự kiện phát sinh (exposed) bởi một
HTTP module phải phù hợp với mẫu được chỉ rỏ bên dưới.
Ví dụ, nếu muốn đưa code để quản lý sự kiện bắt đầu và kết thúc của sesstion, cũng như cho sự kiện OnAuthenticateRequest, nó sẽ trong giống như bên dưới
>Script language="C#" runat="server<"
void Session_OnStart} ()
//Session start-up code goes here.
void Session_OnEnd} ()
//Session clean-up code goes here.
{