欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2007年6月18日

摘要: 在这里非常感谢白话Programming,我在我的BLOG里面转了他不少文章.也是为了方便大家技术交流,如果觉得有不方便的地方,可以告诉我.我可以马上删除.最后还是要表示非常的感谢. WinForm控件开发总结目录 WinForm控件开发总结(一)------开篇 WinForm控件开发总结(二)------使用和调试自定义控件 WinForm控件开发总结(三)------认识... 阅读全文
posted @ 2007-06-18 12:09 莫问奴归处 阅读(335) 评论(0) 推荐(0) 编辑

摘要: 我在前一篇文章里提到,对于停靠工具栏或者是视图最好是不要将实例放到词典中,而是将工具栏或者视图的类型放到词典中,因为视图类型会经常的被重用,并且会经常被关闭或者再打开。当实例被关闭后,资源就被释放了,对于实例的管理就会比较麻烦,所以我们分为两步走。在插件被加载的时候,我们只注册类型,在应用程序运行的时候,我们通过某种途径来实例化他。 我修改的以前的例子,主要突出本次演示的功能。这次的例... 阅读全文
posted @ 2007-06-18 12:02 莫问奴归处 阅读(472) 评论(0) 推荐(0) 编辑

摘要: 既然做好了框架,我们就希望为某个目标服务,我们要提供一些基本的服务,方便用户继续扩展他的功能。首先想到的功能就是,菜单,工具栏的管理,接下来我们要实现一些更流行的功能,比如停靠工具栏等等。 如何实现这些服务呢?我们希望我们的插件在运行时可以获得应用程序本身的菜单,工具条,停靠工具栏等等,然后向他们添加项目,比如加入一个菜单项,添加一个工具栏按钮。为了在运行时获得某个菜单或者工具栏,我们... 阅读全文
posted @ 2007-06-18 12:00 莫问奴归处 阅读(304) 评论(0) 推荐(0) 编辑

摘要: 前天发了构建插件式的应用程序框架(五)----管理插件这篇文章,有几个朋友在回复中希望了解插件之间是如何通讯的。 这个系列的文章写到这里,也该谈谈这个问题了,毕竟已经有了插件管理。不知道大家有没有注意到我在第四篇文章里谈到的服务容器(Service Container),Service是我所提到的插件式的应用程序框架的基础,我们也可以回头看看IApplication的接口定义,IAppl... 阅读全文
posted @ 2007-06-18 11:59 莫问奴归处 阅读(369) 评论(1) 推荐(0) 编辑

摘要: 我们现在已经搭建了插件式的应用程序框架,接下来的工作就是要充实框架的内容,提供基本的服务,也就是Service。我想首要的任务就是提供插件的管理服务,我在前面的文章也提到了,要实现动态加载必须要知道插件寄宿在哪里,哪些要加载,哪些不加载,这些就是这篇文章要讨论的问题。 首先解决的就是插件放在什么地方,我采取的传统的方法,将插件放到应用程序所在目录下的制定目录,我会在应用程序所在的目录下... 阅读全文
posted @ 2007-06-18 11:58 莫问奴归处 阅读(374) 评论(0) 推荐(0) 编辑

摘要: 在构建插件式的应用程序框架(二)----订立契约一文中,可以看到我们的IApplication接口是派生于IServiceContainer接口的。为什么要派生于IServiceContainer呢?我们来看看IServiceContainer的定义,它有几个AddService方法和RemoveService方法以及从IserviceProvider继承过来的GetService方法。Servi... 阅读全文
posted @ 2007-06-18 11:56 莫问奴归处 阅读(340) 评论(0) 推荐(0) 编辑

摘要: 不管你采用什么方式实现插件式的应用程序框架,核心还是动态加载,换句话说,没有动态加载技术也就无所谓插件式的应用程序框架了。使用Com实现的话,你可以利用Com的API通过ProgID来动态创建COM对象,如果使用普通DLL,你需要使用Windows 的API函数LoadLibrary来动态加载DLL,并用GetProcAddress函数来获取函数的地址。而使用.NET技术的话,你需要使用Assem... 阅读全文
posted @ 2007-06-18 11:54 莫问奴归处 阅读(369) 评论(0) 推荐(0) 编辑

