.NET中3层架构和n层架构的主要区别是什么?

6

我在谷歌上搜索了3层和n层架构在.net中的主要区别,但是没有找到答案。一些网站称两者本质上相同,而另一些网站则表示它们之间存在差异。

我想知道它们之间的主要区别,并且哪一个在性能优化方面更好?


1
非常相似的副本:https://dev59.com/wHVC5IYBdhLWcg3wYQAp - hometoast
2
它们是相同的基本架构模式,但3层总是有3个层,而n层具有可变数量的层。在没有关于环境、基础设施、预期使用、何种类型的性能优化、应用程序结构和功能等任何限制条件的情况下,无法对哪种架构更适合性能优化做出准确的陈述。 - Esoteric Screen Name
4个回答

12

三层架构是软件开发中常用的架构,由以下几个部分组成:

  • 表现层(客户端浏览器)

  • 应用程序或业务逻辑层

  • 数据层

.Net的n层架构

图片描述

n层架构与三层架构的主要区别在于,它增加了两个额外的层次。例如,在数据层方面,一部分开发人员是SQL开发人员,他们在DB服务器上工作(创建DB结构、编写存储过程等),还有另一部分开发人员是.Net开发人员,他们负责使用那些存储过程并实现抽象化(实现仓储模式)...

希望这可以帮助您。


4
我认为你所解释的是三层架构而不是三层体系结构,体系结构指的是物理分区,而层指的是应用程序的逻辑分区。 - Kandarp Vyas
答案是误导性的。层和层级之间有明显的区别。答案混淆了层和层级之间的概念。 - Shamsul Arefin

8

我知道这个问题很老了,但真正简单而最正确的答案是:

3层体系结构就是N层体系结构,其中N=3。


2

MSDN链接

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对其进行序列化并将该断开连接的实体发送到表示层(客户端应用程序和机器)。


0

N-Tier3 Tier之间的区别如下。

3 Tier应用程序中,有三个层次,如表示层、应用层和数据层。这里应用层也包含业务逻辑。

另一方面,在N Tier应用程序中,应用层被分为两个,即应用层和业务逻辑层。应用层可以根据来自表示层(不同的操作系统、不同的平台等)的数据添加多达N个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接