2009-05-21 15 views
10

我在Visual Studio中創建ASP.NET網站有很多經驗。但是有另一種方法可以通過Web應用程序完成同樣的事情,這些Web應用程序的文件結構略有不同。在使用Web應用程序項目類型的Visual Studio .NET而不是網站時,我應該在哪裏放置類? (ASP.NET)

由於我創建了我的第一個Web應用程序,因此無法再使用App_Code文件夾中的類(.cs文件),除非將它們移動到同一個文件,否則它們不會被ASPX和ASHX類看到。

碰巧,我在許多文件中使用了相同的類,我不想擁有它們的多個副本。我在哪裏放這些課程?有沒有創建另一個項目的解決方案?

回答

7

我們已經在VS 2008中爲我們所有的項目使用了Web Application項目類型,並將我們的公共類放在AppCode文件夾而不是App_Code文件夾中。它工作得很好,我們可以在應用程序的所有頁面上訪問我們的類,而不會有任何問題。

2

爲什麼你不想創建另一個項目?這將是最簡單的方法,因爲您的所有類都將放置在該程序集中,您可以在Web應用程序中引用項目,然後訪問整個項目中的所有內容。

我強烈建議你考慮這種方法。

+1

有很多時候,當你真的需要有1或2個過於具體的類時,將它們放在Web應用程序項目中是有意義的。例如。我們有一個BasePage類[從web.ui.page繼承],其中包含要在每個頁面加載中執行的Web應用程序特定代碼,而不是在類庫中使用HTTPContext等,我們只需將該類放入我們的Web應用程序中。 – Vikram 2009-05-21 17:24:31

6

隨着Web應用程序項目,你有更多的自由。只需在你的項目下創建子文件夾來保存你的課程。例如,您可以有一個名爲「DAL」的文件夾來保存數據訪問層項目。

(可選)您可以創建一個裝配項目並將類放入其中,並從WAP中引用它。

最終結構將歸結爲您將擁有多少班級。

0

我強烈建議您將所有類(域對象)放在單獨的項目中。通過這種方式,您將可以輕鬆地針對業務層(域對象)編寫測試,並且您的類將具有可移植性。便攜意味着您可以將DLL發送給其他開發人員,並且他/她可以輕鬆地重用您開發的類。

1

我通常在解決方案中有三個項目。 Web應用程序,Web庫(基本頁面等)和DAL。這可以保持一切清潔。

1

把它們放在你想要的任何地方。我傾向於將小型項目特定的幫助器類和基礎頁保存在Web項目下的/ Helpers文件夾中,但將DataLayer內容和通用可重用幫助器分離到各自的獨立項目中。

1

我使用/Shared/Classes作爲整個站點使用的通用類。我喜歡將其餘的課程放在課程的文件夾中,例如/blog/Classes/

- EDIT--

答案以上是我如何存儲類在Web窗體應用項目。現在我正在使用MVC,我將/Classes中的通用類和/Classes下的子文件夾中的非常規類存儲在一起,例如/Classes/Blog。總之,Old_App_Code已更名爲Classes。這看起來像是我看到微軟在MVC中使用的命名約定的自然延伸,另外它也適用於我的舊Web窗體頁面。

相關問題