Smart Document开发

介绍智能文档

Office XP当中引入了一个新的概念,即智能标签,如果大家经常使用Word的话,可以发现,从Word XP开始,如果你输入一个日期或者人名的话,会发现下面多了一些红色的虚线,而当你在上面点击时,会自动出现一个下拉菜单,这就是Smart Tag,也就是智能标签。在Office 2003当中,智能标签得到了增强。另外,在Office 2003当中,对于XML的支持得到了极高的增强,例如,我们可以为一个文档增加XML架构,从而对其进行更好的数据管理。在此基础上,我们提出了一个智能文档的概念,让我们的WordExcel在友好界面的基础上,增加了一些聪明特性,直接在文档当中与后台的业务处理系统打交道。

 智能文档的优点

在很多时候,我们需要使用Word或者Excel作为宿主程序,比如我们的业务使用人员更加熟悉Word或者Excel,或者我们的业务类型主要以Word或者Excel文档作为载体,此时,我们可以让WordExcel变得更加聪明,能够直接与业务系统打交道,而不是另外编写一套应用,让它具备排版、打印、数据表计算等的功能。

Word/Excel 2003以前的版本当中,我们所做的业务逻辑必须是在文档当中,比如在文档当中添加各种控件,从而影响该文档最终展现在用户面前的样式,不适合进行排版,影响了最终的用户体验,而在智能文档当中,我们引入了一个“任务窗格”,所有的智能操作均在此处完成,从而将业务逻辑与文档版式互不影响,只是在业务层建立起联系。

这种联系通过XML Schema,即给文档增加一个XML架构,根据鼠标所在不同的XML Element,使任务窗格产生相应的操作及显示,而且这种改变是联动的。

在安全性方面,依托于.NET内建的安全性策略,智能文档也得到了很大的增强,所有的智能文档在执行操作前,均会通过.NET策略进行设置,从而杜绝了安全隐患。

在部署和更新方面,智能文档是基于文档来进行部署的,在内网中部署,我们可以把智能文档的架构及处理程序放置在一个网络共享位置、Web Server或者其它内网成员均可以访问的地方。如果是外网,我们可以制作成MSI安装包,让客户直接下载安装。

应用场景

任何一种技术,都不可能成为万能的。在智能文档推出后,也不能想当然的,把自己手头上的所有项目,不分需求的使用智能文档来搭建。如果您的项目符合以下特点,可以考虑使用智能文档,或者智能文档来搭建某一部分需求:

  1. 该应用的使用人员计算机操作水平不是特别高,但对于Word以及Excel文件操作经验特别丰富;
  2. 该应用是以Word/Excel文档为中心的,大部分的应用视图均可以以Word/Excel作为展示;
  3. 该应用对于一些Word/Excel本身的特性非常依赖,比如排版、打印、复杂的Excel的公式计算等。

举例来说,我们的OA工作流非常适合于使用智能文档来进行搭建,办公系统本身处理的文档大部分都是WordExcel文档,而且其操作人员对于其它系统都有一种本性上的抵触情绪。再者,这种应用一般对文档格式要求特别高,比如,甚至会增加一些模拟的公章,或者手写签名,这些在WordExcel当中很好实现,但自己编程非常困难。

再者,进销存管理以及HR(人事)系统也可以部分采用智能文档来搭建,本年度的架构师峰会上,我们演示了用友U9平台上的一个医药进销存管理系统,其中就使用了智能文档来处理订单。

2004-12-28日下午15:00,开心将在http://www.microsoft.com/china/msdn的网络讲座中讲解Smart Document开发体验点击此处可以下载本次讲座的示例代码。

打赏作者

