首页 文章

ASP.NET MVC文件夹约定

提问于
浏览
3

ASP.NET MVC项目遵循模型,视图和控制器的命名和文件夹约定 . 对于其他代码(例如:动作过滤器,委托处理程序等),是否有最佳实践可以在项目的文件夹结构中找到它们?

2 回答

  • 1

    找出答案的一个好方法是查看实际的最佳实践是什么,以查看开源项目 . IIRC NuGet Gallery是由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回购 .

  • 3

    没有标准的方式 . 不同的从业者提出了各种方法,但都有一些优点和缺点 . 但是,根据适用的设计约束,这里有一些指示:

    • Reusability

    如果您希望Action Filters,Delegating Handlers等可以重用,那么将它们放在asp.net mvc webroot中的专用文件夹中就能完成这项工作 . 这样,所有这些过滤器都具有全局范围,可以根据需要使用 .

    • Pluggability

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

    我曾经问过一个关于如何在asp.net mvc项目中组织模型的类似问题 . 不幸的是没有得到太多回应 . Models in asp.net mvc 3 areas

相关问题