日期:2012-07-12  浏览次数:20577 次

     
  1. 概论:
   
  本文将介绍如何创建一个三层应用程序,并且将介绍如何创建一个Web Service服务。
   
   ADO.NET创建Windows三层结构应用程序的体系架构如下图所示:
   
   
   
  该结构分三个层次:表示层、业务层、数据层。
   
  数据层:代表物理数据库。
   
  业务层:负责数据层与表示层之间的数据传输。
   
  表示层:应用程序的客户端,它通过业务层来访问数据库。
   
  表示层所操作的是驻留在内存中的本地数据,当需要更新数据库数据时,要通过业务层提供的更新方法实现。这样可以大大提高应用程序的性能,而且,什么时候更新数据完全由你决定,提高了编程的灵活性。
   
  2.实例:
   
   这里我们具体做一个实例来看看如何用VB.NET创建三层结构的应用程序。
   
  数据库:我们选择SQL SERVER 的NorthWind数据库。
   
  业务层:我们创建一个WebService作为中间层。(需要安装IIS服务)
   
  表示层:我们写一个Windows Form
   
  第一步:创建WebService。
   
  具体步骤如下:
   
  1. 新建一个项目,选择ASP.NET Web服务,命名为:”WebService For 业务层”。
   
  2. 添加两个Sql DataAdapter,一个为Customer_da,它指向NorthWind数据库的Customers表,另一个为Order_da,指向Northwind数据库的Orders表。
   
  3. 然后生成一个Typed DataSet(选择“数据”菜单的“生成数据集”),命名为:Super_ds.
   
  4. 数据库连接已经完成,下一步我们将考虑它与表示层之间的通信,这里我们定义两个方法。一个为:Get_DataSet,它返回一个Super_ds类型的数据集,另一个为:Update_DataSet,它负责更新数据库数据, 方法代码如下:
   
  <WebMethod()> Public Function Get_Dataset() As super_ds
   
   customer_da.Fill(Super_ds1.Customers)
   
   order_da.Fill(Super_ds1.Orders)
   
   Return Super_ds1
   
   End Function
   
  <WebMethod()> Public Sub Update_Dataset()
   
   Super_ds1.AcceptChanges()
   
  End Sub
   
  你可以运行测试一下你建立的这个WebService。它将提供两个方法。返回的DataSet是以XML表示的。
   
  业务层的完整代码如下:
   
  Imports System.Web.Services
   
  Public Class Service1
   
  Inherits System.Web.Services.WebService
   
  ‘Web Services Designer Generated Code…….
   
  <WebMethod()> Public Function Get_Dataset() As super_ds
   
   customer_da.Fill(Super_ds1.Customers)
   
   order_da.Fill(Super_ds1.Orders)
   
   Return Super_ds1
   
   End Function
   
  <WebMethod()> Public Sub Update_Dataset()
   
   Super_ds1.AcceptChanges()
   
   End Sub
   
   ' WEB SERVICE EXAMPLE
   
   ' The HelloWorld() example service returns the string Hello World.
   
   ' To build, uncomment the following lines then save and build the project.
   
   ' To test this web service, ensure that the .asmx file is the start page
   
   ' and press F5.
   
   '
   
   '<WebMethod()> Public Function HelloWorld() As String
   
   ' HelloWorld = "Hello World"
   
   ' End