微软智能客户端的前生今生,VSTO学习笔记

Outlook是微软第一款真正的智能客户端产品,先介绍一下Office

在始于上世纪90年间末期的互联网大潮淹没桌面应用在此之前,微软以此桌面应用的要员,引领着大千世界迈进一个又一个一时,当时的集团应用C/S架构为相对主流。进入新世纪后,蜂拥而至的是依据Web的选取,此时一旦你还做根据C/S的公司应用,表达你曾经Out了!

上一回紧要学习了VSTO的前进历史及其历代版本的新特征,概述了VSTO对开发人士的助手和效能进步。从这一次开首,将从VSTO
4.0初阶,逐一研究VSTO开发中方方面面,本人接触VSTO时间不长,也是一回尝试。鉴于Excel在漫天Office家族中的重要地位,故先从Excel早先介绍,后续内容会陆续介绍Word、PowerPoint、Outlook、InfoPath等。由于VSTO
4.0建立在Office 2010基础之上,先介绍一下Office
2010的新特征,注意现行只是Beta版,正式版可能还会有效益上的调动。

谷歌(Google)的高效发展,让微软感受到前所未有的竞争压力,微软尽管不大愿意认可,但骨子里是在互联网的时期,确实已经落伍了谷歌一大步。不过微软也确实有和好的难点,毕竟自己最赚钱的出品仍然桌面的Office,尽管也在从容不迫(仅仅是怀疑)拼命的追逐谷歌(Google),把谷歌(Google)作为唯一真正的竞争对手,但桌面的施用不容许扬弃,毕竟那是最大的客户群体,也是最来钱的东西,于是大家在二零零四年就听见如此的一个概念:智能客户端。鼓吹了一年,没看到如何效益,但是假若你用到了Exchange,而且你对微软的Outlook2003或上述版本比较熟稔,你就会体会到怎么叫做智能客户端了。严酷意义上讲,Outlook是微软首先款真正的智能客户端产品。Exchange是劳动器端,所有的情节如邮件、公共文件夹都存储在服务器端,Outlook可以把温馨索要的内容,自动从劳动器端同步到客户端。

以身作则代码下载

微软的Sharepoint技术从2001的雏形,经过2003发展到2007版时,已经主导落成了微软的一个战略构想,就是把全部微软的客户端的office组件,通过一个称为Sharepoint的服务器产品融合起来,形成一套真正含义上的具有极大弹性的集团应用的化解方案。大家可以说,有了Sharepoint
server那些基本,Office终于形成了一个完整的拼图,Office的种种组件,终于都改为了一个个智能客户端的产品,Excel就是中间的先遣,Sharepoint2007不仅提供了Excel服务,还有Form
service,就是从2003才有的Infopath组件。

本序列具有示例代码均在 Visual Studio 2010 Beta 2 + Office 2010 Beta
下测试通过

记念Office
2007的时候,有一个豪门至极陌生的名字,Groove,我历来没有青睐过,只是传闻那是一个用来同盟的成品,更加不解,Sharepoint的初衷本身不就是合作么。当Office2010
揭橥Beta的时候,微软终于揭开了谜底,那些收购的产品标准的名字将从Groove改为Sharepoint
Workspace,是一个标准的sharepoint 的智能客户端,如同Exchange
和Outlook的关系一致。

 

回忆二零零七年在京都插手一个Sharepoint的品类,客户有一个越发实在的要求,就是时刻必要将内网门户中的内容同步到台式机上,去和客户开展有关的交涉,由于内容的不确定性,所有当时达成起来,有非凡的难度,并且不易于形成一套完备的化解方案,现在好了,有了Sharepoint
Workspace,终于可以圆满的兑现这一个必要了。

一、Office 2010新特性

 当Office2010专业发布的时候,我想微软对于智能客户端终于有了一个完全的布道,只是不知道在Sharepoint和Office那几个连串之外,微软仍可以搞出什么样花样!呵呵。

