asp.net-mvc - 是否有针对 ASP.NET MVC 生产应用程序的建议解决方案结构

标签 asp.net-mvc projects-and-solutions structure code-organization solution

一般来说,我不喜欢将代码(BaseClasses 或 DataAccess Code)保留在 ASP.NET 站点的 App_Code 目录中。我通常会将这些内容分别提取到 MySite.BusinessLogic 和 MySite.DataAccess DLL 中。

我想知道我是否应该对 ASP.NET MVC 做同样的事情。

按照以下方式组织解决方案会更好吗

  • MySite.Common - DLL -(基于 .NET 系统 Dll 构建的基本功能)
  • MySite.DAL - DLL -(DataAccessLayer 和 DBML 文件)
  • MySite.Models - DLL -(MVC 模型,例如存储库类)
  • MySite.Controllers - DLL(使用模型的 MVC Controller )
  • MySite - ASP.NET MVC 网站。

或者我错过了一些东西......大概,我会失去一些好的东西(添加 View ,转到 Controller ,已添加的上下文菜单项)

最佳答案

我只使用 MVC 完成了几个项目,但使用您的命名结构我们做了以下工作:

  • MySite.Common - DLL -(基于 .NET 系统 Dll 构建的基本功能)
  • MySite.DAL - DLL -(数据访问层和 DBML 文件和存储库模型)
  • MySite.Models - 将此作为一部分包含在内 MVC Web 应用程序的一部分,并且只有 特定于 View 的模型没有 始终将每个映射一对一 存储库模型。
  • MySite.Controllers - 作为一部分包含在内 MVC 应用程序,但可以链接到业务层
  • MySite - MVC 应用。

最终我的 MVC 解决方案中有以下项目:

  • MVC Web 应用程序 - 包含 Controller 、用于将 DAL 数据映射到的 View 模型。
  • 通用 - 可在其他应用中使用的功能
  • DAL - 包含所有与数据访问相关的数据,包括包装类
  • BL - 可选,具体取决于是否需要大量业务特定逻辑
  • 测试

编辑: 我的 DAL 始终输出包装对象(如果使用 Linq2Sql,那么我将自动生成的类直接映射到 DAL 中的类)。 MVC 应用程序中存在的唯一类是表示 View 的容器,主要用于将数据传递到 View 。

如果您的移动应用程序使用类似的 View ,我不会尝试重复使用 MVC 应用程序 View 中的相同类。您总是需要管理一些细微的差异,并且您应该能够仅使用 DAL 类来映射到您的移动 View ,该 View 遵循将 View 类本地化到应用程序的模式。

关于asp.net-mvc - 是否有针对 ASP.NET MVC 生产应用程序的建议解决方案结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517509/

相关文章:

asp.net-mvc - Angular 2 和 Asp.Net 5 mvc 6 - 身份验证实践

c# - 如何在 linq 中对子列表求和?

c++ - 使用/Command 选项从命令行为 visual studio C++ 项目创建一个新文件

.net - 解决方案中的哪些项目正在使用某个项目的项目引用?

asp.net-mvc - ASP.NET MVC使用相同的 Controller 来分离移动 View

c# - .NET MVC 5 C# - 将可单击图标放置在列标题旁边,用于按姓氏等对页面上的项目列表进行排序?

visual-studio-2010 - 合并 Visual Studio 解决方案文件

javascript - 结构与 Javascript 代码? CSS、Divs,然后是脚本?

c - 为什么我的链表显示垃圾值

c - 在 C 中按字母顺序对字符串和结构进行排序