Giáo trình Lập trình trên nền Web (Phần 2)
Khi phát triển các ứng dụng trên nền Web thì công việc chủ yếu phải giải quyết là
xử lý các nghiệp vụ, trong đó phần lớn là xử lý cơ sở dữ liệu. Trong môi trường phát triển
Microsoft .NET tất cả các ứng dụng Web Form hay Win Form đều thống nhất sử dụng
chung một bộ thư viện để truy xuất và thao tác cơ sở dữ liệu gọi là ADO.NET (Active
Data Object).
ADO.NET là một tập các lớp nằm trong bộ thư viện lớp cơ sở của .NET
Framework, cho phép các ứng dụng Windows (như C#, VB.NET) hay ứng dụng Web
(như ASP.NET) thao tác dễ dàng với các nguồn dữ liệu. Mục tiêu chính của ADO.NET
là:
- Cung cấp các lớp để thao tác cơ sử dữ liệu trong cả hai môi trường là phi kết nối
(Disconected data) và 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 dữ liệu thông qua mô tả dữ liệu chung.
- Tối ưu truy cập nguồn dữ liệu (OLE DB & SQL Server).
- Làm việc trên môi trường Internet.
ADO.NET bao gồm hai Provider (hai bộ thư viện) để thao tác với các cơ sở dữ liệu
là: OLE DB Provider (nằm trong System.Data.OLEDB) dùng để truy xuất đến cơ sở dữ
liệu nào có hỗ trợ OLEDB; SQL Provider (nằm trong System.Data.SQLClient) chuyên
dùng để truy xuất đến cơ sở dữ liệu SQL Server (không qua OLE DB nên nhanh hơn).
Hiện nay, các hãng thứ ba cung cấp các Provider khác như : MySQL, Oracle
provider cho phép ứng dụng .NET truy xuất đến cơ sở dữ liệu không phải của Microsoft.
![Giáo trình Lập trình trên nền Web (Phần 2) trang 1 Giáo trình Lập trình trên nền Web (Phần 2) trang 1](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-1_kWzUfoCnng.jpg)
Trang 1
![Giáo trình Lập trình trên nền Web (Phần 2) trang 2 Giáo trình Lập trình trên nền Web (Phần 2) trang 2](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-2_yd8DhZb153.jpg)
Trang 2
![Giáo trình Lập trình trên nền Web (Phần 2) trang 3 Giáo trình Lập trình trên nền Web (Phần 2) trang 3](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-3_VeJdw5GSl7.jpg)
Trang 3
![Giáo trình Lập trình trên nền Web (Phần 2) trang 4 Giáo trình Lập trình trên nền Web (Phần 2) trang 4](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-4_8zOBDOYHUq.jpg)
Trang 4
![Giáo trình Lập trình trên nền Web (Phần 2) trang 5 Giáo trình Lập trình trên nền Web (Phần 2) trang 5](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-5_xkfFRGVmFV.jpg)
Trang 5
![Giáo trình Lập trình trên nền Web (Phần 2) trang 6 Giáo trình Lập trình trên nền Web (Phần 2) trang 6](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-6_11WbsvwKrz.jpg)
Trang 6
![Giáo trình Lập trình trên nền Web (Phần 2) trang 7 Giáo trình Lập trình trên nền Web (Phần 2) trang 7](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-7_r4ZobbQje9.jpg)
Trang 7
![Giáo trình Lập trình trên nền Web (Phần 2) trang 8 Giáo trình Lập trình trên nền Web (Phần 2) trang 8](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-8_gAeyuqXF9S.jpg)
Trang 8
![Giáo trình Lập trình trên nền Web (Phần 2) trang 9 Giáo trình Lập trình trên nền Web (Phần 2) trang 9](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-9_tGjtXFV0dz.jpg)
Trang 9
![Giáo trình Lập trình trên nền Web (Phần 2) trang 10 Giáo trình Lập trình trên nền Web (Phần 2) trang 10](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/image/2022/01/02/3713/giao-trinh-lap-trinh-tren-nen-web-phan-2-trang-10_ZDrEVwMxtU.jpg)
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Lập trình trên nền Web (Phần 2)
![Giáo trình Lập trình trên nền Web (Phần 2) Giáo trình Lập trình trên nền Web (Phần 2)](https://s1.tailieuebook.com/piwus9eq3x7rbsx0/thumb/2022/01/02/giao-trinh-lap-trinh-tren-nen-web-phan-2_6gB3Xf3rGu.jpg)
ng chung thƣờng gọi là ngôn ngữ mô tả dịch vụ Web (Web Services Description Language – WSDL). Các hệ thống khác thực hiện tƣơng tác với dịch vụ Web thông qua giao thức SOAP (Simple Object Access Protocol). Đây là giao thức giúp trao đổi thông tin sử dụng HTTP kết hợp với việc sử dụng đặc tả XML cùng với một số chuẩn khác. Nhƣ vậy, mục đích chính của việc phát triển của dịch vụ Web là cho phép giao tiếp và trao đổi các chức năng, thông tin, dữ liệu giữa các ứng dụng một cách dễ dàng mà không cần quan tâm đến môi trƣờng phát triển, ngôn ngữ lập trình bởi tất cả đã đƣợc quy về một định dạng chung. Bản chất của Web Services là một tập hợp các đối tƣợng, các phƣơng thức đƣợc thực thi và công bố trên mạng để có thể đƣợc gọi từ xa thông qua các ứng dụng khác. 5.2. Kiến trúc và các thành phần Web Services Công nghệ Web Services ra đời dựa trên sự kết hợp các nền tảng công nghệ sẵn có trƣớc đó. Nó là sự tích hợp các ứng dụng dựa trên Web sử dụng các chuẩn mở nhƣ XML, SOAP, WSDL, UDDI. Trong đó, XML đƣợc sử dụng để mô tả dữ liệu, SOAP đóng vai trò giao thức truyền tải dữ liệu, WSDL mô tả cho dịch vụ Web và UDDI liệt kê danh sách các dịch vụ Web đang hoạt động. a) XML – Extensible Markup Language XML do W3C đề ra và đƣợc phát triển từ SGML. XML là một ngôn ngữ đánh dấu mở rộng với cấu trúc do ngƣời dùng định nghĩa. Về hình thức, XML có cú pháp tƣơng tự HTML, nhƣng không tuân theo một đặc tả quy ƣớc nhƣ HTML. Ngƣời sử dụng hay các chƣơng trình có thể quy ƣớc định dạng các thẻ XML, ngoài ra không chứa bất cứ thông tin nào khác về cách sử dụng hay hiển thị những thông tin ấy. Web Services là sự kết hợp của nhiều thành phần khác nhau và nó hỗ trợ tƣơng tác giữa các hệ thống đƣợc cài đặt trên các môi trƣờng khác nhau. Do đó, cần sử dụng một dạng tài liệu có thể giúp giải quyết vấn đề tƣơng thích và XML hoàn toàn phù hợp với yêu cầu trên. Nó đã trở thành nền tảng cho việc xây dựng các Web Services. XML có hai vai trò chính: - Trao đổi dữ liệu trong hệ thống sử dụng Web Services. - Mô tả các giao thức sử dụng trong dịch vụ Web. b) SOAP – Simple Object Access Protocol SOAP (Simple Object Access Protocol) là giao thức dùng để truy xuất thông tin từ Web Services thông qua một dạng thông điệp chung. SOAP đƣợc Microsoft đề xuất vào năm 1998. Hiện nay, nó thuộc quyền quản lý và cải tiến bởi tổ chức W3C. SOAP là một giao thức dựa trên nền tảng XML, mô tả cách định dạng, đóng gói thông tin của các thông điệp và trao đổi chúng thông qua mạng mà không phụ thuộc vào bất kỳ ngôn ngữ hay môi trƣờng thực thi nào. Đơn vị trao đổi thông tin cơ bản của giao thức SOAP là thông điệp SOAP (SOAP Message). Mỗi thông điệp SOAP sẽ đƣợc chỉ định bởi một thẻ root chứa 2 thành phần là SOAP Header và SOAP Body. SOA Header chứa các thông tin cần thiết cho việc thực hiện chuyển thông điệp hay cơ chế định danh, bảo mật. SOAP Body chứa dữ liệu ứng dụng. c) WSDL – Web Services Description Language WSDL (Web Services Description Language) là một dạng tài liệu dựa trên cú pháp XML để mô tả các dịch vụ Web. Lúc đầu nó đƣợc Microsoft, IBM và Ariba để xuất, nhƣng hiện nay đƣợc quản lý bởi tổ chức W3C. Một tài liệu WSDL sẽ cung cấp tài liệu cho các hệ thống phân tán nhƣ mô tả chức năng của một Web Services, cách thức tƣơng tác, các thông điệp tƣơng ứng cho các theo tác request hay response. Sau đây là cấu trúc cơ bản của một 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 và phần hiện thực (concrete definitions)Error! Reference source not found.. Phần trừu tƣợng bao gồm các thông tin đƣợc chứa các thẻ types, message, operation và port types. Phần hiện thực chứa thông tin trong các thẻ bindings và ports. Mỗi thành phần sẽ có một tham chiếu đến một thành phần khác đƣợc mô tả nhƣ hình sau: Hình 5.1. Các thành phần của WSDL Mỗi thành phần có một chức năng riêng cụ thể nhƣ sau: - types: chỉ định kiểu dữ liệu cho các thông điệp gửi và nhận. - messages: là một thành phần trừu tƣợng mô tả cách thức giao tiếp giữa client và Server - porttypes: mô tả ánh xạ giữa các thông điệp – đƣợc mô tả trong phần tử messages và các phƣơng thức (operations). - binding: xác định giao thức nào đƣợc sử dụng khi giao tiếp với dịch vụ Web. Định nghĩa kiểu binding (RPC/Document) và giao thức vận chuyển. binding cũng định nghĩa các operations. - Port: chỉ định địa chỉ hoặc điểm kết nối đến Web Services, nó thƣờng là một 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 bởi Microsoft, IBM và Ariba vào năm 2000. Ngày nay, UDDI thuộc quyền quản lý và phát triển bởi 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ả năng cho phép công bố, tổng hợp và tìm kiếm các dịch vụ Web. UDDI đƣa ra một tập các hàm API đƣợc chia làm 2 phần: Inquiry API (dùng để tìm kiếm và truy xuất) và Publisher‟s API (công bố các Web Services). Thông tin tổ chức trong UDDI đƣợc chia thành 3 phần: - White pages: Liệt kê thông tin của các nhà cung cấp dịch vụ Web bao gồm địa chỉ, thông tin liên lạc và định danh. - Yellow pages: Phân loại dịch vụ theo tổ chức hay nhóm dịch vụ hoặc địa điểm đặt các dịch vụ. - Green pages: Cung cấp thông tin về các dịch vụ Web đƣợc, về cách thức truy xuất các Web Services đó. e) Kết luận Thông qua các phần trên để có một có cái nhìn toàn cảnh về Web Services, các kỹ thuật cốt lõi của việc áp dụng các ứng dụng phân tán dựa vào SOAP, WSDL và UDDI: Các nhà cung cấp Web Services sẽ mô tả Web Services của mình trong một tài liệu WSDL và công bố thông qua việc đăng ký UDDI sử dụng Publisher‟s API (dựa trên nền tảng SOAP). Một service requester sử dụng UDDI Inquiry API để tìm kiếm các service provider tƣơng ứng với yêu cầu bên trong hệ thống đăng ký UDDI. Nếu có một dịch vụ nào đó đƣợc tìm thấy, việc làm tiếp theo là dựa vào để tham chiếu đến tài liệu WSDL tƣơng ứng. Một SOAP request sẽ đƣợc tạo ra tƣơng ƣng với Web Services đƣợc tìm thấy. SOAP request sẽ đƣợc gửi đến service provider và provider xử lý trả về. 5.3. Tạo Web Services Từ menu File | New | New WebSite..., cửa sổ New Web Site xuất hiện 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 khi WS_MinhHoa đƣợc tạo viết lệnh trong 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 = "")] [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 này ta khai báo một phƣơng thức tên LayGioHienHanh dùng để lấy giờ hiện hành phía Server. 5.4. Kiểm tra Web Services Sau khi xây dựng thành công Web Services, trƣớc khi đƣ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 trong VS.Net tự động phát sinh ra các trang kiểm tra tƣơng ứng. Thi hành ứng dụng giao diện sau đây liệt kê danh sách phƣơng thức Web hiện có trong Web Services. Hình 5.3. Màn hình kiểm tra Web Services Trang kiểm tra Web Services sẽ liệt kê các phƣơng thức hiện có trong 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 này. 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 quả nhƣ màn hình sau . Hình 5.4 Kết quả trả về từ phƣơng thức 5.5. Sử dụng Web Services 5.5.1. Sử dụng Web Services do mình tạo Sau khi hoàn tất việc xây dựng, kiểm tra độ tin cậy và tính chính xác của Web Services sẽ tiến hành đƣa Web Services đi vào sử dụng. Để sử dụng một Web Services, Client cần phải biết Web Services đó hỗ trợ những phƣơng thức nào, phƣơng thức cần có những tham số nào, kết quả trả về ra sao Những thông tin này của một Web Services đƣợc mô tả bởi tài liệu WSDL (Web Services Description Language). WSDL là định dạng chuẩn để mô tả các Web Services, sử dụng ngôn ngữ XML. Có thể xem WSDL của một Web Services bằng cách thêm vào chuỗi tham số wsdl vào sau chuỗi URL. Tạo ứng dụng Web Consumer, có thể sử dụng bất kỳ ứng dụng nào để gọi đến Web Services ( ASP.Net. Window Form, Console ,...). Trong ví dụ này sử dụng ASP.Net. Tạo ứng dụng ASP.Net gồm một 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 trên máy cục bộ 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ý sự 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 quả. Hình 5.11. Kết quả sử dụng dịch vụ Web Services 5.5.2. Sử dụng Web Services đƣợc cung cấp trên mạng Để biết đƣợc những Web Services đƣợc cung cấp miễn phí trên mạng dùng google để thực hiện tìm kiếm. Ở đây, giới thiệu đến trang: cung cấp khá nhiều các Web Services hữu ích. Trong phần này sẽ hƣớng dẫn sử dụng các Web Services để lấy thông tin tỷ giá ngoại tệ, thông tin thời tiết, các thành phố chính của một quốc gia và các đơn vị tiền tệ của các quốc gia trên thế giới. Các bƣớc thực hiện nhƣ sau: - Chọn Add Web Reference từ thực đơn ngữ cảnh của ứng dụng Hình 5.12. Thêm Web Services vào ứng dụng - Nhập thông tin đƣờng dẫn của Web Services, nhấn biểu tƣợng để thực hiện 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ả về Web Services sẽ đƣợc hiển thị ngay phía bên dƣới. Trong ví dụ này lần lƣợt xác thực 3 Web Services sau: (Thời tiết) (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ả các phƣơng thức và tài liệu hƣớng dẫn của Web Services Hình 5.14. Danh sách các Web Services đƣợc tham chiếu - Thiết kế màn 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 hcm = 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ệ và thông tin thời tiết đƣợc lấy từ Web Services. Lúc thi hành các giá trị này có thể thay đổi. Hình 5.16. Màn hình kết quả 5.6. Bài tập 1. Thiết kế Web Service cung cấp dịch vụ các phép tính (+, -, *, /) và kiểm tra các phép toán thông qua việc sử dụng Web Services trong môi trƣờng phát triển. 2. Tạo Web Services cho việc chuyển đổi tiền tệ. Sau đó kiểm tra kết quả. 3. Tạo Web Services cung cấp ứng dụng xem giá vàng SJC. Sau đó kiểm tra kết quả. 4. Xây dựng Web Services truy xuất cơ sở dữ liệu theo yêu cầu sau: Tạo cơ sở dữ liệu tên MyAccount gồm 1 bảng tên UserAccount chứa các thông tin sau: UserName (nvarchar 15 ), Password (nvarchar 100), BirthDate (DateTime), Adress (nvarchar 50 ), Email (nvarchar 50 ) . Tạo Web Service thực hiện các chức năng sau : - AddNewAccount () : phƣơng thức này dung để thêm mới một Account và Password đƣợc mã hóa theo thuật toán ( MD5 hoặc SHA1, tuy chọn ), trƣớc khi thêm cần kiểm tra Account có tồn tại hay không? thông qua phƣơng thức CheckAccount. - DeleteAccount (.): dùng để xóa 1 Account - UpdateAccount(.) : cập nhật thông tin 1 Account. - GetAccount() : lấy tất cả thông tin của các Account. - CheckAccount(.) : Kiểm tra một Account có tồn tại hay không? Tạo các trang aspx sử dụng Web Service mô tả nhƣ sau : - Trang Login.aspx: kiểm tra Account, trang này link với trang CreateAccount.aspx. Nếu login thành công thì chuyển sang trang MaintainAccount.aspx. - Trang CreateAccount.aspx : dùng để thêm một Account.Trên trang này có một button dùng để kiểm tra 1 UserName có tồn tại không? mà không cần Postback về Server. Trang này link với trang Login.aspx - Trang MaintainAccount.aspx : trang này gồm một GridView cho phép xem, xóa, sửa thông tin Account. 5. Xây dựng Web Services truy xuất cơ sở dữ liệu theo yêu cầu sau: Tạo cơ sở dữ liệu tên KhachHang gồm một bảng tên tbl_KhachHang chứa các thông tin sau: Tạo Web Service thực hiện các chức năng sau : - Đọc danh sách khách hàng từ cơ sở dữ 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 và truyền thông. 2011 [2]. Phạm Hữu Khang. C# 2005 tập 5 Lập trình ASP.NET 2.0 tập 1, 2, 3. Nhà xuất bản 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 bằng ASP.NET 2.0 và 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, 3. Nhà xuất bản lao động xã hội. 2008 [6]. Hồng Phúc. Lập trình thiết kế Web trong ASP.Net với các ví dụ C#. NXB Thống kê. 2005
File đính kèm:
giao_trinh_lap_trinh_tren_nen_web_phan_2.pdf