一.三层架构图 二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。Service Interface侧层用于将业务或数据资源发布为服务(如WebServices)。2.BL(Business Logic)层的职责是按预定的业务逻辑处理UI层提交的请求。(1)Business Function 子层负责基本业务功能的实现。(2)Business Flow 子层负责将Business Function子层提供的多个基本业务功能组织成一个完整的业务流。(Transaction只能在Business Flow 子层开启。)3.ResourceAccess层的职责是提供全面的资源访问功能支持,并向上层屏蔽资源的来源。(1)BEM(Business Entity Manager)子层采用DataAccess子层和ServiceAccess子层来提供业务需要的基础数据/资源访问能力。(2)DataAccess子层负责从数据库中存取资源,并向BEM子层屏蔽所有的SQL语句以及数据库类型差异。DB Adapter子层负责屏蔽数据库类型的差异。ORM子层负责提供对象-关系映射的功能。Relation子层提供ORM无法完成的基于关系(Relation)的数据访问功能。(3)ServiceAccess子层用于以SOA的方式从外部系统获取资源。注: Service Entrance用于简化对Service的访问,它相当于Service的代理,客户直接使用Service Entrance就可以访问系统发布的服务。Service Entrance为特定的平台(如Java、.Net)提供强类型的接口,内部可能隐藏了复杂的参数类型转换。(4)ConfigAccess子层用于从配置文件中获取配置object或将配置object保存倒配置文件。4.Entity侧层跨越UI/BEM/ResourceManager层,在这些层之间传递数据。Entity侧层中包含三类Entity,如下图所示: 三.Aspect Aspect贯穿于系统各层,是系统的横切关注点。通常采用AOP技术来对横切关注点进行建模和实现。1.Securtiy Aspect:用于对整个系统的Security提供支持。2.ErrorHandling Aspect:整个系统采用一致的错误/异常处理方式。3.Log Aspect:用于系统异常、日志记录、业务操作记录等。四.规则1.系统各层次及层内部子层次之间都不得跨层调用。2.Entity object 在各个层之间传递数据。3.需要在UI层绑定到列表的数据采用基于关系的DataSet传递,除此之外,应该使用Entity object传递数据。4.对于每一个数据库表(Table)都有一个DB Entity class与之对应,针对每一个Entity class都会有一个BEM Class与之对应。5.有些跨数据库或跨表的操作(如复杂的联合查询)也需要由相应的BEM Class来提供支持。6.对于相对简单的系统,可以考虑将Business Function子层和Business Flow 子层合并为一个。7.UI层和BL层禁止出现任何SQL语句。五.错误与异常 异常可以分为系统异常(如网络突然断开)和业务异常(如用户的输入值超出最大范围),业务异常必须被转化为业务执行的结果。1.DataAccess层不得向上层隐藏任何异常(该层抛出的异常几乎都是系统异常)。2.要明确区分业务执行的结果和系统异常。比如验证用户的合法性,如果对应的用户ID不存在,不应该抛出异常,而是返回(或通过out参数)一个表示验证结果的枚举值,这属于业务执行的结果。但是,如果在从数据库中提取用户信息时,数据库连接突然断开,则应该抛出系统异常。3.在有些情况下,BL层应根据业务的需要捕获某些系统异常,并将其转化为业务执行的结果。比如,某个业务要求试探指定的数据库是否可连接,这时BL就需要将数据库连接失败的系统异常转换为业务执行的结果。4.UI层(包括Service层)除了从调用BL层的API获取的返回值来查看业务的执行结果外,还需要截获所有的系统异常,并将其解释为友好的错误信息呈现给用户。六.项目组织目结构 以BAS系统为例。1.主目录结构: 2.命名空间命名:每个dll的根命名空间即是该dll的名字,如EAS.BL.dll的根命名空间就是EAS.BL。每个根命名空间下面可以根据需求的分类而增加子命名空间,比如,EAS.BL的子空间EAS.BL.Order与EAS.BL.Permission分别处理不同的业务逻辑。3.包含众多子项目的庞大项目的物理组织: 核心子项目Core的位置: Core子项目中包含一些公共的基础设施,如错误处理、权限控制方面等。七.发布服务与服务回调以EAS系统为例。 1.同UI层的Page一样,服务也不允许抛出任何异常,而是应该以返回错误码(int型,1表示成功,其它值表示失败)的形式来表明服务调用出现了错误,如果方法有返回值,则返回值以out参数提供。2. 如果BAS系统提供了WebService(Remoting)服务,则BAS必须提供BAS.Entrance.dll。 BAS.Entrance.dll封装了与BAS服务交换信息的通信机制,客户系统只要通过BAS.Entrance.dll就可以非常简便地访问BAS 提供的服务。3.如果BAS需要通过WebService(Remoting)回调客户系统,则必须提供仅仅定义了接口的BAS.CallBack.dll,客户系统将引用该dll,实现其中的接口,并将其发布为服务,供BAS回调。4.当WebService的参数或返回值需要是复杂类型――即架构图中的Service Entity,则Service Entity应该在对应的BAS.EntranceParaDef.dll或BAS.CallBackParaDef.dll中定义。 WebService定义的方法中的复杂类型应该使用Xml字符串代替(注意,Entrance和CallBack接口对应服务的方法的参数是强类型的),而Xml字符串和复杂类型对象之间的转换应当在BAS.Entrance.dll或BAS.CallBack.dll中实现。
您还没有登录,请您登录后再发表评论
讲述了c#三层架构 的编程理念,赶紧学习吧,好不容易才找到
为“校园BBS”系统搭建了三层架构的开发模式,并且以用户登录为例来讲解了三层架构是如何具体实现登录功能的,由此及彼,接下来我们的任务就是根据需求分析对“校园BBS”系统里其他功能来进行“三层架构”编程方法的...
走过Asp.net学习入门阶段后,真正开始着手开发一个Web项目时,才发现错综复杂的数据与关联根本就不是SqlDataSource和AccessDataSource数据源控件能简单解决的,而恰恰是被忽视了的一个ObjectDataSource数据源控件才...
一个用于学习Asp.NET C#编程的简单三层架构新闻发布系统,此源码是我学习三层架构时做的一个新闻发布系统,供学习三层的朋友们参考。 源码中涉及用到的技术: C#,Sql Server2005存储过程,触发器,Div+Css,jQuery, ...
ASP.NET高级编程:三层架构实现校园BBS登录功能.pptx
ASP.NET高级编程:搭建校园BBS系统三层架构.pptx
本套课程将对基于ASP.NET三层架构学生选课系统的代码部分进行讲解,该系统主要基于Visual Studio 和SQL Server进行实现,主要通过ASP.NET三层架构进行设计,系统功能简单,较易方便理解,适合新手和初级学生进行了解...
本项目采用Dnet主流的三层架构为最主要的开发框架。同时会涉及到jQuery Ajax、XML、jQuery插件 、Dtree递归树\WebChart高级图表统计图\Excel导出复杂报表打印\CodeSmith\图片水印\防盗链\WebService\面向对象的建模...
办公自动化系统称为OA系统,即Office Automatization System。...通过用ASP.NET2.0(C#)来编写系统,主要采用三层架构的B/S模式,利用软件工程的可行性研究、需求分析、概要设计、详细设计等来完成论文。
本套课程将对基于ASP.NET三层架构在线购物商城系统【成品】的代码部分进行讲解,该系统主要基于Visual Studio 和SQL Server进行开发,主要通过ASP.NET三层架构进行设计(三层部分由动软实现),系统功能较全面,适合...
使用ASP.Net编程语言+SQL Server2005数据库+三层架构开发,实现了同一个账号同一个秘密同时在线人数的控制,只要人数到指定的限制人数后在用此用户名和密码登录就会提示登录人数已满,难点在于判断用户是否下线,...
基于三层架构开发的ASP.NET校园考勤系统源码(毕业设计).zip 基于三层架构开发的ASP.NET校园考勤系统源码(毕业设计).zip 基于三层架构开发的ASP.NET校园考勤系统源码(毕业设计).zip 【资源介绍】 基于三层架构...
二、Vs2005 Access Asp.net Extjs三层架构源码 代码由51编程-代码器自动生成。 (1)、Extjs文件如:友情链接 (2)、Asp.NET文件如:菜单管理 菜单Url路径与项目相对文件路径一致 通过代码器的模板文件...
【运用技术】:Div+Css、JavaScript+JQuery,EasyUI、Asp.Net、T-Sql 编程、Ado.net、三层架构。 二、功能介绍 【项目描述】:网站融资平台是一个专业的大众融资网站,创业者将他的想法和设计原型以视频、图片和...
“网上图书超市网站”的设计采用当今最为流行的网络编程语言之一的asp.net制作,数据库采用sqlserver,提高了数据的存储安全性,另外采用apache服务器加快了系统的整体访问速度,系统整体框架采用B/S架构,利于和...
内容概要:本电商系统主要使用ASP.NET技术+BootStrap前端框架+SQLServer数据库,通过对该系统的设计,简化代码实现过程,保留核心功能,可以在实践过程中掌握ASP.NET技术的部分使用方法,如对三层架构开发模式的熟悉...
Vs2005+Access+Asp.net+Extjs简单三层架构源码 由51编程网站提供,代码由51编程-代码器自动生成。 共生成5种文件格式: Model: 实体层 BLL : 逻辑层 Dal: 数据层(主键自动增长,新增时都需要屏蔽) Ext.aspx: ...
技术点:C# windows、sqlserver、三层架构、增删查改 系统功能概述:主要功能实现学生信息的增删查改。细分如下: 1.实现管理员登录和注册。 2.实现管理员密码和信息修改。 3.实现管理员对学生信息的添加录入。 4....
相关推荐
讲述了c#三层架构 的编程理念,赶紧学习吧,好不容易才找到
为“校园BBS”系统搭建了三层架构的开发模式,并且以用户登录为例来讲解了三层架构是如何具体实现登录功能的,由此及彼,接下来我们的任务就是根据需求分析对“校园BBS”系统里其他功能来进行“三层架构”编程方法的...
走过Asp.net学习入门阶段后,真正开始着手开发一个Web项目时,才发现错综复杂的数据与关联根本就不是SqlDataSource和AccessDataSource数据源控件能简单解决的,而恰恰是被忽视了的一个ObjectDataSource数据源控件才...
一个用于学习Asp.NET C#编程的简单三层架构新闻发布系统,此源码是我学习三层架构时做的一个新闻发布系统,供学习三层的朋友们参考。 源码中涉及用到的技术: C#,Sql Server2005存储过程,触发器,Div+Css,jQuery, ...
ASP.NET高级编程:三层架构实现校园BBS登录功能.pptx
ASP.NET高级编程:搭建校园BBS系统三层架构.pptx
一个用于学习Asp.NET C#编程的简单三层架构新闻发布系统,此源码是我学习三层架构时做的一个新闻发布系统,供学习三层的朋友们参考。 源码中涉及用到的技术: C#,Sql Server2005存储过程,触发器,Div+Css,jQuery, ...
本套课程将对基于ASP.NET三层架构学生选课系统的代码部分进行讲解,该系统主要基于Visual Studio 和SQL Server进行实现,主要通过ASP.NET三层架构进行设计,系统功能简单,较易方便理解,适合新手和初级学生进行了解...
本项目采用Dnet主流的三层架构为最主要的开发框架。同时会涉及到jQuery Ajax、XML、jQuery插件 、Dtree递归树\WebChart高级图表统计图\Excel导出复杂报表打印\CodeSmith\图片水印\防盗链\WebService\面向对象的建模...
办公自动化系统称为OA系统,即Office Automatization System。...通过用ASP.NET2.0(C#)来编写系统,主要采用三层架构的B/S模式,利用软件工程的可行性研究、需求分析、概要设计、详细设计等来完成论文。
本套课程将对基于ASP.NET三层架构在线购物商城系统【成品】的代码部分进行讲解,该系统主要基于Visual Studio 和SQL Server进行开发,主要通过ASP.NET三层架构进行设计(三层部分由动软实现),系统功能较全面,适合...
使用ASP.Net编程语言+SQL Server2005数据库+三层架构开发,实现了同一个账号同一个秘密同时在线人数的控制,只要人数到指定的限制人数后在用此用户名和密码登录就会提示登录人数已满,难点在于判断用户是否下线,...
基于三层架构开发的ASP.NET校园考勤系统源码(毕业设计).zip 基于三层架构开发的ASP.NET校园考勤系统源码(毕业设计).zip 基于三层架构开发的ASP.NET校园考勤系统源码(毕业设计).zip 【资源介绍】 基于三层架构...
二、Vs2005 Access Asp.net Extjs三层架构源码 代码由51编程-代码器自动生成。 (1)、Extjs文件如:友情链接 (2)、Asp.NET文件如:菜单管理 菜单Url路径与项目相对文件路径一致 通过代码器的模板文件...
【运用技术】:Div+Css、JavaScript+JQuery,EasyUI、Asp.Net、T-Sql 编程、Ado.net、三层架构。 二、功能介绍 【项目描述】:网站融资平台是一个专业的大众融资网站,创业者将他的想法和设计原型以视频、图片和...
“网上图书超市网站”的设计采用当今最为流行的网络编程语言之一的asp.net制作,数据库采用sqlserver,提高了数据的存储安全性,另外采用apache服务器加快了系统的整体访问速度,系统整体框架采用B/S架构,利于和...
内容概要:本电商系统主要使用ASP.NET技术+BootStrap前端框架+SQLServer数据库,通过对该系统的设计,简化代码实现过程,保留核心功能,可以在实践过程中掌握ASP.NET技术的部分使用方法,如对三层架构开发模式的熟悉...
Vs2005+Access+Asp.net+Extjs简单三层架构源码 由51编程网站提供,代码由51编程-代码器自动生成。 共生成5种文件格式: Model: 实体层 BLL : 逻辑层 Dal: 数据层(主键自动增长,新增时都需要屏蔽) Ext.aspx: ...
技术点:C# windows、sqlserver、三层架构、增删查改 系统功能概述:主要功能实现学生信息的增删查改。细分如下: 1.实现管理员登录和注册。 2.实现管理员密码和信息修改。 3.实现管理员对学生信息的添加录入。 4....