2012-01-03 81 views
1

我见过使用UI项目和代码项目讨论了MVC项目结构。例如ASP.NET MVC UI项目+核心项目拆分

http://lostechies.com/jimmybogard/2009/12/09/organizing-asp-net-mvc-solutions/ http://stackoverflow.com/questions/4357911/an-ideal-folder-structure-for-net-mvc

我试图做到这一点在Visual Web Developer中2010速成,但我仍然最终在UI项目中具有以下非网站相关文件:.csproj,.csproj.user,项目dll文件和项目pdb文件。

这破坏了目的,因为拆分为两个项目的目的是为了让UI足够干净,可以直接作为网站运行,而无需过滤掉不必要的文件。

  • 我复制了原项目到做它UI项目
  • 我从第二个项目决策删除UI文件包含相同的解决方案
  • 我删除从第一个项目的代码文件中的第二个项目它的代码项目
  • 我在UI项目中添加了对代码项目的引用。

我做错了吗?或者这是这种方法的局限性吗?

任何额外的细节可能会帮助我得到这种配置工作,将不胜感激。

回答

1

将项目分离为单独的核心+ UI项目的原因是清楚地分离源代码问题。

您提到的两个文件CSPROJ和CSPROJ.USER文件仅适用于VWD。它们不是源代码,并且在发布项目时不会部署。

其他2个文件,核心DLL和核心PDB,分别是运行时程序集和调试文件。您的UI项目需要对这些参考进行引用,以便能够编写和编译到核心项目中的代码。

因此,在您的UI项目的bin文件夹中有Core.dll和Cord.pdb是可以的,并且不违反SoC。 csproj文件与代码无关,它们只在那里才能让VWD管理项目。

+0

对不起,我所指的DLL/PDB文件是实际上没有代码但仍生成3KB DLL的UI项目。 关于VWD项目文件,是的,我明白,我只是习惯于打开网站项目的其他方式,其中项目文件存储在网站之外。 – 2012-01-03 20:49:28

+0

如果您的UI项目是一个MVC3项目,它确实会生成代码。请参阅global.asax文件。这是编译到你的用户界面的DLL。 – danludwig 2012-01-03 20:53:26

+0

我将global.asax.cs移动到了核心项目,这意味着它是核心DLL的一部分,只留下了只包含<%@ Application%>一行的UI项目中的global.asax本身 - 是否还会继续编译? – 2012-01-03 21:00:05