• .NET三层架构的个人理解与总结


    花了一周的时间研究了关于.NET三层架构的基本知识
    先简单的介绍下三层
    在这里所说的三层并不简单指物理意义上的三层概念而是应该以数据为单元来划分。
    主要是考虑到数据的访问及数据安全来采用三层技术。
    三层:
    WEBUI/BLL/DAL/MODEL
    首先 这里的意思分别为:表示层、业务逻辑层、数据访问层、数据模型层。其中BLL/DAL/MODEL顺序及引用不能发生变化
    也就是DAL此用MODEL,BLL引用DAL,从顺序上来看是属于从上往下级的引用。
    model层主要用来定义数据表中的各字段 我们常用的就是get 和set 来定义一个基本的数据(字段)模型。
    DAL层是一个系统的核心,因为这里涉及到了数据库的常见操作比如 插入 删除 更新及查询等操作
    在这里操作数据库应该遵循三点:一是尽最大限度的将SQL语句优化、二尽最大限度的增加安全 三尽最大限度的通过方法函数的输写来提升系统的速度及性能。
    比如我们有时定义数据库的连接字符串时,习惯用sqlhelper.cs来事先写好sqlconnection类及方法,然后在dal里调用此con方法。
    当然SQL语句的拼接也是一个不可忽略的地方。
    其三,关于系统的访问提升 有时我们习惯这样去定义一个方法
    比如dal层下有Insert.cs类,此类下有一方法
    public int InsertSql(string str)
    {
    //code;
    }
    我们调用此方法 时 会要先new下 也就是:
    dal.insert di=new dal.insert();
    return di.InsertSql();
    如果在大型项目中 都这样New的话 在系统性能上会可能降低速度。
    所以在定义此类方法 我们能定义成静态的话最好。例如
    public static int InsertSql(string str)
    {
    //code;
    }
    那么在调用时直接 return dal.Insert.InsertSql(str)就行了。
    在这里SQL数据访问及定义方面有很多方法可以在dal里面使用
    比如 参数化查询 存储过程 等
    这里有点需重示SQL语句尽量使用参数操作。
    其实DAL层说明白点就是数据库的基本操作(访问层—);
    而BLL层是连接表示层和数据访问层之间的桥梁,我们写好的DAL层通过BLL层指写UI层调用的方法 。
    那么UI层直接调用BLL层里面的方法 就可以达到数据访问的目的了。原因很简单因为bll调用的是dal层里面的数据访问方法 。
    所以在这里BLL我们称之为业务逻辑层 。
    UI层也就是客户能看到的页面 而基本的数据交互完全封装在了bll、dal层里了。

    一是达到安全、二是有利于后期对系统的升级维护
     那么三层有哪些优点呢?
    这里我所说的优点根据我个人理解(不全面不要拍砖啊)
    1、对系统的维护更加方面,如果修改UI层完全不用考虑其他,直接动UI就行。
    2、系统的开发更有效率 因为采用了分层概念便于项目经理及团队更好的完成项目的开发
    3、现在项目开发多采用VSS来控制软件或项目的运营与开发,对于多人协同开发能更有效的开发项目

    但三层也有一定的弊端 个人理解就是加大了项目开发成本 但总的来说 还是利大于弊的。
      现在在三层基础上延伸而来的还有一些其他技术比如三层的工厂模式、MVC等
    。.NET里面 还有些技术是需要我不断研究学习 比如AJAX /JUQERY/ 等 目前的前端页面 要求有一定的与客户交互性 所以有必要掌握一种前端技术 来更好的辅助程序员的开发工作。
    //////////
    //////////http://www.51aspx.com/Code/ThreeLayerUserManage 入门的用户管理系统。包括基本的数据操作功能。
    /////////////
    以上只是根据个人的理解总结的一些三层知识,可能哪里理解不到位 希望不要拍我 敬请高手们的指教.........

  • 相关阅读:
    flex布局语法
    sqlserver判断text字段是否有数据
    z-index设置后导致遮罩层显示跳动问题
    C# UpdatePanel加载完毕回调JS
    json日期字符串格式化时间
    钉钉考勤机开发需要注意的一个坑
    python bs4 + requests4 简单爬虫
    温故而知新: 关于 js Form 方式提交的一些新认知
    window 环境 Composer 安装 thinkphp5
    百度地图 绘制东莞东城地图示例
  • 原文地址:https://www.cnblogs.com/nianyuwen/p/2417855.html
Copyright © 2020-2023  润新知