入住博客园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

最新文章

  1. iOS - Json解析精度丢失处理(NSString, Double, Float)
  2. 利用ant脚本 自动构建svn增量/全量 系统程序升级包
  3. iOS开发笔记8:Remote Notification远程消息推送处理
  4. Javascript基础系列之(五)条件语句(比较操作符)
  5. fflush函数的深入理解
  6. Objective-c 命名规则
  7. 【转】Fast Entity Component System
  8. HDU1028 Ignatius and the Princess III 【母函数模板题】
  9. UVa 10375 (唯一分解定理) Choose and divide
  10. [置顶] Linux协议栈代码阅读笔记(一)
  11. JavaScript模块化编程之require.js与sea.js
  12. Unlocker(强力删除文件工具) 1.9.2 汉化绿色版
  13. 改变导航栏title字体的大小和颜色
  14. C++向量(08)
  15. Android 开发笔记___textview_聊天室效果
  16. webpack + vue
  17. Mac提醒休息软件Stretchly(很好用)
  18. Boost--lexical_cast 一个方便安全高效的string转换库
  19. 第三次spring冲刺2
  20. PHP之数组(遍历顺序)

热门文章

  1. Unity3d学习 预设体(prefab)的一些理解
  2. 恢复SQL Server被误删除的数据(再扩展)
  3. 创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)
  4. 解决vs创建或打开C++浏览数据库文件*.sdf时发生错误的问题
  5. Android 几种消息推送方案总结
  6. 强强联合,Testin云测&云层天咨众测学院开课了!
  7. Angular (SPA) WebPack模块化打包、按需加载解决方案完整实现
  8. JavaScript对象和数组
  9. 敏捷软件开发VS传统软件工程
  10. Oracle 11g必须开启的服务及服务详细介绍