ASP.NET MVC 项目遵循关于 Models、Views 和 Controllers 的命名和文件夹规范。对于其他代码(例如:Action Filters、Delegating Handlers 等),是否存在最佳实践来确定其在项目文件夹结构中的位置?
ASP.NET MVC 项目遵循关于 Models、Views 和 Controllers 的命名和文件夹规范。对于其他代码(例如:Action Filters、Delegating Handlers 等),是否存在最佳实践来确定其在项目文件夹结构中的位置?
https://github.com/NuGet/NuGetGallery
看起来他们将FilterAttributes、HtmlHelpers等添加到了项目的根目录下:https://github.com/NuGet/NuGetGallery/blob/master/Website/RequireRemoteHttpsAttribute.cs
此外,Phil Haack和David Ebbo曾在Asp.Net MVC团队工作,您可以查看他们的GitHub存储库以了解他们喜欢做什么。
没有标准的方法。不同的从业者提出了各种方法,但都有一些优缺点。然而,根据适用的设计约束条件,以下是一些指针:
可重用性
如果您希望您的Action Filters、Delegating Handlers等可重用,则将它们放置在asp.net mvc webroot中的专用文件夹中即可完成工作。这样所有这样的过滤器都将具有全局范围,并且可以根据需要使用。
可插拔性
如果想要将过滤器等创建为可插拔模块,则将它们放置在单独的DLL中可能是值得的。该库可以被视为一个黑盒子,它将所有上下文信息作为函数输入,并可以根据需要重复使用。 我喜欢Orchard CMS的可插拔架构http://www.orchardproject.net/
我曾经问过一个类似的问题,关于如何组织asp.net mvc项目中的模型。不幸的是,没有得到太多回应。 asp.net mvc 3区域中的模型