预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章部署应用程序 应用程序:使用ClickOnce进行用户启动的更新 此应用程序演示如何使用ClickOnce应用程序编程接口(API)向Windows窗体应用程序添加用户启动的更新功能。 新概念 在VisualStudio2005中,有三个可选的主要部署选项:Web、ClickOnce和WindowsInstaller包。使用MS-DOSXCopy命令将应用程序文 件从一个地方移动到另一个地方是另一种选项,它仍然是最简单、最直接的部署方法。它也最不灵活,实际上只适用于几种情况—例如,当 更新Web应用程序(即使它应该只适合于不需要更新IIS元数据库的部署)或用于安装私有.NET程序集的情况。 ClickOnce是VisualStudio2005中引入的一种集成部署技术,允许从Web服务器安装和运行Windows应用程序,而几乎没有与用户进行交 互。作为MicrosoftWindowsServer2003、WindowsXP、Windows2000和WindowsMe附带的一部分,WindowsInstaller是一项安装和配置 服务(作为单独的下载内容,它还可用于Windows9x和WindowsNT4.0)。您将发现,在VisualStudio2005中构建于WindowsInstaller基 础上的部署工具为提供了丰富的功能,可以快速部署和更新应用程序。 背景 组成ClickOnce的服务集合体现了这些技术的发展,.NETFramework的第一版中开始出现一种称为非接触部署(No-Touch)的技术。在.NET Framework1.0版发布时,它马上就解决了开发人员面临的许多问题。在.NETFramework上构建的托管应用程序得益于应用程序隔离和低影 响部署(也称为XCopy部署)。通过提供一种共享组件和对组件进行版本控制的新方法,.NETFramework1.0还更正了“DLLHell”问题(即 安装将破坏现有的软件,并有可能破坏将来的软件安装)。消除了DLL的版本问题,也就为思考部署Windows桌面应用程序的新方法打开 了一扇大门,与基于Web的应用程序相比,Windows桌面应用程序可以提供更多的功能,并且可以提供更丰富的用户体验。 非接触部署作为一种基于Web的部署方法而出现,它允许安装InternetExplorer5.01或更高版本的用户从某个URL下载和安装Windows 桌面应用程序,并在其本地计算机上运行它们,而无需运行通常的Setup.exe。该部署机制还称为“href-exes”,它将桌面应用程序的丰富功能与 Web应用程序部署的简单性结合起来。 遗憾的是,直接从Web位置运行应用程序也存在局限性。首先,由Web页启动的应用程序仅在联机时可用,因此受网络连接的影响,这是 由它们的本质决定的。href-exes的另一个重要问题是其安全性问题。应用程序要运行,更有可能要求更改客户端上的默认安全策略。在Visual Studio的早期版本中,开发人员在设计时几乎不可能确定应用程序所需的权限。毫无疑问,许多非接触部署被不可预见的安全限制“巨石”所击 碎,使得这些部署不能用于生产中。非接触部署的另一个局限性是,它没有提供管理版本发布的标准机制。 ClickOnce可以保护用户的计算机和应用程序。当ClickOnce下载和安装程序时,它不会更改自身文件以外的任何文件。可以设置更新策略, 并利用.NETFramework版本控制机制来管理更新。在本节中,您将看到一个应用程序,它阐释如何使用ClickOnce部署API允许用户自动 更新Windows桌面应用程序。但在研究该实现的细节之前,我们来回顾一下ClickOnce的新功能,以及在必须从中选择的部署功能的范围内, 它如何适合于VisualStudio2005。您还将详细了解到,以声明方式实现ClickOnce部署和自动更新是多么简单。 注当我们讨论ClickOnce的安全性时,您将会更详细地了解到,VisualStudio2005IDE中提供的工具使得无需推测计算和配置分布式Web胖 客户端应用程序的安全需求。这是朝实现非接触部署的早期承诺迈进的一大步。 代码访问安全性 代码访问安全性(CAS)是公共语言运行库(CLR)的一种功能,它基于代码的标识执行安全性。作为一名开发人员,您可能并没有将使用CAS 作为日常事务的一部分,因为保证代码安全的基础结构内置于.NETFramework库中。然而,为了做出关于应用程序安全需求的正确决策,了 解CAS非常必要—特别是.NETFramework如何处理证据、权限和代码组。同样非常重要的是,在开发项目的生命周期中,通常是在早期 解决安全问题。详尽地讨论CAS超出了本书的范围。