热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.Net七层架构是怎么回事?怎么构建?

常听人说:.Net七层架构构建企业平台,功能强大,本人不才,未能理解其含,是不是与我们平时说的二层、三层、四层程序设计是一回事?另外,如何构建七层架构。
常听人说:.Net七层架构构建企业平台,功能强大,本人不才,未能理解其含,是不是与我们平时说的二层、三层、四层程序设计是一回事? 另外,如何构建七层架构。

118 个解决方案

#1


没见过7层的,估计与2、3层的也差不多。

估计是在不同级别的地方,就算一层的吧。如银行系统,在总部算2层,在省行一层,在市行一层,在支行一层,在各储蓄所一层,就这么一层一层下来的吧。

不懂,关注。

#2


层次不是越多越好的,而是视乎项目的实际需要,这一点要明确;

常用的3层结构就是:数据访问层、业务逻辑层、UI层

而项目可能有更多的需要,
例如一个项目用了Web Service,那么业务逻辑层和UI层之间就会多了一层;
如果用的是Remoting,那么业务逻辑层与UI层之间就有Remoting代理和Remoting服务两层;
如果项目比较大,复杂度很高,那么业务逻辑层内部如果缺乏规划也会变得混乱,那么视乎实际的需要就会把它划分为2~3层;如果项目并发量很大,需要分布式技术,那么层次又要加......

个人认为,在把项目架构理解的比较透彻之前,迷信所谓的n层结构其实意义不大----而仅仅能够作为参考
尤其是在.net平台下

#3


我也同意楼上的说法!分的层并不是越多就越好的!就像类的封装一样,要依需要而定。
小弟不才,纯属个人意见。并建有
QQ群:vs.net设计与开发
群号码:9978078
期望各位大侠的加入,共同讨论建模知识和程序的设计开发。

#4


常用的3层结构就是:数据访问层、业务逻辑层、UI层
例如一个项目用了Web Service,那么业务逻辑层和UI层之间就会多了一层;
如果用的是Remoting,那么业务逻辑层与UI层之间就有Remoting代理和Remoting服务两层;
如果项目比较大,复杂度很高,那么业务逻辑层内部如果缺乏规划也会变得混乱,那么视乎实际的需要就会把它划分为2~3层;如果项目并发量很大,需要分布式技术,那么层次又要加......

#5


无非就是针对具体问题而对层次的进一步细化,比如加个数据实体层,有的项目还把很多控件封装起来,方便使用,不过这个只是和UI交互,我觉得不能算一个层来讲,呵呵

#6


微软通常都分4层。层次多并不是好事

#7


不理解

#8


数据库,数据访问层,实体和数据转换存储层,业务逻辑层(facade),纯实体层,web层,6层够用了,实在不行,再加事务处理,验证处理层等等。。。

#9


表示层-代理层-外观层-业务规则层-数据访问层-实体层-数据库

#10


7层?我觉得表示层、逻辑层、数据层、就是够了。至于现在所说的那么多中间层,我个人觉得并没有完全脱离逻辑层的范围,纯属个人YY

#11


通常三层就够了,为了方便系统之间的整合会有个业务的中间层。
中间层在。NET下通常以WebServier或Removting实现。
以上也只是个人理解。
我有个同事更误解成,一个解决方案中有多少个项目就是多少层。

#12


常听人说:XXX万层架构构建企业平台,功能强大,本人不才,未能理解其含,是不是与我们平时说的二层、三层、四层程序设计是一回事? 另外,如何构建七层架构。

#13


ui层,业务外观,业务规则,数据访问,服务层  在这些中间可以加web service 和 remoting
我觉得那只是逻缉上的概念罢了 一般物理上分层大都是三层,如果在这些层中间都加上web services,那可以称得上是N层,不过一般的项目应该没这种需求

#14


我现在是5层,都被人说过度设计了!

#15


agree with appleseeker. 可以参考一下微软的duwamish7示例,麻雀虽小,五脏俱全。

#16


实际上最基本的还是三层,只不过再加上了扩展而已。

数据层,通常只存放数据,也就是数据库。如果这一层加上了什么验证之类的也可以算一层了。

业务层,也就是自定义层,通常我们所编写的处理各种应用的(如查询统计)都属于这一层,如果把在这一层所做的开发也独立分层感觉有点可笑。就好象经理必须通过副经理才管事一样。

客户层,这一层是发往客户端的,可能会实现一些小的应用(如客户端验证),但主要的还是在一个外观上。

以目前的应用结构上来说,无论怎么扩展实际上都是这三层。

#17


是N层。一般是三层,

#18


web services不是夹在中间的一层,

#19


三层是概念意义上的,而七层是实现层面上的,如果你搞清楚了七层,你对整体架构就会非常清晰,从而在开发过程中能更从容的分工

#20


三层是概念意义上的,而七层是实现层面上的
----------- 这句话很同意,其实不同的视点而已,最基本的还是3层

#21


层次划分是根据项目的需要而言,以3层为基础,可以根据实际需要自己再细分,这个没有固定的标准.

#22


常听人说:.Net七层架构构建企业平台,功能强大,本人不才,未能理解其含,是不是与我们平时说的二层、三层、四层程序设计是一回事? 另外,如何构建七层架构。

---------------------------------------------------------------------------------
七成结构就功能强大???
荒唐!

一个企业平台,你要去实现它的功能,随便你用什么方法。至于所谓的几层,完全是概念上的东西,你想怎么划分就怎么划分。功能强大与你划分的层次有什么必然的关系???

