Thiết kế giao diện * Thiết kế giao diện ở chế độ Source - Sử dụng các thẻ HTML để thiết kế - Trong chỉ thị @Page các thuộc tính: + Language: ngôn ngữ sử dụng + CodeFile: tập tin mã nguồ
Giới thiệu ASP.NET
Giới thiệu
ASP.NET là công nghệ xử lý web phía máy chủ, độc lập với mọi trình duyệt,
Kỹ thuật áp dụng cho phép mọi yêu cầu được thực thi trên trình chủ, nghĩa là trình chủ phải xử lý đồng thời nhiều yêu cầu cho nhiều người dùng Vì vậy, trình chủ cần có cấu hình mạnh và băng thông tốt để đảm bảo hiệu suất và khả năng mở rộng của hệ thống Kỹ thuật này tương thích với ASP 3.0.
Xây dựng ứng dụng web đơn giản
- Vào menu Start -> Programs -> Microsoft Visual Studio 2005 -> Microsoft Visual Studio 2005
- Giao diện Visual Studio 2005 có dạng như sau:
- Vào menu File->New->Website
- Chọn ASP.NET Web Site tron g Templates
Cuối cùng click chuột vào nút OK để tiến hành tạo Web Site
* Thiết kế giao diện ở chế độ Source
- Sử dụng các thẻ HTML để thiết kế
- Trong chỉ thị @Pagecác thuộc tính:
+ Language: ngôn ngữ sử dụng + CodeFile: tập tin mã nguồn xử lý + Inherits: lớp
* Thiết kế giao diện ở chế độ Design
- Sử dụng các control trên thanh công cụ Toolbox để thiết kế
- Thanh công cụ Toolbox bao gồm tập hợp các điều khiển web (web control) dùng để xây dựng ứng dụng web chia ra thành các nhóm control sau:
+ Standard: là những điều khiển chuẩn của web form như: Label, Button,
+ Data: là những điều khiển cho phép thao tác với dữ liệu
+ Validation: là những điều khiển cho phép kiểm tra tính hợp lệ của các điều khiển nhập dữ liệu trên web form.
+ Navigation: là những điều khiển cho phép di chuyển giữa các trang trong cùng website
+ Login: là những điều khiển liên quan đến bảo mật của ứng dụng web như đăng nhập, thay đổi mật khẩu,…
+ HTML: là những điều khiển của tài liệu HTML và có thể được chuyển thành các điều khiển làm việc trên server (HTML Server Control)
- Phương thức Page_Load được gọi mỗi khi trang aspx được tải (load)
- Giao diện mã nguồn ở chế độ Code C#:
1.2.2 Lưu lại trang web Để lưu lại các trang web đã tạo trong website, vào menu File -> Save All hoặc nhấn tổ hợp phím Ctrl+Shift+S
Có một số trang web sử dụng chữ Tiếng Việt Unicode Trong quá trình lưu các trang web đó, Visual Studio sẽ yêu cầu lưu lại với kiểu mã hoá Unicode nhằm bảo toàn các ký tự Tiếng Việt Lựa chọn mã hoá Unicode đúng khi lưu giúp trang web hiển thị chính xác trên các trình duyệt và hỗ trợ tối ưu SEO bằng cách tránh các ký tự sai lệch và lỗi hiển thị.
Chọn Save With Other Encoding
Trong Encoding chọn Unicode (UTF-8 with signature) – Codepage 65001
1.2.3 Biên dịch và chạy ứng dụng web Để biên dịch và chạy ứng dụng web vào menu Debug -> Start Debugging hoặc nhấn phím F5
1.2.4 Mở ứng dụng Web Để mở một ứng dụng web, vào menu File -> Open -> Website
Trong Solution Explorer , click phải vào Website, chọn Add New Item…
Trong Templates, chọn Web Form, sau đó nhập tên trang web vào ô Name và click vào
Nếu chọn “Place code in separate file” thì tập tin mã nguồn xử lý sẽ được tách riêng khỏi tập tin Web Form.
IsPostBack
+ Thuộc tính của Page có kiểu dữ liệu bool (true, false)
+ Nếu trả về giá trị false khi trang được nạp lần đầu tiên
+ Nếu trả về giá trị true khi trang được nạp lần tiếp theo protected void Page_Load(object sender, EventArgs e)
//các câu lệnh chỉ muốn thực thi 1 lần khi trang được nạp lần đầu tiên }
Trong biểu thức logic của cấu trúc if trên
!IsPostBacktương đương với IsPostBack == false
Web Control
ASP.NET Web Control
ID Nhận dạng điều khiển
Text Nội dung hiển thi
Visible Cho phép hiển thị hay không (true/false)
Trang aspx.cs: protected void Page_Load(object sender, EventArgs e)
TextMode SingleLine(mặc định), Multiline
AutoPostBack Tự động PostBack lên Server khi Textbox có thay đổi, mặc định là False AutoCompleteType None / Disabled / Company / …
Tương đương thẻ có type=submit
nhấp đôi chuột vào GridView
Tạo nguồn dữ liệu cho GridView
Bước 3: Chọn AccessData để kết nối với file dữ liệu Access->OK
Bước 4: Đường dẫn đến file dữ liệu->Next
Bước 5: Chọn cách lấy dữ liệu ->Next
Bước 6: Có thể Kiểm tra thử dữ liệu lấy được->Finish
Hiệu chỉnh cách hiển thị dữ liệu: Định dạng hình thức: chọn Auto Format… hoặc Properties->Styles Định dạng nội dung: ChọnEdit Columns…
Thuộc tính DataFormatString: (Lưu ý thuộc tính HTMLEncode)
Ví dụ: DataFormatString="{0:dd/MM/yy}"
Sắp xếp dữ liệu theo cột
Gán thuộc tính của GridView: AllowSorting=True
Gán thuộc tính của các cột muốn sắp xếp: SortExpression=”TênCột”
Gán thuộc tính của GridView: AllowPaging=True, PageSize=”số lượng mẫu tin trong 1 trang”
Thẻ PagerSettings: định dạng hình thức hiển thị
Position=Top/Bottom/TopandBottomMode=Numeric/NumericFirstLast/NextPrevious/NextPreviousFirstLastPageButtonCount=”số trang hiểnthịtối đa, nếu số trang nhiều hơn số này thì sẽ hiển thị từng phần”
DataList
DataList là một điều khiển dùng để hiển thị dữ liệu trên Web, cho phép trình bày dữ liệu một cách linh hoạt Khi sử dụng DataList, bạn phải tự thiết kế cách hiển thị dữ liệu bằng cách xây dựng mẫu hiển thị và định dạng cho từng phần tử, nhằm tạo giao diện người dùng hấp dẫn và tối ưu hóa trải nghiệm người dùng Việc tùy biến bố cục, kiểu hiển thị và cách sắp xếp dữ liệu trong DataList là yếu tố quyết định cho chất lượng trình bày nội dung trên trang web và cải thiện hiệu quả SEO của trang.
6.3.1 Các thành phần của DataList
Trên thanh ToolBox nhấp chuột chọn DataList vào kéo thả vào giao diện thiết kế Web Form
6.3.3 Tạo nguồn dữ liệu cho DataList dùng AccessDataSource
Bước 3: Chọn AccessData để kết nối với file dữ liệu Access->OK
Bước 4: Đường dẫn đến file dữ liệu->Next
Bước 5: Chọn cách lấy dữ liệu ->Next
Bước 6: Có thể Kiểm tra thử dữ liệu lấy được->Finish
6.3.4 Thiết kế giao diện cho các thành phần trong DataList
Thiết kế giao diện trong vùng ItemTemplate
6.3.5 Liên kết dữ liệu cho các thành phần trong Dat aList
Bước 1: nhấp chuột Bước 2: chọn
Thực hiện tương tự như trên đối với Mật khẩu, email, số đăng ký
Bước 1: nhấp chuột Bước 2: chọn
CTBaiHat.aspx.cs is the code-behind file for an ASP.NET Web Forms page named CTBaiHat It imports a comprehensive set of namespaces essential for web development and data access, including System, System.Data, System.Configuration, System.Collections, System.Web, System.Web.Security, System.Web.UI, System.Web.UI.WebControls, System.Web.UI.WebControls.WebParts, System.Web.UI.HtmlControls, and System.Data.OleDb, equipping the page with data handling, security features, and UI controls The file defines a partial class CTBaiHat that inherits from System.Web.UI.Page, indicating that this class provides the server-side logic for the page and collaborates with the associated aspx markup in a typical ASP.NET Web Forms architecture.
{ public DataSet LayThongTinBaiHat(string sMaBaiHat)
DataSet ds; ds = new DataSet(); string sConnectString; string sSql; sConnectString = "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" + Server.MapPath("DB/MusicDB.mdb");
OleDbConnection myConn = new OleDbConnection(sConnectString); sSql = "SELECT
MaBaiHat,TenBaiHat,NoiDung,TenNhacSi,BaiHat.MaNhacSi as MaNS FROM
BaiHat,NhacSi WHERE BaiHat.MaNhacSi=NhacSi.MaNhacSi "; sSql += "AND MaBaiHat='" + sMaBaiHat + "'"; try
OleDbDataAdapter da = new OleDbDataAdapter(sSql, myConn); da.Fill(ds); myConn.Close();
} public void HienThiChiTietBaiHat(string sMaBaiHat)
DataSet ds; ds = new DataSet(); ds = LayThongTinBaiHat(sMaBaiHat); dlBaiHat.DataSource = ds.Tables[0]; dlBaiHat.DataBind();
} protected void Page_Load(object sender, EventArgs e)
{ string sMaBaiHat; if (Request.QueryString["MaBaiHat"] != null)
DetailView
DetailsView là điều khiển cho phép hiển thị một mẫu tin hoặc một đối tượng tại một điểm
6.5.1 Các thành phần của DetailsView
OK
Bước 4: Đường dẫn đến file dữ liệu->Next
Bước 5: Chọn cách lấy dữ liệu ->Next
Bước 1: nhấp chuột Bước 2: chọn
Bước 6: Có thể Kiểm tra thử dữ liệu lấy được->Finish
6.5.4 Thiết kế giao diện cho các thành phần trong DetailsView
Tiến hành thiết kế các Fields:
Bước 1: nhấp chuột Bước 2: chọn
Programs -> Administrative Tools -> Internet Information Services.
2) Xem các thuộc tính của Default Web Site
Đây là những thuộc tính khái quát của website được cấu hình trong hệ thống Tại đây, ta có thể gán IP và cổng cố định cho website bằng cách nhập vào ô IP và ô cổng Mặc định ban đầu, IP sẽ được gán cho máy chủ và cổng mặc định là 80 Ngoài ra, hệ thống cho phép thiết lập thời gian dành cho mỗi kết nối từ client trước khi ngắt kết nối, giúp tối ưu quản lý tài nguyên và hiệu suất vận hành.
Phần hiệu suất có các đặc tính rõ ràng và được điều chỉnh theo mật độ truy cập của website Tuỳ thuộc lưu lượng truy cập, hệ thống sẽ điều chỉnh cách phân bổ tài nguyên của máy chủ dành cho web service nhằm duy trì hiệu suất và đáp ứng yêu cầu người dùng, có thể dẫn đến tăng thời gian xử lý và mức tiêu thụ CPU khi số lượng người truy cập đồng thời nhiều Việc quản lý hiệu suất tối ưu hóa tài nguyên như CPU và bộ nhớ, giúp dịch vụ web vận hành ổn định ngay cả khi lưu lượng tăng lên, đồng thời cân đối chi phí vận hành và trải nghiệm người dùng thông qua các điều chỉnh tự động theo tải.
2.3 Phần mặc định của thư mục chủ (Home directory) như sau: trong phần này bạn có thể đổi thư mục chính của website và điều chỉnh quyền sử dụng trên thư mục đó, nhằm quản trị dễ dàng và đảm bảo an toàn cho hệ thống Việc thiết lập đúng thư mục chủ và quyền truy cập giúp tối ưu hiệu suất máy chủ, kiểm soát quyền hạn người dùng và đảm bảo đường dẫn cùng cấu hình hoạt động ổn định.
2.4) Phần document là xác định một danh sách các trang default khi goi url của web site
3) Tạo thư mục ảo (Virtual Folder) cho ứng dụng.
Có thể tạo các thư mục ảo bên dưới ứng dụng Default Web Site Để tạo thư mục ảo chứa ứng dụng, ta thực hiện các bước sau:
3.1) Nhấn phím phải vào Default Web Site, chọn New / Virtual Directory từ menu tắt
3.2) MMC sẽ hiển thị trình trợ giúp Wizard đặt tên bí danh (Alias) cho thư mục ảo chẳng hạn AdvWords, sau đó chọn Next để đến bước kế tiếp
3.3) MMC hiển thị hộp thoại để chọn đường dẫn vật lý trên máy chủ tương ứng với thư mục ảo AdvWords,
3.4) Nhấn Next để đến màn hình đặt cấu hình bảo vệ và đặc quyền cho thư mục ảo,
Sau khi nhấn Next và Finish để xác nhận, IIS sẽ tạo một thư mục ảo AdvWorks nằm dưới Default Web Site Để truy cập các trang thuộc thư mục ảo này, bạn có thể sử dụng địa chỉ URL http://localhost/AdvWorks/Hello.asp.
Javascript trong ASP.NET
Bài 1: Nhập vào tên người sử dụng Xuất thông báo chào
var sTen = new String(); sTen = prompt("Vui lòng nhập tên: "); alert ("Xin chào bạn " + sTen);
Bài 2: Nhập vào 2 số nguyên a và b Tính tổng 2 số nguyên a và b dưới 2 dạng: a) Nhập từ Script Prompt b) Nhập từ HTML Control a) Nhập từ Script Prompt
76 var a, b = new Number(); var S = new Number(); var Chuoi = new String();
Chuoi = prompt("Nhập a: "); a = parseInt(Chuoi);
Chuoi = prompt ("Nhập b: "); b = parseInt (Chuoi);
b) Nhập từ HTML Control
function TinhTong()
{ var a, b = new Number(); var S = new Number(); var Chuoi = new String();
Chuoi = document.getElementById("txt_a").value; a = parseInt(Chuoi);
Chuoi = document.getElementById("txt_b").value; b = parseInt(Chuoi);
//Xuất kết quả var newChild; var oldChild;
Chuoi = "Tổng: " + S; newChild = document.createTextNode(Chuoi); oldChild=document.getElementById("KetQua").childNodes[0]; document.getElementById("KetQua").replaceChild(newChild,oldChild);
Tổng 2 số nguyên a: b:
Bài 3: Nhập vào 2 cạnh góc vuông a và b của tam giác vuông Tính chiều dài cạnh huyền của tam giác
var a, b = new Number(); var c = new Number(); var Chuoi = new String();
Chuoi = prompt("Nhập cạnh a: "); a = parseInt(Chuoi);
Chuoi = prompt ("Nhập cạnh b: "); b = parseInt (Chuoi); c = Math.sqrt(a*a+b*b); alert ("Cạnh huyền: " + c);
Bài 4: Tính tổng dãy số nguyên a có n phần tử
var a = new Array(); var n = new Number(); var S = new Number(); var Chuoi = new String();
Chuoi = prompt("Nhập dãy các số nguyên: "); a = Chuoi.split(","); a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4; n = 4; n = a.length; for (var i=0; i < n; i++) a[i] = parseInt(a[i]);
//Xuất kết quả alert ("Tổng: " + S);
Bài 5: Tính tổng 2 phân số A và B
function PhanSo()
{ this.TuSo = new Number(); this.MauSo = new Number();
Chuoi = document.getElementById("txt_TuSoA").value;
Chuoi = document.getElementById("txt_MauSoA").value;
Chuoi = document.getElementById("txt_TuSoB").value;
Chuoi = document.getElementById("txt_MauSoB").value;
Kq.TuSo = A.TuSo * B.MauSo + B.TuSo * A.MauSo;
Kq.MauSo = A.MauSo * B.MauSo; return Kq;
Chuoi = A.TuSo + "/" + A.MauSo; alert(Chuoi);
{ var A = new PhanSo(); var B = new PhanSo(); var S = new PhanSo();
Phân số A: Tử số: Mẫu số:
Phân số B: Tử số: Mẫu số:
AJAX
7.3.1.1 Tổng quan về mô hình ứng dụng Web
Kiến trúc của ứng dụng Web
* Xử lý hệ khách (Client):
- Khả năng tương tác cao
- Tốc độ xử lý nhanh + Hạn chế:
- Đòi hỏi phần mềm hỗ trợ
- Khả năng tương thích với trình duyệt không cao.
* Xử lý hệ phục vụ (Server)
- Triển khai và bảo trì dễ dàng
- Chia sẽ được dữ liệu + Khuyết điểm
- Giao diện người dùng thô sơ
AJAX stands for Asynchronous JavaScript and XML, a set of web development technologies used to build dynamic web applications or Rich Internet Applications (RIAs) It enables asynchronous data exchange between a client and a server, allowing parts of a web page to update without a full page reload, which improves interactivity and responsiveness of modern web apps.
Mô hình truyền thống tương tác giữa Client-Server
Mô hình AJAX trong tương tác giữa Client-Server
7.3.2 Kỹ thuật lập trình AJAX
7.3.2.1 Xử lý hệ khách (Client)
7.3 2.1.1 Đối tượng XMLHTTPRequest Đối tượng XMLHttpRequestđể trao đổi dữ liệu một cách không đồng bộ với hệ phục vụ
Mô hình hoạt động của AJAX
Khởi tạo đối tượng nhận/gửi các yêu cầu dữ liệu xml thuộc đối tượng XMLHTTPRequest: var xmlhttp
Nếu sử dụng trình duyệt Web IE5, IE6: var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
Nếu sử dụng trình duyệt Web IE7trở lên, Firefox, Chrome, Opera, Safari var xmlhttp = new XMLHTTPRequest();
7.3 2.1.2 Các phương thức và thuộc tính của đối tượng XMLHTTPRequest
Thuộc tính onreadystatechange là một hàm xử lý sự kiện được gán cho đối tượng XMLHttpRequest, xác định hàm sẽ được gọi khi thuộc tính readyState của đối tượng thay đổi Thuộc tính readyState cho biết trạng thái hiện tại của đối tượng request, từ 0 đến 4, lần lượt đại diện cho quá trình khởi tạo, gửi đi, nhận phản hồi đang tới và hoàn tất Việc lắng nghe sự kiện onreadystatechange cho phép theo dõi tiến trình tải và xử lý kết quả khi trạng thái chuyển sang 4 (Đã hoàn tất), đồng thời kiểm tra mã trạng thái để xác định thành công hay thất bại.
2 = đã tải xong dữ liệu
4 = hoàn tất responseText Dữ liệu được trả về bởi server dưới dạng chuỗi text responseXML Dữ liệuđược trả về bởi server dưới dạng đối tượng dữ liệu (XML, …)
88 status Mã trạng thái HTTP được trả về bởi server statusText Chuỗi trạng thái được trả về bởi server
Phương thức này cho phép điều khiển yêu cầu HTTP bằng các hàm của XMLHttpRequest: abort() dừng gửi yêu cầu đến server; getAllResponseHeaders() trả về tất cả các tiêu đề (headers) dưới dạng chuỗi; getResponseHeader(x) trả về giá trị của tiêu đề x dưới dạng chuỗi; open('method','URL','a') xác định phương thức HTTP (GET hoặc POST) và đường dẫn URL gửi yêu cầu đến server, tham số a quy định bất đồng bộ (nếu a='true' thì mặc định là bất đồng bộ); send(content) gửi dữ liệu kèm theo yêu cầu; và setRequestHeader('x','y') đặt tham số và giá trị x=y vào tiêu đề để gửi cùng với yêu cầu.
7.3.2.2 Xử lý hệ phục vụ (Server)
Trong kỹ thuật AJAX, ở hệ phục vụ (server) giaodiện hiển thị thông thường không có các thẻ
… mà chỉ có chuỗi XML
An ASP.NET server-side page imports essential namespaces such as System, System.Data, System.Configuration, and a range of System.Web.UI controls (WebControls, WebParts, HtmlControls) to enable data access, security, and dynamic user interfaces It defines a partial class named BaiGiang_ServerSide that inherits from System.Web.UI.Page, laying the foundation for the page’s server-side lifecycle and behavior within an ASP.NET Web Forms application.
{ protected void Page_Load(object sender, EventArgs e)
{ string sXML = ""; sXML = sXML + "";
This article centers on the C# ASP.NET Web Forms code-behind file TinhTong2SoNguyen.aspx.cs, which begins with a set of using directives—System, System.Data, System.Configuration, and multiple System.Web namespaces—that establish the environment for a web application page It defines a partial class named clsTinhTong2SoNguyen that inherits from System.Web.UI.Page, signaling its role in handling server-side logic for a web form The class is designed to compute the sum of two integers, following the typical code-behind pattern where input is received, processed on the server, and the result is rendered back to the user By embracing the ASP.NET Web Forms model, this approach promotes a clean separation between presentation and logic, enabling straightforward maintenance and reliable user interactions within a web application.
{ protected void Page_Load(object sender, EventArgs e)
{ int a; int b; int S; string chuoi; chuoi = Request["a"]; a = int.Parse(chuoi); chuoi = Request["b"]; b = int.Parse(chuoi);
//tạo chuỗi XML string sXML = ""; sXML = sXML + "";
Web Service
Web service (dịch vụ web) là hệ thống phần mềm được thiết kế để tối ưu khả năng tương tác giữa các ứng dụng trên nhiều máy tính khác nhau thông qua mạng Internet Giao diện chung và sự gắn kết của web service được mô tả bằng XML, cho phép các hệ thống đóng gói và hệ thống kế thừa dễ dàng gọi và truy cập Với các phương thức chuẩn để gọi và truy cập, web service hỗ trợ tích hợp, mở rộng và trao đổi dữ liệu giữa các ứng dụng một cách hiệu quả.
Phần mềm được viết bằng nhiều ngôn ngữ lập trình khác nhau và chạy trên các nền tảng khác nhau có thể sử dụng dịch vụ web (web service) để trao đổi dữ liệu trên mạng Internet theo cách giao tiếp tương tự như giữa các thành phần bên trong một máy tính Hệ thống này gồm các module độc lập đảm bảo hoạt động của khách hàng và doanh nghiệp, và toàn bộ chúng được thực thi trên máy chủ (server).
Web service giúp giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống
Web service cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau
Ví dụ về khả năng tương thích đa nền tảng: triển khai Web server cho một ứng dụng trên máy chủ Linux trong khi người dùng dùng máy tính Windows; ứng dụng vẫn hoạt động bình thường và xử lý mọi tác vụ mà không cần thêm yêu cầu đặc biệt về tương thích giữa hai hệ điều hành.
Phần lớn kĩ thuật của web service được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhậnchẳng hạn như XML.
Một web service bao gồm có nhiều module và có thể công bố lên mạng Internet.
7.4 3 Kiến trúc của Web Services
Web services rely on three core standards: SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language), and UDDI (Universal Description, Discovery, and Integration) UDDI provides registration and discovery of Web services described by WSDL UDDI transactions use SOAP to contact the UDDI registry server SOAP-based applications then request Web services, with SOAP messages transmitted over HTTP and TCP/IP networks These standards together enable interoperable service description, discovery, and invocation across diverse platforms.
7.4 4 Các thành phần của Web Service a) XML (eXtensible Markup Language)
XML là một chuẩn mở do W3C đề xuất dùng để mô tả và định nghĩa dữ liệu, phục vụ cho xác định các thành phần dữ liệu trên trang web và trong các tài liệu B2B Về bản chất, XML có cấu trúc thẻ tương tự HTML nhưng HTML tập trung vào phần hiển thị trong khi XML tập trung mô tả nội dung và cấu trúc dữ liệu bên trong Với XML, các thẻ có thể do lập trình viên tự tạo trên mỗi trang và được chọn làm định dạng thông điệp chuẩn nhờ tính phổ biến, khả năng mở rộng và hiệu quả của mã nguồn mở.
Web service là sự kết hợp của nhiều thành phần khác nhau và dùng các tính năng, đặc trưng của từng thành phần để giao tiếp và phối hợp với nhau XML đóng vai trò là kiến trúc nền tảng cho việc xây dựng Web service, khi mọi dữ liệu được chuyển đổi sang định dạng thẻ XML để đảm bảo tính chuẩn hóa và khả năng tương thích giữa các hệ thống Để mô tả và khai thác các Web service, ta sử dụng WSDL (Web Service Description Language), giúp định nghĩa giao diện, các phương thức và dữ liệu trao đổi một cách chuẩn hóa nhằm hỗ trợ tích hợp và tự động hoá.
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin:
+ Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của web service
+ Loại thông tin: thao tác, tham số, những kiểu dữ liệu
WSDL thường được dùng kết hợp với XML Schema và SOAP để cung cấp web service qua Internet Người dùng (client) kết nối đến web service có thể đọc WSDL để xác định các hàm (phương thức) có sẵn trên máy chủ, sau đó sử dụng SOAP để gọi các chức năng được mô tả trong WSDL Để khai thác các dịch vụ web hiệu quả, UDDI (Universal Description, Discovery, and Integration) giúp client tìm kiếm, ghi nhận thông tin về cách sử dụng và xác định nhà cung cấp dịch vụ; UDDI định nghĩa các thành phần mô tả và cho phép khách hàng truy vấn, nhận thông tin cần thiết khi sử dụng Web services.
Trang trắng (White pages) là tập hợp các thông tin liên hệ và các yếu tố nhận diện chính của một dịch vụ web, ví dụ tên giao dịch, địa chỉ và các thông tin nhận dạng khác Những dữ liệu này cho phép các đối tượng khác nhận diện và xác định dịch vụ một cách rõ ràng.
Trang vàng (Yellow pages) chứa thông tin mô tả web service theo các loại khác nhau, cho phép người dùng và hệ thống tra cứu và nhận diện web service dựa trên từng loại một cách nhanh chóng và hiệu quả Trong khi đó, Trang xanh (Green pages) lưu trữ thông tin kỹ thuật mô tả các hành vi và chức năng của web service, cung cấp các chi tiết về cách web service hoạt động, API và các chức năng mà nó hỗ trợ Sự kết hợp giữa Trang vàng và Trang xanh giúp tối ưu hóa khả năng khám phá, tích hợp và phân tích kỹ thuật của web service trong môi trường làm việc và ứng dụng.
+ tModel (Loại dịch vụ): chứa các thông tin về loại dịch vụ được sử dụng
Thông tin về web service được sử dụng và công bố trên mạng thông qua một giao thức chuẩn, cho phép các ứng dụng tìm kiếm thông tin của các web service khác để xác định dịch vụ nào sẽ cần đến nó SOAP (Simple Object Access Protocol) là một giao thức phổ biến được dùng để thực hiện các thao tác và trao đổi dữ liệu giữa các hệ thống, đóng vai trò quan trọng trong việc tích hợp và giao tiếp giữa các web service trên mạng.
SOAP là một giao thức giao tiếp có cấu trúc dựa trên XML, được xem như xương sống của các ứng dụng phân tán được xây dựng bằng nhiều ngôn ngữ lập trình và chạy trên các hệ điều hành khác nhau SOAP cho phép trao đổi các thông điệp dựa trên XML qua mạng máy tính và thường được triển khai trên giao thức HTTP.
Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi những thông điệp trả lời tới client Cả SMTP và HTTP đều là những giao thức ở lớp ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet
7.4.5 Ví dụ xây dựng web service đơn giản a) Xây dựng 1 ứng dụng web service cho phép:
- Tính tổng 2 số nguyên a và b b) Client truy xuất vào ứng dụng web service ở trên được viết dưới dạng:
- HTML page (sử dụng JavaScript để gọi)
Thực hiện: a) Xây dựng ứng dụng Web Service
Trong Visual Studio 2005, vào menu File -> New -> Web site
Chọn ASP.NET Web Service
Xây dựng 2 lớp Servicegồm 2phương thức Web: public string XuatThongBaoChao() public int TinhTong(int a, int b)
- Biên dịch và thực thi (Nhấp phím F5) b) Xây dựng ứng dụng Client truy xuất ứng dụng Web Service
Thêm tham chiếu đến Web service
Nhập địa chỉ URL của Web Service, sau đó nhập tên vào Web reference name và click vào Add
Xây dựng mã nguồn: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace test_WS
{ public partial class Form1 : Form
} private void btn_XuatTBChao_Click(object sender, EventArgs e) {
MyWebService.Service ws = new MyWebService.Service(); string sThongBao; sThongBao = ws.XuatThongBaoChao();
} private void btn_TinhTong_Click(object sender, EventArgs e) {
MyWebService.Service ws = new MyWebService.Service(); int a = int.Parse(txt_a.Text); int b = int.Parse(txt_b.Text); int s = ws.TinhTong(a, b);
Thực hiện tương tự như Windows Application
Mã nguồn: test_WS.htm
Vi du web service
function InitializeService()
{ service.useService("http://localhost:61076/ViDu_WebService/Service.asmx?ws dl","Service");
{ var a = document.getElementById("txt_a").value; var b = document.getElementById("txt_b").value; service.Service.callService("TinhTong", a, b);
{ var kq; kq = event.result.value; alert(kq);