• 最近给几个CRM软件配套开发了Outlook插件,讲讲Outlook插件开发注意事项


    原始出处:www.cnblogs.com/Charltsing/p/OutlookAddinsTips.html
    联系QQ:564955427

    从去年到现在,写了四五个Outlook插件,其中两个是给CRM系统配套使用的,代码经过两三次迭代,目前基本结构相对比较稳定,所以简单说说,做个总结。

    开发环境
    1、不要使用VSTO开发Outlook插件,除非你是在企业内部使用,有专门的IT管理员可以确保每台电脑安装环境的统一。否则5%的电脑部署不上。
    2、推荐使用Com Addins或者一些第三方开源或者商业框架开发Outlook。
    3、如果需要操作MAPI或者更底层的东西,推荐使用Redemption库(收费)。
    4、C#开发Outlook插件依赖Com对象,这会给开发带来一些限制。

    关于Outlook

    1、不要相信Outlook里面提供的事件会像想象的那样工作,你只有亲自测试,才会知道这里面有多大的坑。(例如邮件到达事件和同步事件)
    2、时刻记住Outlook对邮件的各种操作都是异步的,理解这一点,你才会知道为什么某些代码工作起来不太对劲。
    3、Outlook的Ribbon回调与Office其他的程序不同,可以根据不同的界面加载不同的xml,所以它支持动态更新菜单。
    4、Outlook的窗格需要包装再调用创建,具体参考MSDN;修改Forms也请参考MSDN。
    5、Outlook的自定义字段是有bug的,反复修改保存会导致Outlook提示邮件被占用,需要等候一段时间重试或重启Outlook。这个问题从2013的某个更新之后开始出现,到Office365依然存在。
    6、Outlook对插件的启动和退出要求比较严格,对占用事件较长的插件都会禁用,因此如果你想在插件启动的时候做初始化,建议使用子线程,同时注意跨线程操作Outlook的UI问题。
    7、从Outlook 2010开始,默认情况下,Outlook不会调用IDTExtensibility2接口的OnBeginShutdown和OnDisconnection,这是为了确保Outlook可以快速关闭。如果要改变这个默认设置,需要增加插件的注册表设置。
    8、在加载项管理器里面去掉勾选再勾上和Outlook启动时加载插件的行为不一致,注意CTPFactoryAvailable的执行顺序。
    9、小心处理内存泄漏问题。

    下面是我开发的Outlook插件基本功能演示界面

  • 相关阅读:
    面试C#需要准备的一些基础
    学习jQuery(一),做的第一个可拖动列的Grid
    面试的两道SQL题
    SSIS ODBC方式连接mysql数据库的一个问题
    WIN7下A卡解决部分游戏(CS、CF等)无法全屏问题
    显示Deprecated: Assigning the return value of new by reference is deprecated in解决办法
    Eclipse 中文插件的安装
    安装NASM for Linux
    将Eclipse中文注释字体变大方法
    如何查看局域网内所有IP
  • 原文地址:https://www.cnblogs.com/Charltsing/p/OutlookAddinsTips.html
Copyright © 2020-2023  润新知