Van Pan

导航

2015年3月23日 #

如何使用.NET开发全版本支持的Outlook插件产品(四)——进阶探讨

摘要: 插件项目所有代码都已经上传至 https://github.com/VanPan/TestOutlookAdding 如何定制Ribbon在不同界面的显示 实际使用过程中出现的问题 这个问题的来自十分实际的几个事件,首先请大家回忆现在的插件入口类的声明特性,以及插件Ribbon界面XML的定义。 [COMAddin("Test Addin For Outlook", "", 3), Custo... 阅读全文

posted @ 2015-03-23 14:12 Van Pan 阅读(2376) 评论(1) 推荐(0) 编辑

2014年4月4日 #

如何使用.NET开发全版本支持的Outlook插件产品(三)——全面控制

摘要: 插件项目所有代码都已经上传至 https://github.com/VanPan/TestOutlookAdding 进阶基础——COM查看 首先,对于Outlook对象模型,MSDN早就有非常详细的介绍,请直接查阅下面的链接: http://msdn.microsoft.com/zh-cn/library/ms268893(VS.80).aspx 但是,对于我们在开发过程中,仅仅靠这个模型... 阅读全文

posted @ 2014-04-04 19:14 Van Pan 阅读(1123) 评论(1) 推荐(1) 编辑

2014年4月1日 #

对于.NET Socket连接的细节记录

摘要: 如果客户端直接连接一个不存在的服务器端,客户端会抛出异常: 如果在连接过程中,客户端强制关闭了连接(没有调用Close直接关闭了程序),服务器端会抛出异常: 如果在连接过程中,客户端调用了Close,服务器会抛出异常: 如果客户端继续调用已经Close的Socket连接,则会得到异常: 关于Send方法:同步调用Socket的过程中,Socket.Send方法在缓冲区没有满之前是不... 阅读全文

posted @ 2014-04-01 10:19 Van Pan 阅读(534) 评论(0) 推荐(0) 编辑

2014年3月7日 #

如何使用.NET开发全版本支持的Outlook插件产品(二)——完善插件

摘要: 插件项目所有代码都已经上传至 https://github.com/VanPan/TestOutlookAdding 勿在浮砂筑高台——定位错误 在介绍后面的插件开发技术之前,让我们先来看看已经达到的成果:我们已经创建了第一个项目,并且也已经在Outlook里面运行起来了。 但是一定还是有人想知道,插件到底是如何挂接到Outlook里面去的?如果我们发现插件始终无法出现,到底如何排查问题原因? ... 阅读全文

posted @ 2014-03-07 12:46 Van Pan 阅读(2670) 评论(0) 推荐(1) 编辑

2014年3月6日 #

如何使用.NET开发全版本支持的Outlook插件产品(一)——准备工作

摘要: 这半年一直在做Outlook的插件,因为不会VC++,所以想找一款基于.NET,用C#开发Outlook插件的技术方案。没想到,光技术选型这件事,就用各种技术手段验证了将近一个月,还花费了大量的精力做之后的各项开发工作。在此开个大坑,以此记录所有的技术成果,如果以后还有别的朋友要做Outlook,甚至于Office插件,都可以从这儿作为起步,因为Office插件的基础技术都是一致的,只是到了各个产品内部COM对象有特性差异。好了,废话不多说,我们开始正文。技术选型如果提到要做Office插件,大家都会去网上找,当然最快得到的一个应该就是VSTO。虽然我们最后没有采用这个方案,但是我还是想在这儿 阅读全文

posted @ 2014-03-06 10:15 Van Pan 阅读(2967) 评论(2) 推荐(3) 编辑

2012年12月10日 #

使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(二)——自定义安装

摘要: 自定义产品卸载方式 继续从上一次的基础上前进,现在我们已经知道了最简单的bootstrapper打包方法,现在我们对其中的每个节点深入自定义,争取可以达到我们需要的效果。先把最后全部的XML贴出来。 Bundle节点前面几个属性我们都已经知道了,IconSourceFile就是打包后exe的图标设置,DisableRemove、DisableModify这两个属性比较有讲究,他们分别设置了在“添加/删除程序”列表中,选中安装包后鼠标右击,是否会出现“卸载”... 阅读全文

posted @ 2012-12-10 14:35 Van Pan 阅读(886) 评论(0) 推荐(0) 编辑

2012年12月9日 #

使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX

摘要: Visual Studio 打包安装七宗罪开发.NET的人,肯定会使用Visual Studio里面自带的MSI打包安装工具框架。如果是在一般情况下,这个打包安装框架已经完全足够满足产品发布安装的需要了。它的制成品,是一个setup.exe,一个MSI安装文件,如果你选择项目以来的其他.NET,Windows Install 框架,并且确定随产品发布,那制成品中还会包含这些东西的安装文件。 但是VS打包发布出来的安装包,安装体验实在是非常差,举个例子,如果你的项目是依赖于.NET 4.0以及VC++ 2010,并且你的目标客户机中没有安装过任何该类产品,那当你执行setup.exe的时候,先是 阅读全文

posted @ 2012-12-09 15:53 Van Pan 阅读(482) 评论(0) 推荐(0) 编辑

2012年11月27日 #

Git中分支merge和rebase的适用场景及区别

摘要: 几乎所有的版本控制工具都有branch功能,branch主要用于以下几个场景:1,控制产品OEM。基本上做产品,不同的客户都会提出多种不同特性需求,最简单的例子就是LOGO和标题完全不一样。但是可能产品自身的大部分功能和模块的代码一样的,这个时候如何管理多个客户定制的功能特性,并且不会干扰其他OEM版本的功能呢?如果你一开始就用if加N多变量定义的话,早晚会累死你,如果你把代码拷贝很多份,每多一个新的OEM就多拷贝一份代码,那如果发现公用模块里面有个BUG,难道你要每个版本的源代码都要修改?万一改错地方了,或者哪个版本的忘记改了,又是一件麻烦事。这个时候我们就可以考虑使用branch功能,在第 阅读全文

posted @ 2012-11-27 16:28 Van Pan 阅读(449) 评论(0) 推荐(0) 编辑

2012年11月14日 #

Edit Distance (编辑距离) .NET 实现

摘要: /// /// Calculate Text Edit Distance Utility Class /// public static class TextEditDistanceUtility { /// /// get edit distance between two string /// /// /// /// public static int GetEditDistance(string str1, string str2) ... 阅读全文

posted @ 2012-11-14 14:44 Van Pan 阅读(207) 评论(0) 推荐(0) 编辑

2012年11月7日 #

IIS 7 应用程序池自动回收关闭的解决方案

摘要: 如果你正在做ASP.NET,那肯定会用到IIS如果你想在ASP.NET Application中加入某个定时任务,那想必一定是用一个线程在不停地做定时计算那假设我们在自己的ASP.NET应用程序中加入了Quartz.NET框架,并且配置等等都OK了。这个站点访问量很少,现在只有几个人上班的时候才会使用,结果第二天过来一看,后台调度的线程和计算任务都停止了,如果你抓取了Application_End事件,会发现这个事件居然被调用了。那一定是IIS的应用程序池回收的机制在作怪了。因为IIS的默认设置里面,如果一个站点所处的应用程序池超过一段时间没有被访问或者请求,IIS就会自动回收这个程序池,并且 阅读全文

posted @ 2012-11-07 10:58 Van Pan 阅读(271) 评论(0) 推荐(0) 编辑