2015-08-25 123 views
0

我正在研究一個龐大的學生生命週期管理ERP。引用另一個項目使用DLL

我的平臺是ASP.NET Web Forms。

最初,我使用N層格式創建了我的項目,其中我爲數據訪問,業務邏輯和視圖分別建立了層。

我不得不基於不同的利益相關者創建不同類型的視圖,所以我的項目有不同的文件夾來保存特定利益相關者的視圖。

我有文件夾來保存我的數據訪問和業務邏輯。

總的來說,我的項目結構是這樣的:

Project 
--BusinessLogic 
    --class files 
--DataAccess 
    --class files 
--Student 
    --html pages 
--Principal 
    --html pages 
--AccountsDept 
    --html pages 
--Teacher 
    --html pages 
--LoginSystem 
    --html pages 

現在,我要崩潰這樣的結構,因爲我想舉辦不同的服務器上我的學生和教師的門戶網站。但學生和教師門戶將使用相同的數據訪問層和相同的業務邏輯層,所以我想在單個頁面上對這些層進行任何代碼更改。

我想這種結構的

Project 1 
--BusinessLogic 
    --dll files 
--DataAccess 
    --dll files 


Student Portal 
--Student 
    --html pages 
--LoginSystem 
    --html pages 


Teacher Portal 
--Teacher 
    --html pages 
--LoginSystem 
    --html pages 

我的觀點相關的項目將引用從發佈項目1

以前,當我發表我的單項目中創建的dll文件,我看到我所有的C#將類文件編譯成單個dll文件。我認爲可以在我的視圖相關項目中引用此dll文件。

問題是,我有一個直覺/預感,這可能是可能的。但我甚至不確定。我不知道這是否正確。

我也不想在單個解決方案中使用多個項目。我想保持一切分開。

+0

你的問題是什麼,一個項目可以參考其他Dll,答案是肯定的 – 3dd

+0

@ 3dd但是這個dll可以成爲我自己的代碼嗎?其實我正在將一些代碼從我的項目中移出來,並將它打包爲一個dll。那可能嗎? – Shuaib

+1

當然可以。在VS中創建一個'Class Library'項目,並在其中添加你的代碼。然後你可以引用其他項目的代碼 – 3dd

回答

0

您可以將DLL看作插件,它可以在任何兼容的應用程序中用作參考(這是您在項目的References部分看到的內容)。最重要的是,任何人都可以創建DLL--無論是微軟,第三方公司還是你自己,都沒有限制。

重複使用自己的組件是完全沒問題的,我強烈建議你這樣做。請記住,如果您有一些要分離的圖層,請創建其他項目,如Class Library。當然,可以引用由於構建Web項目而創建的DLL,但這可能會導致錯誤或意外的應用程序行爲,因爲Class Library的設計方式只會暴露其接口,而不會觸發任何應用程序生命週期事件。

相關問題