MỤC LỤC
Lời cảm ơn 1
Mục lục 2
Chương I : Giới Thiệu 3
Phần 1 : .NET FrameWork 3
Phần 2 :Tìm Hiểu Về Visual C# 8
Phần 3 : ADO.NET 22
Phần 4 : SQL Server 27
Phần 5 : Dịch Vụ Windows Services 32
Phần 6 : WebService và Các Công Nghệ Liên Quan 36
Phần 7 :Giới thiệu XML 50
Chương II : Phân Tích và Thiết Kế hệ Thống 59
Chương III : Demo và hình ảnh 67
Chương IV : Tổng kết và đánh giá 71
Tài liệu tham khảo 73
75 trang |
Chia sẻ: maiphuongdc | Lượt xem: 3039 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Luận văn Tìm hiểu C# và WebService, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
này ,bạn khai báo các phát biểu sau trong ứng dụng:
# using
# using
Sau khi đã nhập vào những gói hợp ngữ này, bạn có thể nhập thêm những namespace theo yêu cầu khác của riêng ứng dụng.
2. Tạo một ứng dựng kết nối :
Trong các kết nối đến cơ sở dữ liệu SQL Server .Bạn sẽ sử dụng đối tượng SqlConnection để thiết lập kết nối này.
Khi bạn đã có được kết nối ,bạn sẽ tạo đối tượng SqlCommand để đại diện cho câu lệnh SQL và thực hiện những nhiệm vụ sau:
Thực thi phát biểu và nhận kết quả trả về là một giá trị đơn . SqlCommand sử dụng phương thức ExecuteScalar cho mục đích này.
Thực thi phát biểu cập nhật cơ sở dữ liệu . SqlCommand sử dụng phương thức ExecuteNonQuery cho mục đích này.
Thực thi phát biểu truy vấn cơ sở dữ liệu . SqlCommand sử dụng phương thức ExecuteReader cho mục đích này. ExecuteReader trả về đối tượng SqlDataReader cung cấp cơ chế truy xuất nhanh vào một hàng dữ liệu duy nhất trong kết quả truy vấn được . Bạn sẽ sử dụng đối tượng SqlDataReader này để xử lý kết quả thu được.
3. Tạo ứng dựng ngắt kết nối:
Ứng dụng ngắt kết nối (disconnected application)là một ứng dụng không cần duy trì kết nối thường xuyên với nguồn dữ liệu . Ví dụ ,một người bán hàng có thể đòi hỏi ứng dụng khả năng truy cập dữ liệu trong cơ sở dữ liệu trung tâm ,thâm chí khi họ ra khỏi văn phòng.
ADO.NET cung cấp lớp DataSet cho phép bạn khả năng truy cập được dữ liệu trong những ứng dụng ngắt kết nối.
DataSet
DataTableCollection DataTable
DataColumnCollection DataColumn
DataRowCollection DataRow
ConstraintCollection Constraint
DataRelationCollection DataRelation
DataRelationCollection DataRelation
DataSet là một tập các đối tượng DataTable trong bộ nhớ và quan hệ với DataTables .Bạn có thể tạo nhiều DataTables trong một DataSet để nắm giữ kết quả của câu truy vấn SQL.
DataTable có một tập hợp các đối tượng DataColumn .Những DataColumn này là thông tin mô tả cột dữ liệu như tên cột,kiểu dữ liệu, giá trị..
DataTable có một tập hợp các đối tượng DataRow .Những DataRow này chứa dữ liệu cho DataSet . Để điền đầy đủ một tập DataSet với dữ liệu ,bạn phải sử dụng đối tượng tiếp hợp dữ liệu.
Dưới đây là hình minh họa cách làm việc của bộ tiếp hợp dữ liệu với những tập dữ liệu DataSet.
Data Source
DataAdapter
DataTable
Fill
Update
DataAdapter
DataTable
Fill
Update
Nếu bạn sử dụng nhà cung cấp dữ liệu SQL Server của .NET ,bạn sẽ phải dùng đến SqlDataAdapter .Nếu đang sử dụng nhà cung cấp dữ liệu OLEDB.NET bạn sử dụng OleDbDataAdapter.
Mỗi bộ tiếp hợp dữ liệu DataAdapter làm việc với một DataTable đơn trong tập dữ liệu DataSet .Bạn gọi phương thức Fill của bộ tiếp hợp dữ liệu để điền đầy dữ liệu cho DataSet từ cơ sở dữ liệu .Bạn gọi phương thức Update của bộ tiếp hợp dữ liệu để lưu lại những thay đổi tác động lên tập dữ liệu DataSet trở lại cơ sở dữ liệu.
Bên trong, bộ tiếp hợp dữ liệu có bốn đối tượng lệnh dùng truy cập dữ liệu thay mặt DataSet .Bộ tiếp hợp dữ liệu sử dụng những đối tượng lệnh này để trích rút dữ liệu từ cơ sở dữ liệu và để cập nhật cơ sở dữ liệu khi có bất kỳ những thay đổi tác động lên DataSet. Nếu bộ tiếp hợp dữ liệu sử dụng nhà cung cấp dữ liệu SQL Server, những lệnh này sẽ là đối tượng SqlCommand. Nếu bộ tiếp hợp dữ liệu sử dụng nhà cung cấp dữ liệu SQL Server, những lệnh này sẽ là đối tượng OleDbCommand.
Sau đây là mô tả những đối tượng lệnh này.
SelectCommand
Chứa một phát biểu Sql Select dùng trích rút dữ liệu từ cơ sở dữ liệu và đưa vào tập dữ liệu DataSet.
InsertCommand
Chứa phát biểu Sql Insert cho phép chèn dòng mới vào tập dữ liệu DataSet trong cơ sở dữ liệu.
UpdateCommand
Chứa phát biểu Sql Update dùng sửa đổi cập nhật các dòng mẩu tin trong cơ sở dữ liệu.
DeleteCommand
Chứa phát biểu Sql Delete để xóa các dòng trong bảng của cơ sở dữ liệu.
PHẦN 4 : SQL SERVER
SQL SERVER là gì ?
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ mạnh có tính mở, đáng tin cậy , là hệ quản trị cơ sở dữ liệu theo mô hình Client/Server và có thể dễ dàng phát triển theo mô hình dữ liệu phân tán .Nó được phát triển bởi công ty Microsoft .SQL SERVER cung cấp đầy đủ các công cụ để :
Dễ dàng xây dựng một cơ sở dữ liệu quan hệ lớn ,mỗi cơ sở dữ liệu có thể chứa 2 tỷ quan hệ và mỗi quan hệ có thể chứa 1024 thuộc tính .
Giải quyết trình trạng tranh chấp giữa các user khi cùng truy xuất một cơ sở dữ liệu tại cùng một thời điểm .
Bảo đảm các ràng buộc toàn vẹn trên cơ sở dữ liệu .
Bảo vệ an toàn cơ sở dữ liệu ( Quản lý nhiều mức độ truy cập vào cơ sở dữ liệu).
Truy vấn dữ liệu nhanh.
SERVERS .
Là thành phần chứa các database và các công cụ quản trị đối với Server .Mỗi tên Server sẽ tương ứng với một SQL Server mà nó đăng kí ,như vậy từ một máy ta có thể thực hiện công việc quản trị đối với nhiều SQL Server.
DATABASES
Mỗi SQL Server có thể chứa nhiều database .Một database bao gồm tập hợp các table và các đối tượng khác như : diagrams , views, stored procedure, trigger….
Có 3 loại tập tin được sử dụng để lưu trữ database :
Mỗi database có một tập tin dữ liệu cơ sở dùng để chứa dữ liệu và các thông tin khởi động database.
Ngoài tập tin cơ sở , một databse còn có các tập tin phụ dùng để chứa tất cả dữ liệu liên quan nhưng không được đặt bên trong tập tin dữ liệu cơ sở .Nếu tập tin dữ liệu cơ sở có thể lưu giữ tất cả dữ liệu trong database thì database không cần đến các tập tin dữ liệu phụ.
Một database có ít nhất một tập tin lưu vết chứa các thông tin giao dịch của database dùng để phục hồi dữ liệu .Kích thước tối thiểu của tập tin lưu vết là 512KB.
Một hệ phục vụ SQL Server có tối đa 32.767 database .Mỗi database có kích thước tối thiểu 1MB .
Để có thể tạo một database người dùng phải là thành viên của sysadmin và dbcreator.
User tạo database cũng sẽ trở thành chủ sở hữu của database.
Tạo mới DATABASE trong SQL SERVER
Để tạo mới một database ta lần lượt thực hiện các bước sau:
Bước 1: Từ cửa sổ SQL Server Enterprise Manager à chọn Sever à click phải chuột ngay đối tượng database à chọn New Database
Bước 2: Tại mục name gõ vào tên database mới .Database cơ sở và tập tin lưu vết được tạo sẽ sử dụng tên database mới gõ vào gắn thêm phía sau chuỗi “_Data” đối với tập tin cơ sở và chuỗi “_Log” đối với tập tin lưu vết .Ta
có thể nhập kích cỡ cơ sỡ dữ liệu tính theo megabyte trong hộp thoại Size,
cơ sỡ dữ liệu có thể chiếm toàn bộ thiết bị mà nó đang chứa,nhưng không thể lớn hơn ,ta cũng có thể điều chỉnh lại kích cỡ cơ sỡ dữ liệu.
Bước 3: Để thay đổi giá trị mặc định cho tập tin cơ sở ,ngay tab General ,ta nhập giá trị vào các ô tương ứng . Tương tự với tab Transaction log ta cũng có thể mặc định lại các giá trị mặc định cho tập tin lưu vết.
Bước 4: Click nú lệnh OK để việc tạo mới bảng .
TABLES
Tạo bảng bằng Enterprise Manager
Bước 1: Chọn Database muốn tạo Table , ví dụ như chúng ta đã tạo được một database mới là Sach , mở cơ sỡ dữ liệu sách ra chọn Tables và click phải chuột à chọn New Table .
Bước 2: Trên hộp thoại Choose Name , ví dụ tao table tên là NXB , gõ tên table mới ,sau đó nhấp váo nút OK để hoàn tất.
Bước 3 : Lúc này ta có khung hiển thị cho phép thêm các trường trong table.
Trong đó :
Column Name : Tên của column.
Datatype : Kiểu dữ liệu cho column.
Length : Kích thước dữ liệu.
Precision :Là số thể hiện số ký số của column có kiểu dữ liệu dạng số.
Scale :là số thể hiện số ký số phần thập phân của column có kiểu dữ liệu là số thực.
Allow null: Xác nhận column có chấp nhận giá trị null.
Default value: Xác định giá trị mặc định.
Indentity : Check vào ô nếu muốn column là thuộc tính nhận dạng có tính duy nhất.
Indentity seed : Giá trị khởi đầu của column được xác định là indentity (giá trị mặc định là 1).
Indentity Increment : Giá trị xác định bước tăng kế tiếp kể từ giá trị Indentity seed của column được xác định.
Bước 4: Sau khi hoàn tất công việc thiết kế các trường trong table .Ta chọn column dự định là khoá chính , click biểu tượng có hình chìa khoá .Nếu có từ 2 column trở lên tham gia khoá chính ,nhấn Ctrl và click chuột lần lượt vào các column cần chọn tham gia khoá , sau đó click biểu tượng có hình chía khoá. Chỉ những column nào không chấp nhận null mới có thể là thành viên của khoá chính .
Bước 5 : Click nút lệnh Save để kết thúc việc tạo bảng .
Câu truy vấn trong SQL QUERY ANALYZER :
SELECT list of expressions
FROM list of tables
[ WHERE row conditions ]
[GROUP BY list of columns
[HAVING group conditions] ]
[ORDER BY list of column];
PHẦN 5 : WINDOWS SERVICES
WINDOWS SERVICES là gì ?
Trong môi trường Windows ,có rất nhiều ứng dụng thực thi không cần bất kỳ một giao tiếp nào với người dùng ,hay yêu cầu người dùng đăng nhập vào ứng dụng đó,để thực thi các ứng dụng này.Ta có thể nhận thấy tất cả các ứng dụng đang thực thi trong dịch vu (Service).
Một dịch vụ (Service) là một chương trình ,mà chúng tự động thực hiện hay khơỉ động khi hệ điều hành được nạp lên và không giao tiếp với người dùng,chúng hoạt động liên tục 24/24 cho đến khi hệ điều hành có thể khởi động lại,cứ tiếp tục như vậy cho đến khi ta không muốn sử dụng chúng.
Tạo Một Ứng dụng Windows Service
Sử dụng VS.Net ,ta dễ dàng tạo một ứng dụng Windows Services,bằng cách tạo một ứng dụng để cài đặt như một dịch vụ trong môi trường Windows.
Khi xây dựng một ứng dụng Windows Service ,ta cần quan tâm đến các điều khiển trong khi dịch vụ này được khơỉ động và được dừng lại ,những lệnh nào gưỉ đến cho dịch vụ ,những hành động nào sẽ thực thi ,những lệnh nào sẽ nhận ,điều được khai báo trong những sự kiện của Service ,chẳng hạn như sự kiện OnStart hay OnStop.
Khi thực hiện một đoạn mã trong sự kiện OnStart ,ta ra lệnh yêu cầu ứng dụng thực hiện các nhiệm vụ nào khi ứng dụng khơỉ tạo ,điều này giống như một chương trình chính trong điều khiển ứng dụng ,tuy nhiên ta cần có nhiều nhiệm vụ cần phải thực thi khi service được khơỉ tạo.
Trong sự kiện OnStop,cũng tương tự như trường hợp OnStart.Khi người dùng ngừng Service ,ta có thể viết đoạn mã thực thi một số nhiệm void ,bên cạnh đó ta có thể gửi thông báo ra hệ thống.
Ta cũng có thể chỉ ra rằng ,khi người dùng tạm dừng(Pause) hay dừng (Stop) một Service,ứng với quyền hạn tài khoản hay User nào đó,để tránh trường hợp một user khác có thể thực hiện quá trình dừng hay tạm dừng lại các services đang thực hiện ngoài thẫm quyền của User hiện hành .
Để tạo một ứng dụng Service ,bằng cách :
-Khơỉ động Microsoft Visual Studio .NET
-Chọn Create New Project ,chọn Visual C# Projects ,chọn Windows service ,như sau:
Tạo Một Ứng Dụng Windows Service
Với Project vừa tạo ,ta sẽ có một tập tin Service1.cs .Kích hoạt trình soạn mã ta thấy rằng lớp Service1 này được tạo ra từ lớp ServiceBase ,sử dụng lớp này ta có thể định nghiã các nhiệm void trong các lệnh Start,Stop,Pause,Continue ,cũng như khi hệ thống kết thúc.Lớp cơ bản này được gọi khi dịch vụ bắt đầu khởi động và kích hoạt đến sự kiện OnStart,tương tự như vậy cho các sự kiện OnStop,OnPause,OnContinue bằng khai báo :
public class Service1 : System.ServiceProcess.ServiceBase
{
}
Với lớp này,ta có thể sử dụng các phương thức để thực hiện các nhiệm void trong qúa trình Start ,Stop :
protected override void OnStart(string[] args)
{
. . . .
}
protected override void OnStop()
{
. . . .
. . . .
}
Khi sử dụng OnContinue hay OnPause ,phải chắc chắn rằng thuộc tính ServiceBaseCanPauseAndContinue đang có giá trị là true.
Cài Đặt Ứng Dụng Service :
Ứng dụng dịch vụ không thực thi từ Command Line hay IDE ,chúng phải được cài đặt trong môi trường windows mà chúng có thể kiễm soát .
Trước khi cài đặt dịch vụ ta cần phải cài đặt thuộc tính của dịch vụ, ta cần gán lớp Installer trong ứng dụng Windows Service ,lớp này rất cần thiết khi thi hành ứng dụng dịch vụ cuả ta.Để thêm đối tượng cài đặt vào trong ứng dụng,bằng cách nhắp phải trên
Servicé trong ứng dụng Trong ứng dụng WindowsService cuả ta chọn Add Installer.
Một lớp gọi là ProjectInstaller sẽ tự động thêm vào trong ứng dụng ,hai thành phần của lớp này gồm ServiceProcessInstaller1 và ServiceInstaller1 như hình :
Tạo Installer
Gán thuộc tính Account cuả ServiceProcessInstaller1 với gía trị LocalSystem,kế tiếp thay đổi một số thuộc tính cuả ServiceInstaller1 ,với thuộc tính ServiceName là tên Service sẽ dược thực thi,và StartType được gán giá trị Manual.(hoặc Automatic).
Để cài đặt dịch vụ ta phải thực thi tập tin InstallUtil.exe bằng Visual Studio .NET Command Prompt trong Microsoft Visual Studio .NET :
InstallUtil Tên Service . exe
Để thi hành Service ,ta khởi động Service bằng phát biểu sau :
Net Start Ten Service
Đối với Win2000 ,dùng ControlPanel | Administrative Tools | Services ta cũng khởi động được WindowsService.
PHẦN 6 : WEBSERVICE
WebService là gì ?
Một dịch vụ Web [Web service] là một mẫu lôgic ứng dụng được phô diễn công khai và sẵn có đối với mọi hệ thống đa dạng qua việc dùng các chuẩn Internet chung,chẳng hạn như HTTP,XML,và SOAP.Về cơ bản ,dịch vụ Web là mã mà ta phô diễn trong một ứng dụng có thể được truy cập cục bộ ,qua một intranet ,hay qua internet.Ta có thể cho phép bất kỳ hệ khách nào truy cập dịch vụ Web của ta,hoặc hạn chế khả năng truy cập cho chỉ các hệ khách đã được thẫm định quyền.
Trong những năm qua,các lập trình viên Microsoft Windows đã quen sữ dụng COM (Component Object Model) và vai trò của nó trong việc tạo những thành phần gắn kết tạo nên phần mềm.COM cho phép lập trình viên tạo những thành phần tự mô tả,độc lập ngôn ngữ và có thể kết hợp cùng nhau trong hệ thống lớn,và COM có thể sữ dụng để hình thành cơ sở sữ dụng mềm dẻo cho những ứng dụng phân tán.
Những hệ thống dạng component khác cũng được sữ dụng rộng rãi như CORBA và RMI của Java.
Mặc dù COM rất hữu ích nhưng nó có một vài khuyết điễm.Trước hết,việc viết những thành phần COM có thể khó,yêu cầu bạn phải có kiến thức sâu theo bí quyết riêng của từng nguời lập trình,tài liệu không rõ ràng.Thứ hai,COM sữ dụng giao thức nhi phân để giao tiếp giữa những thành phần đối tượng ở xa và khiến cho khó sữ dụng thành phần COM ở bất kỳ nơi đâu khác ngoài môi trường Microsoft Windows ra.Việc tích hợp một hệ thống COM với những thành phần sử dụng CORBA hoặc RMI không đơn giản chút nào.
Dịch vụ Web giúp đở và giải quyết vấn đề theo hai cách.
Trước hết,ta không cần nhiều kiến thức chuyên dụng để viết dịch vụ Web,và rất dễ để cung cấp một giao diện Dịch vụ Web đối với đoạn mã hiện đang tồn tại trước đây.Lợi thế thứ hai là các dịch vụ Web sữ dụng chuẩn dữ liệu và những giao thức internet phục vụ cho việc giao tiếp, vì vậy dễ dàng hơn nhiều khi xây dựng những hệ thống phân tán không đồng nhất.
Một dịch vụ Web sẽ phô diễn một giao diện để triệu gọi một phương thức,hàm trên một hệ thống,từ một hệ thống khác.Để thực hiện lệnh gọi đến phương thức này,ta dùng một trong ba giao thức Internet :HTTP GET, HTTP POST ,hoặc SOAP.Sau khi triệu gọi phương thức của Web service,mọi dữ liệu cần được trả về đều được nối tiếp hoá dưới dạng XML trong thân của thông điệp SOAP.Mô hình trao đổi dữ liệu này cho phép mọi đối tượng có thể được nối tiếp hoá dưới dạng XML-các chuổi ,các số nguyên, các mảng, ADO.NET Datasets, hoặc thậm chí các đối tượng tùy biến- được trao đỗi giữa bên cung cấp và bên tiêu thụ.
Toàn bộ khái niệm trên trông giống Mô hình như sau :
Mô Hình WebServices
CÁC CHUẨN CHUNG
Do khó khăn trong việc trao đổi dữ liệu giữa một hệ thống gốc Java với một hệ thống gốc COM vào thời tiền Web Service.Cơ chế gom chuyển kiểu dữ liệu [data type marshaling] và những điễm không tương thích giữa hai hệ thống đã khiến cho tiến trình đó gặp không ít rắc rối khi thực thi.Do các Web Service dựa vào một loạt các chuẩn chung,chẳng hạn như HTTP,XML,và SOAP ,nên công việc trao đổi dữ liệu trở nên dễ dàng.
Nhờ các chuẩn chung,ta bảo đảm mọi hệ thống đa dạng có thể trao đổi dữ liệu dễ dàng và suôn sẽ.Sau đây là phần mô tả khái quát về năm công nghệ mà các dịch vụ Web vận dụng : XML, SOAP, WSDL, DISCO và UDDI.
XML
XML (Extensible Markup Language ) đã trở thành một chuẩn Internet được chấp nhận để mô tả và trao đổi dữ liệu,giống như HTML đã trở thành một chuẩn để hiển thị thông tin cách đây nhiều năm.Sau hậu trường,các Web service dùng XML làm dạng thức truyền dữ liệu.Khi triệu gọi một phương thức của Web Service ,dữ liệu được trả về ,dẫu nó là một chuỗi,một số nguyên,một Dataset ,hoặc một đối tượng tùy biến, sẽ được nối tiếp hóa dưới dạng XML và được gửi trả về cho bên tiêu thụ.
SOAP
SOAP (Simple Object Access Protocol) là giao thức truy cập đối tượng đơn giản cung cấp cách thức triệu gọi các phương thức thừ xa thông qua XML và HTTP.Các Web Service có thề dùng SOAP làm bên truyền tải cho dữ liệu XML đang được trao đổi giữa bên cung cấp và bên tiêu thụ dịch vụ Web. Nếu một phương thức dịch vụ Web mong đợi một đối tượng phức hợp, chẳng hạn như một đối tượng tùy biến định nghĩa một sản phẫm có các tính chất mô tả nó,dưới dạng một phần đầu vào của nó,một thông điệp SOAP được yêu cầu để mang tải đối tượng đó, được nối tiếp hoá dưới dạng XML trong thân thông điệp SOAP.
WSDL
WSDL (Web Service Description Language) là một phần mô tả gốc XML của một dịch vụ Web.Thực tế,WSDL là một giao ước mà bên cung cấp và bên tiêu thụ đồng ý.WSDL mô tả các giao diện của một dịch vụ Web ,và cách các thông điệp sẽ được định dạng khi dùng các giao thức HTTP GET, HTTP POST,hoặc SOAP.
DISCO
DISCO (Web Service Discovery) là tiến trình định vị (khám phá ) tập tin WSDL kết hợp với một dịch vụ Web.Tiến trình khám phá [discovery] định danh một dịch vụ Web và vị trí của nó.Tiến trình khám phá chủ yếu được dùng bới các cung cụ , như Visual Studio .NET ,để định vị một tập tin WSDL ,và xây dựng các lớp proxy client để có thể triệu gọi các phương thức dịch vụ Web từ xa.
UDDI
UDDI (Universal Description ,Discovery ,and Integration ) là một cơ chế giúp các nhà cung cấp Web Service quảng cáo sự tồn tại của những dịch vụ mà họ đưa ra, và cho phép trình khách client định vị những dịch vụ Web mà chương trình quan tâm.
CUNG VÀ CẦU-Các Bên Cung Cấp và Các Bên Tiêu Thụ Dịch Vụ Web
Các Web Service làm việc bằng cách trao đỗi dữ liệu giữa hai thực thể chính :bên cung cấp dịch vụ Web và bên tiêu thụ dịch vụ Web.Bên cung cấp dịch vụ Web là một ứng dụng phô diễn một vài phương thức công công (public) ,mà các ứng dụng khác –bên tiêu thụ dịch vụ Web- sẽ truy cập.Bên cung cấp phô diễn WSDL mà bên tiêu thụ phải tuân thủ để dùng dịch vụ Web.
Bên tiêu thụ phát hiện dịch vụ Web, bằng cách tìm nó trong sổ đăng ký UDDI,hoặc một biện pháp khám phá khác.Sau khi bên tiêu thụ hiểu rõ dịch vụ Web,thông qua tư liệu WSDL ,một phương thức có thể được triệu gọi ,dùng bất kỳ một trong ba giao thức có thể chấp nhận ,HTTP GET ,HTTP POST, hoặc SOAP. Khi triệu gọi phương thức Web Service bên cung cấp trả về dữ liệu cho bên tiêu thụ dưới dạng một tư liệu XML , như một đáp ứng Web ,hoặc được nhúng trong thông điệp SOAP.
Sau Đây là sơ đồ giao tiếp với WebServices và Client:
Universal Discovery DesCription and Intergration
(UDDI)
Visual C# Client
Web Services
Web Services Description
Language
2
1
3
S
Retrieve the Web
Search Services Description
UDDI for
WebServices
Invoke The
WebServices
Sơ đồ giao tiếp với WebServices và Client
Web Service Namespaces
Dịch vụ Web được hổ trợ bởi một số không gian tên namespace trong .NET Framework.
Không gian tên Mô tả
System.Web.Services Chứa các lớp dùng Tạo và triệu gọi
WebService
System.Web.Services.Description Chứa các lớp cho phép mô tả web
Service theo WSDL.
System.Web.Services.Discovery Chứa các lớp cho phép truy tìm dịch
Vụ Web từ trình khách
System.Web.Services.Protocols Chứa các lớp định nghĩa giao thức truy
Cập Web Service.
Không gian tên System::Web::Services chứa các lớp bạn có thể dùng để tạo và sử dụng các dịch vụ Web.Đây không phải là một không gian tên lớp,ba lớp chính được liệt kê trong bảng sau :
Lớp Mô tả
WebMethod Thuộc tính đánh dấu một phươngthức cho phép triệu gọi từ xa.
WebService Một lớp cơ sở tuỳ chọn dùng để xây dựng Web Service.
WebServiceAttribute Một thuộc tính đựơc sữ dụng để Thêm thông tin bổ sung vào một Lớp có cài dịch vụ Web.
Các lớp dịch vụ Web thường bắt nguồn từ WebService, nhưng điều này chỉ cần thiết khi ta muốn truy cập đến các đối tượng Microsoft ASP.NET được liệt kê trong bảng dưới đây :
Thuộc tính
Mô tả
Application
Context
Server
Session
User
-Cung cấp truy xuất đến các biến được lưu trong đối tượng Application bên trong ASP.NET.Đây là một thuộc tính tắt của Context.Application.
-Cung cấp truy xuất đến tất cả dữ liệu được cung cấp bên trong ASP.NET.Bao gồm các đối tượng Request và Response,đối tượng Cache ,và các thuộc tính khác của các yêu cầu.
-Cung cấp truy xuất đến đối tượng Server.Đối tượng naỳ được sử dụng để truy vấn Web Server có đặt Web Service,hoặc chuyển mã các thông điệp.(Ví dụ,để chuyển một một chuỗi sang một câu QueryString).Đây là thuộc tính tắt của Context.Server.
-Cung cấp truy xuất đến các biến lưu trong đối tượng Session bên trong ASP.NET.Đây là thuộc tính tắt của Context.Session.
-Trả về một đối tượng ASP.NET đại diện cho người dùng hiện hành.Đối tượng này có thể sử dụng cho các mục đích chứng thực.
Bảng thuộc tính của WebService
CÁC BƯỚC CƠ BẢN XÂY DỰNG MỘT DỊCH VỤ WEB
Dưới đây là các bước để xây dựng một dịch vụ web :
1.Xây dựng một lớp public kế thừa từ System.Web.Services.WebService
2.Tạo một phương thức public
3.Aùp dụng thuộc tính WebMethod cho phương thức trên.
4.Tạo một tập tin dịch vụ web dùng đuôi .asmx (ví dụ MyWebService.asmx)
5.Bổ sung thuộc tính @Webservice vào tập tin .asmx và thừa kế từ lớp được định nghĩa trong bước 1 .
Mã sau đây nêu một lớp cơ bản diễn một phương pháp ,phương pháp Add :
Using System ;
Using System.Web ;
Namespace Test
{
public class TestService {
public int Add(int a,int b) {
return (a+b);
}
}
}
Từ lớp cơ bản trên dưạ vaò các bước trên ta được một WebService như sau :
Using System ;
Using System.Web ;
Namespace Test
{
[WebService(Decription=”Đây là Dịch vụ Web Cơ bản “)]
public class TestService : System.Web.Service.WebService {
[WebMethod(Decription =”Cộng 2 số”)]
public int Add(int a,int b) {
return (a