2011-03-18 30 views
0

感谢已发布的ASP.NET MVC约定,我更加关注通用关于我的项目配置的约定(与'home-rolled'约定相比,或从各种惯例中获益)。建议的目录结构/ ASHX文件的位置

不过,我没有看到太多,如果有的话,有关的ASHX文件的首选位置,例如,ASP.NET MVC项目(以及Web表单项目)。

是否有这些推荐的目录结构?也许有一个发布的规范具有更大的目录结构?

我个人的惯例是将这些放在顶层处理程序目录中,但我真的没有亲眼见过其他任何真正做到这一点的项目。

我想,根据它的作用(例如,生成一个图像),可以说这可能会进入内容目录,但看起来这个目录通常用于静态文件。

(旁白:有人会认为不需要在MVC项目是ASHX文件,但根据张贴在这里的问题,这似乎ASHX文件仍然有自己的位置在MVC项目。)

编辑:忽略MVC项目,因为我只是作为一个例子。那么Web窗体怎么样?

+0

为什么要在MVC项目中使用处理程序?在MVC框架内处理您的需求肯定要好得多。我想不出一个场景,其中一个处理程序将是去的方式 – 2011-03-18 13:20:57

+0

因此,抛开:)例如,请参阅接受的答案http://stackoverflow.com/questions/619697/what-are上的评论-as-ashx-handler-file-in-asp-net还有其他一些我在研究这个过程中遇到的最后几天。可以这么说,似乎ASHX文件在MVC项目中确实有一些*有限的需求。 – 2011-03-18 13:25:04

+0

感谢关联的问题 - 但我会反对在接受的答案中使用每个场景中的处理程序。所有这些都可以通过MVC以简单的方式处理。在处理者混合只是感觉混乱和逆行。 – 2011-03-18 13:28:50

回答

2

我的个人约定是不创建处理程序作为ASHX文件,但作为提供形式IHttpHandler接口的类。我把它们放在单独的.dll文件中并通过web.config注册。

另一方面,您所链接的所有场景在ASP.NET MVC框架内很容易实现,无需额外的处理程序。

+0

这里。只需要处理程序就可以了 – BritishDeveloper 2011-03-18 14:24:17

+0

调整了这个问题,让人们不会迷失在MVC项目的例子中。所以独立的DLL。您对所有处理程序或每个返回类型使用单个DLL? – 2011-03-18 17:08:56

+0

我通常将它们按功能分组。如果我有一个API,它将以几种格式返回相同的逻辑结果,我将把所有的处理程序放在一个dll中。 – tpeczek 2011-03-18 20:40:21

1

对于ASP.NET MVC项目,关于ASP.net MVC project structure问题中的建议项目/目录结构有很好的讨论。

对于Web窗体似乎Are there naming conventions for ASP.NET web application directory structures?表明没有标准(截至2008年)。

+1

双重荣誉给你实际上试图回答这个问题,而不是就是否在ASHX文件中使用处理程序给出无根据的建议。 – Bryan 2015-02-24 17:46:28

+0

谢谢:)有一段时间没有看过这个问题,我看到我的问题中的一些反对票被取消了。这可能并不理想,但有时您只需在MVC项目中使用处理程序。 – 2015-02-24 19:48:30

+0

我实际上在Web表单项目中使用了一个,试图阻止某些静态内容文件的匿名访问。我试图找出在哪里放置处理程序,并发现App_Code文件夹适合于那种文件。 – Bryan 2015-02-24 23:37:22