微软将于二零一零年九月份业内生产Office 2010。Office
2010带来了不少先后立异,保持了Office
2007的XML文件格式,革新了Ribbon界面,并带动了基于浏览器的Excel、Word、OneNote、PowerPoint作为Office网络应用服务,并首次提供64位的Office。

 

  Office 2010打破了微软的历史观,成为海内外最资深的在线Office工具,Office
2010中的基于Web的意义是全新的,由此恐怕会油但是生问题。由于对微软全新的Office在线体验有所狐疑的姿态,纵然有点公司陈设购买Office
2010,可是同时也会使用免费的谷歌 Docs和Zoho。

 

Office
Word 2010

Office
Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane
中急速切换至其余一章节的起始(依据题目样式判断),同时也可在输入框中举行即时追寻,包涵关键词的章节标题会高亮呈现。例如下图中的搜索
LiveSino.net:

澳门蒲京 1

Office
Word 2010 也平添了在线实时合作功效,用户可以从 Office Word Web App
中启动 Word 2010
进行在线文档的编排,并可在左下角来看同时编制的其余用户(包含其余联系方式、IM
等信息,须要 Office Communicator)。而当其余用户修改了某处后,Word 2010
会唤醒当前用户举办共同。(注:此效率也设有于有些其余 Office 2010
程序中)

除此以外,用户可在
Office Word 2010, Office PowerPoint 2010 以及 Office OneNote 2010 等
Office 2010 程序中直接插入其他正在运转的软件的截图。

Office
Excel 2010

Office
Excel 2010 新增了 Sparklines
特性,可根据用户挑选的多少直接在单元格内画出折线图、柱状图等,并配有
斯帕克(Spark)lines 设计面板供自定义样式。

澳门蒲京 2

Office
PowerPoint 2010

Office
PowerPoint 2010
除了新增越多幻灯片切换特效、图片处理特效之外,还扩张了越来越多录像成效,用户可直接在
PowerPoint 2010
中设定(调节)早先和终止时间辑录视频(见下图),也可将录像放到之
PowerPoint 文件中。

PowerPoint
2010
左边的幻灯片面板也陡增了分区特性,用户可将幻灯片分区归类,也可对全部区内的兼具幻灯片进行操作。见下图中的
Default Section 和 LiveSino Section。

澳门蒲京 3

PowerPoint
2010 也加码了接近格式刷的工具 – Animation
Painter
,可将动画效果应用至其余对象,用法同格式刷。其它就是上次我关系的
布罗德cast Slide Show
在线幻灯片播放效果

Office
2010 其余零件包蕴 OneNote 2010, Access 2010, InfoPath 2010, Publisher
2010 都富含了诸多新特征,并且都已运用 Ribbon UI 但自我不打算详细介绍。
澳门蒲京 4

Office
Web Applications 2010

Office Web
Applications
2010
包含Word Web App, Excel Web App, PowerPoint Web App 以及 OneNote Web
App,襄助不难的编纂及实时合营作用,支持 IE, Firefox, 和
Safari。具体内容后文中介绍,另附清晰截图如下:

澳门蒲京 5 澳门蒲京 6

澳门蒲京 7澳门蒲京 8

Office
Mobile 2010

Office
Mobile 2010 包括新版 Word Mobile, Excel Mobile, PowerPoint Mobile,
OneNote Mobile 以及匡助对话方式的 Outlook
Mobile(见下图,来源:SuperSite)。

澳门蒲京 9

商店劳动器端也可渲染
Office 文档
供集团移动用户通过手机端查看 Office
文档,也支撑黑莓
iPhone

WZor.net 泄漏了
Microsoft Office 2010 Professional Plus 技术预览版(x86,
x64),而
Ars
Technica

在第一时间揭橥了上上下下 Office 2010 截图。就算对待 1 个月前泄漏的 Outlook 2010
截图
,界面并从未太大改变,但最近的
TechED 09 以及该泄漏版 Office 2010 中暗示了些 Office 2010 的新特征。

