走向ASP.NET架构设计——第三章:分层设计,初涉架构(前篇)

  本篇主要讲述ASP.NET应用中如何进行逻辑分层。本篇的前篇会从Smart UI 反模式和它的一些缺点开始讲述,然后一步步的讲述如何逻辑分层,而且在后篇中也会给出一个ASP.NET设计中常用的仅供参考的分层架构的Demo。

  一个稳定和易维护的系统必须建立在一个好的基础之上。计划和设计一个好的架构对一个项目的成败起着至关重要的作用。可能在我们一般做项目的时候,经验告诉我们:3层,N层的设计,基本就能把问题解决了,很多的情况确实是这样的。在提出一个设计的时候,常常要考虑为什么要这样划分结构,而且常常要承担风险和责任,特别是万一这个项目因为最初的设计而导致崩溃,那就郁闷了。所以设计的提出一定和考虑业务。

  下面就先来看看Smart UI的设计方式。

  Smart UI

  想想我们最初是如何开发ASP.NET应用的:在页面设计界面中把界面布局好,然后双击控件就开始编写功能代码。很多的时候把逻辑判断和数据访问都写在页面的.cs的文件中。后来我们学习到了分层,逐渐的明白了这种方式的缺点:导致业务逻辑代码到处分散而且重复,不利于以后的更改和维护等。

  尽管有上述说的一些缺点,Smart UI还是有它的用途的,如为项目快速的建立一个原型或者开发一个功能比较的小的项目。还有一个问题,如何最初用Smart UI的方式开发的小项目很成功,慢慢的变大,变复杂了,那么很多的问题就出来了。就像Flower在架构模式一书中提到的:尽量用领域模型来组织一个项目的业务逻辑,尽管在开始的时候逻辑不复杂或者看不出这种方式的好处,一旦项目变化,好处就显而易见了。在对项目原型开发中,尽量不用Smart UI。

  其实Smart UI最大的问题就是:职责不清—把所有的东西全部写在一起。为了和以后讲述的内容的比较,我还是写一个例子出来,很多朋友都已经对这种Smart UI的开发方式很熟悉了,可以跳过下面的例子。在例子中,我们会用电子商务中一个常见的场景:一个页面来显示一个产品的列表信息,如名字,推荐的零售价格(Recommend Retail Price),折扣,和库存等。(如果朋友们愿意,可以照着下面的步骤一起做)

  1. 打开Visual Studio,并且建立一个”空白的解决方案”,命名为:ASPPatterns.Chap3.SmartUI,然后添加一个新的Web项目,命名为:ASPPatterns.Chap3.SmartUI.Web.

  2. 在新建的Web项目中右击:Add—New Item,添加一个Sql Server的数据文件:Shop.mdf.

NET技术走向ASP.NET架构设计——第三章:分层设计,初涉架构(前篇),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。