zoukankan      html  css  js  c++  java
  • WPF插件式框架

    前言

      标题有点大,本文主要介绍了WPF插件式框架的一个思路,代码来自于以前给朋友写的一个Sample,细节地方不去关注,大致谈谈想法。

    插件式架构

      插件式(AddIn)架构,不是一个新名词,应用程序采用插件式拼合,可以更好的支持扩展。很多著名的软件都采用了插件式的架构,如常见的IDE:EClipse,VisualStudio等等。

      这些插件式架构在实现上各有特色,但是基本原理大致相同:

    1. 定义插件框架,用来下载,创建,销毁插件,并管理插件间的通信等等。
    2. 定义插件契约,定义统一的接口规范。
    3. 实现插件组件,组件实现插件契约,在运行时可以被插件框架所发现并集成。

      关于插件式架构的实现技术,可以有很多选择,使用动态链接库的导出函数,使用COM技术等等,这里选择的是.net的MEF,MEF(Managed Extensibility Framework)是微软集成在.net framework中的扩展性管理框架,VisualStudio2010就是使用了MEF来管理插件,关于MEF的具体使用,请参见MSDN,这里不详细介绍了。

    设计与实现

      工程目录以及架构图如下所示:

    1image

      Illusion中使用MEF实现了插件管理,通用的Services等等,Illusion作为一个Core模块,可以参见前文

      Workbench定义了插件的工作台,定义了UI的布局。

      Presentation定义了UI的具体实现,可以添加/替换UI的表现,默认提供了Ribbon和Default两种形式,可以点击选项-显示框架来动态切换整个UI。

    总结

      插件式架构应用程序不是什么新奇的东西,把UI布局和UI表现分离,并支持插件式架构是设计时的一些想法,具体到项目应用还需要一定的完善。代码放置很久了,拿出来分享一下,希望对朋友们有所帮助。

      项目代码可以点击这里下载。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    seo课程教程笔记公布【网络转载】
    建立一个windows服务(可用于实现计划任务,事件监控..) .NET
    运行界面上,实现随意拖动控件 .NET
    定时关机的小程序 .NET
    服务 安装与删除 .NET
    模拟鼠标/键盘 .NET实现
    Google Code 创建开源项目
    一个批处理文件 启动停止服务.bat
    提升搜索引擎中网站排名的工具[持续更新中..]
    DateTime.Now.ToString()用法
  • 原文地址:https://www.cnblogs.com/Zhouyongh/p/2353498.html
Copyright © 2011-2022 走看看