1、DEV 372Visual Studio Tools for Office 2005快速打造多功能Office商业应用的利器,边防微软咨询顾问,VSTO介绍VSTO的编程模型视图控件数据绑定部署安全性,议程,介绍,安全更加可靠容易部署和维护容易升级快速开发,Allow developers, using the full power of Visual Studio, to use Microsoft Office as a platform on which to build and deploy complete business solutions.,介绍什么是 Visual Studi
2、o Tools for Office?,将.NET开发扩展到Microsoft Office 2003目标对象是专业的开发人员使用托管代码和代码后置模式开发Office解决方案Word 和 Excel 项目类型前面有相近功能的产品是 Visual Basic for Applications (VBA)不是 VBA 的一个简单替代,介绍Visual Studio Tools for Office的历史,2003版本在2003年10月发布即将发布的产品是VSTO2005与Visual Studio 2005集成的开发环境支持托管代码增强的编程模式视图编程基于架构的编程可管理的任务窗格新的数据缓存
3、能力在线 ClickOnce 部署,介绍Visual Studio Tools for Office Version 2005的外观,Office 菜单,可拖拽的视图控件,属性窗口,使用Word和Excel作为设计器,VSTO2005 开发环境,VSTO编程模型Office的开发背景,用户界面和数据是连接在一起的用户界面改变会引起数据访问的改变Office 开发和 Windows 窗体开发有显著不同不支持服务器端的自动响应,编程模型代码后置模型,类似于ASP.NET的代码后置模型 允许开发者使用模式(MVC)模型是数据视图是工作表控制器是代码后置的文件,代码文件从 .xls 文件隔离出来,Ex
4、cel 工作表文件,编程模型视图和数据的隔离,视图提供一个容器工作表和文档都是容器的个案 视图控件包含在视图里面可扩展的 Office 控件数据提供内容数据绑定在视图控件上从视图独立访问数据,编程模型,视图控件是Excel 和 Word 对象的扩展例如, bookmarks 和 ranges丰富的事件模型支持属性窗口支持强类型支持数据绑定g,Programming Model数据编程,针对数据的编程允许用户界面更改而不影响数据访问和数据绑定代码更容易实现版本的独立性使用强类型的 DataSets视图控件的数据绑定方式和Windows窗体程序一致,Programming Model数据编程,数据
5、访问代码可以有N层架构使用数据访问层生成Dataset在后置代码中编写数据访问代码数据访问代码在多个应用程序中可以复用,无论是客户端还是服务器端使用数据缓存存储文档中的离线数据数据岛,Programming Model数据岛,可用来存储配置信息能够不访问视图而更新数据不需要创建Office 应用程序实例来更改数据允许数据在服务器端处理从服务器上请求数据向服务器提交数据,视图控件Excel 视图控件,NamedRange扩展了Excel Range 和 Name 对象ListObject类似于 DataGrid 控件可以根据绑定到控件上的数据更改而扩展XmlMappedRange从 XML sc
6、hema衍生根据数据绑定生成映射关系Chart,View ControlsWord View Controls,BookmarkXmlNode, XmlNodes从XML schema衍生根据数据帮定生成数据映射,View Controls优点,整合Windows 窗体控件和新的视图控件生成丰富的用户界面扩展了特定的Excel 和 Word 对象 ,提供了丰富的事件模型事件处理和数据绑定和Windows窗体一致,视图控件的编程,数据绑定概述,以 ADO.NET 为基础不必理解Office对象模型就可以针对数据进行编程可以将多个控件绑定到相同数据源来实现无缝的数据同步数据绑定的两种类型简单绑定复
7、杂绑定,数据绑定数据绑定类型,简单绑定是指将一个数据段绑定到一个视图控件的属性CustomerRange.Value2 绑定到 Customers表 的 Name 列复杂绑定是指将一个含有多项数据的数据源绑定到一个视图控件CustomerListObject 对象绑定到 CustomersDataTable 表,数据绑定VSTO 和 ADO.NET 模型概述,Data adapter(SQL connection& statements),绑定源,数据绑定管理: Index of Current Row Navigate b/w rows Committing changes Swap dat
8、a source,数据绑定,数据绑定,数据源(例如,一个DataSet),Windows 窗体控件,Excel 视图控件 (ListObject, NamedRange),Word 视图控件 (Bookmark, XMLNode),Database,数据绑定使用VSTO 和 ADO.NET 实现,Private Sub LoadControlData() CustomerDataAdapter.Fill(dsCustomer) Dim dcCustomer As New BindingSource dcCustomer.DataSource = dsCustomer range1.DataBi
9、ndings.Add(Text, _ dcCustomer, Name) listObject1.DataSource = dcCustomer dcCustomer.MoveNext() End Sub,数据绑定,部署Manifests 和 ClickOnce,在线 ClickOnce与下一代 .NET Framework 和 Visual Studio 2005 一起发布应用程序部署的完整描述DLL使用情况下的移动相互依存的程序集程序集的位置不用本地安装,Deployment文件组织,文档、代码和程序集相互分离代码是Visual Studio 项目的一部分仅仅程序集是跟随文档部署的程序集链
10、接在文档上VSTO 2003: 自定义属性VSTO 2005: 在文档中内置的程序的 manifest程序的 manifest 指向部署的manifest,部署客户计算机的要求,.NET Framework 2.0Office Professional 2003或者标准版的 Excel 2003/Word 2003建议 Office 完整安装以确保 PIAs 被安装默认情况下, PIAs 按需安装VSTO 2005 运行时适当的 .NET 安全策略,部署应用程序的 Manifest 例子, ,部署部署的 Manifest 例子,Some.dll 1.1,部署定位程序集,Some.xls,man
11、ifest.xml,assembly Name=“Some.dll” updateURL= http:./1.1/Some.dll,assembly Name=“Some.dll” updateURL= http:./1.1/Some.dll,部署更新 Manifest,可以更改应用程序的Manifest的任何部分,ServerDocument doc = new ServerDocument(file.doc);doc.AppManifest.DeployManifestPath = “http:/.;,本地/网络优点方便程序集更新用户可以更新和自定义自己的文档 限制更新的文档需要发送给所有
12、用户,网络/网络优点方便程序集的更新方便文档的更新限制用户共享文档的相同版本,部署部署模型,安全实现,默认是安全的安全性由.NET 代码访问安全性管理证据许可文档和程序集必须完全信任,安全证据,程序集不接受所有代码证据和区域证据程序集-证据的选项签名验证或强命名地点URL文档证据依据地点My Computer 区域完全信任使用 Office Document Membership 为其他区域设置E-mail 附件不能依据地点被信任Microsoft Outlook 临时文件夹位于Internet 区域,Visual Studio Tools for Office 2005摘要,Office 和 Visual Studio无缝集成视图和数据隔离提供很多优点使用Windows Forms 编程知识很容易上手易于部署VSTO-based documents减少了安全方面的担心,