代码改变世界

基于插件架构的简单的Winform框架(下)

2012-07-11 22:49 by ps_zw, 3407 阅读, 0 推荐, 收藏, 编辑
摘要:前言 最近事情较多,终于有时间来写完这篇。在上一篇的基础上,本篇文章我们开始着手搭建一个简单的基于插件架构的Winform框架。(其实也就是一个小例子,也是对之前写过的代码的总结) 设计思路 写这个Winform小例子的想法来源主要是: 1.希望Winform程序能够根据配置动态生成菜单; 2.运行时按需加载指定模块,必要时还能在运行时更新指定模块; 3.新的功能模块能够即插即用... 阅读全文

基于插件架构的简单的Winform框架(上)

2012-05-20 16:59 by ps_zw, 2192 阅读, 0 推荐, 收藏, 编辑
摘要:一、概述 在前面的文章中系统的介绍过MEF技术,我们知道通过MEF可以很容易的实现应用程序的扩展。那么除了MEF之外应该还有很多技术可以实现应用程序的扩展(毕竟MEF是随着.net4.0一起发布的)。本文就简单的介绍下其中一种扩展技术:【插件架构】,分为上、下两篇,上篇介绍基本概念,下篇为应用篇。由于插件架构在winform中应用较为广泛,因此本文的写作目的是使用插件架构搭建一个简单的winform程序。二、插件与插件架构(或者叫“插件机制”)1.插件 日常,我们使用各种软件(特别是使用VS)时,可以安装很多的插件。那插件(plug-in)是什么呢?先介绍一个概念:宿主(host),顾名思义. 阅读全文

一个关于Remoting的简单例子

2012-05-10 22:29 by ps_zw, 498 阅读, 0 推荐, 收藏, 编辑
摘要:前言今天在整理以前写的一些demo,看到一个关于remoting的例子。好久不用remoting了,果断记录一下。什么是Remoting简单回顾下:1.Remoting是一种远程通信,或者说跨应用程序(域)通信的技术,在C/S架构的程序中应用较多。2.支持协议:TCP和HTTP。3.激活方式:服务器端激活(WellKnow)和客户端激活。其中服务端激活又包含了SingleTon模式和SingleCall模式HelloRemoting示例一个完整的远程通信程序基本上包括以下几部分:1.定义远程对象。Remoting传递的对象是以引用的方式,因此所传递的远程对象类必须继承MarshalByRefO 阅读全文

Compiere源码workspace的两个配置文件内容

2012-04-28 01:52 by ps_zw, 651 阅读, 0 推荐, 收藏, 编辑
摘要:下载了Compiere_330的源码,需要设置eclipse工作区的.project和.classpath两个文件,记录一下,以后使用:.project文件内容: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <projectDescription> 3 <name>C-303</name> 4 <comment /> 5 <projects> 6 <project>ad</project> 7 <project 阅读全文

我学Flash/Flex(2):AS3读取XML文件内容

2012-03-22 17:19 by ps_zw, 672 阅读, 0 推荐, 收藏, 编辑
摘要:任何一种语言,读取XML文件的功能基本都是必不可少的。使用AS3读取XML文件,需要使用到以下几个类:(1)URLRequest类,URLRequest可捕获单个 HTTP 请求中的所有信息。 URLRequest 对象将传递给 Loader、URLStream 和 URLLoader 类的 load() 方法和其他加载操作,以便启动 URL 下载;(2)URLLoader类,以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据;(3)XML类,将对象转换成 XML 对象。具体代码如下:View Code 1 import flash.events.Event; 2 ... 阅读全文

我学Flash/Flex(1):Action Script3.0基础知识

2012-03-03 17:39 by ps_zw, 478 阅读, 0 推荐, 收藏, 编辑
摘要:前言最近一直在做Silverlight开发,因为技术的相关性,开始学习Flex/Flash。Silverlight需要掌握C#;同样,我们学习使用Flex/Flash,就需要了解跟它相关的语言——Action Script。本人是从Action Script3.0入门的,本文通过AS3与C#的对比来说明AS3的一些最基本的知识。(纯属个人见解)一、类与文件AS3中的类文件必须是.as文件。注意点:1.一个文件中只能定义一个类,且类名必须要和文件名一致。2.类是定义在Package中。跟C#中一个cs文件中可以定义多个类的要求较为严格。(个人觉得这样更好,从源头就要你规范。)3.一个类最多只能有 阅读全文

使用OpenXML将数据导入到Excel模板中

2012-02-07 22:41 by ps_zw, 2987 阅读, 0 推荐, 收藏, 编辑
摘要:前言之前文章中简单的介绍过将数据导入到excel中,在日常的工作的很多时候其实我们是需要将数据导入到指定的模板的。其实将数据导入到模板和将数据导入到新的Excel模板中没有多大的区别。本文主要介绍导入到模板应该注意的一些地方。准备工作1.Excel模板如下:2.openxml相关类库:3.控制台或者winform程序注意事项1.因为是导入到现有Excel模板,所以使用SpreadsheetDocument.Open(filePath, true)打开Excel文档;1 using (SpreadsheetDocument document = SpreadsheetDocument.Open( 阅读全文

Silverlight和js之间的相互操作

2012-01-31 23:22 by ps_zw, 2559 阅读, 1 推荐, 收藏, 编辑
摘要:前言最近在silverlight开发中,SL需要和js进行交互,研究了下怎么使用。SL调用js方法这个很简单一句代码就完成了:HtmlPage.Window.Invoke("MethodName","para-1",...,"para-n");说明:上述方法的第一个参数为js的方法名,第2-n个参数为js方法的参数。示例(以设置SL的Height属性为例):将object的ID定义为"slDemo",则有如下的js代码: 1 <script type="text/javascript"&g 阅读全文

我学MEF系列(9):搭建一个简单的组合引擎(ComposionEngine)

2012-01-31 17:14 by ps_zw, 1425 阅读, 1 推荐, 收藏, 编辑
摘要:前言我们使用MEF的原因是因为它可以帮助我们解决很多现实问题。在实际项目中我们会将它进行封装以方便使用,使同一个team有一套使用MEF的标准机制。本文就来搭建一个简单的组合引擎。引擎应该具备的功能1.定义一个引擎类它可以组合指定的Catalog;2.它可以根据需要启动指定的扩展组件;3.引擎是可以停止的,这里就是通过它可以销毁组合容器;4.能够提供一组组合规则(可以通过元数据等方式实现),这点本文没有实现;5.为扩展组件提供统一的接口,方便扩展。搭建引擎步骤1:新建项目ComposionEngineCore和项目MEFDemo_Console,如下图所示:步骤2:在项目ComposionEn 阅读全文

我学MEF系列(8):MEF+Unity实现可扩展拦截器

2012-01-14 22:38 by ps_zw, 2272 阅读, 3 推荐, 收藏, 编辑
摘要:前言MEF很好的解决了扩展性问题,但本身不具有拦截器的功能,但是我们在应用程序中为了权限控制,日志记录等,却又需要拦截(AOP)器功能,本文主要介绍使用MEF+Unity实现可扩展的拦截器,使得我们的应用程序既具有可扩展性,又能实现拦截。先决条件1. 你需要了解MEF和Unity Framework的基本知识;2. 下载MEF Contrib (点击这里下载),MEF Contrib提供了支持Unity的拦截器扩展:CompositionIntegration;3. 下载Unity Application Block DLLs,点击这里下载;有了这些dll,我们就可以实现我们的MEF+Unit 阅读全文