如鹏网.Net三层架构第一章三层基础

三层架构:

 1.通常意义上的三层架构就是将整个业务应用划分为:表现层、业务逻辑层、数据访问层。区分层次的目的即为了“高内聚低耦合”的思想。

 2.该课程中通过讲解餐饮管理系统来让大家理解三层之间的关系。

 3.课程中会带着大家分析数据库如何设计、软件开发的几个阶段、MD5的使用、

 NPOI组件如何读写Excel文件、单例模式创建窗体、三层如何搭建、三层之间的关系、手写三层等。

 希望大家学会该项目后能理解三层的精髓。

-----------------------------------------------------------------------------------------------------------------------

第 1 节  01三层项目的介绍

  主要内容:介绍三层项目,三层如何搭建,数据库的设计,复习ADO.NET封装SqlHelper

  技术点:

      1.分析需求,设计出合理的数据库(根据数据库的范式)

      2.MD5算法对密码进行加密

      3.使用NPOI操作Excel,导入导出

      4.单例模式

  项目:

      1.手写三层,

      2.商业级的代码生成器,

      3.窗体间传值(属性或字段)

  目标:

      1.做一个项目,对之前学习的总结,并为asp.net打基础,熟练练习

      2.各组之间相互协作完成团队的项目

      3.精通三层的精髓和三层架构的原理

      4.通过三层安全熟练的操作数据库中的数据

-----------------------------------------------------------------------------------------------------------------------      

第 2 节: 02三层项目介绍

  顾客开单

  增加消费

  上帝结账

  会员管理

  房间设置

  商品管理

  订餐管理

-----------------------------------------------------------------------------------------------------------------------      

第 3 节: 03软件开发阶段和介绍三层

  软件开发的阶段:

    1.需求分析:

        和客户聊天,解决问题,设计出逻辑模型,确定开发文档,和客户确定项目。

        通过代码语言对客户的需求进行实现 

    2.功能设计:

        功能进行模块化设计,包括数据库

    3.软件编码:

        功能的代码实现

    4.软件测试:

        功能完成后,让测试人员进行完全测试:包括代码,性能,异常等

    5.软件维护:

        后期处理,每年维护(加功能,升级等)

  介绍三层:(是一种比较好的软件架构,不是必须要用)

      界面层UI(User Interface)

      业务逻辑层BLL(business logic layer):逻辑处理,判断合法性,合法数据给DAL

      数据访问层DAL(Data Access layer):和数据库打交道,对数据进行操作的代码写在DAL层,一般为SQL语句,

                        DAL只有对数据的操作,SQL语句,ADO.Net的类一般只应该出现在DAL中。

      实体(Model):处理三层之间的关系,

    UI--BLL--DAL,Model

    业务 逻辑  数据  实体

 

                          

     招聘人:服务员(漂亮,身材好,会说)吸引顾客  :UI  

        厨师   (技术强,            BLL

        采购员 (砍价,会说            DAL

 

       菜(Model)        

    顾客  ->     服务员  (要求:番茄炒蛋) ->厨师(没有源材料)->采购员(采购原料)

            UI            BLL        DAL    数据库  

        

    关系: 联系靠Model,全部引用Model,UI引用BLL,BLL引用DAL

-----------------------------------------------------------------------------------------------------------------------      

第 4 节: 04搭建三层

  其他项目类型,空白解决方案 

  Model,DAL,BLL 类库:RpCater.Model,RpCater.DAL,RpCater.BLL

  UI : RpCater

  引用:RpCater引用Model 和BLL

     RpCater.BLL引用Mode和DAL

     RpCater.DAL引用Model 

  app.config 添加到最终运行的项目(RpCater)

  DAL操作数据库:

      使用Mysql ,添加mysql.data 引用 和 system.configuration 引用 

      添加MysqlHelper : public  class MySqlHelper

-----------------------------------------------------------------------------------------------------------------------      

第 5 节: 05分析需求

  数据库的三大范式:

    每列中不能有冗余的信息(原子性,不能再分了)

    每个表中都有主键

    引用其他表的主键信息

  需求分析:

    选择位置  点菜 结账  桌子 包间 会员 等

    餐桌---房间---会员---商品---商品类别---订餐

    餐桌:ID,编号,状态,房间ID,位置描述,提交时间,提交人ID,删除标识,备注

    T_Desks:Id,Num,State,RoomId,Region,SubTime,SubBy,DelFlag,Remark

    房间:ID,编号,名字,类型,最低金额,最多容纳人数,提交时间,提交人ID,删除标识

    T_Rooms:Id,Num,Name,RoomTypeId,MinMoney,MaxNum,SubTime,SubBy,   DelFlag

       房间类型:ID,Name

    T_RoomTypes:

    会员:ID,编号,名字,电话,地址,生日,有效期,提交时间,提交人ID,删除标识

    商品:      ID,编号,名字,拼音,价格,单位,成本价,库存,类别ID,提交时间,提交人ID,删除标识,备注

    T_Products:  Id,Num,Name,Spell,Price,Unit, Cost, Stock,CategoryId,SubTime,SubBy,   DelFlag,   Remark

    商品类别:ID,名字,编号,提交时间,提交人ID,删除标识,备注

    T_Categorys:Id,Name,Num,SubTime,SubBy,DelFlag,Remark

    订餐:

    用户表:ID,用户名,登录名,密码,最后登录时间,最后登录IP提交时间,删除标识

    T_Users:Id,Name,LoginName,Password,LastLoginTime,LastLoginIP,SubTime,IsDel

    订单表:ID,编号,开始时间,结束时间,状态,会员ID,金额,提交时间,提交人ID,删除标识

    中间表:餐桌和订单关系,ID,餐桌ID,订单ID

    中间表:订单和商品关系,ID,商品ID,订单ID

-----------------------------------------------------------------------------------------------------------------------      

第 6 节: 06封装SqlHelper类

   思路:

   开发步骤:登录,主界面,会员管理

   模块:

      核心业务:登录,顾客开单,增加消费,上帝结账

      CRUD:  会员管理,房间设置,商品管理

    mysql

    素材

    封装SqlHelper类

 

    登录窗体

    主窗体

    会员模块

    ......

    md5加密

    excel  

  

如鹏网:http://www.rupeng.com

posted @ 2016-03-05 12:16  小居工作室  阅读(399)  评论(0编辑  收藏  举报