Đề tài Tìm hiểu Microsoft ASP.NET

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 7

1.3 Các trình CGI (Common Gateway Interface). 7

1.4 Giao diện của lập trình ứng dụng Internet ISAPI 8

1.5. ASP 8

Phần II : ASP.NET 11

2.1. Bộ Khung Dịch Vụ Web Thế Hệ Kế Tiếp(NGWSF) 11

2.1.2 Tìm Hiểu Về Khung Nền NGWSF 12

2.1.3 Mô hình .NET Framework. 13

2.1.4 Ngôn Ngữ Trung Gian Phổ Dụng 14

2.1.5 Cở Sở Hạ Tầng Của ứng Dụng Web 15

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 18

2.3 Những điểm khác biệt của ASP so với ASP.NET 22

2.3.1 Ưu điểm lớn nhất của ASP.NET 25

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 29

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

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

2.4.6 Các chặng trong quá trình xử lý Web Form 32

2.4.7 Mô hình sự kiện của Web Form 33

2.4.8 Các sự kiện Application và Session 34

2.4.9 HTML server control 36

2.4.10 ASP.NET server control 37

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

2.4.13 ASP.NET User Web control 44

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

2.1.13.2Tạo Web User Control: 45

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

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

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

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

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

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

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

2.5.6 The SQL Server .NET Data Provider 52

2.5.7 OLE DB .NET Data Provider 53

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

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

2.6.1 Ràng buộc dữ liệu với Repeater Control 55

2.6.2 Ràng buộc dữ liệu với DataGrid server control 57

2.7. Dịch vụ Web 58

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

V.7.2 Vậy dịch vụ Web là gì? 59

2.7.3 Cách hoạt động của dịch vụ Web. 61

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

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

2.8.2 Định nghĩa một phương thức cho dịch vụ Web 62

2.8.3 Sử dụng dịch vụ Web 63

2.9 Bảo mật ứng dụng Web 64

Phần III: Xây dựng một ứng dụng với ASP.NET 67

3.1 Mục đích: 67

3.2Thiết kế Cơ sở dữ liệu 73

3.2.1 Định nghĩa các yêu cầu 73

3.2. Sơ đồ phân rã chức 74

3.2.3. Mô hình logic 75

3.2.4Mô hình Vật lý 77

3.2.5 Tạo các stored procedure cho ứng dụng 79

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

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

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

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

Kết luận 85

 

 

