网友原创:从N层到.NET周详剖析原理

2008-02-23 05:40:03来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  摘要:讨论 Microsoft .net 的应用程式设计和所需的更改:检验从使用 Microsoft Windows DNA 构建 N 层应用程式中学到的结构知识,连同如何将这些知识应用到使用 Microsoft .NET 框架构建的应用程式,并且为使用 XML Web Services 的应用程式提供体系结构方面的建议。

  简介

  如今,N 层应用程式已成为构建企业软件的标准。对于大多数人来说,N 层应用程式就是被分成多个单独的逻辑部分的应用程式。最常见的选择是分为三个部分:表示、业务逻辑和数据,当然还可能存在其他的划分方法。N 层应用程式最初是为了解决和传统的客户端/服务器应用程式相关的问题而出现的,但是,随着 Web 时代的到来,这一体系结构开始成为新研发项目的主流。

  Microsoft Windows? DNA 技术已成为 N 层应用程式的很成功的基础。Microsoft .NET 框架也为构建 N 层应用程式提供了坚实的平台。然而,。NET 所带来的变化使结构设计人员应当重新考虑他们在 Windows DNA 领域中所学的有关设计 N 层应用程式的某些知识。更重要的是,对内置于 .NET 框架的 XML Web services 的基本支持允许研发人员构建突破传统 N 层方法的新应用程式。要了解如何更好地构建 .NET 应用程式的体系结构,您需要了解这一新领域中发生了哪些变化,连同如何充分利用这些变化。

  本文将对这些问题进行讨论。首先回顾一下在使用 Windows DNA 构建 N 层应用程式中学到的关键体系结构知识。然后,再按同一顺序将这些知识应用到使用 .NET 框架构建应用程式的过程中,从而对他们进行检验。最后一部分对使用 XML Web services 的应用程式的体系结构提供了一些建议。

  Windows DNA 环境

  将应用程式恐解成多个逻辑部分是很有铀的。将一个大软件分成几个小的部分会更利于软件的构建、重复利用和修改,对适应不同的技术或不同典业务组织也很有帮助。同时,更有一些综合因素需要考虑。虽然模块化和重复使用性很有效,但他们可能会导致赢用程式不能象使用其他方法那样安全、易管理和快速。本节将回顾一些从使用 Windows DNA牸际豕菇?N 层应用程式的普遍经验中所获得的基1咎逑到峁怪?丁?

  编写业务逻辑

  Windows DNA 应用程式通常使用以下三种实现方式中的一种或多种方式来实现其业务逻辑:

  ●ASP 页

  ●COM 组峻,可能使用 COM 提供的其他服务

  ●在 DBMS 中运行的存储过程

  一般来讲,在 ASP 页中编写过多的业务逻辑并不是个好办法。因为必须使用简单的语言,例如 Microsoft Visual Basic? Script (VBScript),而且每次执行时都要解释代码,这会对性能造成影响。而且 ASP 页中的代码不好维护,主要是因为业务逻辑通常和创建用户界面的表示代码混合在一起。

  鉴于这种情况,建议在编写中间层业务逻辑时,将业务逻辑当作 COM 对象来实现。这种方法比编写纯粹的 ASP 应用程式要稍微复杂一点,但是能够使用全功能语言来生成编译好的可执行文档,因此其结果要快得多。将业务逻辑包装在 COM 对象中还能够将此代码和包含在 ASP 页中的表示代码完全分隔开来,从而使应用程式更易于维护。

  从 COM 到 COM ,其体系结构相差无几。但是,正如许多 Windows DNA 体系结构设计人员所了解的,除非真正需要,否则不应使用 COM 提供的核心服务,如事务、实时 (JIT) 激活、基于角色的安全性和线程服务等。使用其他研发平台提供的 COM 或类似服务自然会导致应用程式速度更慢、更复杂。只有在以下情况下使用 COM 才有意义:

  ●需要跨越不同资源管理器(如 Microsoft SQL Server? 和 Oracle)的分布式事务。

  ●应用程式能够有效地利用基于角色的安全性。

  ●能够增强 Microsoft Visual Basic? 6.0 的线程操作。

  ●JIT 激活能够提高性能;浏览器客户端很少出现这种情况,因为 ASP 页是通过 JIT 有效激活的。

  ●COM 的配置优势大大简化了应用程式的部署。

  编写业务逻辑的第三种方式是,创建一些作为存储过程在数据库管理系统 (DBMS) 中运行的代码。尽管使用存储过程的主要原因是将数据库架构的周详信息和业务逻辑分隔开以简化代码的管理和提高安全性,但代码和数据如此接近也有助于优化性能。那些必须单独于 DBMS 的应用程式(例如由单独的软件供给商创建的应用程式)通常要避免使用这种方法,因为他会将应用程式锁定到某个特定的数据库系统中。存储过程的编写和调试可能会比 COM 对象的编写和调试难,而且此方法会减少重复使用代码的机会,这是因为 COM 对象通常比存储过程更易于重复使用。但是大多数自定义应用程式仍然连接到最初创建他们的 DBMS 上,因此使用存储过程的性能优势还是很大的。鉴于这种情况,那些必须尽可能运行良好的 Windows DNA 应用程式通常对部分或全部的业务逻辑都使用存储过程。

  构建客户端

  Windows DNA 既支持用 Visual Basic 等语言编写的本地 Windows 客户端,也支持浏览器客户端。浏览器客户端的局限性较大,尤其同时将 Microsoft Internet Explorer 和 Netscape 作为浏览器时。因此,应用程式通常同时拥有浏览器客户端和本地 Windows 客户端。浏览器客户端提供的界面很有限,但用他能够方便地访问 Internet,而 Windows 客户端能提供全功能的界面。使用可下载的 Microsoft ActiveX? 控件能够创建更复杂的浏览器界面,但必须确保浏览器是 Internet Explorer,并且用户愿意信任应用程式的创建者。

  管理浏览器应用程式中的状态

  ASP 应用程式能够使用几个不同的机制来维护服务器上客户端请求之间的信息。但是 Windows DNA 中有一条严格的规则,假如应用程式在两台或多台机器之间平衡负载,则绝对不能使用 ASP Session 对象存储每个客户端的状态。ASP 的 session 对象被锁定在一台机器上,因此不能用于负载平衡的应用程式。

  ASP session 对象和 ASP Application 对象更有另一个限制。使用他们中的任何一个来存储 ADO 记录集都会大大降低可伸缩性,因为他限制了应用程式研发多线程的能力。因此,在这两个对象的任何一个中存储记录集都不是好办法。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 缓存技术及在Rainbow Portal的应用

下一篇: 利用C#远程存取Access数据库[1]