《软件开发的3层架构和多层架构的概念详解.docx》由会员分享,可在线阅读,更多相关《软件开发的3层架构和多层架构的概念详解.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、业务实体数据访问层:DALCommon软件开发的3层架构和多层架构的概念详解1:三层架构:1)数据访问层:DAL:用于实现与数据库的交互和访问,从数据库猎取数据或保存数据 到数据库的部分。2)业务规律层:BLL:业务规律承上启下,用于对上下交互数据进行规律处理,实现业务 目标。3)表示层:Web主要实现和用户的交互,接受用户或返回用户恳求的数据结果的呈现,而 详细的数据处理则会交给业务规律层和数据访问层去处理。4)业务实体Model:用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用 以描述业务中客观存在的对象。Model分别出来时为了更好地解耦,更好的发挥分层、复 用、扩展增加敏捷
2、性。5)通用Common:通用的帮助工具类(数据校验、加密解密、缓存处理等)6)数据库访问类时对ADO.NET的封装,封装了一些常用的重复的数据库操作。微软的企 业库SQLHelper.cs,为DAL供应访问数据库的帮助工具。表示层:Web业务逻辑层:BLL通用类库数据库访问类:DBUtility2:三层架构:(高)内聚:一个模块内各个元素彼此相关联的紧密程度(低)耦合:软件结构内不同模块之间依靠程度的度量。优点1:三层结构将表示部分和业务规律部分根据客户层和应用服务器分别,客户端和 应用服务器、应用服务器和数据库服务器之间的通信以及异构平台之间的数据交换都可以 通过中间件或者相关程序来实现。
3、复用降低、周期缩短、维护便利。优点2:分层结构将数据访问和规律操作都集中到组件中,增加了系统的复用性。CS、 BS 系统通用底层。不管是 ASP.NET、WINFORM. WebService优点3:系统的扩展性大大增加。缺点:分层多开发工作量大。数据不直接提取降低性能。级联修改,表示层增加一个 功能。3:三层架构实例演示:1:新建分项目分其它类型项目分Visual Studio解决方案今保存:2:解决方案今添加分新建项目令其它语言Visual C#分类库3:详细项目分属性分程序集名称+默认命名空间程序集名称:指定将包含程序集清单的输出文件的名称,即最终生成的文件名。默认的命名空间:指定添加到
4、项目中的文件的基命名空间。为了统一,一次设置项目的 前缀为公司缩写等。这样每次在项目中添加类文件时,类文件的命名空间的前最就会自动 带上Maticsoft.顶级命名空间。4:详细项目今Bin9添加引用分项目今保存就可应用电11国国囱国国国.二解决方案MyFirstThreeLayer (6 个项目白豆BLL+J- Propertiesj由白引用图 Product. cs臼Common田Propertiesj由白引用 图 Function. cs0 / D:l . Web“匚 App_D at aj白O BinMati csoft. BLL. dll Mati csoft. BLL. pdb M
5、aticsoft. Common, dll Mati csoft. Common, pdb Maticsoft. DAL. dll Mati csoft. DAL. pdb Maticsoft. DBUtility. dll Maticsoft. DBUtili ty. pdb Mati csoft. Model. dll Maticsoft. Model, pdbL/ CssStyle+1 imagesA| StyleSheetl. css C Product用“邑 AddCollege. aspx+-段 AllCollege. aspxE-园 Show, aspx田国 Default. a
6、spx,爹 Web. configB -朋 DALJ- Properties!白白引用Q DBUtility” -LJ Model口 System-O System. Data_J System. Xml图 Product, cs白 朋 DBUtility- Propertiesj国口弓I用图 DbHelperSQL. cs白豆1 Modell+J- PropertiesS- H引用图 Product, csB namespace Maticsoft. DBUtility/数据访问抽象基础类-/ public class DbHelperSQL/数,据库连技字,符串(web. config来配
7、置),可以动态更改connectionString支持多数 由 I礴麦善口public DbHelperSQL()|.I/ /返回一个给定的查询语句的结果集合/ public SqlDataReader ExecuteReader(string sql). .|/无返回的查询语句-/ public int xecuteNonQuery(string sql)int resultNum = 0;tryIsql con. OpenO;sqlcmd = new SqlCoiranand(sql, sqlcon);resultNuio=sqlcmd. Ey e cut eNonQuery 0;| re
8、turn resultNum;catch (SqlException ex)(throw new Exception(ex. Message, ex);)finally(sqlcon. Close();)4:基于工厂模式的三层结构模型:表示层ASP.NET Web Forms数据处理接口数据处理接口业务逻辑层业务逻辑处理DAL FactoryIDAL业务实体数据访问层数据访问层SQLServerDALOracleDALDBUtility or SQL DAAB解决方案9个项目及其描述序号项目名称类型描述1BLL类库项目业务规律层2Common类库项目通用类库3DALFactory类库项目抽象工
9、厂4DBUtility类库项目数据库操作类5IDAL类库项目数据库访问层抽象接口6Model类库项目数据实体7OracleDAL类库项目基于Oracle的数据访问层8SQLServerDAL类库项目基于SQL Server数据访问层9WebA Web表示层层之间调用关系:WebTBLL, BLL调用DALFactory来打算要创建哪个DAL的对象的接 口,然后返回给BLL的是IDAL对象。IDAL接口是一系列“功能”的声明和名单,接口 并没有实现细节,只是一些功能方法的定西。SQLServerDAL和OradeDAL均继承自IDAL 接口,并实现了接口定义的全部功能。相当于全部的数据访问层被封装起来了,暴露在外 面的就是IDAL接口被调用。Model作为一种数据结构(类似C中的结构体)在各层之间 传递和使用。