【问题标题】:Project structure recommendation for an opensource asp.net mvc project一个开源asp.net mvc项目的项目结构推荐
【发布时间】:2010-11-24 17:42:58
【问题描述】:

您如何看待基于 asp.net mvc 应用程序构建的开源 CMS 应用程序的项目结构?项目昵称是“Gol”。

以下帖子概述了基本要求。

Ideas for OpenSource CMS in ASP.NET MVC

目前我正在考虑这样放置......

  • Gol.Core.Session(包含真假会话管理器)
  • Gol.Core.Caching(包含缓存,包括速度、企业库提供程序)
  • Gol.Core.Logging(包含日志组件和提供程序)
  • Gol.Core.Instrumentation(包含与仪器相关的项目)
  • Gol.Core.UI(UI 助手和其他与 UI 相关的东西)
  • Gol.Core.Security(安全、身份验证相关的东西)
  • Gol.Core.Utilities(常见实用功能,如加密、辅助方法等)。
  • Gol.Core.Metadata(元数据管理器)。
  • Gol.Web.Controllers(所有控制器都放在这里)。

  • Gol.Cms.Contracts(包含服务合同)

  • Gol.Cms.Model(包含服务模型)
  • Gol.Cms.Services(包含服务实现)。

  • Gol.Web(包含视图的 Web 项目)

  • Gol.Test(或 Gol.Specification)

你怎么看?结构是否超载/臃肿?

欢迎根据您的经验提出您的想法/建议(与 asp.net mvc 无关)。

这也可能有助于其他可能对设计初始项目结构感兴趣的人。

【问题讨论】:

  • 您能否发布一个指向您的软件的链接(因为它是开源的)?看到您的项目结构的最终结果(以及有关您的实施的一些细节)会非常有趣

标签: asp.net-mvc content-management-system


【解决方案1】:

从 1 个项目开始并构建一些功能性的东西。仅根据增长需求添加新项目。我已经开始了这样的新项目,计划了一个宏大的 VS 解决方案,其中包含令人印象深刻的独立项目数量,但最终浪费了时间。您最终会尝试将您的设计融入您的项目结构中,这很愚蠢 - 项目结构可以帮助您。确定需要如何组织代码的唯一方法是组织代码。在构建过程中逐步完成它比尝试全部预先完成要容易得多。

【讨论】:

  • 有点同意你的cmets,但有点计划当然不浮夸,总是好的。我提出项目结构的原因不是为了把它放下,而是因为我知道将成为其中一部分的组件。
【解决方案2】:

对于更大的应用程序,我强烈建议使用 MVC V2 的区域。模块化您的工作有助于长期维护。你可以在这里找到它们:http://msdn.microsoft.com/en-us/library/ee307987(VS.100).aspx

从那里我将创建一个 Gol.Areas,其中包含所有区域项目(它们将包含每个区域的控制器和视图)。

如果您处理任何网络服务,我也会选择 Gol.Communication 层。

我在“企业发展”层面给你这个建议。

至于测试,您可能需要做大量工作来尝试将您的测试与逻辑层分开。只是一个想法。

【讨论】:

    【解决方案3】:

    我通常使用以下项目来构建我的 MVC 项目:

     web
        web.Controller
        model
        Business Logic
        Data Access
        Services
        Any Libraries for sessions, caching etc.
    

    尽管我认为您可以采取一些措施来改进它,但您的项目结构相当不错。

    为您拥有的每一层创建一个测试项目,以便您可以隔离测试。如果您更改表示层,您可以转储与它们相关的任何测试并轻松移动您的业务逻辑。我还将为我拥有的每一层创建另一个集成测试项目。这样您就可以排除它们以更快地进行持续集成编译。

    我也不会有 Goi.Core.UI 中的 UI 代码。您的 UI 代码可能用于演示错误,应该存在于 Goi.web 中

    祝你的项目好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2012-03-16
      • 2012-12-18
      • 1970-01-01
      • 2017-04-15
      相关资源
      最近更新 更多