一个开源的asp.net mvc项目的结构推荐

4

你认为基于asp.net mvc应用程序构建的开源CMS应用程序的项目结构如何?该项目的昵称是"Gol"。

基本要求在以下帖子中概述。

Ideas for OpenSource CMS in ASP.NET MVC

目前,我正在考虑按照以下方式进行布局...

  • Gol.Core.Session(包含真实和虚假的会话管理器)
  • Gol.Core.Caching(包含缓存,包括velocity,enterprise lib. provider)
  • 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无关)。

这可能也有助于其他人设计初始项目结构。


1
你可以分享一下你的软件链接吗?因为它是开源的,所以看到你项目结构的最终结果(以及一些关于你实现的细节)会非常有趣。 - Gerwald
3个回答

3

从一个项目开始,构建一些有用的东西。只有在需求增长时才添加新项目。我像这样启动了新项目,计划使用令人印象深刻的大量独立项目来解决问题,但最终发现这是浪费时间。你最终会试图将设计适应项目结构,这是愚蠢的 - 项目结构存在是为了帮助你。确切了解如何组织代码的唯一方法是拥有需要组织的代码。随着构建的增量逐步完成,比试图一次性完成容易得多。


有些同意您的评论,但是一点规划(当然不是宏伟的)总是好的。我提出项目结构的原因并不是为了随便写下来,而是因为我知道这其中将会涉及到哪些组件。 - rajesh pillai

1

对于更大的应用程序,我强烈建议使用MVC V2的区域。将您的工作模块化有助于长期可维护性。您可以在此处了解有关它们的信息:http://msdn.microsoft.com/en-us/library/ee307987(VS.100).aspx

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

如果您正在处理任何Web服务,则还需要使用Gol.Communication层。

我以“企业开发”级别为您提供此建议。

至于测试,您可能会尝试将测试与逻辑层分离而导致更多的工作量。这只是一个想法。


1

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

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

你的项目结构相当不错,不过我认为有一些改进空间。

为每个层创建一个测试项目,这样你就可以隔离测试。如果你改变了表现层,你可以删除任何与之相关的测试,并轻松移动你的业务逻辑。我还会为每个层创建另一个集成测试项目,这样你就可以把它们排除在更快的持续集成编译之外。

我也不会把UI代码放在Goi.Core.UI中。你的UI代码可能是用于演示操作的,应该存在Goi.web中。

祝你的项目好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接