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

问题描述 投票:0回答:4

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

我想知道主要区别,以及性能优化方面哪个更好?

.net n-tier-architecture 3-tier
4个回答
12
投票

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

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

  • 应用程序或业务逻辑层

  • 数据层

.Net 中的 n 层架构

enter image description here

主要区别在于 n 层拱门多了 2 层。数据层的示例一部分开发人员是在数据库服务器上工作的 SQL 开发人员(制作数据库结构、编写存储过程等),以及在使用存储过程和进行抽象(实现存储库模式)方面工作的 .Net 开发人员。 .

希望这对您有帮助。


9
投票

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

3 层 N 层,其中 N=3。


2
投票

msdn 链接

N 层应用程序是具有 3 个或更多物理层的应用程序。我的意思是“表示/客户端层”、“应用程序/业务服务器层”和“数据层”(大多数情况下是数据库服务器),现在我们使用 Web 服务(或者更好的是 WCF 服务)在表示层和应用服务器层之间进行通信。这里你可以看到一张关于 N 层架构的简单而典型的图片:

不同的问题是,我们可能会将应用程序设计为 N 层应用程序,我的意思是,具有多个逻辑层,在其中实现不同的逻辑任务。例如,我们可以拥有 DAL 层(数据访问层)、BLL 层(业务逻辑层)、BFLL 层(业务外观逻辑层)、WCF 服务层和几个表示层,具体取决于我们使用的模式,例如 MVC(模型- View-Controller)、MVP(Model-View-Presenter)等。此外,在 N 层架构中,您可以猜测实体框架适合作为 DAL 层(数据访问类),并使用 EF 实体作为我们的断开连接的实体穿过所有层,好吗?

顺便说一句,并非所有 N 层应用程序都应该是 N 层应用程序,但所有 N 层应用程序必须在内部设计为 N 层应用程序。我的意思是,在很多情况下,模型的物理分割越少,性能就越好(更多的层有利于可扩展性,但由于延迟,不利于纯粹的性能)。请记住,N 层是关于逻辑层的。

好的!,所以如果我们回到 N 层架构(物理层),就像我说的,我们需要远程机制来将客户端层与应用程序服务器层(例如 WCF 服务)进行通信,因此当我们查询时从应用程序服务器层访问数据库,为了获取数据(例如订单),我们将其保留为 EF 实体,然后将其与 EF 上下文断开连接(分离),WCF 对其进行序列化并将该断开连接的实体发送到表示层(客户端应用程序和机器)。


0
投票

N -Tier
3 Tier
的区别如下。

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

另一方面,

N Tier
应用程序层分为2个,即应用程序层和业务逻辑层。应用层您最多可以添加
N
个数字,具体取决于来自表示层的数据(不同的操作系统、不同的平台等)。

© www.soinside.com 2019 - 2024. All rights reserved.