步步为营 .NT三层架构解析.doc

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。三层的作用分别如下: ? 表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。我们网站展示给用户看的界面。 ? 业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。 ? 数据访问层:见名知意,负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改或者其它。 ? 以下我简单介绍下一个用户管理模块: ? 为了整个项目的开发方便,我们在项目中会建几个类库SQLHelper,BLL,DAL,Model和一个Web网站。为了命名清晰,我们可以这样命名这个三个工程(即在解决方案里添加的类库): ? 业务逻辑层(BusinessLogicLayer):BLL,命名空间默认设置为BLL ? 数据访问层(DataAccessLayer):DAL,命名空间默认设置为DAL ? SQL帮助类:SQLHelper,命名空间默认设置为SQLHelper ? 另外我们为了数据传递的方便,通常再添加一个类库,这个类库是贯穿于整个三层架构中的。即实体类。通常命名为Model,命名空间默认值设置为:Models。其中封装的每个类都对应一个实体,通常就是数据库中的一个表。如数据库中的用户表(custom)封装为(custom),将表中的每个字段都封装成共有的属性。 ? 这样三层架构的搭建就基本完成了。这三层有着非常强的依赖关系: ? 表示层 ← 业务逻辑层 ← 数据访问层 ? 他们之间的数据传递是双向的,并且通常借助实体类传递数据。 ? 那么三层架构都有哪些优点呢: ? 1、易于项目的修改和维护。在项目的开发过程中或者开发后的升级过程中,甚至在项目的移植过程中。这种三层架构是非常方便的。比如项目从Web移植到Form,我们只需要将表示层重新做一遍就可以了。其余两层不用改动,只需添加到现有项目就可以了。如果不采用这种架构,只是将代码写到表示层。那么所有的编码几乎都要重新来了。 ? 2、易于扩展。在功能的扩展上同样如此,如有功能的添加只需把原有的类库添加方法就可了 ? 3、易于代码的重用。这一点就不用解释了。 ? 4、易于分工协作开 还可以加个接口类库Iinterface, 加入设计模式,使你的代码灵活性更好,质量更高。 下一步讲解数据库的设计。敬请拍砖。 要开发用户管理系统,我们首先要了解需求,现在就举一个简单需求,用户表,假设有两种角色用一个字段departID来判断,管理员和员工, 我们要先建一个用户表custom和一个部门表department: CREATE TABLE [dbo].[custom]( [id] [int] IDENTITY(1,1) NOT NULL, [cname] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [departID] [int] NOT NULL, [age] [int] NOT NULL, [ename] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [password] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, CONSTRAINT [PK_custom] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]; CREATE TABLE [dbo].[department]( [id] [int] IDENTITY(1,1) NOT NULL, [departname] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [description] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, CONSTRAINT [PK_department] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =

文档评论(0)

mei1809816wei + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档