【问题标题】:3 layer architecture in asp.net [closed]asp.net 中的 3 层架构 [关闭]
【发布时间】:2014-01-22 20:56:13
【问题描述】:

我正在 asp.net 中启动一个项目。我想使用 3 层架构。现在我的图层有问题。我这样管理这些层:

但我在某处看到使用 App_Code 和其他一些格式。你能帮我看看哪一个是真实的和标准的吗?

【问题讨论】:

标签: c# asp.net n-tier-architecture


【解决方案1】:

App_Code 是一个特殊的 ASP.NET 文件夹,供 ASP.NET 网站使用。预编译的 ASP.NET 应用程序不使用它。您可以在this article 中阅读有关两者之间差异的更多信息。因此,如果 UI 是一个 ASP.NET 网站,您可以使用 App_Code 文件夹来放置一些逻辑,尽管这更适合您当前设计中的外部库。这使得该代码具有更好的单元可测试性和可重用性。

【讨论】:

  • 你的意思是我的设计没有问题,也是3层的?
  • 是的,但这是相对的。我的意思是你把它们分成了 3 个项目。你可以有一个单一的 ASP.NET 应用程序并在内部进行这种分离 -> 使用例如命名空间,......你仍然会有 3 层架构。但通常最好将不同程序集中的层分开。
【解决方案2】:

避免使用 App_Code。在站点执行之前,您在此处输入的任何内容都不会编译。您的表单和用户控件所具有的任何依赖项最好放在主 Web 文件夹之外的 UI 层中。对于早期而不是稍后编译的对象,您会更加放心。

【讨论】:

    【解决方案3】:

    现在我经常看到这个标准:

    ProjectName
     -ProjectName.Core (All poco classes and interfaces)
     -ProjectName.Data (All entity framework stuff)
     -ProjectName.Service (All business logic)
     -ProjectName.Web (All font end logic)
    
    • “核心”是所有项目中用于移动数据的引用。
    • “数据”仅在“服务”中引用。
    • “服务”仅在“Web”中引用。

    【讨论】: