设计 .NET 应用程序,关于多层结构在.Net中的架构(砖贴MSDN) - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 设计 .NET 应用程序,关于多层结构在.Net中的架构(砖贴MSDN) (http://www.webasp.net/article/5/4454.htm) |
| -- 作者:未知 -- 发布日期: 2003-07-12 |
| 设计 .NET 应用程序 升级到 Microsoft .NET Paul D. Sheriff PDSA, Inc.2002 年 4 月 摘要:本文概要介绍 .NET 应用程序中的各种典型物理结构之间的区别,这些结构已被证明是很有用的。针对每种结构介绍了其适用方案、实现方式和优缺点。本文同时介绍了两层、三层和 N 层应用程序。 注意: 本文所介绍的应用程序设计问题在 MSDN® 的 Building Distributed Applications with .NET(英文)部分中进行了更深入的讨论。 目标
前提条件
目录 两层应用程序结构 使用 XML Web Service 的三层应用程序 使用 .NET Remoting 的三层应用程序 逻辑 N 层应用程序 使用 XML Web Service 的 N 层应用程序 其他 N 层应用程序技术 迁移 Visual Basic 6.0 的 N 层应用程序 小结 两层应用程序结构典型的两层应用程序是使用 ADO.NET 直接与数据库服务器(如 Microsoft SQL Server™)进行通信的客户端应用程序(参见图 1)。除 ADO.NET 外,在客户端应用程序和数据库之间没有任何其他层。有关 ADO.NET 的详细信息,请参阅 .NET 框架文档、本系列的其他文章或使用 MSDN 搜索引擎。 ![]() 图 1:两层应用程序包括客户端应用程序和数据存储(如 Microsoft SQL Server) 何时使用两层结构两层应用程序适用于没有或只有少量窗体的小型应用程序。对于使用本文中介绍的其他 N 层技术的应用程序,其原型也可算是两层应用程序。但是,两层应用程序不太适用于企业环境,因为开发和维护的时间及成本不好控制。 典型的实现方式开发两层应用程序时可以采用多种技术。所有技术均使用 ADO.NET、一个客户端界面(如桌面或基于 Web 的应用程序)和一个数据库(如 SQL Server)。要使用两层应用程序结构,可以采用以下方式:
优点两层应用程序具有以下优点:
缺点两层应用程序开发方法具有以下缺点:
使用 XML Web Service 的三层应用程序另一种设计方式是使用 XML Web service,将数据库的访问单独分给另一个组件,该组件将把数据返回到前端应用程序。图 2 显示了这种设计方式。 有关使用 XML Web services 开发三层应用程序的详细信息,请使用 MSDN 搜索引擎。 ![]() 图 2:使用 XML Web service 将数据库层与前端代码分离 何时使用此技术使用 XML Web service 的三层应用程序适用于基于 Web 的应用程序或 Microsoft Windows® 应用程序。如果需要桌面应用程序的丰富功能,而用户连接自多个不同的位置,并通过 HTTP 界面访问数据,则很适合使用此技术。 典型的实现方式要创建三层/XML Web service 应用程序,通常采用以下开发技术:
优点使用 XML Web service 的三层应用程序具有以下优点:
缺点此设计的缺点与典型的两层应用程序的缺点基本相同,因为它并没有分离业务规则,而只是分离了数据层。此外,表中的列名称也没有被提取到类中(将在下一节中介绍)。
使用 .NET Remoting 的三层应用程序这种类型的应用程序结构与使用 XML Web service 的三层应用程序几乎完全相同。唯一的区别是使用 .NET Remoting 代替 XML Web service 来包装数据访问层。图 3 显示了这种设计方式。 有关 .NET Remoting 的详细信息,请参阅本系列的其他文章或使用 MSDN 搜索引擎。 ![]() 图 3:在 LAN 环境中,可以使用 .NET Remoting 来包装数据访问层 何时使用三层 .NET Remoting 技术使用 .NET Remoting 的三层应用程序适用于必须在 LAN 中的计算机之间分布的应用程序。这可能是出于业务原因,或者考虑到所涉及的工作成本,采用网络呼叫比较合理。 典型的实现方式要创建这种应用程序,通常采用以下开发技术:
优点使用 .NET Remoting 的三层应用程序与使用 XML Web service 的三层应用程序具有相同的基本优点。
缺点这种三层设计的缺点与使用 XML Web service 的三层设计的缺点相同。
逻辑 N 层应用程序使用 .NET 创建应用程序的最好方法是将所有逻辑进程分为不同的类。在典型的业务应用程序中,这通常包含业务规则组件、数据层组件和使用这些组件的前端代码。图 4 显示了这一方法。 有关设计 N 层应用程序的详细信息,请参阅本系列的其他文章或使用 MSDN 搜索引擎。 ![]() 图 4:将业务进程分解为不同的类,从而使应用程序更易于创建和维护 何时使用 N 层结构逻辑 N 层开发策略适用于所有类型的应用程序。无论是小型、中型、大型应用程序,还是桌面或 Web 应用程序,效果都很好。 典型的实现方式要创建这种应用程序,通常采用以下开发技术:
优点逻辑 N 层应用程序具有以下优点:
缺点逻辑 N 层应用程序只有两个较大的缺点:
使用 XML Web Service 的 N 层应用程序图 5 显示了如何进行逻辑 N 层应用程序设计并将其分布于多台计算机的示例。在此图中,可以看到使用了 XML Web service 来访问数据层。类型化数据集通过 HTTP 层返回到业务规则层。然后,客户端应用程序可以将该数据集用于用户界面的数据显示。 ![]() 图 5:将业务进程分离到单独的计算机中以利于部署和维护 何时使用此技术如果需要桌面应用程序的丰富功能,而用户可能连接自很多远程位置,并且需要通过 HTTP 界面来获取数据,那么就可以采用这种 N 层 XML Web service 应用程序设计。将业务规则保留在客户端上有利于网络畅通,但如果这些规则更改频繁,则会增加一些维护更新工作。由于 .NET 可以复制新的 DLL 而无需注册,所以这些问题已经不象在以前的技术中那样严重。 这种方案也适用于基于 Web 的应用程序,其中由一台 Web 服务器提供数据,而由另一台 Web 服务器上的 Web 应用程序显示此数据。 典型的实现方式要创建这种应用程序,通常采用以下开发技术:这些技术与逻辑 N 层应用程序中的技术相同。
优点使用 XML Web service 的 N 层应用程序具有多个优点,其中很多与逻辑 N 层应用程序相同。
缺点使用 XML Web service 的 N 层应用程序开发方法也有一些缺点。其中大部分与使用逻辑 N 层应用程序开发方案的缺点相同。
其他 N 层应用程序技术当然,可以采用很多不同的技术来创建 N 层应用程序。例如,可以使用 .NET Remoting 在客户端层和业务规则层之间进行通信,如图 6 所示。 ![]() 图 6:可以组合使用 .NET Remoting 和 XML Web services,为应用程序提供最佳的可缩放性和可维护性 使用 N 层技术开发应用程序后,还可以采用多种方法对其进行配置。可以组合使用 .NET 中的任何可用方法来分离应用程序的各层。 迁移 Visual Basic 6.0 的 N 层应用程序程序员在以前版本的 Microsoft Visual Basic® 中使用 N 层技术已经有很多年了。如果有现成的 COM 组件,则可以很容易地为这些组件上加上 .NET 包装。之后,便可以获得如图 7 所示的结构。 有关在 .NET 中使用 COM 组件的详细信息,请参阅本系列的其他文章或使用 MSDN Web 站点 中的搜索引擎。 ![]() 图 7:使用 .NET 可以方便地建立原有 COM 组件的接口 何时使用 Visual Basic 迁移技术如果具有大量的 COM 组件代码,并且这些组件已经包含了您的业务规则和数据访问例程,则适合使用这种技术。因为可以利用很多现有代码,从而降低进入 .NET 框架的成本。 典型的实现方式要创建这种应用程序,通常采用以下开发技术:
优点在 COM 接口外加上 .NET 包装,可以在使用现有代码的同时充分利用 .NET 的新功能,从而缩短开发周期。 缺点在 .NET 中使用 COM 包装具有以下缺点:
小结在开发 .NET 应用程序时,可以采用的结构形式几乎是无限的。易于创建和维护的结构才是最好的。当然,还要考虑其他设计目标,包括可缩放性、可靠性和可管理性等。在 MSDN 中,您可以找到许多相关主题的白皮书。 |
| webasp.net |