Lesson 1: trust it
Everything could cause problem. There is no API could be really stable. Even it is stable itself, the interop and version difference or mis-use could cause problems as well.
Lesson 2: rely on 3rd party vendor
Add-in express is causing lots of troubles. Should be no feature rely on some solo 3rd party vendor, at least we need some backup plan.
Lesson 3: not taking resource management into consideration at the very beginning
COM requires you to manage the resource. It can cause the outlook won't quit, or powerpoint crash sometime if you leave it uncared. Actually, pool might be a good option.
Lesson 4: not wrapping the api
Using the raw api directly is dangerous. Not only because it could be too low-level, and also you lose the chance to change the api you use, because there is no way to change the api, becaue they are COM and closed sourced. Also, not wrapping it means you need to startup the real office application to test your addin.
Lesson 5: using office api in multi threading code
massing with multi threading and office api could cause problem as well. As it is not designed to be called from thread other than the primary gui thread.
Lesson 6: going into in-process addin model too early
being a addin means you can have consistent life cycle with the office application you are integrating with. But if we only want to use office in some part not the whole application, we probably should not adopt the addin model too early.
Lesson 7: integrate too much
sometimes, we are integrating too much. When user talk about using excel user defined function, it could be just use that to input a formula, but not necessarily pulling the data or doing the calculation. And popping up a separate window or putting the window beside outlook window could be a lot easier than using form region or outlook customized form.
Lesson 8: not taking deployment and version difference into consideration
deployment of addin could be very hard, and addin written in VSTO is even harder. Think about it, all the time. The version of office could be problem as well. Such as outlook 2007 can not use WCF to seralize the IList but 2003 can.
Lesson 9: annoying the end-user
slowing down the outlook startup. flash a window when excel launches. popping up error message box when editing tables in powerpoint. or flash and slows opening up the email composer in outlook for one second. All those kinds of things are not acceptable. Whatever our application is doing, should not annoy the end-user.
Lesson 10: mixing hacking code with rest of production code
It is the reality of life, we have to hack using COM, C++, win32 api or anything that works to get things done when working with office. But mixing the hacking code with other production code is really a bad idea. We need to build a layer to wrap the office api, and locking all the monsters there.
Lesson 11: expose .NET win form control as ActiveX and embed in outlook form or form region
It is just unstable, and with limited security permission.
----
The projects I have worked on with office product include:
a excel addin along with udf for pulling series data from energy server
a powerpoint addin for analyst doing prototype & storyboarding better (www.viprototype.com)
a outlook 2007 PoC project to demonstrate its extending potentials
a crm project with tight outlook integration also can export meeting details to word to print.
分享到:
相关推荐
You Need To Learn To Become A Master Programmer
would have been effectively insuperable had we taken it upon ourselves to solve them. This was open source at its best, empowering us to take on a challenge using our spare time, overcoming technical ...
《Knight’s 24-Hour Trainer Microsoft SQL Server 2008 Integration Services》是一本深入讲解如何使用SQL Server 2008 Integration Services (SSIS)进行数据集成的专业指南。本书不仅提供了详尽的安装与启动指导...
标题中的“VDA_Lessons Learned_2018_德文.rar”表明这是一个关于VDA(德国汽车工业协会)在2018年积累的经验教训的压缩文件,且内容是用德语编写的。VDA是德国汽车行业的重要组织,其发布的资料通常涉及汽车制造、...
This article describes some of the lessons I have learned about each of these management jobs. It’s Always the People—Help People do Their Best Work 1. Hire the best people for the job. I meet ...
《项目管理:从经验教训中学习》 在项目管理领域,"Lesson Learned Document"(经验教训文档)是至关重要的工具,它记录了项目执行过程中的成功与失败,为未来的项目提供宝贵的参考。这份文档通常包括项目的各个...
### 《Lessons in Electric Circuits -- Vol III -- SEMI》关键知识点解析 #### 标题与描述:《Lessons in Electric Circuits -- Vol III -- SEMI》 本书是《Lessons in Electric Circuits》系列的第三卷,专注于...
新概念英语第二册lessons1-10知识点及练习.pdf新概念英语第二册lessons1-10知识点及练习.pdf新概念英语第二册lessons1-10知识点及练习.pdf新概念英语第二册lessons1-10知识点及练习.pdf新概念英语第二册lessons1-10...
Learn Data Analysis with Python Lessons in Coding 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
根据给定文件的信息,我们可以提炼出以下几个重要的知识点: ### 历史研究的价值与挑战 #### 1.... - **人类行为的洞察**:历史学家通过研究过去的社会变迁、国家兴衰和个人命运,希望能够更加深刻地理解人性和社会...
【Java_lessons.zip_Lessons】是一个包含Java编程语言学习资料的压缩包,其核心内容是教授关于Java语言的基础知识和进阶技能。这个压缩包可能包含了多个文档、代码示例或者教程,如"觊煡忪.txt"和"º⌐φ½ ñƒσƒ...
根据提供的文件信息,我们可以从《电路课 Lessons In Electric Circuits》这一免费的六卷本电气与电子学教科书中提取并总结出多个重要的知识点。尽管该书籍主要关注的是电气与电子学领域,但由于其与计算机科学...
"java_lessons.zip_Object Lessons"这个压缩包很可能包含了关于Java面向对象编程的系列教程或实例,旨在帮助学习者深入理解这一核心概念。面向对象编程(OOP)是现代软件开发中的基石,Java正是这一理念的典型代表。...
Steven Weinberg is in the Department of Physics, the University of Texas at Austin, Texas 78712, USA. This essay is based on a commencement talk given by the author at the Science Convocation at ...
Gartner公司的内部资料《Real World Lessons from Big Data Deployments》为我们揭示了大数据分析及Apache Hadoop开源项目如何成为解决这些挑战的关键技术,并探讨了企业如何通过早期采用大数据分析获得竞争优势。...
数据策略在COVID-19大流行中的七大教训 在应对COVID-19危机的过程中,数据已成为政府快速响应和制定战略的重要工具。德勤通过研究总结出,这场全球性公共卫生事件为政府的数据策略提供了宝贵的教训。...