我在谷歌上搜索了3层和n层架构在.net中的主要区别,但是没有找到答案。一些网站称两者本质上相同,而另一些网站则表示它们之间存在差异。
我想知道它们之间的主要区别,并且哪一个在性能优化方面更好?
我在谷歌上搜索了3层和n层架构在.net中的主要区别,但是没有找到答案。一些网站称两者本质上相同,而另一些网站则表示它们之间存在差异。
我想知道它们之间的主要区别,并且哪一个在性能优化方面更好?
表现层(客户端浏览器)
应用程序或业务逻辑层
数据层
n层架构与三层架构的主要区别在于,它增加了两个额外的层次。例如,在数据层方面,一部分开发人员是SQL开发人员,他们在DB服务器上工作(创建DB结构、编写存储过程等),还有另一部分开发人员是.Net开发人员,他们负责使用那些存储过程并实现抽象化(实现仓储模式)...
希望这可以帮助您。
我知道这个问题很老了,但真正简单而最正确的答案是:
3层体系结构就是N层体系结构,其中N=3。
N-Tier应用程序是指具有三个或更多物理层级的应用程序。这里指的是“表示/客户端层”、“应用/业务服务器层”和“数据层”(在大多数情况下是数据库服务器),现在我们使用Web服务(甚至更好的是WCF服务)在表示层与应用程序服务器层之间进行通信。这里是一个关于N-Tier架构的简单而典型的图示:
不同的问题在于,我们可能将应用程序设计为N-Layer应用程序,也就是说,在其中实现了不同的逻辑任务的几个逻辑层。例如,我们可以有DAL层(数据访问层)、BLL层(业务逻辑层)、BFLL层(商业外观逻辑层)、WCF服务层以及几个表示层,具体取决于我们使用的模式,如MVC(模型-视图-控制器)、MVP(模型-视图-展示者)等。此外,在N-Layer架构中,你可以猜到,Entity Framework适合作为DAL层(数据访问类)以及使用EF实体作为我们通过所有层传递的断开连接实体,对吗?
顺便说一下,并不是所有的N-Layer应用程序都应该是N-Tier应用程序,但所有的N-Tier应用程序必须在内部设计为N-Layer。我的意思是说,在许多情况下,你分割模型的越少,性能就越好(更多的层数有利于可扩展性,但不利于纯粹的性能,因为延迟时间)。请记住,N-Layer关注的是逻辑层。
那么,如果我们回到N-Tier架构(物理层级),如我所说的,我们需要远程机制来将客户端层与应用程序服务器层进行通信(例如,WCF服务)。因此,当我们从应用程序服务器层查询数据库以获取数据(如订单)时,我们将其保留为EF实体,然后将其从EF上下文中断开连接(分离),WCF对其进行序列化并将该断开连接的实体发送到表示层(客户端应用程序和机器)。
N-Tier
和3 Tier
之间的区别如下。
在3 Tier
应用程序中,有三个层次,如表示层、应用层和数据层。这里应用层也包含业务逻辑。
另一方面,在N Tier
应用程序中,应用层被分为两个,即应用层和业务逻辑层。应用层可以根据来自表示层(不同的操作系统、不同的平台等)的数据添加多达N
个。