“Smart Document开发”的36个回复

  1. 现场没有听众,我拿着纸念的,可能念快了,非常不好意思。

    Smart Document的开发,我是从上周开始研究的,匆匆写了上面的程序。此程序当中主要有一个RSS的处理类,大家可以借鉴一下。另外,为了防止在下载RSS的时候造成Word的“假死”,在里面我使用了一个异步操作的处理,可能对于编写Smart Client的朋友有用,不过刚才在Web Cast里面忘了提及此事了:(

  2. 另外,此部分我没有实现自动排版功能,感兴趣的话,可以自己实现这个下载下来,即可以自动排版的功能,至于如何实现,我在课程当中给予了简单的介绍(但不详细),大家可以依据这个思路做出来。

    如果做得比较好的话,可以考虑把源代码发送给我,[email protected],我会在博客堂给大家共享,非常感谢!:)

    Regards,
    HongChao Wang

  3. 自从换到了livemeeting的讲课平台后,我就没有成功参加过一次培训。
    搞不懂为什么好好的webcast不用了!!
    前面几节课还好啦,用了recordings看了,而且可以把视频下载下来,到了开心这节课——霍霍——连recordings都没有了,什么意思嘛!
    不知道开心有没有讲课的视频。

    发了邮件打了电话给那个支持中心三天了。还是没有给我回话!

  4. To wollaston: 您好,课程是需要一段时间的后期制作,一般是一两周左右才能提供。

  5. To:开心就好:你能否告诉我,在VS.Net环境下,新建或添加项目时,有一个代码文件,请问这是做什么用的

  6. 昨天开心讲的不错,就是快了些,但是后面其他两个内容不行,特别是HIS那个,其实就是讲了那两个BLOCK的架构,难道HIS用智能客户端就只能应用智能客户端方便更新的优点吗?现在我们医院的HIS正在实施中,它是C/S的,用VB.NET+ORCLE 9i做的,但它也可以自动升级

  7. 我认为那个智能客户端(医院的HIS系统) 并不是特别地道,跟微软推出的推广的有些差别. 虽然符合开心在讲座中提及的那四个标准(嘿嘿,不好意思,我现场只答对了三个),但他并不可以直接在浏览器中输入URL运行.

    我觉得它更像QQ,泡泡等软件,在本地安装(拥有所有的本地访问权限) 只是有一块程序实现了自动更新.

  8. 智能客户端没有要求从浏览器输入URL运行呀。
    Run From Web只是智能客户端的部署方式之一,而HIS采用的是MSI的部署方式。

  9. To spgoal: 非常感谢您的夸奖。由于时间比较紧,所以稍微快了一些。

    智能客户端只有四个标准,只要你实现了就完全可以称之为智能客户端:
    1.可以自动更新;2.联机/脱机支持;3.利用本地计算机资源;4.联机更好。其实这四个特点利用.NET的先天优势很好实现,所以贵公司的项目就目前看来,如果也实现了脱机/联机之后,也可以称之为智能客户端。如果有兴趣,可以与我们广州分公司的同事联系,取得适当的支持, 以便在未来的市场活动当中加以推广。

  10. 客户端部署SmartDoc后,发现不是很稳定
    配置了执行权限后,有时还是提示"丢失或失效",有时显示正常,有时就没有一点反映了 🙁 任务窗格中也没有了"文档操作"

    另外提个建议: 校验码显示不清楚,比如 7和T,9和Q等

  11. 有两个关于SmartDoc的问题:
    1、Type 为 Image的Control 的 Caption 不能显示?
    2、每次调试都要把最新的DLL更新执行目录下的DLL才能生效,有没有简化操作?

  12. To andrew: 我真的没有时间来处理这些细节问题,建议您遇到这些开发的问题,请多多查看一下SDK,而不是来求教,只有这样,您才可能真正的精通一门技术。

  13. 多看看SDK,才可能真正精通一门技术,这个十分赞同!
    但细节的问题可以有多种方式解决,如果有经验的人遇到过的问题可以马上交流一下,难道不是学习的有效手段么? 另外有些可能在SDK中怕也是寻不到答案的吧?

  14. 在附加xml扩展包时出现了一个问题:“无法安装,缺少内部安装逻辑”。请问是什么原因?

  15. Pingback: AntingZ
  16. Pingback: hudan
  17. 我怎么添加XML扩展包的时候,会提示这样的错误:
    XML扩展包或智能文档程序已丢失或无效.请与系统管理员或提供次文档的人员联系.

  18. 真是不好用,但在领导的要求下,还是得做!遇到了很多问题,也解决了不少,如果那位兄弟有兴趣,大家可以交流下。
    我现在遇到最后两个问题:
    1、把XML扩展包放到服务器网站下,客户端怎么加载不了,我在注册表中看,信息好像也是全的,不知道那儿影响到的。(vb开发的,免得客户端装.NET)
    2、我怎么自动把文档的xml扩展包取消掉,并且打开文档时也不询问是否加载。
    Email:[email protected]

  19. 刚刚接触DOTNET,请教一个低级问题:
    上面提供的代码要运行需要什么环境啊?我装了DOTNET FRAMEWORK 2.0及SDK,VS 2005 EXPRESS BETA,但编译时找不到MICROSOFT.OFFICE.CORE和SMARTTAGLIB,是不是因为没装OFFICE 2003?

  20. Pingback: 多肽合成仪
  21. Pingback: 超纯水仪
  22. 用开心自己的示例代码,附加XML扩展包的时候报错:“XML扩展包或智能文档程序已丢失或无效。请与系统管理员或提供此文档的人员联系。”
    开心能不能指点一下啊。

  23. Pingback: 温湿度
  24. 开心,下载你的文件,但是不能运行,然后按照SmartDocument SDK中的范例做了一个,还是不能运行,“The XML expansion pack or the Smart Document program is missing or invalid.”,帮忙指点一下。

  25. Pingback: 移液系统
  26. Pingback: 人工气候箱
  27. Pingback: 扭力批
  28. 请问:
    从ISmartDcoument接口继承下来的类是否可以调用自己开发的其他工程中的DLL类库,本来认为应该是可以调用的,可就是调试的时 候通不过去? 谢谢

    [email protected]

  29. 我想知道有关部署细节方面的问题.
    通过URL更新.现在我的问题就是net 安全权限.每次都必须在客户处进行一次操作.如果能不操作,只需user打开word,自动就可以使用smart document呢?困惑我多日,希望你能给我一个回复.
    [email protected]. 谢.

  30. 请问使用在用友中的SD,是否是其OEM你的产品?
    或者您就是用友的员工呀?

    🙂

评论已关闭。