您的位置:首页 > 其它

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 实现插件

2010-09-13 09:17 1101 查看

插件契约介绍

我们知道,要基于平台(容器)加插件的这种模式进行开发,我们必须定义一组契约,用于约束模块插件开发,也就是说,模块插件需要遵守一定的标准进行开发,才能正常被容器调用,这就是IModule所定义的内容。

IContainer    /// <summary>
/// 定义插件的运行容器接口。
/// </summary>
public interface IContainer
{
/// <summary>
/// 获取应用程序名称。
/// </summary>
string Name { get;}

/// <summary>
/// 获取容器上下文环境。
/// </summary>
IContext Context
{
get;
}

/// <summary>
/// 获取容器的当前会话。
/// </summary>
ISession Session
{
get;
}

/// <summary>
/// 运行模块。
/// </summary>
/// <param name="module">模块实例。</param>
void StartModule(object module);

/// <summary>
/// 运行模块。
/// </summary>
/// <param name="module">模块类型。</param>
void StartModule(Type module);

/// <summary>
/// 运行模块。
/// </summary>
/// <param name="module">模块Guid。</param>
void StartModule(Guid module);

/// <summary>
/// 运行模块。
/// </summary>
/// <param name="module">模块实例。</param>
void StartModule(IModule module);

/// <summary>
/// 关闭模块。
/// </summary>
/// <param name="module">模块实例。</param>
void CloseModule(object module);

/// <summary>
/// 关闭当前模块。
/// </summary>
void CloseModule();

/// <summary>
/// 关闭模块。
/// </summary>
/// <param name="module">模块实例。</param>
void CloseModule(IModule module);
}


通过接口定义我们可以知道,他提供了当前系统的账户、会话、应用程序上下文环境(IOC容器)、会话上下文环境等等。

在当前会话中定义了当前系统的各种会话资源如数据库连接、ORM访问器等等开发基础资料,程序员可以通过

IConnection dncn = Session.Resouces.FindResources(typeof(IConnection))[0] as IConnection;

的方式进行取得各种资源进行业务处理。

插件的调试

在最初的AgileEAS.NET平台版本中,是没有调试环境的,大概在2.0版本中加入了调试环境,WinForm的开发有独立的调试环境,WebForm的开发使用WebForm的运行容器直接调试:

WinForm应用开发中,提供了一个EAS.Develop.Debuger.dll的程序集,由它给我们的插件提供一个模拟的WinForm运行容器,怎么使用这个调试环境呢,首先在应用开发的VS解决方案中,增加一个新的应用程序项目AppStart,引用及其甩依赖的程序集,添加一个Start类并增加如下代码:

/// <summary>
/// 调试器启动类。
/// </summary>
class AppStart
{
/// <summary>
/// AgileEAS.NET调试器入口。
/// </summary>
[STAThread]
static void Main()
{
EAS.Develop.Debuger.Application.Start();
}
}


并修改配置文件中的Assembly配置项的值为需要调试的程序集名称:

<ConfigurationItem name="Assembly" value="EAS.Windows.FullExam"/>:

插件调试环境使用与真实运行环境的配置文件,同样的会话、同样的上下文环境,同样的系统会话资源,这一切都由系统配置文件进行配置。

链接

AgileEAS.NET平台开发指南-系列目录

AgileEAS.NET应用开发平台介绍-文章索引

AgileEAS.NET官方网站

敏捷软件工程实验室

QQ群:116773358
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