Tiếp nội dung phần 1, Giáo trình Lập trình trên nền Web: Phần 2 cung cấp cho người học những kiến thức như: Truy nhập cơ sở dữ liệu; Web Services. Mời các bạn cùng tham khảo để nắm chi tiết nội dung giáo trình!
CHƢƠNG 4: TRUY NHẬP CƠ SỞ DỮ LIỆU 4.1 Giới thiệu chung Khi phát triển ứng dụng Web cơng việc chủ yếu phải giải xử lý nghiệp vụ, phần lớn xử lý sở liệu Trong môi trƣờng phát triển Microsoft NET tất ứng dụng Web Form hay Win Form thống sử dụng chung thƣ viện để truy xuất thao tác sở liệu gọi ADO.NET (Active Data Object) ADO.NET tập lớp nằm thƣ viện lớp sở NET Framework, cho phép ứng dụng Windows (nhƣ C#, VB.NET) hay ứng dụng Web (nhƣ ASP.NET) thao tác dễ dàng với nguồn liệu Mục tiêu ADO.NET là: - Cung cấp lớp để thao tác sử liệu hai môi trƣờng phi kết nối (Disconected data) kết nối (Connected data) - Tích hợp chặt chẽ với XML (Extensible Markup Language) - Tƣơng tác với nhiều nguồn liệu thông qua mô tả liệu chung - Tối ƣu truy cập nguồn liệu (OLE DB & SQL Server) - Làm việc môi trƣờng Internet ADO.NET bao gồm hai Provider (hai thƣ viện) để thao tác với sở liệu là: OLE DB Provider (nằm System.Data.OLEDB) dùng để truy xuất đến sở liệu có hỗ trợ OLEDB; SQL Provider (nằm System.Data.SQLClient) chuyên dùng để truy xuất đến sở liệu SQL Server (không qua OLE DB nên nhanh hơn) Hiện nay, hãng thứ ba cung cấp Provider khác nhƣ : MySQL, Oracle… provider cho phép ứng dụng NET truy xuất đến sở liệu khơng phải Microsoft Hình 4.1 Vị trí ADO.NET kiến trúc net Framework Từ kiến trúc ta thấy rằng: ADO.NET thành phần nội (Instrict) NET Framework Do đƣợc sử dụng tất ngôn ngữ hỗ trợ NET nhƣ C#, VB.NET… mà khơng có khác biệt 4.2 Kiến trúc ADO.NET ADO.NET phần NET Framework, đƣợc xem “bộ thƣ viện lớp” chịu trách nhiệm xử lý liệu ngôn ngữ MS NET ADO.NET gồm hai thành phần cho việc truy xuất điều khiển liệu trình cung cấp liệu NET Framework (.NET Framework Data Provider) DataSet Mơ hình dƣới minh họa mối quan hệ trình cung cấp liệu NET Framework DataSet Hình 4.2 Kiến trúc ADO.NET Việc kết nối ứng dụng cở sở liệu thông qua ADO.NET theo chế độ Connected Disconnected Connected: Cơ chế yêu cầu phải thực kết nối với Database thực thao tác với liệu Các đối tƣợng chế là: + Connection: Đối tƣợng quản lý đóng/mở kết nối tới Database + Command: Đối tƣợng thực câu lệnh tƣơng tác truy vấn, rút trích liệu từ database sau thiết lập kết nối tới liệu trả kết + DataReader: Đối tƣợng xử lý đọc liệu từ sở liệu + DataAdapter: Đây đối tƣợng quan trọng ADO.NET cầu nối Database Dataset (Dataset đối tƣợng ngắt kết nối), đối tƣợng “ngắt kết nối” Dataset tƣơng tác trực tiếp với Database nên cần đối tƣợng trung gian lấy liệu từ Database DataAdapter DataAdpater thao tác với Database phải trì kết nối nên đƣợc liệt kê vào dạng “kết nối” nhƣng chất phục vụ cho việc “ngắt kết nối” Disconnected: Chỉ có đối tƣợng chịu trách nhiệm ngắt kết nối DataSet Nhiệm vụ DataSet nhận liệu từ DataAdapter xử lý DataSet đƣợc xem nhƣ Database nhớ gồm tất bảng, quan hệ… DataSet có nhiều đối tƣợng đƣợc xem “con” nhƣ: DataTable, cấp thấp DataTable có đối tƣợng DataRow, DataColumn, DataRelation Ngồi cịn có đối tƣợng nhóm nhƣ DataTableCollection, DataRowCollection, DataColumnCollection Việc sử dụng DataSet tiến lớn kiến trúc ADO.NET Hình 4.3 Cơ chế kết nối ADO.NET 4.3 Tìm hiểu trình cung cấp liệu ADO.NET ADO.NET hỗ trợ nhiều trình cung cấp liệu, trình cung cấp tƣơng tác với hệ quản trị sở liệu (DBMS) cụ thể Lợi ích phƣơng pháp trình cung cấp liệu cụ thể đƣợc lập trình để truy xuất đến thuộc tính DBMS mà đƣợc định trình cung cấp Lợi ích khác trình cung cấp liệu kết nối đến sử liệu mà không thông qua tầng ánh xạ trung gian lớp Hình 4.4 Các lớp code nguồn liệu Một trình cung cấp liệu tập hợp kiểu đƣợc định nghĩa namespace System.Data, cho biết cách để giao tiếp với nguồn liệu cụ thể Một trình cung cấp định nghĩa tập hợp kiểu lớp mà cung cấp chức Các đối tƣợng trình cung cấp liệu ADO.NET Đối tƣợng Lớp sở Giao diện Ý nghĩa Connection DbConnection IDbConnection Cung cấp khả kết nối ngắt kết nối với nguồn liệu Command DbCommand IDbCommand Trình bày truy vấn SQL stored procedure DataReader DbDataReader IDataReader IDataRecord Đọc nguồn liệu theo chiều DataAdapter DbDataAdapter IDataAdapter IDbDataAdapter Chuyển DataSets đối tƣợng gọi (caller) kho liệu Parameter IDataParameter Miêu tả tên gọi tham số bên IDbDataParameter truy vấn có tham số (parameterized query) IDbTransaction Đóng gói (Encapsulates) database transaction Transaction DbParameter DbTransaction Mặc dù tên đối tƣợng khác tùy thuộc trình cung cấp liệu (ví dụ: SqlConnection khác với OracleConnection khác với OdbcConnection khác với MySqlConnection) nhƣng đối tƣợng kế thừa từ lớp sở (base class) (DbConnection trƣờng hợp đối tƣợng kết nối) thi hành interface (nhƣ IDbConnection) Các trình cung cấp liệu ADO.NET đƣợc cung cấp Microsoft Data Provider Namespace Assembly OLE DB System.Data.OleDb System.Data.dll Microsoft SQL Server System.Data.SqlClient System.Data.dll Microsoft SQL Server System.Data.SqlServerCe System.Data.SqlServerCe.dll ODBC System.Data.Odbc System.Data.dll Oracle System.Data.OracleClient System.Data.OracleClient.dll Mobile Trình cung cấp liệu OLE DB ODBC hữu ích tƣơng tác với DBMS mà khơng định nghĩa trình cung cấp liệu NET cụ thể 4.4 Các namespace ADO.NET NET cung cấp số namespace cho ADO.NET, vài namespace đƣợc thể bảng sau: Namespace Ý nghĩa Microsoft.SqlServer.Server Namespace cung cấp loại phục vụ việc tích hợp CLR SQL Server 2005 đƣợc dễ dàng System.Data Namespace định nghĩa loại ADO.NET sở đƣợc sử dụng tất trình cung cấp liệu, bao gồm Interface phổ biến loại thể lớp ngắt kết nối (DataSet, DataTable, etc.) System.Data.Common Namespace chứa loại đƣợc dùng chung tất trình cung cấp ADO.NET, bao gồm lớp sở ảo (abstract base classe) phổ biến System.Data.Sql Namespace chứa loại mà cho phép nhận thể Microsoft SQL Server đƣợc cài đặt mạng cục hành System.Data.SqlTypes Namespace chứa loại liệu tự nhiên (native data types) đƣợc dùng Microsoft SQL Server Namespace System.Data: Namespace chứa loại đƣợc dùng chung tất trình cung cấp liệu ADO.NET Các thành viên System.Data Namespace Ý nghĩa Namespace Constraint Trình bày (Represent) ràng buộc cho đối tƣợng DataColumn cho DataColumn Trình bày column bên đối tƣợng DataTable DataRelation Trình bày mối quan hệ parent/child hai đối tƣợng DataTable DataRow Trình bày dịng bên đối tƣợng DataTable DataSet Trình bày vùng nhớ liệu bao gồm thành phần đối tƣợng DataTable có quan hệ với DataTable Trình bày bảng nhớ DataTableReader Cho phép xem xét DataTable DataView Trình bày view DataTable cho việc xếp, việc lọc, việc tìm kiếm, chỉnh sửa điều hƣớng IDataAdapter Định nghĩa cách hành xử (core behavior) đối tƣợng DataAdapter IDataParameter Định nghĩa cách hành xử (core behavior) đối tƣợng parameter IDataReader Định nghĩa cách hành xử (core behavior) đối tƣợng DataReader IDbCommand Định nghĩa cách hành xử (core behavior) đối tƣợng command IDbDataAdapter Kế thừa IDataAdapter để cung cấp thêm chức đối tƣợng DataAdapter IDbTransaction Định nghĩa cách hành xử cốt lõi (core behavior) đối tƣợng Transaction IDbConnection Interface: Đƣợc thi hành đối tƣợng connection trình cung cấp liệu Interface định nghĩa tập hợp thành phần đƣợc dùng để tạo kết nối đến kho liệu cho phép lấy đƣợc đối tƣợng Transaction trình cung cấp liệu Dƣới định nghĩa IDbConnection public interface IDbConnection : IDisposable { string ConnectionString { get; set; } int ConnectionTimeout { get; } string Database { get; } ConnectionState State { get; } IDbTransaction BeginTransaction(); IDbTransaction BeginTransaction(IsolationLevel il); void ChangeDatabase(string databaseName); void Close(); IDbCommand CreateCommand(); void Open(); } Phƣơng thức Close() tƣơng đƣơng mặt chức với việc gọi phƣơng thức Dispose() trực tiếp gián tiếp bên phạm vi using C# IDbTransaction Interface: Việc nạp chồng phƣơng thức BeginTransaction() (overloaded BeginTransaction() method) đƣợc định nghĩa IDbConnection cung cấp truy xuất đến đối tƣợng Transaction trình cung cấp Việc sử dụng thành phần đƣợc định nghĩa IDbTransaction, tƣơng tác với phiên chuyển giao (transactionnal session) kho liệu dƣới public interface IDbTransaction : IDisposable { IDbConnection Connection { get; } IsolationLevel IsolationLevel { get; } void Commit(); void Rollback(); } IDbCommand Interface: IDbCommand Interface đƣợc thi hành đối tƣợng command trình cung cấp liệu Đối tƣợng command cho phép thao tác với câu lệnh SQL, Stored Procedures truy vấn có tham số (parameterized queries) Trong phần bổ sung, đối tƣợng command truy xuất đến DataReader trình cung cấp liệu thông qua việc nạp chồng phƣơng thức ExecuteReader() (overloaded ExecuteReader() method) public interface IDbCommand : IDisposable { string CommandText { get; set; } int CommandTimeout { get; set; } CommandType CommandType { get; set; } IDbConnection Connection { get; set; } IDataParameterCollection Parameters { get; } IDbTransaction Transaction { get; set; } UpdateRowSource UpdatedRowSource { get; set; } void Cancel(); IDbDataParameter CreateParameter(); int ExecuteNonQuery(); IDataReader ExecuteReader(); IDataReader ExecuteReader(CommandBehavior behavior); object ExecuteScalar(); void Prepare(); } Interface IDbDataParameter IDataParameter: Interface cung cấp truy xuất đến tập hợp loại lớp tùy ý (compliant) IDbDataParameter (ví dụ: đối tƣợng tham số): public interface IDbDataParameter : IDataParameter { byte Precision { get; set; } byte Scale { get; set; } int Size { get; set; } } IDbDataParameter kế thừa (extend) interface IDataParameter để có đƣợc hành xử (behaveors) bổ sung sau đây: public interface IDataParameter { DbType DbType { get; set; } ParameterDirection Direction { get; set; } bool IsNullable { get; } string ParameterName { get; set; } string SourceColumn { get; set; } DataRowVersion SourceVersion { get; set; } object Value { get; set; } } Chức Interface IDbDataParameter IDataParameter cho phép trình bày tham số bên lệnh SQL (bao gồm Stored Procedures) qua đối tƣợng parameter ADO.NET cụ thể kí tự chuỗi hard-coded IDbDataAdapter and IDataAdapter Interfaces: IDbDataAdapter Interface định nghĩa tập hợp thuộc tính mà đƣợc dùng để trì câu lệnh SQL cho hoạt động có liên quan đến select, insert, update delete public interface IDbDataAdapter : IDataAdapter { IDbCommand DeleteCommand { get; set; } IDbCommand InsertCommand { get; set; } IDbCommand SelectCommand { get; set; } IDbCommand UpdateCommand { get; set; } } Có bốn thuộc tính đƣợc thêm vào DataAdapter đƣợc định nghĩa Interface sở, IDataAdapter Interface định nghĩa chức loại DataAdapter: khả chuyển DataSet đối tƣợng gọi kho liệu bên dƣới sử dụng phƣơng thức Fill() Update() IDataAdapter Interface cho phép ánh xạ tên cột bảng liệu thành tên hiển thị thân thiện với ngƣời dùng thơng qua thuộc tính TableMappings public interface IDataAdapter { MissingMappingAction MissingMappingAction { get; set; } MissingSchemaAction MissingSchemaAction { get; set; } ITableMappingCollection TableMappings { get; } int Fill(System.Data.DataSet dataSet); DataTable[] FillSchema(DataSet dataSet, SchemaType schemaType); IDataParameter[] GetFillParameters(); int Update(DataSet dataSet); } IDataReader and IdataRecord: Interface IDataReader trình bày hành sử (behaviors) phổ biến đƣợc hỗ trợ đối tƣợng DataReader cho trƣớc public interface IDataReader : IDisposable, IDataRecord { int Depth { get; } bool IsClosed { get; } int RecordsAffected { get; } void Close(); DataTable GetSchemaTable(); bool NextResult(); bool Read(); } IDataReader kế thừa IDataRecord, định nghĩa số thành phần cho phép trích giá trị đƣợc phân loại cách rõ ràng Dƣới danh sách không đầy đủ phƣơng thức GetXXX() khác đƣợc định nghĩa IDataRecord public interface IDataRecord { int FieldCount { get; } object this[ string name ] { get; } object this[ int i ] { get; } bool GetBoolean(int i); byte GetByte(int i); char GetChar(int i); DateTime GetDateTime(int i); Decimal GetDecimal(int i); float GetFloat(int i); short GetInt16(int i); int GetInt32(int i); long GetInt64(int i); bool IsDBNull(int i); } Phƣơng thức IDataReader.IsDBNull() thiết lập giá trị cho trƣờng null 4.5 Các lớp thao tác với sở liệu 4.5.1 Lớp Connection Để kết nối với sở liệu đọc mẫu tin sử dụng đối tƣợng DataReader, thực bƣớc sau: - Chỉ định, cấu hình mở đối tƣợng kết nối - Chỉ định cấu hình đối tƣợng Command, rõ đối tƣợng Connection nhƣ Constructor có đối số qua thuộc tính Connection - Gọi ExecuteReader() đối tƣợng Command đƣợc cấu hình - Xử lý mẫu tin sử dụng phƣơng thức Read() DataReader dạng tài liệu giúp giải vấn đề tƣơng thích XML hồn tồn phù hợp với u cầu Nó trở thành tảng cho việc xây dựng Web Services XML có hai vai trị chính: - Trao đổi liệu hệ thống sử dụng Web Services - Mô tả giao thức sử dụng dịch vụ Web b) SOAP – Simple Object Access Protocol SOAP (Simple Object Access Protocol) giao thức dùng để truy xuất thông tin từ Web Services thông qua dạng thông điệp chung SOAP đƣợc Microsoft đề xuất vào năm 1998 Hiện nay, thuộc quyền quản lý cải tiến tổ chức W3C SOAP giao thức dựa tảng XML, mơ tả cách định dạng, đóng gói thơng tin thơng điệp trao đổi chúng thông qua mạng mà không phụ thuộc vào ngôn ngữ hay môi trƣờng thực thi Đơn vị trao đổi thông tin giao thức SOAP thông điệp SOAP (SOAP Message) Mỗi thông điệp SOAP đƣợc định thẻ root chứa thành phần SOAP Header SOAP Body SOA Header chứa thông tin cần thiết cho việc thực chuyển thông điệp hay chế định danh, bảo mật SOAP Body chứa liệu ứng dụng c) WSDL – Web Services Description Language WSDL (Web Services Description Language) dạng tài liệu dựa cú pháp XML để mô tả dịch vụ Web Lúc đầu đƣợc Microsoft, IBM Ariba để xuất, nhƣng đƣợc quản lý tổ chức W3C Một tài liệu WSDL cung cấp tài liệu cho hệ thống phân tán nhƣ mô tả chức Web Services, cách thức tƣơng tác, thông điệp tƣơng ứng cho theo tác request hay response Sau cấu trúc tài liệu Một tài liệu WSDL bao gồm hai thành phần chính: Phần trừu tƣợng (abstract definitions) Error! Reference source not found phần thực (concrete definitions)Error! Reference source not found Phần trừu tƣợng bao gồm thông tin đƣợc chứa thẻ types, message, operation port types Phần thực chứa thông tin thẻ bindings ports Mỗi thành phần có tham chiếu đến thành phần khác đƣợc mơ tả nhƣ hình sau: Hình 5.1 Các thành phần WSDL Mỗi thành phần có chức riêng cụ thể nhƣ sau: - types: định kiểu liệu cho thông điệp gửi nhận - messages: thành phần trừu tƣợng mô tả cách thức giao tiếp client Server - porttypes: mô tả ánh xạ thông điệp – đƣợc mô tả phần tử messages phƣơng thức (operations) - binding: xác định giao thức đƣợc sử dụng giao tiếp với dịch vụ Web Định nghĩa kiểu binding (RPC/Document) giao thức vận chuyển binding định nghĩa operations - Port: định địa điểm kết nối đến Web Services, thƣờng chuỗi URL d) UDDI – Universal Description, Discovery, and Integration UDDI (Universal Description, Discovery, and Integration) Error! Reference source not found.Error! Reference source not found.Error! Reference source not found.Error! Reference source not found đƣợc đề xuất Microsoft, IBM Ariba vào năm 2000 Ngày nay, UDDI thuộc quyền quản lý phát triển tổ chức OASIS (Organization for the Advancement of Structured Information Standards) Nó đƣợc xây dựng nhằm mục đích cung cấp khả cho phép cơng bố, tổng hợp tìm kiếm dịch vụ Web UDDI đƣa tập hàm API đƣợc chia làm phần: Inquiry API (dùng để tìm kiếm truy xuất) Publisher‟s API (cơng bố Web Services) Thông tin tổ chức UDDI đƣợc chia thành phần: - White pages: Liệt kê thông tin nhà cung cấp dịch vụ Web bao gồm địa chỉ, thông tin liên lạc định danh - Yellow pages: Phân loại dịch vụ theo tổ chức hay nhóm dịch vụ địa điểm đặt dịch vụ - Green pages: Cung cấp thông tin dịch vụ Web đƣợc, cách thức truy xuất Web Services e) Kết luận Thơng qua phần để có có nhìn tồn cảnh Web Services, kỹ thuật cốt lõi việc áp dụng ứng dụng phân tán dựa vào SOAP, WSDL UDDI: Các nhà cung cấp Web Services mô tả Web Services tài liệu WSDL công bố thông qua việc đăng ký UDDI sử dụng Publisher‟s API (dựa tảng SOAP) Một service requester sử dụng UDDI Inquiry API để tìm kiếm service provider tƣơng ứng với yêu cầu bên hệ thống đăng ký UDDI Nếu có dịch vụ đƣợc tìm thấy, việc làm dựa vào để tham chiếu đến tài liệu WSDL tƣơng ứng Một SOAP request đƣợc tạo tƣơng ƣng với Web Services đƣợc tìm thấy SOAP request đƣợc gửi đến service provider provider xử lý trả 5.3 Tạo Web Services Từ menu File | New | New WebSite , cửa sổ New Web Site xuất thiết lập nhƣ hình dƣới để tạo ứng dụng Web Services tên WS_MinhHoa sử dụng Web Server IIS Hình 5.2 Hộp thoại tạo ứng dụng Web Services Sau WS_MinhHoa đƣợc tạo viết lệnh tập tin App_Code/Service.cs nhƣ sau using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service () { } [WebMethod] public string LayGioHienHanh() { return DateTime.Now.ToString("hh:mm:ss"); } } Trong Web Services ta khai báo phƣơng thức tên LayGioHienHanh dùng để lấy hành phía Server 5.4 Kiểm tra Web Services Sau xây dựng thành công Web Services, trƣớc đƣa vào sử dụng nên tiến hành kiểm tra Web Services Các Web Services đƣợc xây dựng VS.Net tự động phát sinh trang kiểm tra tƣơng ứng Thi hành ứng dụng giao diện sau liệt kê danh sách phƣơng thức Web có Web Services Hình 5.3 Màn hình kiểm tra Web Services Trang kiểm tra Web Services liệt kê phƣơng thức có Web Services đƣợc chọn thi hành Chọn phƣơng thức cần kiểm tra Ở đây, nhấp vào liên kết LayGioHienHanh để gọi phƣơng thức Hình 5.4 Thực thi phƣơng thức LayGioHienHanh Nhấn nút Invoke để thực thi phƣơng thức LayGioHienHanh kết nhƣ hình sau Hình 5.4 Kết trả từ phƣơng thức 5.5 Sử dụng Web Services 5.5.1 Sử dụng Web Services tạo Sau hồn tất việc xây dựng, kiểm tra độ tin cậy tính xác Web Services tiến hành đƣa Web Services vào sử dụng Để sử dụng Web Services, Client cần phải biết Web Services hỗ trợ phƣơng thức nào, phƣơng thức cần có tham số nào, kết trả sao… Những thông tin Web Services đƣợc mô tả tài liệu WSDL (Web Services Description Language) WSDL định dạng chuẩn để mô tả Web Services, sử dụng ngôn ngữ XML Có thể xem WSDL Web Services cách thêm vào chuỗi tham số wsdl vào sau chuỗi URL Tạo ứng dụng Web Consumer, sử dụng ứng dụng để gọi đến Web Services ( ASP.Net Window Form, Console , ) Trong ví dụ sử dụng ASP.Net Tạo ứng dụng ASP.Net gồm trang LayGioHienHanh.aspx giao diện nhƣ sau : Hình 5.5 Giao diện trang sử dụng Web Services Thiết lập tham chiếu đến ứng dụng Web Service WS_MinhHoa: Từ ứng dụng ASP.Net, nhấp chọn References, nhấp phải chuột chọn Add Web Reference Hình 5.6 Cửa sổ chọn Add Web Reference Trên cửa sổ Add Web Reference nhấp vào liên kết Web Services on the local machine Hình 5.7 Màn hình liên kết Web Services Sau chọn service nhƣ hình sau: Hình 5.8 Chọn Web Services máy cục Hình 5.9 Kiển tra Web Services Nhấn Add Reference để thêm tham chiếu vào ứng dụng Hình 5.10 Đƣa Web Services tham chiếu vào ứng dụng Lệnh xử lý kiện cho trang LayGioHienHanh.aspx using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MinhHoa { public partial class HienThiGioHienHanh : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnHienThi_Click(object sender, EventArgs e) { //khai báo đối tượng Service localhost.Service s = new localhost.Service(); //gọi phương thức lbGioHienHanh.Text = s.LayGioHienHanh(); } } } Thi hành trang LayGioHienHanh.aspx sau nhấn nút hiển thị để xem kết Hình 5.11 Kết sử dụng dịch vụ Web Services 5.5.2 Sử dụng Web Services đƣợc cung cấp mạng Để biết đƣợc Web Services đƣợc cung cấp miễn phí mạng dùng google để thực tìm kiếm Ở đây, giới thiệu đến trang: http://www.webservicex.net cung cấp nhiều Web Services hữu ích Trong phần hƣớng dẫn sử dụng Web Services để lấy thông tin tỷ giá ngoại tệ, thông tin thời tiết, thành phố quốc gia đơn vị tiền tệ quốc gia giới Các bƣớc thực nhƣ sau: - Chọn Add Web Reference… từ thực đơn ngữ cảnh ứng dụng Hình 5.12 Thêm Web Services vào ứng dụng - Nhập thông tin đƣờng dẫn Web Services, nhấn biểu tƣợng để thực việc xác thực Web Services - Nếu Web Services đƣợc xác thực thành công, thông tin mô tả Web Services đƣợc hiển thị phía bên dƣới Trong ví dụ lần lƣợt xác thực Web Services sau: http://www.webservicex.net/globalweather.asmx?WSDL (Thời tiết) http://www.webservicex.net/CurrencyConvertor.asmx?WSDL (Tỷ giá) Hình 5.13 Tham chiếu Web Services - Đặt tên tham chiếu cho Web Services: Web reference name - Nhấn Add Reference để hoàn tất tham chiếu Web Services Bảng sau mô tả phƣơng thức tài liệu hƣớng dẫn Web Services Hình 5.14 Danh sách Web Services đƣợc tham chiếu - Thiết kế hình Hình 5.15 Màn hình thiết kế - Viết lệnh xử lý Ws_Thoi_tiet.GlobalWeather hn= new Ws_Thoi_tiet.GlobalWeather(); Ws_Thoi_tiet.GlobalWeather = new Ws_Thoi_tiet.GlobalWeather(); Ws_Ty_gia.CurrencyConvertor tgusd = new Ws_Ty_gia.CurrencyConvertor(); Ws_Ty_gia.CurrencyConvertor tgeur = new Ws_Ty_gia.CurrencyConvertor(); Ws_Ty_gia.CurrencyConvertor tggbp = new Ws_Ty_gia.CurrencyConvertor(); lblUSD.Text = tgusd.ConversionRate(Ws_Ty_gia.Currency.USD, Ws_Ty_gia.Currency.VND).ToString(); lblEUR.Text = tgeur.ConversionRate(Ws_Ty_gia.Currency.EUR, Ws_Ty_gia.Currency.VND).ToString(); lblGBP.Text = tggbp.ConversionRate(Ws_Ty_gia.Currency.GBP, Ws_Ty_gia.Currency.VND).ToString(); lblHN.Text = hn.GetWeather("Ha Noi", "Viet Nam"); lblHCM.Text = hcm.GetWeather("Ho Chi Minh", "Viet Nam"); Tỷ giá ngoại tệ thông tin thời tiết đƣợc lấy từ Web Services Lúc thi hành giá trị thay đổi Hình 5.16 Màn hình kết 5.6 Bài tập Thiết kế Web Service cung cấp dịch vụ phép tính (+, -, *, /) kiểm tra phép tốn thơng qua việc sử dụng Web Services môi trƣờng phát triển Tạo Web Services cho việc chuyển đổi tiền tệ Sau kiểm tra kết Tạo Web Services cung cấp ứng dụng xem giá vàng SJC Sau kiểm tra kết Xây dựng Web Services truy xuất sở liệu theo yêu cầu sau: Tạo sở liệu tên MyAccount gồm bảng tên UserAccount chứa thông tin sau: UserName (nvarchar 15 ), Password (nvarchar 100), BirthDate (DateTime), Adress (nvarchar 50 ), Email (nvarchar 50 ) Tạo Web Service thực chức sau : - AddNewAccount (…) : phƣơng thức dung để thêm Account Password đƣợc mã hóa theo thuật toán ( MD5 SHA1, chọn ), trƣớc thêm cần kiểm tra Account có tồn hay không? thông qua phƣơng thức CheckAccount - DeleteAccount (….): dùng để xóa Account - UpdateAccount(….) : cập nhật thơng tin Account - GetAccount() : lấy tất thông tin Account - CheckAccount(….) : Kiểm tra Account có tồn hay khơng? Tạo trang aspx sử dụng Web Service mô tả nhƣ sau : - Trang Login.aspx: kiểm tra Account, trang link với trang CreateAccount.aspx Nếu login thành cơng chuyển sang trang MaintainAccount.aspx - Trang CreateAccount.aspx : dùng để thêm Account.Trên trang có button dùng để kiểm tra UserName có tồn khơng? mà khơng cần Postback Server Trang link với trang Login.aspx - Trang MaintainAccount.aspx : trang gồm GridView cho phép xem, xóa, sửa thông tin Account Xây dựng Web Services truy xuất sở liệu theo yêu cầu sau: Tạo sở liệu tên KhachHang gồm bảng tên tbl_KhachHang chứa thông tin sau: Tạo Web Service thực chức sau : - Đọc danh sách khách hàng từ sở liệu - Thêm khách hàng - Xóa khách hàng TÀI LIỆU THAM KHẢO [1] Ngọc Bích C# dành cho ngƣời tự học Tập 1,2 NXB Thông tin truyền thông 2011 [2] Phạm Hữu Khang C# 2005 tập Lập trình ASP.NET 2.0 tập 1, 2, Nhà xuất lao động xã hội 2009 [3] Phạm Hữu Khang Lập trình ASP.Net NXB Lao Động xã hội 2007 [4] Phạm Hữu Khang Xây dựng ứng dụng tuyển dụng trực tuyến ASP.NET 2.0 SQL Server NXB Lao Động xã hội 2007 [5] Nguyễn Văn Lân Kỹ thuật xây dụng ứng dụng ASP.NET – tập 1, 2, Nhà xuất lao động xã hội 2008 [6] Hồng Phúc Lập trình thiết kế Web ASP.Net với ví dụ C# NXB Thống kê 2005 ... hiểu trình cung cấp liệu ADO.NET ADO.NET hỗ trợ nhiều trình cung cấp liệu, trình cung cấp tƣơng tác với hệ quản trị sở liệu (DBMS) cụ thể Lợi ích phƣơng pháp trình cung cấp liệu cụ thể đƣợc lập trình. .. Mobile Trình cung cấp liệu OLE DB ODBC hữu ích tƣơng tác với DBMS mà không định nghĩa trình cung cấp liệu NET cụ thể 4.4 Các namespace ADO.NET NET cung cấp số namespace cho ADO.NET, vài namespace... Namespace Ý nghĩa Microsoft.SqlServer.Server Namespace cung cấp loại phục vụ việc tích hợp CLR SQL Server 20 05 đƣợc dễ dàng System.Data Namespace định nghĩa loại ADO.NET sở đƣợc sử dụng tất trình