我在想什麼是構建可用於不同項目的公共實用程序庫的最佳方法。我正在使用.Net和C#。什麼是建立一個公用事業圖書館的最佳途徑?
我應該爲每個實用程序(例如日誌記錄,身份驗證,Excel等)創建一個單獨的項目,並將它們與相關性分開發布,或者應該將所有實用程序包括在一個常見的utils程序集中,項目中使用通用utils的依賴關係?
我在想什麼是構建可用於不同項目的公共實用程序庫的最佳方法。我正在使用.Net和C#。什麼是建立一個公用事業圖書館的最佳途徑?
我應該爲每個實用程序(例如日誌記錄,身份驗證,Excel等)創建一個單獨的項目,並將它們與相關性分開發布,或者應該將所有實用程序包括在一個常見的utils程序集中,項目中使用通用utils的依賴關係?
我可能會弄清楚你想提供什麼功能(至少一般),然後定義一個邏輯命名空間層次結構。一旦你有了全面的定義,你應該能夠創建所有的庫文件並構建它的模塊化,所以你沒有一個龐然大物的「所有」庫,但可以有像「你的文件/目錄幫助器裝配「.dll,」你的數據包封裝程序集「.dll,」你的UI組件「.dll等。
這取決於兩件事情。
首先,你捆綁在一起的東西之間有什麼關係?將它們放在一個圖書館裏是否有意義?
二,什麼是使用模式?如果它是一組標準實用程序,您可以將它們與每個項目鏈接在一起,但是如果您使用的是運行時插件樣式模型,其中您動態加載不同模塊以提供功能,則可能需要更多分離。
我已經走下了創建主ProductivityLibrary的路線 - 是的,這是愚蠢的命名空間 - 只是發現我有一個我使用最多的類的子集,而設計的宏偉計劃 - 每當一系列想法出現時,模式瑞士軍刀總是在重新編譯。因爲它變得如此混亂,所以對所有東西都進行插件是沒有意義的。
構建解決一個問題的分立組件 - 它更容易管理。
我發現了一種在我的項目之間共享通用源代碼和實用程序的好方法!在每個新項目中,我創建了一個「連接點」 - 文件夾,指向同一個源文件的存儲庫。然後在Visual Studio的項目樹中選擇「顯示所有文件」和「包含」我需要的文件。這工作真的很棒!容易和強大...
而不是有一個單片common.dll與各種代碼,你可能沒有任何用於某些項目,我確切地添加我真正需要的文件,我得到一個單一的exe文件沒有很多鬆散的dll文件。
另一個技巧是讓不同的文件具有相同的部分靜態實用程序類,例如EncryptionUtils.cs和NetworkUtils.cs。當它們都可以從同一個靜態類訪問時,很容易從代碼中找到實用程序。因爲我只包含了我真正需要的文件,所以我只在Utilities類中獲得這些utils。