您如何看待基于asp.net mvc应用程序构建的开源CMS应用程序的项目结构?该项目的昵称是“Gol”。
以下帖子概述了基本要求。
Ideas for OpenSource CMS in ASP.NET MVC
目前我正在考虑像这样放下......
Gol.Web.Controllers(所有控制器都在这里)。
Gol.Cms.Contracts(包含服务合同)
Gol.Cms.Services(包含服务实现)。
Gol.Web(包含视图的网络项目)
根据您的经验欢迎您的想法/建议(没有特别关注asp.net mvc)。
这可能对其他可能对设计初始项目结构感兴趣的人有所帮助。
答案 0 :(得分:3)
从1个项目开始,构建一些功能性的东西。仅添加新项目作为增长需求。我已经开始这样的新项目,计划一个宏伟的VS解决方案,其中包含令人印象深刻的单独项目,但最终却浪费时间。您最终会尝试将您的设计融入项目结构中,这是愚蠢的 - 项目结构可以帮助您。确定如何组织代码的唯一方法是使用代码进行组织。在构建时逐渐增加它比在前面尝试更容易。
答案 1 :(得分:1)
我通常使用以下项目构建我的MVC项目:
web
web.Controller
model
Business Logic
Data Access
Services
Any Libraries for sessions, caching etc.
你有一个结构合理的项目,尽管我认为你可以采取一些措施来改进它。
为您拥有的每个图层创建一个测试项目,以便您可以隔离测试。如果更改表示层,则可以转储与其关联的任何测试,并轻松移动业务逻辑。我还要为每个图层创建另一个集成测试项目。这样您就可以将它们排除在外,以便更快地进行持续集成编译。
我也没有Goi.Core.UI中的UI代码。您的UI代码可能是用于演示文稿的错误,应该存在于Goi.web
中祝你的项目好运
答案 2 :(得分:1)
对于更大的应用程序,我强烈建议使用MVC V2的区域。模块化您的工作有助于长期可维护性。您可以在此处找到相关信息:http://msdn.microsoft.com/en-us/library/ee307987(VS.100).aspx
从那里我将创建一个Gol.Areas与你们所有的区域项目(它们将包含你的控制器和每个区域的视图)。
如果您处理任何网络服务,我也会使用Gol.Communication图层。
我在“企业发展”层面给你这个建议。
对于测试,您可能会在尝试将测试与逻辑层分开时创建大量工作。只是一个想法。