【问题标题】:ASP.NET nTier ArchitecutreASP.NET nTier 架构
【发布时间】:2013-04-17 22:03:02
【问题描述】:

我有一个项目需要我使用 ntier 方法设置一个 Web 应用程序。但是,由于我所做的大多数项目都是使用 1 层的网站,因此我对这种架构不熟悉。

我决定建立一个 3 层架构,表示层,业务和数据访问层 最后是数据层。

我想知道,由于这些层位于不同的服务器机器中,它们应该如何通信?使用 Web 服务会帮助解决这个问题吗?

是否有任何简单的教程或课程可以完全教授这一点?从构建应用程序到部署在不同的服务器机器上。

【问题讨论】:

  • 您可能会从tinyurl.com/d99w8rl 获得一些灵感。示例是 C#,但更多的是关于可能对您有用的概念。

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


【解决方案1】:

我认为是一个很好的教程。我建议您在项目中使用 MVC 4 并遵循以下逻辑

http://www.codeproject.com/Articles/439688/Creating-ASP-NET-application-with-n-tier-architect

【讨论】:

    【解决方案2】:

    使用以下内容: 表示层 --> 通过创建 Asp.Net 项目
    业务逻辑和数据访问层 --> 通过创建 Web 服务项目。
    SQL 数据库 --> 通过在安装 SQL 的机器上创建一个新数据库。

    完成后:

    1. 在 SQL Studio 中设计数据库表。

    2. 在 BL & DAL 项目中,使用 Entity Framework 连接到您的 SQL DB,这将创建一个现成可用的方案,实际上会自动生成一个包含您需要的所有业务对象的 DAL。

    3. 在 BL 中为所有应该实现的方法创建方法签名(定义)。

    4. 在您的表示层中添加对您的 BL 和 DAL Web 服务的服务引用。

    这需要时间,您需要阅读大量有关实体框架和 Web 服务以及如何利用它们来满足您的需求的内容。

    【讨论】:

    • 嗨,G.Y!目前我创建了一个示例项目来模拟 nTier 架构。我有一个包含 3 个项目的解决方案,一个 BLL、一个 PL 和一个 WebService 项目。因此,PL 项目/层中的 aspx.vb 文件将调用 WebService 函数,该函数将调用然后调用 BLL 项目/层中的函数。我正在考虑将 PL 项目分离到一台服务器机器上,将 BLL 和 Webservice 项目分离到另一台服务器机器上。为了让 PL 层能够调用 Webservice 函数,我是否需要进行任何配置?
    【解决方案3】:

    如果它们位于不同的机器上,那么使用 Microsoft 技术的常见场景是:

    1. User Interface (UI) 由 ASP.NET 实现
    2. Business Layer (BLL) 由 C#VB .NET 实现 作为一堆 DLL
    3. Data Access Layer (DAL) 作为关系数据库,即 SQL 带有表的数据库,存储过程......加上类(一些 DLLs) 来访问数据库。最佳做法是使用ORMsEntity Framework 来处理Data Access LayerData Layer

    您在常见场景中的层将通过这种方式相互通信:

    • 您的UI 将与BLL 通信,通常使用Web Services
    • 您的BLL 将与DAL 通信,通常使用Web Services
    • 您的DAL 将与Database 通信,通常使用TCP/IP

    虽然n-Tier 设计是最佳实践,但这并不意味着每一层都应该托管在不同的机器上(认为它更多的是逻辑分离而不是物理分离)。例如,如果您将所有 3 层都保留在同一台机器上,并且只是将数据库托管在不同的服务器上,那么您不需要为 BLLDAL 实现 Web 服务,从而降低复杂性和实施时间加上其他好处,即更高的通信速度和安全性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-17
      • 2010-10-18
      • 2011-11-11
      • 2011-08-08
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多