2011-03-18 34 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