【问题标题】:Main Difference Between 3-tier & n-tier Architecture in .NET?.NET 中 3 层和 n 层架构的主要区别?
【发布时间】:2012-07-17 13:58:24
【问题描述】:

我在 Google 上搜索过 .net 中 3 层和 n 层架构之间的主要区别,但我没能找到。一些网站说两者本质上是相同的,一些网站说它们之间存在差异。

我想知道主要的区别,在性能优化上哪一个更好?

【问题讨论】:

  • 它们是相同的基本架构模式,但 3-tier 总是有 3 层,而 n-tier 有可变数量的层。如果没有关于环境、基础设施、预期用途、性能优化类型、应用程序结构和功能等方面的任何条件,就不可能准确地说明哪个更适合性能优化。

标签: .net n-tier-architecture 3-tier


【解决方案1】:

N -Tier3 Tier的区别如下。

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

另一方面,N Tier 应用层分为 2 层,即应用层和业务逻辑层。根据来自表示层的数据(不同的操作系统、不同的平台等),您最多可以添加N 编号的应用层。

【讨论】:

    【解决方案2】:

    msdn link

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      3 层 N 层,其中 N=3。

      【讨论】:

        【解决方案4】:

        三层架构是软件开发中的通用架构,它包括

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

        • 应用或业务逻辑层

        • 数据层

        .Net 中的 n 层架构

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

        希望对您有所帮助。

        【讨论】:

        猜你喜欢
        • 2011-05-20
        • 2019-11-10
        • 2017-07-05
        • 2011-04-19
        • 2011-02-20
        • 1970-01-01
        • 2011-09-30
        • 1970-01-01
        • 2012-05-31
        相关资源
        最近更新 更多