一个企业平台,一个软件系统做好了,如果没有变更的话,那么功能很可能是固定了,你把它的层次划分得越多,功能就会越强???荒唐……

构建7层结构???刚刚说了,不管是几层结构,完全是概念上的东西,你想怎么划分就怎么划分。也无所谓构建几层结构之谈。

一般的,信息系统有七成结构:
1、用户层:用户面向对象操作
2、业务层:信息系统业务模型
3、功能层:信息系统功能模型
4、数据层:信息系统数据模型
5、工具层:信息系统开发工具
6、OS层:  网络操作系统
7、物理层:网络与通信硬件

一般而言,用户在第1、2层上工作,程序员在第3层上工作,信息系统分析员在第4层上工作,DBA与系统管理员在第5、6层上工作,硬件安装与维护人员在第7层上工作。上述七层的相互关系是:下一层是上一层的基础,上一层是下一层的实现目标。由上向下是系统分析的过程,而由下向上是系统实现的过程。 

#23


所谓七层指的是:
1。业务外观
2。业务规则
3。数据访问
4。系统框架
5。Web服务
6。Web界面
7。Windows界面
等七个层面,个人认为,不同的项目依据各自的特点只要对相应的层面进行裁减,就能得出符合各个项目的特点的系统组织框架。

比如:
含有以上各个层面的为分布式应用系统的,
含有业务外观,业务规则,数据访问,系统框架,Web服务为Web服务器
含有业务外观,业务规则,数据访问,系统框架,Windows界面为桌面应用系统。

关键是要适当的剪裁

#24


4。系统框架
------------------
这个算一层?看不懂。。。

#25


Just So So

#26


厉害!就是不知道要分那么多层有何用??

#27


出于企业级构架考虑!

#28


to: starpacific(全世界的细雨落在全世界的草坪)
为啥说web services不是夹在中间的?

小弟是在不明白web services的定位

#29


mark

#30


问世间层为何物?

#31


客户端
业务逻辑
数据库
业务逻辑层不管你怎么去划分都是归于业务逻辑层的实现,所以还是三层结果最切实的说法和做法.

#32


一本书有300页,分为20个小节,5章,3部分,就这么简单

#33


呱呱,路过,路过,呵呵,微软网站上有关于设计基于。NET 的N层架构的应用的指导,至于用多少层,每个层都是什么层是根据项目的需求而定的,做一个小网站的话不必要用什么3层架构吧,做一个多界面的企业应用,可哟用手机,winform,webform,linux,大型机都可以访问数据的程序,你想不分层都不行,你的的的底层数据有的来自MSSQL,有的来自ORACLE,有的来自XML WEB SERIVICE,有的来自ACCESS,你的业务实体需要传递到DCOM层,还要让J2EE使用,你还要把订单用MSMQ传递给第三方程序使用,你想不分层都不行,你的业务层经常改变,你就要实现业务层和其他层的松散耦合,否则你每次改变业务层代码,都要改好多层的代码。。。。。
反正不可能一句话回答“什么样的架构是最好的架构”,“应用程序应该分多少层”这样的问题。

#34


http://blog.csdn.net/thinkingforever/archive/2005/06/27/404173.aspx

#35


我只知道网络(net)是7层,楼主看错了吧。

#36


分层只不过是门面模型的一种应用而已,层与层之间的分开有利于梳理信息流。同时也有利于分配任务。

但是分层肯定要影响效率了,因为直接传递信息总比通过某些中间对象传递要快一些。但是现在的机器已经不在乎这点效率了(否则JAVA和.NET都死在娘肚子里^_^)

分层一定要有合适的开发思想,不能乱分,要符合业务的逻辑层次,否则维护人员不知所以,这个项目就得自己留着用吧,^_^

小弟愚见

#37


呵呵,结构化程序设计!

#38


顶一下

#39


说的是software design 还是 network?呵呵

#40


mark

#41


7层不是必须,但是4~5层一般的项目都有。

如果说不要分层,那基本上就不是什么项目。

#42


分层会给开发人员带来负担,增加开发时间。
为什么要分层,建议提问者想清楚这个问题后,再做决定。
~~~~~~~~~~~~

#43


当然,我个人经验,一般的小项目,分为 UI, Logic(Biz) 两部分。
大项目会在UI与Logic中插入 Facade. 防止复杂的调用一旦模块出现疾病,产生感染(或者成为蝴蝶效应)
项目中不存在 DataAccess,而是使用 SilenceLake ORM 2 作的对象关系映射,一个 entity.Save() 就能够保存,entity.Delete() 就能够删除,查询不用去写 SQL 的时候,DataAccess 没有什么用处了。

#44


搜索Duwamish

#45


我个人觉得层的主要作用就是用来区分系统的逻辑划分的,不可太过迷信,怎么方便合理怎么用才是正道!

#46


也顶一下

#47


天花乱坠~_~!
mark

#48


http://www.exdevteam.com/blog/more.asp?name=payne&id=56

Dowamish构架分析篇

#49


多层架构是三层架构的细分!

#50


看来看去还是同意他们的看法:
starpacific,Eddie005

推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 基于Axis、XFire、CXF的webservice客户端调用示例
    本文介绍了如何使用Axis、XFire、CXF等工具来实现webservice客户端的调用,以及提供了使用Java代码进行调用的示例。示例代码中设置了服务接口类、地址,并调用了sayHello方法。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
author-avatar
蒋军利
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有