2009-09-01 139 views
4

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

基本要求在下面的文章中有概述。

Ideas for OpenSource CMS in ASP.NET MVC

目前我正在考虑铺设下来,像这样的......

  • Gol.Core.Session(包含会话管理器都真假)
  • Gol.Core.Caching (包含缓存,包括速度,企业库提供商)
  • Gol.Core.Logging(包含日志记录组件和提供者)
  • Gol.Core.Instrumentation(con含有杂质的仪器相关的项目)
  • 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

  • Gol.Test(或Gol.Specification)(网页包含的意见项目)

你觉得呢?结构是否过载/臃肿?

您的想法/建议欢迎根据您的经验(没有什么特别与asp.net mvc)。

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

+1

你可以发布一个链接到你的软件(因为它是开源的)?看到你的项目结构的最终结果(以及关于你的实施的一些细节)会非常有趣。 – Gerwald 2012-12-21 15:50:00

回答

1

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

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

你有相当良好的结构工程虽然有几件事情我觉得你可以做些什么来改善它。

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

我也没有在Goi.Core.UI中的UI代码。你的UI代码可能呈现malipulation,应该住在Goi.web

祝你的项目

1

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

从那里我会创建一个Gol.Areas与你所有的区域项目在那里(他们将包含你的控制器和每个区域的意见)。

如果您处理任何网络服务,我还会使用Gol.Communication层。

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

至于测试,你可能会创建大量的工作,试图将你的测试从逻辑层分离。只是一个想法。

3

从1个项目开始,建立一些功能。只根据增长需求添加新项目。我已经开始了这样的新项目,计划一个宏伟的VS解决方案,并带有令人印象深刻的单个项目,但这最终浪费时间。你最终会试图将你的设计融入到你的项目结构中,这很愚蠢 - 项目结构会帮助你。知道如何组织代码的唯一方法是让代码组织起来。在构建过程中逐步完成它比试图全部事先做好要容易得多。

+0

有些同意你的意见,但有些计划不是宏伟的现状,总是很好。我提出项目结构的原因并不是为了降低项目结构,而是因为我意识到将成为其中一部分的组件。 – 2009-09-16 10:30:01