RSS 2.0 Feed
Office Development
摘要:前几天写了一个把博客堂内容(主要是帖子搜索)集成在Office System 2003中的demo,想听听大家的意见。没想到开心那么感兴趣,还连夜赶写出来一个全文检索的Research用在博客堂里,极大地方便了我们的检索和访问。因此在这里要对开心说声谢谢!(好像说得晚了点哦:) 今天自己又动手写了个集成Smart Tags技术的demo,主要功能是在Word、Excel、PowerPoint等Office 2003组件里自动识别博客堂成员名字,并提供快捷发送邮件、访问该成员Blog、在线更新联系人列表等功能。因为我个人感觉,Office 2003里提供的一些很棒的功能,比如Research Library、Smart Tags、Smart Document等,它们的应用是高度集成的,很难从技术上区分开。例如Research功能,适当地加入Smart Tags便会使平面的内容马上有了动作(这是我自己的语言,现在脑子有点沉,累得不太好用了);此外,Smart Tags和Smart Document从根本上是一致的,甚至二者的SDKs都被微软做到了一起(仅限于Beta2阶段)。 下面给出我写的这个Smart Tags demo的一些简要介绍。由于目前还有几个问题没有解决(大部分都是关于COM Interop的,看来我这MCAD白学了:( ),所以还不能提供给大家安装文件和源代码。我会尽快把成品拿出来的。另外要说明的一点是,Office 2003中已经把Smart Tags组件升级到了2.0版本,提供了一些更棒的功能。但我在网上找了好久都没有相关的介绍文章,所以我现在应用的还是1.0的版本。对2.0版本的研究和突破就看大家的了:) 图1显示目前注册在Word 2003中的Smart Tags。最下面的那个便是我演示用的demo: 这个demo的功能其实很简单: 1.自动识别博客堂成员的名字: ? 2.单击Smart Tag Action标签后的菜单(注意,在2.0版本中已经支持多层菜单和动态标题)。目前的功能有发送邮件、在线访问和更新地址薄三样。但考虑到可能会方便垃圾邮件商,经开心建议,我决定先去掉发送邮件这个功能。 3.单击“在线访问”后就会访问该成员的Blog站点,也就是“http://blog.joycode.com/成员ID”了。 ?4.更新地址薄。我们的成员在不断地增加,所以很有必要设一个功能来随时更新成员联系信息。我把这个功能做成了一个单独的WinForm,通过调用博客堂服务端的一个Web service来实现。后来和开心联系过以后,开心建议使用博客堂首页上的那个“博客列表”。这样也能达到同样的目的。 大致情况就是这样。由于下周三我还有考试,本来答应开心要交的文章也没完成(还请开心原谅),所以只能抓紧时间把它尽量写好。但最关键的一个问题是:这项新功能对大家有没有帮助?大家需不需要它?要是没什么实际作用,那写出来只是浪费时间。 非常想听大家的意见!...[阅读全文]

posted @ | Feedback (6) |

摘要:记得前段时间开心曾说过,要用XML Web service、RSS等方式/技术进一步建设博客堂,以方便大家的访问、收集和使用。开心的那封帖子一直印在我的脑海里。昨天入睡前,我忽然想起了什么——既然自己对Office 2003开发那么感兴趣,那么何不把新的Research Library技术用一用呢? 于是就有了今天一个下午的尝试。在参考了Office Research SDK以及MSDN上的一些文章之后,我的思路渐渐清晰起来,最终写成了一个demo——BlogService。下面是对它的主要功能的一点介绍: 1. 使用Visual Studio .NET开发,可集成在Office 2003 Beta2版的Word、Excel、PowerPoint内(我机器上装不了Outlook 2003 Beta2,所以无法测试),以可直接在IE中使用。我的介绍就是围绕IE集成展开。 图1显示该Service的属性: 2. 查询当天新增Posts。为了简便起见,目前BlogService只能查询当天的数据,以后如果需要可以很方便地把查询范围扩大;另外,这些数据都是我从博客堂上随便找下来、添加进自己机器上的MSDE中的,只是为了测试目的,请大家不要怪我侵权:) 单击标题以后,上面的每一条post还可以展开,以显示它的作者、发帖日期以及简短说明。下面有一处超链,可以具体查询该post的内容: 3. 查询post的具体内容:点击View This Post后就可以查看post的具体内容了,如图: ? 要是post中有图片的话: 这里有个问题:由于无法以html方式显示(显示格式受制于SDK,功能非常有限),所以我目前的处理方式是把一帖中的所有图片集中在内容后面分别显示,希望在下一版本中(或马上要发布的正式版中)对这一处能有所更新。 4. 还可以直接在浏览器中看!大家注意到上面图片中照片上面的一行蓝色的url了吗?(这句子怎么这么别扭?)点击它以后就能在浏览器中直接看原文了!我点! 直接在IE里显示出来,还是大记者闫辉的Blog呢!:) 目前的功能就是这些了,因为它毕竟只是个demo。如果需要的话,还可以增加更多的功能,比如按作者、时间段或者关键字查询等。总之,我想说的就是这么一个想法——希望博客堂能更好地将自身集成于更多现有的解决方案之中,比如说MS Office;或者使我们的内容能够通过Smart Phone/Palm等手持设备来访问(就我了解现在好多博客堂的成员都在使用微软的Smart Phone)。 想听听大家的意见! ...[阅读全文]

posted @ | Feedback (6) |

摘要: 今天在做一个VSTO (Visual Studio Tools for Office)的示例时遇到了点儿麻烦,一开始百思不得其解,后来找到问题的根源之后发现蛮有意思的,写出来和大家分享一下。 ? 问题是这样的,我想在Word文档中通过Linked Assembly使用System.Xml命名空间中的功能,最简单的就是用XmlDocument载入整篇XML文档,然后再通过XPath查询取得所需的数据。这个在.NET开发时也经常遇到(是不是太小儿科了?),所以我就随手写了份XML文档作读取的测试,这份文档的内容如下: ? ????? ????? ? XML文档的正确性先不说,我接着又在VSTO项目中增加一个辅助类用来读取这份xml文档并取出其中所有book的信息,然后在code behind文件里 (ThisDocument.cs)调用这个辅助类及相应方法来获取这些信息,然后在指定位置创建表格进行显示。OK,一切好像都进行得很顺利,可当Word文档运行时就是无法读出XML信息,也没有任何错误提示。这是怎么回事? ? 为了找到错误,我打开VS.NET的调试器,根据应用程序的运行,发现每当运行到下面这行代码之后,代码执行马上结束: ? doc.LoadXml(this._fileFullPath); ? 怎么,无法正确读入XML文档?难道XML语法有误?这么一想,我再回过头仔细检查一下上面那份XML文档的代码,果然发现了问题——属性值应该包含在括号里,id=1应该写成id=”1” ? 看来错误应该找到了(而且是个低级错误),可是为什么Word在运行的时候一点儿错误的提示都没有呢?带着这问题又查了查帮助文档,果然有解答: ? When you are developing Visual Studio Tools for Office projects you will find that if an exception occurs, it will not be shown in the Office application and execution of your code will simply end at that point. This can make it difficult to find and resolve bugs. ? 原来Word(以及Excel)在运行与之关联的.NET assembly时,一旦运行出错不会给出任何提示,从而也就出现了我上文中所提到的那种情况——应用程序运行非常“顺利”,但指定功能却无影无踪了。 ? 文中还给出了两种解决办法: ? You should include exception handling code in your projects to notify users of any issues. However, when debugging you can set......[阅读全文]

posted @ | Feedback (5) |