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
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 11
2.1.3 Mô hình .NET Framework. 13
2.1.4 Ngôn Ngữ Trung Gian Phổ Dụng 13
2.1.5 Cở Sở Hạ Tầng Của ứng Dụng Web 14
2.2 Giới thiệu ASP.NET 16
2.2.1 Tại sao ta lại quan tõm và phỏt triển mạng với ASP.NET 16
2.2.2 Tóm tắt các đặc điểm chính trong ASP.NET 17
2.3 Những điểm khác biệt của ASP so với ASP.NET 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
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
2.8.2 Định nghĩa một phương thức cho dịch vụ Web 61
2.8.3 Sử dụng dịch vụ Web 62
2.9 Bảo mật ứng dụng Web 63
Phần III: Xây dựng một ứng dụng với ASP.NET 66
3.1 Mục đích: 66
3.2Thiết kế Cơ sở dữ liệu 71
3.2.1 Định nghĩa các yêu cầu 71
3.2. Sơ đồ phân rã chức 72
3.2.3. Mô hình logic 73
3.2.4Mô hình Vật lý 75
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
108 trang |
Chia sẻ: huong.duong | Lượt xem: 1508 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bộ khung dịch vụ web thế hệ kế tiếp (ngwsf), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 fil
Các file đính kèm theo tài liệu này:
- P0029.doc