由于已发布的ASP.NET MVC约定,我正在更加密切地关注通用约定的概念而不是我的项目的配置(与'home-rolled'约定相比,或者从各种惯例)。
但是,我没有看到ASHX文件的首选位置,例如,例如,ASP.NET MVC项目(以及Web表单项目)。
这些是否有推荐的目录结构?也许有一个已发布的规范,其中包含更大的目录结构?
我的个人惯例是将这些内容放在顶级处理程序目录中,但老实说,我没有亲自看到任何其他项目真正做到这一点。
我想,根据它的作用(例如,生成图像),可以说这可能会进入Content目录,但似乎这个目录通常用于静态文件。
(旁白:有人可能会说MVC项目中不需要ASHX文件,但基于此处发布的问题,看来ASHX文件仍然在MVC项目中占有一席之地。)
编辑:忽略MVC项目,因为我建议将其作为一个例子。那么Web Forms怎么样呢?
答案 0 :(得分:2)
我个人的约定是不要将处理程序创建为ASHX文件,而是作为提供IHttpHandler接口的类。我将它们保存在单独的.dll文件中,并通过web.config注册。
另一方面,您已经链接的所有场景很容易在ASP.NET MVC框架中实现,而无需额外的处理程序。
答案 1 :(得分:1)
对于ASP.NET MVC项目,在ASP.net MVC project structure问题中对建议的项目/目录结构进行了很好的讨论。
对于Web表单,似乎Are there naming conventions for ASP.NET web application directory structures?表明没有标准(截至2008年)。