VS 2008

    最近要做一个应用程序检测程序,就是要检测服务器上各应用程序的运行情况,由于各应用程序的差异,很难做一个统一的探测程序,于是决定对任意一个应用程序都采用独立的一条探测规则。
    为了开发、部署的方便,考虑使用插件式开发。

本文案例包含三个项目:
1) Tristan.DetectContract 
    插件接口(契约),定义了探测的行为,以及传递的参数
2) Tristan.DetectCenter
    探测主程序,引用Tristan.DetectContract
3) CompareSvcDetector
    插件1,用于探测一个名为"CompareSvc"的应用程序的插件,引用 Tristan.DetectContract

1. 插件接口
    
1.1 IDetector
老调重弹:插件式框架开发的一个简单应用using System;
老调重弹:插件式框架开发的一个简单应用
using System.Collections.Generic;
老调重弹:插件式框架开发的一个简单应用
using System.Linq;
老调重弹:插件式框架开发的一个简单应用
using System.Text;
老调重弹:插件式框架开发的一个简单应用
}

1.2 DetectEventArgs
老调重弹:插件式框架开发的一个简单应用using System;
老调重弹:插件式框架开发的一个简单应用
using System.Collections.Generic;
老调重弹:插件式框架开发的一个简单应用
using System.Linq;
老调重弹:插件式框架开发的一个简单应用
using System.Text;
老调重弹:插件式框架开发的一个简单应用
}

    
2. 探测程序

老调重弹:插件式框架开发的一个简单应用using System.Linq;
老调重弹:插件式框架开发的一个简单应用
using System.Text;
老调重弹:插件式框架开发的一个简单应用
using System.IO;
老调重弹:插件式框架开发的一个简单应用
using System.Reflection;
老调重弹:插件式框架开发的一个简单应用
using Tristan.DetectContract;
老调重弹:插件式框架开发的一个简单应用
}

3. 插件1

老调重弹:插件式框架开发的一个简单应用using System;
老调重弹:插件式框架开发的一个简单应用
using System.Collections.Generic;
老调重弹:插件式框架开发的一个简单应用
using System.Linq;
老调重弹:插件式框架开发的一个简单应用
using System.Text;
老调重弹:插件式框架开发的一个简单应用
using System.Threading;
老调重弹:插件式框架开发的一个简单应用
using Tristan.DetectContract;
老调重弹:插件式框架开发的一个简单应用
}

    这里,我通过生成随机数的方式来模拟探测到应用程序的正常和异常状态。

    编译CompareSvcDetector得 CompareSvcDetector.dll,将该文件置于 Tristan.DetectCenter安装目录的 PlugIn 文件夹下

运行:

老调重弹:插件式框架开发的一个简单应用

相关文章: