2012-04-28 122 views
3

ASP.NET MVC项目遵循模型,视图和控制器的命名和文件夹约定。对于其他代码(例如:动作过滤器,委托处理程序等),在项目的文件夹结构中找到这些代码的最佳做法是什么?ASP.NET MVC文件夹约定

回答

3

一个很好的方法是找出真正的最佳实践是看到开源项目。 IIRC的画廊的NuGet写在Asp.Net MVC的家伙,所以它会起到一个很好的例子为他们眼中的最佳实践,同时还作为一个实际的产品:

https://github.com/NuGet/NuGetGallery

看起来他们添加他们FilterAttributes,HtmlHelpers,等该项目的根目录:https://github.com/NuGet/NuGetGallery/blob/master/Website/RequireRemoteHttpsAttribute.cs

此外,Phil HaackDavid Ebbo制作的Asp.Net MVC团队,你可以看看他们的GitHub回购他们喜欢做的事情。

+0

将控制器保存在单独的项目中并将视图保存在单独的项目中是一个好主意吗? – user20358 2012-05-31 10:39:01

1

没有标准的方式。不同的从业者已经提出了各种方法,但都有一些优点和缺点。然而,根据适用的设计限制,这里有一些指针:

  1. 重用

    如果你希望你的操作过滤器,委派处理程序等受到重用,然后将它们放置在一个专门的文件夹中的ASP .net mvc webroot将完成这项工作。这样所有这些过滤器将具有全局范围并且可以根据需要使用。

  2. 可插拔

    如果想创建一个可插拔模块出了过滤器等的这可能是值得将它们放置在一个单独的DLL干脆。该库可以被认为是一个黑盒子,它将所有上下文信息作为功能输入,并可根据需要重新使用。 我喜欢果园CMS的可插入式架构http://www.orchardproject.net/

我问过类似的问题有时回来就如何在asp.net mvc的项目组织模式。不幸的是没有得到太多的回应。 Models in asp.net mvc 3 areas