基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 插件接口IModule

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

IModule

  IModule定义了模块名称及模块被调用的方法Run(),以及被平台加载和关闭的事件,从定义可我们看到IModule继续自IObject接口。

IObject

  这里为什么会出现IObject接口,这里提到一个说明,就在是EAS.NET平台设计之初,我们引入了一个想法,我们视程序中的模块、ORM对象、所定义的外部设备等统称为对象,并对这些对象进行管理,基于这于一个想法,我们引入了一个对象的概念,但是在实际应用中,对象这一层次的理解慢慢谈化,也许在将来的设计中,取消这个接口。

  IObject接口显式的定义了对象的说明性信息对象描述和图标,对于IModule接口及IObject接口,都继承自一个重要的接口IPrivilegObject。

IPrivilegObject

      IPrivilegObject为权限对象接品,平台(运行容器)可以使用其鉴权系统对其实现权限检查,关于系统的权限设计我会在后面专门进行说明。

      在模块插件的接口中,我们看到了很多关于模块自描述的信息,比如名称、说明、类型、程序集、版本号以及开发者等等,定义这些信息的目的在于对模块的自描述,资源管理平台在安装模块的过程中读取这些元数据并存储在数据库,以方便对系统中插件的管理。

       模块元数据中定义的程序集、类型信息用于容器反射调用插件,这也是平台+插件所依赖的关键技术。

       在具体的应用开发中,针对WinFrom和WebForm的不同应用对IModule接口进行了某些扩展和基础实现,用于在应用开发过程的特定应用,以加快开发速度。

   在下一篇文章中,我将会对调用模块插件的平台,也就是运行容器做介绍。

 

       链接:AgileEAS.NET应用开发平台介绍


作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。


    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/archive/2010/04/20/1716568.html,如需转载请自行联系原作者


上一篇:【leetcode刷题】28.替换空格——Java版


下一篇:【leetcode刷题】29.合并二叉树——Java版