doc111 trang | Chia sẻ: netpro | Lượt xem: 3992 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu Microsoft ASP.NET, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng với cách làm như với trang Web Form. Ví dụ ta có thể tạo một user control để sử dụng như toolbar, đặt vào trong đó các Button Web server control tạo sự kiện và nắm bắt cá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ột menu. 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"%> <asp:HyperLink id=lnkLogin runat="server" _ NavigateURL="Login.aspx">Login  <asp:HyperLink id=lnkAddToCart runat="server" _ NavigateURL="Cart.aspx>Add to Cart  | <asp:HyperLink id=lnkTechSupport runat="server" _ NavigateURL="TechSupport.aspx">Technical Support   | <asp:HyperLink id=lnkAbout runat="server" _ NavigteURL="AboutUs.aspx">About Us 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ột chỉ 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ơn nữ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ách lập trình. Để thêm một User Control vào trang Web Form, tại đầu trang trước cả thẻ 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ể: Thuộc tính Miêu tả 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, nhưng chúng có thể là hoàn toàn khác nhau. Ví dụ TagName Được dùng để đặt tên cho User control. Tên này được sử dụng trong sự liên kết với tag prefix để xác định namespace duy nhất cho control của ta Src Thuộc tính Src là đường dẫn ảo tới user control, ví dụ: "/MyApp/Include/UserControl1.ascx". . Trong thẻ của trang, tạo một thẻ cho control tại nơi mà ta muốn nó thể hiện. Sử dụng TagPrefix và Tagname mà ta đã đăng ký với thuộc tính runat=”server” như đoạn mã sau: Nếu control của ta có thuộc tính, ta có thể đặt cho nó trong lúc thiết kế, các thuộc tính đó thường có giá trị ngay trong thẻ: 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ả HTML nào để tạo một Web User control. Cú pháp để định nghĩa một User control rất giông như Web For; điểm khác biệt chính là các User control không có các thẻ , và 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ển phía server. Sau đây là một mã tạo một form login đơn giản mà ta có thể đưa vào nhiề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] Public Property UserId() As [String] Get Return User.Text End Get Set User.Text = value End Set End Property Public Property Password() As [String] Get Return Pass.Text End Get Set Pass.Text = value End Set End Property 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 ích của nó để truy cập cơ sở dữ liệu khác nhau ngay trong ứng dụng Web. ASP gắn với Ado có thể truy cập đến mọi loại cơ sở dữ liệu hiện có. ASP.NET mở rộng khả 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ác thà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 ứng dụng phân tán và chia xẻ dữ liệu. Nó là một phần được tích hợp trong .NET framework, 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át triển. Qua ADO.NET các trình tiêu thụ (consumer) dữ liệu chia xẻ có thể tiếp cập đến nguồn dữ liệu như SQL Server hay các nguồn dữ liệu được hỗ trợ bởi OLE DB 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 lưu trong đối tượng DataSet để người dùng có thể quản lý, 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ữa các tầng. Đối tượng DataSet trong ADO.NET có thể được sử dụng một cách độc lập như là một trình cung cấp dữ liệu .NET để quản lý dữ liệu địa phương cho ứng dụng hay là nguồn cho XML. ADO.NET cung cấp cho người phát triển việc viết 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át triể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ệu khi qua các kết nối mạng. Các ứng dụng Web sử dụng HTTP như là bộ khung chung trong việc truyền thông giữa các tầng, và từ đó trạng thái giữa các lần triệ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ểu lậ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 được mở trong suốt thời gian sống của ứng dụng và không có thông tin về trạng thái nà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ập dữ liệu. ADO.NET được thiết kế để giải quyết các vấn đề trong mô hình lập trình mớ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ào trong .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ường như 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àm việ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. ADO là 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ực hiệ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 nhanh hơn với XML. 2.5.4 Cấu trúc của ADO.NET Các thành phần của ADO.NET Các thành phần trong ADO.NET được thiết kế để tiếp cận với dữ liệu từ việc thao tác dữ liệu. Có hai thành phần trung gian để ADO.NET thực hiện việc này là DataSet và .NET Provider, một bộ các thành phần gồm các đối tượng Connection, Command, DataReader và DataAdapter. Hình sau đây thể hiện kiến trúc của Ado.NET. Đối tượng ADO.NET Dataset là thành phần cốt lõi của kiến trúc không kết nối trong ADO.NET. DataSet được thiết kế cho việc truy cập dữ liệu độc lập với nguồn dữ liệu. Kết quả là nó có thể được sử dụng với nhiều nguồn dữ liệu khác nhau, với XML, hay được dùng để quản lý dữ liệu địa phươngcho ứng dụng. DataSet chứa một tập hợp các đối tượng DataTable làm thành các hàng và cột cho dữ liệu, các thông tin về khoá chính khoá ngoại, các ràng buộc và quan hệ về dữ liệu được chứa trong DataTable. DataSet object model Mỗi đối tượng trong DataSet gồm nhiều bảng DataTable, các bảng trong DataSet quan hệ với nhau thông qua đối tượng DataRelationship. Đơn giản, ta hãy hình dung DataSet là một tập con các bảng trích ra từ cơ sở dữ liệu và hoạt động độc lập với dữ liệu ban đầu. Dataset cung cấp cho ta cách làm việc với dữ liệu không kết nối tương tự như đang làm việc với dữ liệu nối trực tuyến thông thường. Đối tượng Dataview cho phép tuỳ biến cách nhìn nhận dữ liệu chứa trong các bảng của DataSet. Mục đích chính của Dataview là hỗ trợ cơ chế ràng buộc dữ liệu. Ta có thể hình dung Dataview tương tự với đối tượng Recordset trong ADO. Dataview thể hiện dữ liệu duy nhất của một bảng trong DataSet Một thành phần cốt lõi khác của kiến trúc ADO.NET là .NET provider, gồm các thành phần được thiết kế một cách rõ ràng trong việc thao tác với dữ liệu. Đối tượng Connection là cầu nối với nguồn CSDL, đối tượng Command cho phép truy cập đến CSDL để lấy kết quả trở về, sửa đổi dữ liệu, chạy các stored Procedure và gửi hay nhận các thông tin về tham số. đối tượng DataReader biểu diễn luồng dữ liệu nhận được từ nguồn CSDL. Cuối cùng là DataAdapter là cầu nối giữa đối tượng DataSet và nguồn dữ liệu. DataAdapter sử dụng đối tượng Command để thực hiện câu lệnh SQL tại CSDL và đưa vào dữ liệu vào DataSet. Đối tượng DataReader trong thành phần .NET Provider cho phép đọc cụ thể từng dòng và cột dữ liệu trong bảng. Chức năng DataReader tương tự như Recordset mà ta vẫn dùng trong ADO cũ. Ví dụ: 2.5.5 Lựa chọn giữa DataReader hay DataSet Mô tả việc dùng DataSet và DataReader Khi quyết định sử dụng DataReader hay Dataset, ta nên cân nhắc xem các kiểu chức năng mà ứng dụng của ta cần. Sử dụng DataSet để thực hiện các công viêc sau đây: Truy cập dữ liệu từ xa giữa các tầng hay từ dịch vụ Web. Tương tác với dữ liệu động như ràng buộc với các điều khiển hay kết hợp với các dữ liệu quan hệ từ các nguồn khác nhau. Cache dữ liệu một cách địa phương tại ứng dụng của ta. Cung cấp kiểu định dạng XML cho dữ liệu quan hệ và sử dụng các công cụ như XSL Tranformation hay XML Path Language (Xpath) Query trên dữ liệu của ta. Thực hiện việc xử lý dữ liệu mở rộng mà không cần mở một kết nối tới nguồn dữ liệu. Nếu ta không cần những chức năng cung cấp bởi DataSet , ta có thể sử dụng DataReader để trả về dữ liệu chỉ đọc trong ứng dụng của ta . Ta có thể viết .NET Provider cho nhiều nguồn dữ liệu khác nhau. .NET Framework có hai .NET Provider là: SQL Server Data Provider và OleDb Data Provider. 2.5.6 The SQL Server .NET Data Provider SQL Server .NET Provider sử dụng giao thức riêng của nó để giao tiếp với SQL server. Nó thực hiện việc truy cập SQL server nhanh hơn bởi vì có thể truy cập trực tiếp với SQL server mà không cần cầu nối OLE DB hay ODBC. Minh hoạ sau đây thể hiện sự khác nhau trong việc giao tiếp với SQL Server giữa SQL Server .NET Data Provider và OLE DB. Comparison of the SQL Server .NET Data Provider and the OLE DB .NET Data Provider Để sử dụng SQL Server .NET Data Provider, ta phải có Microsoft SQL Server 7.0 hay cao hơn, lớp SQL Server .NET Provider được đặt trong System.Data.SqlClient NameSpace. Đoạn mã sau dùng để Import System.Data.SqlClient vào ứng dụng của ta. Visual Basic] Imports System.Data.SqlClient 2.5.7 OLE DB .NET Data Provider Lớp OLE DB .NET Data Provider được chứa trong System.Data.OleDb namespace. Đoạn mã sau dùng để Import System.Data.SqlClient vào ứng dụng của ta. [Visual Basic] Imports System.Data.OleDb [C#] using System.Data.OleDb; SQL Server .NET Provider cung cấp một chuỗi kết nối tương tự như chuỗi kết nối trong OLE DB (ADO) Đoạn mã sau sẽ tạo và mở kết nối với cơ sở dữ liệu SQL Server (version 7.0 hoặc cao hơn): [Visual Basic] Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI;" & _ "Initial Catalog=northwind") nwindConn.Open() Khi không cần thiết truy cập đến Cơ sở dữ liệu nữa thì ban nên đóng lại bằng phương thức Close trong đối tượng Connection. Để sử dụng OLE DB .NET Data Provider ban cần có MSDAC 2.6 hoặc hơn. Bảng sau đây chỉ ra những provider đã được test với ADO.NET. Driver Provider SQLOLEDB Microsoft OLE DB Provider for SQL Server MSDAORA Microsoft OLE DB Provider for Oracle Microsoft.Jet.OLEDB.4.0 OLE DB Provider for Microsoft Jet 2.5.8 Nền tảng cần thiết cho ADO.NET: The Microsoft .NET Framework SDK (including ADO.NET) cài đặt trên Microsoft Windows 2000, Microsoftđ Windows NT 4- Service Pack 6a, Microsoftđ Windows Millennium Edition, Microsoft Windows 98, và Microsoft Windows SE. Sử dụng SQL Server .NET Data Provider hay OLE DB .NET Data Provider cần cài đặt Microsoft Data Access Components version 2.6 or later. Để đưa ADO.NET vào ứng dụng cần khai báo NameSpace System.Data [Visual Basic] Imports System.Data [C#] using System.Data; 2.6 Truy cập Dữ liệu với ASP.NET ASP.NET gồm có các công cụ để truy cập cơ sở dữ liệu khiến việc này trở nên dễ dàng hơn bao giờ hết, cho phép người dùng tương tác với cơ sở dữ liệu thông qua trang Web. Để truy cập cơ sở dữ liệu SQL với ASP.NET: Tạo một cơ sở dữ liệu dùng lớp SqlConnection. Truy xuất các bản ghi từ cơ sở dữ liệu sử dụng SqlDataAdapter. Đưa vào DataSet sử dụng SqlDataApdapter Khi ta lựa chọn dữ liệu chỉ để hiển thị mà không tương tác, thì nên dùng SqlDataReader hay OleDbDataReader cho cơ sở dữ liệu không phải SQL. Khi sử dụng SqlDataReader, việc lựa chọn bản ghi bằng truy vấn thông qua SqlCommand và tạo SqlDataReader để lấy dữ liệu trả về từ đối tượng SqlCommand thông qua phương thức ExecuteReader. Trong trường hợp ta muốn sặp xếp hay lọc lấy các bản ghi thì ta tạo DataView dựa trên DataSet Ràng buộc dữ liệu với một server control Ràng buộc dữ liệu với các bảng trong cơ sở dữ liệu Thường thì ràng buộc dữ liệu được thực hiện thường xuyên từ các nguồn dữ liệu lấy từ database. Các điều khiển trong ASP.NET có thể có các giá trị được lấy dữ liệu từ cơ sở dữ liệu. Sub Page_Load(Src As Object, E As EventArgs) Dim ds As DataSet Dim conn As SQLConnection Dim cmdAuthors As SQLDataAdapter Dim dv As DataView 'create a connection to the Pubs database' conn = New SQLConnection _ ("data source=localhost;initial catalog=pubs;integrated security=SSPI;persist security info=True;workstation id=localhost;packet size=4096") 'create a dataset with information from the authors table' cmdAuthors = New SQLDataAdapter _ ("select * from Authors", conn) ds = new DataSet() cmdAuthors.Fill(ds, "Authors") Listbox1.Datasource = ds(“Authors”).DefaultView Listbox1.Databind() End Sub <asp:Listbox id =“Listbox1” runat=”server” DataTextField=”AuthorName” DataValueField=”AuthorID” /> 2.6.1 Ràng buộc dữ liệu với Repeater Control Repeater control là control ràng buộc dữ liệu kiểu danh sách. Không giống như DataList, Reapeter không trả về các kiểu mẫu của nó với các bảng HTML không được xây dựng để hỗ trợ cho việc lựa chọn và sửa đổi. Ràng buộc dữ liệu với DataList Control Trong khi Repeater control được thiết kế với mục đích lặp lại, DataList control cung cấp thêm các chức năng để dễ dàng điều khiển cách trình bày của danh sách. DataList Control trả về các hàng và ô trong bảng những định dạng của nó, cho phép tạo ra nhiều khả năng trình bày và định dạng phong phú. DataList Control cung cấp hai thuộc tính là RepeatColumns và RepeatDirection để xác định giá trị cụ thể cho cột và hướng trong khi nó trả về dữ liệu. Ví dụ: Visual Basic] Sub Page_Load(sender As Object, e As EventArgs) Dim myConnection As SqlConnection Dim myCommand As SqlDataAdapter ' Create a connection to the "pubs" SQL database located on the ' local computer. myConnection = New SqlConnection("server=localhost;" _ & "database=pubs;Trusted_Connection=Yes") ' Connect to the SQL database using a SQL SELECT query to get all ' the data from the "Titles" table. myCommand = New SqlDataAdapter("SELECT * FROM Titles", myConnection) ' Create and fill a DataSet. Dim ds As DataSet = new DataSet() myCommand.Fill(ds) ' Bind MyDataList to the DataSet. MyDataList is the ID for ' the DataList control in the HTML section of the page. MyDataList.DataSource = ds MyDataList.DataBind() End Sub <%-- Open the DataList control and set it for two columns, to be filled in horizontal order. --%> <ASP:DataList id="MyDataList" RepeatColumns="2" RepeatDirection="Horizontal" runat="server"> Title ID: Category: Publisher ID: Price: 2.6.2 Ràng buộc dữ liệu với DataGrid server control DataGrid server control là một điều khiển linh hoạt trong biểu diễn dữ liệu dạng bảng hỗ trợ việc lựa chọn, sắp xếp và hiệu chỉnh dữ liệu. Theo mặc định DataGrid tạo các cột cho mỗi một trường trong bảng cơ sở dữ liệu (AutoGenerateColumns=true). Mỗi một trường dữ liệu được thể hiện trong mỗi cột riêng rẽ. Ví dụ sau đây thể hiện tên, địa chỉ, số điện thoại và một vài thông tin khác: [Visual Basic] Sub Page_Load(Src As Object, e As EventArgs) Dim myConnection As SqlConnection Dim myCommand As SqlDataAdapter ' Create a connection to the "pubs" SQL database located on the ' local computer. myConnection = New SqlConnection("server=localhost;" _ & "database=pubs;Trusted_Connection=Yes") ' Connect to the SQL database using a SQL SELECT query to get all ' the data from the "Authors" table. myCommand = new SqlDataAdapter("SELECT * FROM Authors", _ myConnection) ' Create and fill a DataSet. Dim ds As DataSet = new DataSet() myCommand.Fill(ds) ' Bind MyDataGrid to the DataSet. MyDataGrid is the ' ID for the DataGrid control in the HTML section. MyDataGrid.DataSource = ds MyDataGrid.DataBind() End Sub Simple Select to a DataGrid Control. <ASP:DataGrid id="MyDataGrid" runat="server" Width="700" BackColor="#ccccff" BorderColor="black" ShowFooter="false" CellPadding=3 CellSpacing="0" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" EnableViewState="false" /> 2.7. DỊCH VỤ WEB 2.7.1 Sự cần thiết của dịch vụ Web Trên nhiều khía cạnh, Internet ngày nay vẫn còn phản chiếu thế giới mainframe cũ kỹ. Đó là mô hình tính toán tập trung trên server, với trình duyệt đóng vai trò của dumb terminal. Rất nhiều thông tin mà doanh nghiệp của ta cần đến bị khoá chặt trong các cơ sở dữ liệu tập trung, đưa ra từng trang một cho từng người sử dụng riêng lẻ. Tệ hơn nữa, các trang Web đơn thuần chỉ là một "bức tranh" của dữ liệu, chứ không phải là bản thân dữ liệu. Điều này bắt buộc các nhà lập trình phải "cắt màn hình" để lấy được thông tin.Và việc tích hợp dữ liệu bên dưới với dữ liệu sẵn có của doanh nghiệp của ta -- chưa tính đến dữ liệu của các đối tác của ta -- sẽ rất tốn kém và là một thử thách đầy gay cấn.  Nguyên nhân của tình trạng đó là bởi vì ngày nay các ứng dụng và web site độc lập đã tạo ra các ốc đảo của các chức năng và dữ liệu. Ta phải di chuyển một cách thủ công giữa các trang web, thiết bị và ứng dụng, mỗi lần chuyển lại phải một lần đăng nhập vào hệ thống, và rất ít khi có khả năng lấy dữ liệu ra mang theo ta. Ta phải thường xuyên kiểm tra ứng dụng nào, thiết bị nào hoặc web site nào cung cấp cho ta các mức độ truy nhập nào đến dữ liệu. Các nhiệm vụ nghe có vẻ đơn giản -- chẳng hạn như sắp xếp một cuộc họp với các đồng nghiệp từ các công ty đối tác và tự động cập nhật lịch của tất cả những người tham dự -- thực sự là một cơn ác mộng.  Giải quyết những vấn đề đó thực sự là thử thách lớn nhất của thế hệ kế tiếp của Internet. Trung tâm của các giải pháp sẽ là XML ( eXtensible Markup Language, ngôn ngữ đánh dấu có thể mở rộng). Với tư cách là một chuẩn công nghiệp mở được điều hành bởi World Wide Web Consortium, XML cho phép các nhà lập trình mô tả dữ liệu cho việc trao đổi giữa các máy PC, các thiết bị thông minh , ứng dụng và các web site. Bởi vì XML tách biệt dữ liệu bên dưới ra khỏi phần hiển thị, bản thân dữ liệu được "giải phóng" để có thể được tổ chức, lập trình, biên tập lại và đem trao đổi giữa các web site, ứng dụng và thiết bị. XML là ngôn ngữ chung cho thời đại Internet. Giống như các trang web đã làm một cuộc cách mạng trong cách thức con người nói chuyện với ứng dụng, XML đã làm thay đổi cách thức các ứng dụng nói chuyện với nhau. Khi các nhà lập trình trở nên quen thuộc với XML, họ sẽ đi xa hơn việc chỉ dùng XML để biểu diễn dữ liệu. Với sự trợ giúp của các công nghệ dựa trên XML như SOAP (cho phép các ứng dụng tương tác với nhau thông qua các giao thức Internet chuẩn) và UDDI (cung cấp cho các doanh nghiệp một phương thức chuẩn để mô tả các dịch vụ của họ cũng như cách thức kết nối tới các dịch vụ này), các nhà lập trình đang tạo ra một dòng phần mềm mới, sử dụng XML để cung cấp các dịch vụ web (Web services) V.7.2 Vậy dịch vụ Web là gì? Một dịch vụ Web XML là một thực thể lập trình được cung cấp thành phần đặc biệt về chức năng, như logic của ứng dụng và có thể truy cập được đến bất kỳ hệ thống tiềm năng nào đang sử dụng các chuẩn Internet như XML và HTTP. Một dịch vụ Web XML có thể sử dụng như là một ứng dụng đơn lẻ hay được mở rộng cho các ứng dụng khác qua Internet, bởi vì sự truy cập này sử dụng một giao diện chuẩn chung. Do đó dịch vụ Web cho phép các hệ thống hỗn tạp làm việc với nhau như một đơn thể tính toán. Dịch vụ Web sử dụng thông điệp XML như một phương tiện cơ bản của việc truyền thông dữ liệu, làm cầu nối hệ thống khác nhau đang tồn tại có sử dụng các mô hình đối tượng không phù hợp, các hệ điều hành và ngôn ngữ lập trình khác nhau. Các nhà phát triển có thể tạo các ứng dụng được dệt thành từ nhiều dịch vụ Web khác nhau theo cách mà họ đã làm khi sử dụng các thành phần trong các chương trình phân tán (distributed application). Một đặc điểm cốt lõi của của dich vị Web là độ trừu tượng cao tồn tại giữa sự thực thi và sự tiêu thụ của một dịch vụ. Bằng cách sử dụng XML như cơ chế mà mà dịch vụ được tạo và truy cập, cả hai client và dịch vụ Web cung cấp đều tự do mà không cần biết gì về dữ liệu nhập, xuất ở phía bên kia hay vị trí của nó. Các dịch vụ web này có thể lập trình được và sử dụng lại được, giống như các component, chỉ có điểm khác là chúng có thể truy nhập được từ bất kỳ đâu trên thế giới thông qua Internet. Các chương trình sử dụng mô hình này sẽ chạy xuyên suốt qua nhiều web site, mang theo thông tin và dịch vụ từ các web site này, kết hợp lại rồi  kết xuất thông tin ra bất kỳ một thiết bị nào. Các doanh nghiệp và khách hàng được lợi gì từ điều này. Bởi vì dịch vụ web phá vỡ ranh giới giữa Internet, các ứng dụng đơn lẻ và các loại thiết bị tính toán, cho phép các doanh nghiệp tương tác với nhau dễ dàng hơn nhằm cung cấp các giải pháp tích hợp đa dạng. Các dịch vụ này cho phép khách hàng truy xuất thông tin mọi lúc, mọi nơi và trên mọi thiết bị. Sức mạnh của các dịch vụ web thực sự là kỳ diệu. Một công ty cung cấp dịch vụ thanh toán điện tử trực tuyến có thể chủ động giới thiệu các dịch vụ web của mình tới các đối tác mà không cần quan tâm tới platform họ đang sử dụng. Một hãng hàng không có thể kết nối hệ thống đặt chỗ trực tuyến của mình tới hệ thống của một đối tác cho thuê xe ô tô, nhờ đó mà cùng một lúc khách có thể đặt chỗ trên cả ô tô và máy bay. Một công ty đấu giá trực tuyến có thể thông báo các nhà thầu khi nào họ thua hoặc thắng thầu, hoặc có thể cộng tác với các hãng khác để cung cấp các dịch vụ vận chuyển và thanh toán. Các dịch vụ web giúp cho doanh nghiệp của ta có thể vượt ra ngoài biên giới của chính nó. Các dịch vụ web đang trên đà đi lên với các nhà lập trình như là một thế hệ kế tiếp của các hệ thống tính toán dựa trên Internet. Đây chính là thời điểm để cung cấp một platform cho phép đơn giản hoá quá trình xây dựng các giải pháp và một nền tảng tin cậy cho tích hợp các ứng dụng. Một platform như vậy cần phải được dựa trên một chuẩn mở để có thể làm việc với các ngôn ngữ lập trình, hệ điều hành và ứng dụng. Và nó cần kết hợp sức mạnh của PC, các thiết bị thông minh và sự phong phú của Internet. 2.7.3 Cách hoạt động của dịch vụ Web. Đối tượng sử dụng dịch vụ consumer, thường là trình duyệt phía máy khách gửi yêu cầu đến đối tượng mô tả và cung cấp thông tin về dịch vụ Web (discover service). Một khi đã có được thông tin về dịch vụ lời triệu gọi sẽ được gửi đến nơi cung cấp dịch vụ (provider). Quá trình sẽ diễn ra ngay trên đối tượng cung cấp dịch vụ và chuyển hồi đáp về phía trình khách theo yêu cầu đã đưa ra. 2.8 ASP.NET với dịch vụ Web. 2.8.1 Định nghĩa một dịch vụ Web. Khi ta tạo ra một dịch vụ Web trong ASP.NET , ta cần phải đặt chỉ thị @WebService tại phần trên cùng của file text với phần mở rộng là .asmx. Sự có mặt của file .asmx và chỉ thị @WebService có liên quan đến địa chỉ URL của dịch vụ Web với thành phần thực thi của dịch vụ Web. Tiếp đó ta tạo lớp dịch vụ định nghĩa các phương thức và thuộc tính, kiểu dữ liệu để thể hiện cho khách hàng của WebService. Cuối cùng ta thêm vào logic nghiệp vụ cho những phương thức này để yêu cầu dịch vụ Web xử lý chúng. Lớp XML Web Service mà ta đã định nghĩa có thể đặt một cách trực tiếp trong file .asmx hay ở trong một file khác riêng biệt. Nếu ta sử dụng một file riêng biệt, nó phải được biên dịch Để định nghĩa một dịch vụ Web mà thành phần thực thi của nó được đặt trên cùng một trang. Thêm vào chỉ thị thức thi ở phần trên cùng của file .asmx chỉ định lớp thực thi của nó và tên của ngôn ngữ lập trình được dùng. Thuộc tính Class có thể được đặt cho một class ở trong cùng một file assembly với chỉ thị WebService hay tới một class nằm trong một f

Các file đính kèm theo tài liệu này:

  • docTìm hiểu Microsoft ASP NET.doc