摘要: 无论是用COM的方式,还是普通DLL,抑或.NET方式来实现插件框架,首先要面临的问题就是如何订立契约。如同我上一篇文章讲到的一样,契约是应用程序和插件之间进行交互的依据和凭证。应用程序必须声明我有什么样的功能可被插件使用,并且插件必须符合什么条件才能被我使用。反之,插件必须要知道应用程序提供什么样的功能,我才能将自己的功能融入到应用程序的体系中。本系列文章主要讲如何使用.NET实现插件式的应用程... 阅读全文
posted @ 2007-06-18 11:53 莫问奴归处 阅读(466) 评论(0) 推荐(0) 编辑

摘要: 说起插件(plug-in)式的应用程序大家应该不陌生吧,记得很早以前有一款很流行的MP3播放软件winmap,它是我记忆里最早认识的一款使用插件模式的应用程序,你可以使用他的插件管理器插入很多的音乐效果器,皮肤,甚至是歌词显示的面板。接下来看到了Photoshop使用插件模式管理虑镜。最后发现只要是大一点的应用程序基本都使用了插件式的程序框架,就拿我们最常用的工具来说吧,Visual Studio... 阅读全文
posted @ 2007-06-18 11:52 莫问奴归处 阅读(408) 评论(0) 推荐(0) 编辑

摘要: ///通用的加载插件的代码:public class plugIn{ /**//// /// 动态装载并创建类型,该类型拥有指定接口 /// /// 类型名称 /// 指定的接口名称 /// 指定构造函数的参数(null或空的数组表示调用默认构造函数) /// 返回所创建的类型(null表示该类型无法创建或找不到) public static object LoadObject(string ... 阅读全文
posted @ 2007-06-18 11:49 莫问奴归处 阅读(416) 评论(0) 推荐(0) 编辑

摘要: 使用了应用程序域来加载 COM,本想都采用应用程序域的,但没找到传对象到新域里的方法(如传 DataTable、TcpClient 等主域中的对象),所以 Net 的插件采用了读入内存的方法载入,这样就可以给 Net 的插件传主域中的对象了。 复制C#代码保存代码 using System; using System.Reflection; using System.IO; namespac... 阅读全文
posted @ 2007-06-18 11:47 莫问奴归处 阅读(990) 评论(0) 推荐(0) 编辑

摘要: .NET 提供的反射(Reflection)机制可以很方便的加载插件。本文提供一种方法,可以灵活的正确的载入所需的插件。 在.NET中,一个完整的类型名称的格式如 "类型名, 程序集... 阅读全文
posted @ 2007-06-18 11:46 莫问奴归处 阅读(344) 评论(0) 推荐(0) 编辑

摘要: 插件式设计近年来非常流行,其中eclipse起了推波助澜的作用,提到插件式就会不由自主的想到eclipse。其实插件式设计并不是什么新事物,早在几十年前就有了。像X Server就是基于插件式设计的,除了核心功能外,它所有的扩展功能和设备驱动都是以插件方式加入进来的。 基于插件的设计好处很多:把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,... 阅读全文
posted @ 2007-06-18 11:38 莫问奴归处 阅读(705) 评论(0) 推荐(0) 编辑

摘要: IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag 客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传的下载:Accept-Ranges:告知下载客户端这是一个可以恢复续传的下载,存放本次下载的开始字节... 阅读全文
posted @ 2007-06-18 11:29 莫问奴归处 阅读(393) 评论(0) 推荐(0) 编辑

摘要: 4)'判断是否块超时temp = Timer() - BlockStartTimeIf (temp > BlockTimeout) Thenhttp.abortResponse.Write "" & vbNewLine & ""Call ErrHandler()Call CloseObject()Response.EndEnd If http.waitForRespons... 阅读全文
posted @ 2007-06-18 11:28 莫问奴归处 阅读(337) 评论(0) 推荐(0) 编辑

摘要: 摘要: 在多层架构中我们经常都会通过工厂模式来对数据库层的类进行初始化,有些会用抽象类作为基类,有些会用接口然后通过反射来对其进行初始化。而把需要初始化的类型和程序集通过字符串保存在配置文件中或数据库中等等,今天我将要介绍的是不需要保存配置文件而去BIN目录寻找你所要的抽象类或接口的子类并将其初始化后返回。这种方法可以用在其他方面,当然这会对应用程序的性能造成影响,所以我们应该适当的应用... 阅读全文
posted @ 2007-06-18 11:18 莫问奴归处 阅读(284) 评论(0) 推荐(0) 编辑

摘要: 应用系统架构设计 Simonw@2005.4.24 如有转载请注明出处。 (simonw[i-simon]代码@痕记) 我们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里... 阅读全文
posted @ 2007-06-18 11:15 莫问奴归处 阅读(259) 评论(0) 推荐(0) 编辑

摘要: 一. 架构师? 1.1 架构设计涉及范围图 如图所示架构设计说涉及到的范围,首先是对架构支撑的底层平台选择,目前业界流行和通用的就是.Net平台和Java平台(J2EE);然后在平台支持之上做技术相关架构设计(主要会采用面向对象OO,面向方面编程AOP以及面向服务架构设计SOA等思想),在SOA推广上IBM和SUN两家公司尤为突出;在业务不断的变化中、架构的更新中,找到变化中不变的东西,并... 阅读全文
posted @ 2007-06-18 11:13 莫问奴归处 阅读(342) 评论(0) 推荐(0) 编辑

摘要: 使用ClickOnce部署VS2005中的WinForm应用程序/Files/chinhr/AA.rarTrackBack:http://blog.oracle.com.cn/155011/viewspace_3603.html 阅读全文
posted @ 2007-06-18 10:57 莫问奴归处 阅读(488) 评论(1) 推荐(0) 编辑

摘要: 一 部署 C# 应用程序 部署是分发要安装到其他计算机上的已完成应用程序或组件的过程。对于控制台应用程序或基于 Windows 窗体的智能客户端应用程序,有两个部署选项可供选择:ClickOnce 和 Windows Installer。 ClickOnce 部署 ClickOnce(Visual Studio 2000和NET Framework 2.0 的一个功能) 部署允许您将 Window... 阅读全文
posted @ 2007-06-18 10:53 莫问奴归处 阅读(2088) 评论(0) 推荐(0) 编辑

摘要: 我们经常要面对的是对开发模式的选择,比如C/S模式和b/s模式。现在,很多人都似乎比较喜欢选择B/S模式进行web的开发,这其中的原因是很多的。但其中一点很重要的原因,那就是因为B/S开发的话,部署非常之容易,因为这样很容易实现"瘦客户端",客户端只需要使用浏览器就可以运行应用了。但B/S模式下开发的WEB应用,也有其不足之处,主要是由于功能实现起来,是没办法和传统的C/S模式下的winfor... 阅读全文
posted @ 2007-06-18 10:52 莫问奴归处 阅读(1519) 评论(0) 推荐(0) 编辑

摘要: 1.using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。例如:using System; 一般都会出现在*.cs中。 2.using别名。using + 别名 = 包括详细命名空间信息的具体的类型。这种做法有个好处就是当同一个cs引用了两个不同的命名空间... 阅读全文
posted @ 2007-06-18 10:14 莫问奴归处 阅读(369) 评论(0) 推荐(0) 编辑

摘要: 什么是COM组件 用户需要什么样的软件产品?这是一个多选题,但高效,健壮是肯定会被选种的。作为一名软件开发人员如何做才能满足用户的需要呢?必须要保证升级应用时不破坏与以前版本的向后兼容性。必须做到扩... 阅读全文
posted @ 2007-06-18 10:08 莫问奴归处 阅读(936) 评论(0) 推荐(0) 编辑

摘要: 组件对象模型的基本知识 基于构件的软件开发日益流行,这里我吧自己在学校时整理的关于COM的一些东西献给大家,供初学者参考.一.组件(COM),是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换... 阅读全文
posted @ 2007-06-18 10:07 莫问奴归处 阅读(307) 评论(0) 推荐(0) 编辑

