【问题标题】:Suggested directory structure/placement of ASHX files建议的目录结构/ASHX 文件的位置
【发布时间】:2011-03-18 13:18:25
【问题描述】:

感谢已发布的 ASP.NET MVC 约定,我正在更仔细地研究 通用 约定优于我的项目配置的想法(相对于“自制”约定,或从各种约定)。

但是,我没有看到太多关于 ASHX 文件在 ASP.NET MVC 项目(以及 Web 表单项目)中的首选位置,例如。 p>

有推荐的目录结构吗?也许有一个包含更大目录结构的已发布规范?

我个人的习惯是将这些放在顶级 Handlers 目录中,但老实说,我个人还没有看到任何其他真正做到这一点的项目。

我想,根据它的作用(例如,生成图像),有人可能会争辩说这可能会进入 Content 目录,但似乎这个目录通常用于静态文件。

(旁白:有人可能会争辩说,在 MVC 项目中不需要 ASHX 文件,但根据此处发布的问题,似乎 ASHX 文件在 MVC 项目中仍然占有一席之地。)

编辑:忽略 MVC 项目,因为我建议将其作为一个示例。那么 Web 表单呢?

【问题讨论】:

  • 为什么要在 MVC 项目中使用处理程序?在 MVC 框架内处理您的需求肯定要好得多。我想不出一个处理程序会成为解决方法的场景
  • 因此搁置一旁 :) 例如,请参阅stackoverflow.com/questions/619697/… 已接受答案中的 cmets 在过去几天我研究此问​​题时遇到的其他问题。可以说,似乎 ASHX 文件在 MVC 项目中确实有一些有限需求。
  • 感谢链接问题 - 但我反对在已接受答案的每个场景中使用处理程序。所有这些都可以通过 MVC 以简单的方式处理。混入处理程序只是感觉混乱和倒退。
  • 我会同意的。 (发现另一个我前几天看到的 - stackoverflow.com/questions/856006/… 这与你上面所说的一致。)
  • 好的。似乎我的问题因为我使用 ASP.NET MVC 作为项目类型的 example 而丢失了。在 Web 表单项目中怎么样?有什么建议约定吗?

标签: asp.net ashx convention-over-configur


【解决方案1】:

我的个人惯例是不要将处理程序创建为 ASHX 文件,而是作为传递 IHttpHandler 接口的类。我将它们保存在单独的 .dll 文件中并通过 web.config 注册。

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

【讨论】:

  • 在这里。不再需要处理程序
  • 调整了问题,这样人们就不会迷失在 MVC 项目的示例中。所以单独的DLL。您对所有处理程序或每个返回类型使用单个 DLL?
  • 我通常按功能对它们进行分组。如果我有一个 API,它将以几种格式返回相同的逻辑结果,我会将所有处理程序放在一个 dll 中。
  • Hear Hear vs Here Here OT 我知道,但我不能让它站起来
【解决方案2】:

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

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

【讨论】:

  • 感谢您实际尝试回答问题,而不是就是否在 ASHX 文件中使用处理程序提供无根据的建议。
  • 谢谢 :) 有一段时间没有看这个问题了,我发现对我的问题的一些反对票被取消了。它可能并不理想,但有时您只需要在 MVC 项目中使用处理程序即可。
  • 我实际上在 Web 表单项目中使用了一个,试图阻止对某些静态内容文件的匿名访问。我试图弄清楚将处理程序放在哪里,发现 App_Code 文件夹适合这种文件。
猜你喜欢
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多