簡體   English   中英

C#解決方案 - 有多少個項目?

[英]C# Solution - How many projects?

我用谷歌搜索了一下但是找不到好結果。

現在我正在建立一個網站,我試圖從設計的角度來看它盡可能正確。

我現在面臨的問題是,當決定開始記錄時,我需要一個項目來放置這些代碼。由於我在我的當前項目中找不到合適的位置,我想:嘿,為什么不是一個日志類庫?

您應該擁有多少個項目的一般准則? 我知道這將是一個相當小的項目,但完全讓它脫離我的方式會很好!

任何提示都很贊賞:)

你絕對應該有一個日志庫。 如果你要從設計的角度來看這個'盡可能正確'並且你的預測不是那么簡單,那么你肯定應該有一些項目。 問題是,我們不知道你在做什么,除了它是一個網絡應用程序。 這是商業領域,通常決定了您的解決方案的復雜程度。

我會為一個小項目尋找一個三層架構。

這將包括:

  1. 應用層
  2. 業務層
  3. 數據層

但是如果要添加日志記錄,最好創建另一個項目。 這也可以幫助您,如果您想將日志記錄添加到另一個應用程序,您可以只包括日志記錄項目。

如果您擔心解決方案中的項目限制,則無論哪種方式都可行。 不要。

我自己會把它放在一個單獨的項目或實用程序項目中。

我們有200多個項目的解決方案。 缺點是Visual Studio中的加載時間很長。 但過去,唯一的問題是確保你有足夠的內存。

此外, MSBuild.exe內置了對SLN文件的支持,因此如果您正在進行自動構建,請考慮使用它而不是Visual Studio。

“那些一起變化的東西應該打包在一起”,我忘記了該指南的來源(代碼完成可能?)。

換句話說,您的程序集(項目)應該以類/對象在較低級別執行的方式表示連貫的抽象。

所以,是的,一個單獨的日志記錄項目是正確的方法(雖然在你自己推出之前檢查log4net或微軟的日志塊!)

將日志記錄放入一個單獨的項目是完全正常的。但是它真的取決於你的項目的范圍。我通常設置我的項目這樣

YourProject.Web(網絡項目)

YourProject.Core(所有業務邏輯)

YourProject.Web.Tests(Watin測試)

YourProject.Web.Core.UnitTests(單元測試)

YourProject.Web.Core.IntegrationTests(集成測試)

我建議你從asp.net下載一些開源項目,看看項目是如何組織的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM