zoukankan      html  css  js  c++  java
  • 关于三层结构的一点使用心得与开发建议

     

    信息系统典型开发架构是:
    MS SQLSERVER + 存储过程 +DataAccess+ DAL + Model + BLL + UI

    • 数据库设计 : 在建表时候,请添加对字段描述。这将为后来所有自动创建注释和前台页面做好准备。(字段描述可在codeplus里进行直接录入设置)

    • 存储过程 :商业逻辑基本不放在这个里面,存储过程主要作用是完成对表基本操,包括添加、删除、修改、选择等。而所有这些代码 CodePlus 都可以自动为您生成。

    • DataAccess :这个东西是从 Microsoft Application Blocks for .NET 中改造而来,采用 CodePlus 一个基础就是使用这个 DataAccess 做为连接和处理数据库层。具体关于这个 DataAccess 在 CSDN 上我 Blog 里已经发表了一篇 《 个性化Microsoft Data Access V2.0 以适用于应用系统开发 》,该Database.cs可点击这里下载 DatabaseCSV2.0.rar

    DAL : 即 Data Access Layer ,数据访问层。这里实现对于数据库基本操作方法:如 Create , Update , Delete , IsExist , Select 等,当然,你还可以有更多方法,这一层就是提供与数据库直接交流。但值得说明一下是,这一层,不同与 BLL 层,在 DAL 层里面,不需要要考虑如检验数据合法性、多步逻辑操作等,因为这是 BLL 事,而 DAL 任务是完成一个一个原子性针对数据库操作功能。而这些原子性功能由 BLL 来组装调用,再暴露给表现层以更为粗粒度方法。打了比喻,如果把做一个系统比成建一个房子,则 DAL 就是砖厂了。或者是其他原件厂。
    Model :这个层就是数据结构层了,形象地说,这就是在 C# 里面系统对应数据库结构了。(当然,并不完全相同,至少我们会考虑在这里添加很多诸如 XXXCollection 继承 System.Collections.CollectionBase 结构集合类。这对于 BLL 调用起来,可会方便多了。 Model 层被 DALBLLUI三层调用,成为他们三层之间传递数据参数主要结构通道。举个例子,比如前台要显示一个产品信息,则在 BLL 里面会有一个方法叫做 :
    Public ProductInfo GetProductInfo(int prodId) 。
    在前台,则可以这样来调用:
    ProductInfo info = product.GetProductInfo(prodId);
    BLL 里,设计这个 GetProductInfo 时,可能会考虑很多因素,即步骤,然后最后调用 DAL 里面一个方面 Init(int prodId,out ProductInfo info) 而得到这个 info, 并返回给上层。
    BLL : Business Logic Layer ,商业逻辑层。这是系统核心位置,因为所有主要逻辑都是在这里实现,看 DAL ,那是一堆砖,到 BLL 这,就是清水房了。赫赫。再经过 Pres 表现层美化实现 UI, 则一个装修过房子就搞定了哈。所以,在 BLL 里面,将按大对象进行方法设计,在每一个方法里,可能会调用到多个 DAL 里面小方法。再举个例子,登录,很常见了。给表现层, BLL 只应该提供一个叫
    public bool SignIn(string username,string password) ;方法。而这个方法里面,将包含: 1 、 CheckUserExist(string username),2 、 Init(string username,out UserInfo info) , 3 、加密 info 中 password,4 、将这个 password 和传进来 password 进行比较,如果相同,则返回 true, 否则 false. 而这 4 步中,有 3 步是 DAL 里面方法。加密不是哈。

    UI: 表现层。这是用户界面设计了,涉及到有二个方面。一、数据显示与读取方式:在 PetShop 3.0 中看到一个很好思路,就介绍一下,其实页面要显示东西,主要都来自于同 Model 层相似内容,说得不明白,换一种说法,就是,是不可以试图把一个得来 XXXInfo 直接赋值给页面,如果页面被用户修改了内容,则是不是可以直接回读一个 XXXInfo 来,如果这样可以实现,则重用度大大提高。而且,由于思路一致,则可以由 CodePlus 来生成。或者也这是很关键一点吧,哈哈。因为如果你页面上要显示有 120 项,你光写赋值,可能就要 2 个小时。如果用这个方式,读写一起完成。 5 分钟时间( 1 秒生成, 1 秒 copy 粘贴,还有 4 分 58 秒改一改。 (CodePlus 没有聪明到能替你做一切事 J ) 。二、调用方法粒度,在 aspx.cs 里面,做一些字符层面过滤是必要,然后剩下,就交给 BLL 来做吧。
     
  • 相关阅读:
    利用 pandas库读取excel表格数据
    Spark学习笔记3——RDD(下)
    Spark学习笔记2——RDD(上)
    Spark学习笔记1——第一个Spark程序:单词数统计
    Spark学习笔记0——简单了解和技术架构
    java标识符和关键字
    数据库事务ACID特性(原子性、一致性、隔离性、持久性)
    大数据系统的运行
    虚拟机和hadoop
    大数据基础1
  • 原文地址:https://www.cnblogs.com/suneryong/p/721344.html
Copyright © 2011-2022 走看看