入住博客園4年多了,一直都是看別人的博客,學習別人的知識,為各個默默無私貢獻自己技術總結的朋友們頂一個;這幾天突然覺得是時候加入該隊列中,貢獻出自己微弱的力量,努力做到每個月有不同學習總結,知識學習的分享文章。以下要分享的是花了兩天時間編寫+測試的windows下C#定時管理器框架-Task.Mai ...
入住博客園4年多了,一直都是看別人的博客,學習別人的知識,為各個默默無私貢獻自己技術總結的朋友們頂一個;這幾天突然覺得是時候加入該隊列中,貢獻出自己微弱的力量,努力做到每個月有不同學習總結,知識學習的分享文章。以下要分享的是花了兩天時間編寫+測試的windows下C#定時管理器框架-Task.MainForm。
目的:
隨著這五年在幾個公司做不同職位的.net研發者,發現各個公司都或多或少會對接一些第三方合作的介面或者數據抓取功能,都是那種各個服務直接沒有關聯性功能,開發人員也可能不是一個人,使得winform或者winservice服務版本也越來越多,伺服器上各種winform窗體,讓不同行的人看起來感覺很複雜的樣子;沒錯這次的目的就是寫了一個插件(其實還是winform哈哈)通過統一的封裝,規範,來管理這些程式服務。
簡介:
此版本使用的是4.5框架,裡面用到了一些4.5及以上版本才能使用的東西,如果讀者需要往下相容,請使用下載開源項目修改下,應該是可以的;主要採用的是反射來執行業務方法;廢話多了直接看下麵步奏說明吧。
重要代碼說明:
A.首先框架的整體項目簡單如下
看起來是不是很少,的確是,看具體要求補充吧各位
B.基類TPlugin主要是用來統一管理軟體規則的,重要的分別有:
1.初始化配置信息
2.開始載入的_Load()方法,這裡是所有開始執行任務的入口
C.類PublicClass主要封裝了獲取*.dll文件路徑信息和程式集序列化繼承實體,重點的地方已經用紅色標註:
1.
2.
D.下麵要看的就是定時管理器界面MainForm.cs功能說明:
1.載入具有特定標記的程式dll信息
2.服務開啟
3.非同步委托增加管理器監控信息
以上就是框架的需要主要的部分,也可以看做知識點吧也許哈哈,再來就是看看繼承這個框架的代碼怎麼寫,簡單粗暴如下:
E.繼承插件的任務類,意思就是咋們自己需要處理的業務實現類
F.值得註意的是,不管是同一個項目中的不同任務類來繼承框架,還是不同項目的中的任務類來繼承,都可以使用,建議使用前者,這樣就不需要每次有一個業務需要定時執行信息的時候都要創建一個單獨的項目,Task.MainForm只需要您再同一個項目中分不同的任務類來繼承就行了:
這裡的兩個繼承類對應的配置文件預設名稱應該是:
xml文件結構參考模板:Task.MainForm項目中XmlTp.xml文件(也可以使用開源項目中Task.MainForm\bin\Debug\PluginXml文件夾下麵的兩個.xml文件作為例子)
G.最後貼一下發佈項目中的結構圖
以上就是這次開源的定時管理器框架,簡單,第一次寫技術性文章,希望不用噴的太高,低調低調;
項目的git地址:https://github.com/shenniubuxing3/Task.MainForm