摘要: 智能客户端(SmartClient) 本文主要讨论基于企业环境的客户端应用程序模型,由于本人曾经从事过传统的客户端/服务器两层结构应用程序和基于.net平台的多层结构应用程序的开发,因此本文将着重描述.net平台上的智能客户端应用程序模型,并根据一般的企业应用系统的需求来一步一步构造出一个较为完整的客户端软件框架。 简介 智能客户端的概念作为Microsoft.net平台的一个特性而... 阅读全文
posted @ 2007-06-18 10:03 莫问奴归处 阅读(333) 评论(0) 推荐(0) 编辑

摘要: 默认情况下,首次运行 ClickOnce 应用程序时,会下载该应用程序中包含的所有程序集。但是一些特殊的场景我们可能不希望它这么干,而是希望按照一定规测或者需要用到某个组件的时候再下载。 比如我们可能会有下面一些应用场景的需求: 1、我开发的这个客户端程序是要收费的。但是免费用户也可以使用部分功能。我在技术实现上把收费用户使用的功能封装到了A.dll 组件了,我希望免费用户根本无法获得A.dll,... 阅读全文
posted @ 2007-06-18 10:01 莫问奴归处 阅读(574) 评论(0) 推荐(0) 编辑

2007年6月17日

摘要: “全局”快捷键 下列快捷组合键可用于集成开发环境 (IDE) 中的不同位置。 命令名 快捷键 说明 编辑.复制 CTRL + CCTRL + INSERT 将当前选定的项复制到系统剪贴... 阅读全文
posted @ 2007-06-17 18:24 莫问奴归处 阅读(246) 评论(0) 推荐(0) 编辑

摘要: 快捷键 功能 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIFT + F4显示项目属性窗口 CTRL + SHIFT + E显示资源视图 F12 转到定义 CTRL + F12转到声明 CTRL + ALT + J对象浏览 C... 阅读全文
posted @ 2007-06-17 18:17 莫问奴归处 阅读(623) 评论(0) 推荐(0) 编辑

摘要: 香港的区号就是00852 所有的座机号码以及手机号码都是8位的 如果你要发短信就是00852+号码即可 神州行的发该给香港 短信一条一元钱 如果你想打电话给香港 首先要开通国际长途业务,同开没开通香港澳门漫游是没联系的 打过去同样打区号00852+号码 即可 在号码前加17951 会便宜许多 阅读全文
posted @ 2007-06-17 15:56 莫问奴归处 阅读(74347) 评论(0) 推荐(0) 编辑

摘要: 什么是开放式基金? 开放式基金: 是指基金设立后,基金规模不固定,投资者可随时申购、赎回基金单位的一种基金。 认购:是指投资人在基金募集期按照基金的单位面值加上少量手续费购买基金的行为。 申购:是指投资人在基金成立之后,按照基金的最新单位资产净值加上少量手续费购买基金的行为。 赎回:是指投资人将已经持有的开放式基金单位出售给基金管理人,收回资金的行为。 巨额赎回:是指当开放式基金的当日净赎回量超过... 阅读全文
posted @ 2007-06-17 15:48 莫问奴归处 阅读(528) 评论(3) 推荐(0) 编辑

摘要: adfadfas class引用自定义类时,要直接用类名,就是.后面的部分,尽管我不知道用纯数字直接去定义会不会有bug,不过,用含有字母的字串去定义应该是个好的习惯。 定义的顺序是link,visited,active,hover,为了页面的美观,一般只用link和hover就可以了 阅读全文
posted @ 2007-06-17 15:39 莫问奴归处 阅读(5178) 评论(0) 推荐(0) 编辑

摘要: 正则表达式过滤HTML危险脚本Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1public string wipescript(string html) 2{ 3system.text.regularexpressions.regex rege... 阅读全文
posted @ 2007-06-17 12:45 莫问奴归处 阅读(449) 评论(0) 推荐(0) 编辑

摘要: 股票股票是股份有限公司在筹集资本时向出资人发行的股份凭证,代表着其持有者对股份公司的所有权。具有以下基本特征:不可偿还性,参与性,收益性(股票通常被高通货膨胀期间可优先选择的投资对象),流通性,价格波动性和风险性。 股票市场 股票市场是股票发行和交易的场所。根据市场的功能划分,可分行发行市场和流通市场。根据市场的组织形式划分,分为场内交易市场和场外交易市场。根据投资者范围不同,分为A股市场和B股... 阅读全文
posted @ 2007-06-17 09:49 莫问奴归处 阅读(3080) 评论(0) 推荐(0) 编辑

摘要: 说到交换机和路由器有的则根本搞不清楚它们各自到底有什么用,而有的则是弄不清它们之间的到底有什么区别,特别是在各媒体大肆宣扬三层交换机的“路由”功能的背景下。其实说到这里,我自己也不得不承认,现在交换机与路由器区别是越来越模糊了,它们之间的功能也开始相互渗透。 不仅三层交换机具有了部分原来独属于路由器的“路由”功能,而且现在宽带和高端企业级路由器中也开始兼备交换机的“交换”功能了。可谓是相互渗透,... 阅读全文
posted @ 2007-06-17 09:48 莫问奴归处 阅读(4791) 评论(0) 推荐(0) 编辑

摘要: 交换机是使用硬件来完成以往网桥使用软件来完成过滤、学习和转发过程的任务 SWITCH是交换机,它的前身是网桥。(网桥只支持存储转发) 交换机是使用硬件来完成以往网桥使用软件来完成过滤、学习和转发过程的任务。 SWITCH速度比HUB快,这是由于HUB不知道目标地址在何处,发送数据到所有的端口。而SWITCH中有一张路由表,如果知道目标地址在何处,就把数据发送到指定地点,如果它不知道... 阅读全文
posted @ 2007-06-17 09:46 莫问奴归处 阅读(653) 评论(0) 推荐(0) 编辑

摘要: 不仅相同品牌或不同品牌的交换机之间都可以通过级联的方式而扩展端口,而且交换机和集线器之间也可以通过级联的方式进行。因此,级联通常是解决不同品牌交换机如何连接的有效手段。 一、双绞线端口的级联 级联既可使用普通端口也可使用特殊的MDI-II端口。当相互级联的两个端口分别为普通端口(即MDI-X)端口和MDI-II端口时,应当使用直通电缆。当相互级联的两个端口均为普通端口(即MDI-X)或均为... 阅读全文
posted @ 2007-06-17 09:41 莫问奴归处 阅读(1352) 评论(0) 推荐(0) 编辑

2007年6月16日

摘要: 关于工作站,pc和服务器,一直不能非常清楚的了解他们的含义。今天看到了一个简单的介绍,记录下来,作为知识的积累。 PC工作站是一种以个人计算环境和分布式网络计算为基础,主要面向专业应用领域,具有强大的数据运算与图形、图像处理能力的高性能计算机。一般来说,CPU子系统、图形子系统以及磁盘子细工的表现,对整个系统的性能、兼容性和稳定性方面的影响很大。 工作站与桌面PC的区别: 1,工作站的特点就是对用... 阅读全文
posted @ 2007-06-16 18:25 莫问奴归处 阅读(2375) 评论(0) 推荐(0) 编辑

摘要: 这是工作中遇见的特殊情况, 希望对有这方面需求的朋友有帮助! 一、 12 3 4 '>5 ... 阅读全文
posted @ 2007-06-16 13:27 莫问奴归处 阅读(305) 评论(0) 推荐(0) 编辑

摘要: asp.net常用数据类型 1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; ... 阅读全文
posted @ 2007-06-16 11:25 莫问奴归处 阅读(1218) 评论(0) 推荐(0) 编辑

2007年6月13日

摘要: 第一步 掌握一门.NET面向对象语言,C#或VB.NET。 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework。ASP.NET是建... 阅读全文
posted @ 2007-06-13 09:10 莫问奴归处 阅读(256) 评论(0) 推荐(0) 编辑

轩轩娃