Glue4Net是一款.NET平臺下的應用部署管理容器,可以配置N個不同目錄下的.NET應用並載入到不同的應用域中,並提供自動識別應用檔案的變更來重新載入應用。通過Glue4Net應用載入容器可以大大節省.NET應用的部署和更新維護工作。
容器結構
支援功能
- 自動載入目錄的.NET程式.
- 支援載入多個.NET程式應用
- 自動載入目錄下的程式碼檔案並新增到應用域中.
- 提供自成定義模組定義,載入應用的時候執行.
- 自定義監控檔案變更,變更重新載入相應的服務.
服務安裝使用
容器提供命令列和windows服務模式,可以通過install.bat註冊到windwos服務中執行,容器可以通過以下連線下載
http://www.ikende.com/files/file/Glue4net.rar
託管應用
應用可以是編寫好的DLL或直接相應的程式碼檔案(.cs或.vb)可以存放到任意容器可以訪問的目錄下.通過編輯domains.config檔案把應用新增到容器中(修改檔案後並不需要重啟Glue4Net,容器會自動載入).
<domains> <add name="test" compiler="true" path="test" updateWatch="true" watchFilter="*.cs|*.config"/> </domains>
只需要在domains配置節新增相關應用的資訊.
- name
應用名稱,在容器中是唯一 - path
應用所在的目錄,如果不是全路徑的情況則會從當前容器目錄下查詢相應的子目錄 - compiler
是否開啟編譯原始碼功能 - updateWatch
是否開啟檔案更新監控,如果發現檔案變更則重啟應用 - watchFilter
監控的檔案型別
新增執行模組
容器只會根據配置資訊把應用載入到相應的域中,是不會執行任何相關程式碼.如果需要容器載入應用後執行某些功能,則在編寫應用的時候需要有類實現IAppModule介面.容器會遍歷所有這些介面的實現類例項化並執行.
public interface IAppModule { string Name { get; } IEventLog Log { get; set; } void Load(); void UnLoad(); }
應用配置資訊
在編寫應用的時候很多資訊都依賴於配置檔案,那當容器載入應用後,應用相應的配置檔案是如何處理呢?只需要把配置資訊存放到應用目錄下的app.config即可.
如新增一個AppSetting
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="username" value="bbq"/> </appSettings> </configuration>
程式碼裡直接通過ConfigurationSettings訪問
using System; public class TestModule : Glue4Net.IAppModule { public string Name { get {return "TEST"; } } public Glue4Net.IEventLog Log { get; set; } public void Load() { string name = System.Configuration.ConfigurationSettings.AppSettings["username"]; Log.Info("Test Module Load !"); Log.Info("UserName:{0}", name); } public void UnLoad() { Log.Info("Test Module UnLoad!"); }
Glue4Net核心庫:https://github.com/IKende/IKendeLib/tree/master/Glue4Net