文章分类 -  目标一、微型程序通用框架

摘要:转自:http://www.cnblogs.com/city-hunter/archive/2013/02/01/2888817.html前面有朋友反应,运行时出现:“ExampleAddin.WorkBenchSingleTon”的类型初始值设定项引发异常错误,这是由于在执行插件的加载过程中出现了错误,比如我们这本篇的例子中,判断查询按钮是否有效时的判断:有这样的语句:var form = WorkBenchSingleTon.WorkBench.ActiveMdiChild;由于最初执行时workbench可能为空,所以就会报错,例子中加了if (WorkBenchSingleTon.Wo 阅读全文
posted @ 2013-02-09 23:56 ADTL 阅读(213) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/city-hunter/archive/2013/01/25/2877340.html前两篇我们已经实现了功能按钮与界面的分离,其实也只是工具栏与其执行的功能代码与界面的分离,其作用还非常有限,因为他无法获取到主窗口的任何东西,无法进行操作,比如主界面有一个TextBox,那么这个按钮还不能访问到,也无法对其进行操作。我们今天就来完成View的设计,让工具栏的按钮能够访问窗口中的内容,同时窗口中的内容也是根据插件来自动生成。首先我们来实现View插件的生成代码。View即为主窗口中的一个mdi窗口生成一个接口:IViewContent?pub 阅读全文
posted @ 2013-02-09 23:55 ADTL 阅读(307) 评论(0) 推荐(0)
摘要:转自:http://blog.sina.com.cn/s/blog_60122cd80100r9xe.html1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射Reflection,中文翻译为反射。这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如:Assem 阅读全文
posted @ 2013-01-25 00:35 ADTL 阅读(141) 评论(0) 推荐(0)
摘要:转自:http://blog.sina.com.cn/s/blog_60122cd80100r9xg.html全文英文版:Fast Reflection Library 这是我在CodePlex上创建的一个项目,它的网址是http://www.codeplex.com/FastReflectionLib,使用Microsoft Public License (Ms-PL),您可以随意在自己的产品中使用它的全部或部分代码。这个项目用到了我在《方法的直接调用,反射调用与Lambda表达式调用》和《这下没理由嫌Eval的性能差了吧?》两篇文章里用到的做法,并加以提炼和扩展发布的项目——随便搞搞,留. 阅读全文
posted @ 2013-01-25 00:34 ADTL 阅读(673) 评论(0) 推荐(0)
摘要:转自:http://blog.sina.com.cn/s/blog_60122cd80100r9xi.html一、AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发 人员提高开发效率。NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言 阅读全文
posted @ 2013-01-25 00:33 ADTL 阅读(135) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/jyk/archive/2012/09/05/2671255.html 请注意,这里说的是自然框架内部代码的项目结构,并不是说给客户做开发的时候,也需要这些项目。在给客户开发的时候,只需要引用编译后的dll 即可。一、项目结构 自然框架的基本的思路还是共用函数,数据访问函数库、元数据管理、基础控件扩展、元数据控件(依据元数据动态创建的控件),用户登录、在线、权限管理,分页控件,页面基类构成。 这个并没有按照三层(分层)的要求去做,只是感觉这么分可以更清晰一些。把功能相当比较独立的部分做成一个项目。有一点MVC(不是asp.net MVC).. 阅读全文
posted @ 2013-01-25 00:29 ADTL 阅读(427) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/city-hunter/archive/2013/01/19/2867885.html前一篇链接:C#一步一步实现插件框架的示例(一)今天我们再接着前一篇来完善插件功能。在前一篇中我们将生成插件按钮的代码直接写在了WorkBench中,无法体现插件式开发的优越性,现在我们来对其进行分离。首先对WorkBench类中的构造函数进行修改,删除原来的生成按钮功能的函数,改变后如下: public WorkBench() { InitializeComponent(); this.Contro... 阅读全文
posted @ 2013-01-19 22:00 ADTL 阅读(298) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/city-hunter/archive/2013/01/19/2867166.html像我这样的菜鸟,写程序一般就是拖控件,双击,然后写上执行的代码,这样在窗口中就有很多事件代码,如果要实现各按钮的状态,那得在很多地方修改代码,极为复杂.通过参考CSHARPDEVELOP的代码就说明和网上各位朋友的示例,在这里,自己实现了一个很简单的插件程序,方便程序的开发,每个功能可以独立开发,也方便维护.现在给大家讲讲其方法.先上张图片:由于我这个插件使用了DEVEXPRESS的控件,所有要运行就需要安装,在这里我们就不使用DEV的控件了.首先,我们需要 阅读全文
posted @ 2013-01-19 21:59 ADTL 阅读(345) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/wuhuacong/archive/2013/01/04/2844538.html做项目的时候,或多或少需要和其他外部系统或者接口进行数据交互,有些是单向的获取,有些可能是修改状态后再写回去,不管如何,这个都可以称之为数据同步操作,如人员信息同步、业务数据同步、第三方接口数据同步等等。数据同步涉及到一个同步时间的问题,一般不敏感的数据,一天或者一周左右同步一次就可以了,有些可能需要间隔更短一点。同步的逻辑不同,有些可能写数据库就可以了,有些可能需要访问WebService或者其他接口,然后在进行数据获取,保存等操作,回写的时候,也一般是调用W 阅读全文
posted @ 2013-01-18 21:58 ADTL 阅读(393) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/absurd/article/details/877063插件式设计近年来非常流行,其中eclipse起了推波助澜的作用,提到插件式就会不由自主的想到eclipse。其实插件式设计并不是什么新事物,早在几十年前就有了。像X Server就是基于插件式设计的,除了核心功能外,它所有的扩展功能和设备驱动都是以插件方式加入进来的。 基于插件的设计好处很多:把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。公开插件接口,让第三方有机会扩展应用程序的功能,. 阅读全文
posted @ 2013-01-06 22:47 ADTL 阅读(356) 评论(0) 推荐(0)
摘要:转自:http://www.yesky.com/33/1744533_1.shtml在C#程序中实现插件架构2003-11-13 17:03作者:Sunmast翻译出处:论坛责任编辑:方舟 在.NET框架下的C#语言,和其他.NET语言一样提供了很多强大的特性和机制.其中一些是全新的,而有些则是从以前的语言和平台上照搬过来的。然而,这种巧妙的结合产生了一些有趣的方法可以用来解决我们的问题。这篇文章将讲述如何利用这些奇妙的特性,用插件(plug-ins)机制建立可扩展的解决方案。后面也将提供一个简要的例子,你甚至可以用这个东西来替换那些已经在很多系统中广泛使用的独立的程序。在一个系统中,可能有. 阅读全文
posted @ 2013-01-05 20:05 ADTL 阅读(190) 评论(0) 推荐(0)
摘要:转自http://blog.csdn.net/juejue1984/article/details/1527139日期:2007-3-12Copyleft (C)创世纪本文通过一个简单的例子,展示基于插件的框架设计,时间仓促,错误难免,欢迎指正!1)加载插件需要的配置文件类(序列化为XML文件)usingSystem;namespace LoadPlugins{/// <summary>///插件接口/// </summary>public class Plug{/// <summary>///菜单名称/// </summary>public s 阅读全文
posted @ 2013-01-05 19:55 ADTL 阅读(169) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html一、前言插件模型指应用程序由一些动态的独立模块构成,每个模块均具有一个或多个服务,并满足一定的插件协议,能够借助主程序实现主程序-插件,插件-插件之间的通讯。它定义了一套公共的接口,通过接口与插件进行通信,主要是通过反射来获取相关的属性和方法,然后再执行指定的操作。其实,它也可以理解为定义一套通用的解决方案,通过反射来获取相应的程序集的相关类型,然后执行这些指定类型的相关操作。它是一种即插即用的方案,更新及维护简便。本文仅仅是描述插 阅读全文
posted @ 2013-01-02 22:57 ADTL 阅读(213) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/Tammie/archive/2011/09/13/2174666.html定义插件接口// PluginInterface.cs// 插件的公用接口// 编译命令:csc /target:library PluginInterface.csusing System;publicinterface IPlugin{ // 插件名称string Name { get; } // 实现插件功能的方法object DoWork(object parameter);} 定义插件宿主接口// HostInte... 阅读全文
posted @ 2013-01-02 22:55 ADTL 阅读(175) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/xuneng/archive/2008/07/29/1255635.html之前一直想学学插件编程, 主要的原因是感到现在的客户需求变化不定,如果把全部功能整合在一个执行文件中的话,修改,升级起来很不方便, 所以想采用插件编程的方式, 只需要构建好了程序框架之后, 每完成一个功能,就可以让用户审核一个, 化整为零,让开发团队和客户都能构掌握项目开发的进度. 同时大家通过这种方式,增强对项目按时完成的信心.以下资料主要是从haha blog中获得的, 从网上找了很多类似的资料,只有这个我觉得是比较适合初学者//1定义插件接口,将其编译成dl 阅读全文
posted @ 2013-01-02 22:48 ADTL 阅读(190) 评论(0) 推荐(0)
摘要:原文地址:http://wayfarer.cnblogs.com/articles/28537.html一、引言1. 问题的引入假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件构架更能显示出它的优越性。2. 几个解决方案的对比我总结了一下我所接触到的插件构架,大致上可分为以下几类:i&g 阅读全文
posted @ 2013-01-02 22:46 ADTL 阅读(148) 评论(0) 推荐(0)