Windows 7
Jump Lists


TechEd 2009 上,微软以身作则了支撑 Windows 7
Jump Lists 新特性

Outlook 2010。当有未读邮件时。Outlook
职分栏图标右下角还包罗新邮件的图标提醒(如下图)。(via Techradar

澳门蒲京 10

Microsoft
PowerPoint Live(Broadcast Slide Show)

PowerPoint
2010 帮助将演示文档揭穿至 PowerPoint Live
或此外在线服务,以便其余用户可通过浏览器观看该演示文档,类似 Apple
iWork.com
。而 PowerPoint
Live 很可能就是 Office Web
Applications

中的一员。

澳门蒲京 11

JCXP
还提交了
一对
PowerPoint 2010 以及 Word 2010 新特性的截图和简介,比如:PowerPoint
截图成效、新的 PowerPoint 过渡效果、PowerPoint 内录制幻灯演示。

另外,Office 2010
官方社团也已确认
:Groove
已改名为 SharePoint Workspace,并且 OneNote 和 SharePoint Workspace
都将席卷于 Pro Plus 版本中。

我已经设置了Office
2010 Professional Plus Beta X64:

澳门蒲京 12

如上文介绍的,InfoPath和Groove的命名发生了变化,其余不变。个人感觉Office
2010中最大的转变是对在线办公的支撑,那是鹏程向上的来头,个人表示看好。其余新功用我会陆续尝试,会公布在继续篇章,以VSTO
4.0来体会新特点。

 

二、Excel对象模型

澳门蒲京 13

目标模型是一组由Office应用程序提供的对象,用来控制Office应用程序,是VSTO开发的主题内容。其中Application是最顶层的靶子,负责对Office进行总体的支配,类似于.Net
WinForm和WPF中的Application对象,是根对象。Workbook(s)指工作簿,Worksheet(s)指工作表,Chart(s)指各类图片。Sheets对象相比较尤其,它涵盖Worksheet或Chart类型的靶子,而Range代表愿意操作的单元格范围。

 

三、主互调程序集(PIA)

用以与Office交互的托管程序集叫做Office主互调程序集(PIA)。

PIA = Primary Interop Assemblies

平日采纳一种被称为COM
Interop的.Net技术与Office对象模型进行相互,所有的Office对象都是用非托管代码(C、C++)编写的,并提供COM接口。为了在托管代码中与那么些接口举办通讯,必须选拔封装器,通过封装器来达成托管代码与Office非托管COM接口之间的协同工作。该封装器是一多级的.Net类,他们被编译为PIA程序集。之所以PIA称之为”主”,是因为开发人士可以支付协调的封装器IA(Interop
Assemblies),除非有不行出格的须求,否则不指出使用自己的IA,因为那不能与别的的Office解决方案举行互动,而且有可能含有Office已经修复的bug。

安装相应的Office版本后就会设置PIA了,倘使要开支VSTO 4.0,提出安装Office
2010 Professional Plus Beta。Office PIA被装置到GAC(GAC = Global Assembly
Cache)中。

大部VSTO项目会自行添加PIA,固然创造的是其他连串的种类(控制台、类库、WinForm、WPF等),则须要手动添加PIA。

说明

程序集名称

命名空间

Microsoft Office 14.0 Object Library

Office.dll

Microsoft.Office.Core

Microsoft Excel 14.0 Object Library

Microsoft.Office.Interop.Excel.dll

Microsoft.Office.Interop.Excel

Microsoft Word 14.0 Object Library

Microsoft.Office.Interop. Word.dll

Microsoft.Office.Interop. Word

Microsoft Outlook 14.0 Object Library

Microsoft.Office.Interop. Outlook.dll

Microsoft.Office.Interop. Outlook

Microsoft Graph 14.0 Object Library

Microsoft.Office.Interop. Graph.dll

Microsoft.Office.Interop. Graph

Microsoft.SmartTags 2.0 Type Library

Microsoft.Office.Interop.SmartTag.dll

Microsoft.Office.Interop.SmartTag

澳门蒲京 14

当PIA之间有依靠关系时,VS2010会自行抬高必须的PIA。

 

四、Office解决方案

1、Office自动化程序(Office Automation Executable)

Office自动化程序是独立于Office的顺序,用于控制和自动化处理某个Office应用程序。如控制台、类库、WinForm、WPF等。

2、Office加载项(Add-In)

Office加载项是某个程序集(dll)中的类,Office在要求时可加载和创办它,加载项可以一向在Office应用程序的进度中运行,而不要求在单独于Office应用程序的经过中运作,加载项在Office应用程序的全方位生命周期中均保持加载状态。

3、Office文档代码(Code Behind on Office Document)

Office文档代码早在VBA时代就曾经获取了常见的行使,在VSTO中赢得了更为的增长。Office文档代码可以用某种方式对Office应用程序进行定制,如扩大只在当下文档中才出现的菜单项,或者在文档打开时接触事件。

4、Office 模板(Office Template)

使用托管代码成立相应的Office模板。

5、服务器文档格局(Server Document)

VSTO可以在不打开Office应用程序的事态下,在劳动器端运行程序并对存放在Office文档中的数据举办操作,如VSTO的缓存数据效能,SharePoint
2007/ 2010的Excel 瑟维斯(Service)s等。

6、OpenXML模式

以OpenXML的API操作Office文档中的数据,结合XSLT等转移为索要的文档格式。关于OpenXML的介绍请参阅我博客的别的一个文山会海:OpenXML学习笔记。

 

五、Office文档代码示例

鉴于此次重大学习Excel对象模型,顾选拔Office文档代码格局做多少个大约的勤学苦练,其他情势一而再篇章会陆续介绍。

1、新建一个Excel 2010 Workbook项目:

澳门蒲京 15

 

默许添加的引用和种类文件:

澳门蒲京 16

 

2、在Sheet1中添加八个Button和一个Label控件:

澳门蒲京 17

 

3、添加事件处理代码:

 

澳门蒲京 18澳门蒲京 19代码

        private void btnPIA_Click(object sender, EventArgs e)
        {
            Excel.Workbook book = this.Application.Workbooks[1];
            Excel.Worksheet sheet = book.Worksheets[1];//C# 4.0新特征,PIA动态导入。
            this.labMsg.Text = “那是PIA调用结果,当前工作表名为: ” + sheet.Name;
        }

        private void btn获取工作表_Click(object sender, EventArgs e)
        {
            this.labMsg.Text = string.Empty;
澳门蒲京,            Excel.Workbook book = this.Application.Workbooks[1];

            for (int i = 1; i <= book.Worksheets.Count; i++)
            {
                //C# 4.0新特征,PIA动态编译。
                this.labMsg.Text += book.Worksheets[i].Name + ” “;
            }
        }

受益于C#
4.0的新特色,可以不用进行突显类型转换了,同时PIA将在运行时开展导入、编译,注意:VSTO中的索引一大半是从1上马,而不是从0.

 

4、F5周转,将会打开生成的Excel:

澳门蒲京 20

 

5、运行结果:

澳门蒲京 21

 

六、小结

此次首先叙述了Office
2010的新特性,学习了VSTO开发的基础知识,对PIA有了深切的认识,介绍了不一致的Office解决方案的区分。最终用 Excel文档代码做了一个简易的以身作则,利用C#
4.0的新特点,使得VSTO 4.0的开发尤其便民、高效。假如你还不熟稔C#
4.0,不妨先看看园子里的连锁作品,若要调试本示例代码,要求设置VS2010
Beta2 + Office 2010
Beta。下三回将接二连三学习Excel的相干知识,大家将使用VSTO来编排一个Excel自定义公式,相比其与VBA的不等。