`
hlidc
  • 浏览: 28046 次
  • 性别: Icon_minigender_2
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Windows 7操作系统应用程序的步骤

 
阅读更多
您对迁移项目中应用程序兼容性部分考虑的周密程度决定了 OS 的推出顺利与否,或者决定了您是否会将您的IT团队置于帮助台电话的围攻、人后的指指点点和无数深夜加班的困境中。

  几年前,当公司开始评估 Windows Vista 系统时,应用程序的兼容性成为了前进道路上的致命障碍。这些情形的出现多数是因为公司关键业务功能赖以生存的应用程序在 Windows Vista 下不可用。另外的一些情形是,公司没有预算也没有意愿购买专门为 Windows Vista 设计的新版本的许可。还有一些情形是,关键的应用程序是自定义的或由公司内部人员开发的,最初的开发人员要么已经不在公司了,要么(即便在)不能对基础代码进行再改造。

  如今,在考虑向 Windows 7 迁移时,您会发现情况已经远不像几年前那样具有挑战性了 -- -- 专为 Windows Vista 设计的大多数应用程序在 Windows 7 下也可以工作得很好,并且大多数 ISV 也已经对其应用程序进行了更新,以便能与新一代 Windows 操作系统很好地协作。所以不论您是从 Windows XP 还是从 Windows Vista 迁移, 情况都不如过去那么困难了。

  即便如此,为 OS 迁移顺利部署应用程序组合仍然是一项浩大的工程,不过,若能采取正确顺序执行操作步骤,并进行一些有助于缩小测试范围的艰难选择,还是可以让这件繁琐的工作不那么令人怯步。

  应用程序为何会在 Windows Vista 和 Windows 7 中失效?

  那么,Windows 7(及 Windows Vista)中究竟做了什么更改,以至于专为 Windows XP 设计的应用程序"失效"?有一点可以确定,即负责 Windows Vista 和 Windows 7 的工程团队绝没有轻率地对待这个问题。

  对 Windows 进行更改是为了提高安全性、可靠性、性能以及可用性,在某些情况下,还能删除已经达到其有效使用期的旧组件。我们无意在本文中花费时间来罗列所有这些更改,但会给出对应用程序兼容性意义重大的一些更改,包括:

  用户帐户控制 (UAC)/标准用户帐户。在 Windows Vista 的开发中,工程团队使大多数组织能够将其用户部署为标准用户,而将管理员权限仅保留给需要这种权限的用户--IT 专业人员。对客户PC采用这种我们习惯称之为"权限最低的用户帐户"的策略,可以帮助阻止恶意软件的入侵、减少终端用户的配置错误以及防止未经授权的应用程序加载。在过去,应用程序具有编写注册表设置、修改内核以及进行其他类似攻击动作的能力。不幸的是,这样的自由是要付出代价的--牺牲了安全性。Windows 现在限制了应用程序所能更改的 OS 参数,限制恶意软件所能造成的影响,但是,需要对通过这种行为编写的应用程序进行修改或做填充处理,然后它们才能在 Windows 7 中正常工作。

 顺利部署 Windows 7 应用程序的五个步骤

  如同大多数浩大的工程一样,若能花些时间来将问题分解为符合逻辑的可管理的若干任务,困难并不是不可战胜的。

  应用程序的顺利部署可分为三个最主要的部分:收集、分析和缓解。但是还有其他几个我们想要强调的步骤:在开启测试体制之前,请考虑使用虚拟化技术来帮助缩减测试过程,并潜在地帮助改善桌面的基础结构,使未来的迁移更好管理;根据展开策略对测试阶段进行排序。

  做好深入研究的准备后,即可立即开始行动了。

  步骤 1:收集应用程序清单

  第一个步骤是通过应用程序清单了解自己的处境--请相信我们;此时,您可能刚刚意识到问题比您想象的要复杂。不过,重要的是,您刚刚将一个"未知"转变为"已知",从更好的角度审视了测试范围和准备就绪的程序,并了解了未来的挑战。

  幸运的是,目前已经有一些工具可用来帮助自动化这个过程。您的客户管理软件可能已经内置了这项功能,或者您也可以使用可免费下载的Application Compatibility Toolkit.如果您已经有了其他的清单机制,比如System Center Configuration Manager、Asset Inventory Service 等,那么您可以将它们作为起点。

  要让清单成为最有用的下游产品,请捕获比应用程序列表更多的信息--比如您可以了解有关应用程序的当前用户、这些用户的角色以及该应用程序对用户的重要程度等更多细节。有了这些信息,您就可以优先对待那些至关重要的应用程序,并消除未使用的或多余的应用程序(下一步骤将对此进行更消息的详述)。

  而且,这还会提供额外的好处--可标识出目前尚未管理却已广泛使用的应用程序。您可能要将这些应用程序也纳入正规,这样就可以确保它们在获准的版本上得到恰当管理,并且所需的软件也会得到更新。

  步骤 2:分析应用程序

  有多少您目前支持的应用程序已经被替换,或者已经失去了业务用户的喜爱。如果您与大多数组织无异的话,相当数量的受支持应用程序(很多情况下是大多数应用程序)都处于这样的状态。所以,一旦完成了评估,并且有了很多信息作为基础,那么在开始进行耗时(且昂贵的)回归测试过程之前,下一个步骤就是清理受支持应用程序的列表,并对这些应用程序进行过滤。

  为您的应用程序组合设置适当的目标。总共有多少应用程序需要受到支持?一个应用程序在哪种情况下需要升级到"托管"状态?

  设置了目标后,就可以开始寻找最容易实现的目标,并缩小需要测试的应用程序的范围。

  消除多余且未使用应用程序。毫无疑问,您会发现自己有几个应用程序执行的是相同的功能。现在需要确立一个应用程序完成一种功能的标准,并消除那些废弃不用的应用程序。这里有一个提示,建议您尝试并映射应用程序依赖关系,因为您可能需要支持一个旧版的应用程序,使另一个应用程序能够受此 ISV 支持。那些很少或从未使用的应用程序自然应该抛弃。这么做不仅可以简化测试,还可以节省购买软件许可的支出。

  删除同一应用程序的多个版本并保留最新的版本。几乎在所有情况下,最新版本的性能都是最好的并且也最安全和可靠。同样,请注意应用程序之间的依赖关系。

  从业务用户那里收集信息,帮助优先化至关重要的应用程序,并判断哪些部门在使用哪些应用程序。在对测试过程进行排序时,这非常有用;您需要根据分阶段推出的新桌面映像来调整测试时间。

  步骤 3:评估非兼容性和减少选项

  毋庸置疑,有一些应用程序需要多做一些工作才能使 Windows 7 顺利部署。目前,有如下几个选项可供参考:

  您可以用应用程序的一个新版本替换不兼容的版本。这种方法最可靠,但不幸的是,也是最昂贵的一种方法。如果应用程序是至关重要的,或对业务的运营有战略性意义,那么建议采用这种方式。

  为现有应用程序创建填充码。填充码是插入到应用程序和 Windows 间的一些小代码块,用来修改对底层 OS 的调用--比如,让应用程序相信用户是以管理员身份运行的,而同时又维持标准用户模式。这可能会为您带来一些管理负担,因为您需要维护一个填充码数据库,但这种方法能够解决很多应用程序问题。这种方式是最为经济有效的,而且如果应用程序提供商已经不在左右,那么这可能是唯一的选择。但是有一点需要警告--很多提供商不支持做过填充码处理的应用程序。

  您可以使用组策略来更改应用程序的冒犯行为。与填充码一样,这种方式通常能够解决兼容性问题,但同样有一些缺点。从本质上讲,这种方式可以使用策略来禁用可能导致应用程序放缓的某个特性或功能。不幸的是,很多情况下,这些功能会涉及底层系统的安全性,所以代价是很明显的。同样地,应用程序必须拥有组策略设置才能启用这种管理性。

  对于自定义或是内部开放的应用程序,您当然可以修改代码。但这并不总能奏效,如果奏效,那么有很多资源可提供帮助--Application Compatibility Cookbook 中提供了从 Windows XP 到 Windows Vista 所做的变化,Application Quality Cookbook 中提供了从 Windows Vista 到 Windows 7所做的变化。这两个资源都是免费的指南,可以帮助开发人员为获得本地兼容性而重新编码应用程序。

步骤 4:为 OS 部署和新应用程序交付选项做准备

  开始 OS 迁移项目的时候,同时也是您重新思考如何将应用程序打包并交付给终端用户的绝佳时间。虚拟化技术已经为我们提供了许多选择和可能,而这些选择在上一次主要OS 迁移时还不可用;在开始测试过程之前,应该考虑为桌面映像和应用程序交付提供不同的模型。您会发现,应用程序测试和准备工作所带来的节省不仅能够弥补虚拟环境的实现成本,还能为未来的开发提供了更灵活、更易于管理的环境。

  主要有两种形式的虚拟化可以解决应用程序兼容性问题--应用程序虚拟化和 OS 虚拟化。应用程序虚拟化将应用程序层从 OS 分离出来,仅包含应用程序文件和注册表设置,并将应用程序打包,以简化它们。OS 虚拟化则有几种不同的形式,但基本上都会创建一个独立于机器上的本地映像的 OS 映像。

  对应用程序组合进行虚拟化在可管理性和灵活性方面带来了若干好处,但最为关键的一个优势是可以最小化应用程序之间的冲突。当您需要同时运行同一个应用程序的两个版本时,就会出现这类冲突--这在软件培训场景很常见,比如某个特定任务在新旧应用程序中的完成过程的对比,又比如财务部门正在迁移到财务软件的新版本,但又需要用旧版本的软件关闭本财年的帐务。

  虚拟化在应对应用程序兼容性问题方面的一个更常见的使用是创建一个虚拟映像,该映像包含关键应用程序以及专为运行此应用程序而设计的操作系统。有一些启用 OS 虚拟化的工具:从Windows 7 专业版的虚拟 PC 和 Windows XP 模式以及更高级的 SKU(一个未托管的虚拟映像,能运行为 Windows XP 设计、无法兼容 Windows 7 的应用程序),到 MicrosoftDesktop Optimization Pack (MDOP) 中的 Microsoft Enterprise Desktop Virtualization (MED-V),它通过策略决定物理和虚拟环境的交互方式,从而使虚拟机的供应、配置和管理变得很轻松。

  当然,为您的客户 PC 采用一种替代的计算模型本身是一项巨大的工程,但值得花费一些时间来评估这为组织带来的好处--更大的灵活性和更高的可管理性--是否远超出了因采取这种 PC 供应模型而付出的额外代价。

  步骤 5:对测试、实验和部署进行排序

  按步骤2中提及的优先级对您的测试过程进行排序,以便可以开始分阶段地展开测试,而且可以并行进行后续测试。

  开始测试过程时,可以使用两种方法--静态和动态分析;由于静态分析相对较新,更周密的测试方法是将这二者结合使用。

  静态分析着眼于应用程序的结构,并确定在安装时或运行时必定会出现的问题。目前,已经有很多工具和服务可用来帮助自动化这一过程,并且可以迅速突出明显的问题。

  动态分析着眼于应用程序在运行时的行为,通常都是在回归测试中完成的。在这里,将在特定的环境对应用程序进行"烟雾测试"--复制各种用户对其硬件以及其他关键应用程序和驱动程序的体验。

  最后,需要让一些真正的用户运行这些应用程序,并观察是否会出现在结构化测试时没有出现过的任何异常行。这时,只要参与即可获得新 PC 的许诺是一个很好的激励措施。

  您准备好开始进入生产时,先要标示出迁移对之很有意义的那些人--基于他们所需的特定功能或是为了最大程度地减少对业务造成的破坏。与处理看着不熟悉的屏幕不知所措的任务工作人员打来的求助电话相比,迁移一组专业用户要简单得多。接下来,要确定这些用户组执行其作业需要哪些应用程序。先从受应用程序兼容性影响最小或未受影响的组(基于其使用的应用程序)开始,这会让您对部署过程和操作系统进行验证。随着您对应用程序套件的处理,将更多的组从不兼容的应用程序类别中解放出来,以后就可以将这些组为目标。

  最后一句警告--避免将这个过程进行得太过。如果您将操作范围从应用程序兼容性扩展到整个应用程序质量项目,那么您可能会永远无法完成此任务。接受修复 bug 让工作无法完成的事实,同时避免试图消除每个现有的 bug--您的时间无疑有更好的用处。
分享到:
评论

相关推荐

    64位windows操作系统上解除32位应用程序单进程内存限制工具

    在64位Windows操作系统上,32位应用程序受到一个重要的内存限制,即每个进程的虚拟地址空间最大只能使用约4GB(实际上由于操作系统自身占用,可用通常少于3GB)。这是因为32位系统的设计限制,它只能寻址2的32次方个...

    电大计算机应用基础(Windows7操作系统操作题).docx

    "电大计算机应用基础(Windows7操作系统操作题)" 本资源是关于电大计算机应用基础的机考训练题,涵盖了 Windows 7 操作系统的基本操作和知识点。该资源包括五个题目,分别涵盖了文件夹的新建、文件的复制、文件夹...

    解除windows 64位系统对32位应用程序的内存限制

    在Windows 64位操作系统中,32位应用程序默认受到内存使用量的限制,这是由于系统设计时的兼容性和性能考虑。通常,32位程序在64位系统上最多只能访问约4GB的虚拟内存,尽管实际硬件可能提供更多的资源。这个限制...

    (完整版)WINDOWS7操作系统习题.pdf

    5. Windows 7特性:Windows 7是一个图形用户界面操作系统,支持硬件即插即用,并且是多任务的,但不是分布式操作系统。 6. 打开资源管理器:在Windows 7中,可以通过右键点击“开始”按钮,然后在弹出的快捷菜单中...

    Windows ce系统应用程序调用GPIO.rar

    综上所述,"Windows CE系统应用程序调用GPIO"这个项目涵盖了嵌入式开发中的多个关键环节,包括操作系统理解、驱动编程、应用程序设计、硬件交互和故障排查等。通过学习和实践这个项目,开发者可以掌握在Windows CE...

    Windows操作系统应用资料ppt课件.ppt

    《Windows操作系统应用详解》 操作系统是计算机系统的核心组成部分,它如同一台计算机的“大脑”,管理和协调着所有的硬件和软件资源,使得用户能够高效地与计算机交互。Windows操作系统,作为个人计算机领域广泛...

    Windows应用程序框架

    Windows API是微软为开发人员提供的接口,用于编写能在Windows操作系统上运行的应用程序。这个API包含了丰富的函数库,涵盖了窗口管理、图形绘制、文件操作、网络通信等多个方面。开发者可以通过调用这些API函数来...

    创建应用程序框架。本例的目的在于说明创建Windows应用程序的方法及过程

    1. **Windows应用程序开发**:Windows应用程序通常基于Windows API(应用程序接口)开发,它提供了一系列函数和数据结构,使得程序员能够创建与Windows操作系统交互的应用。 2. **Windows应用程序框架**:框架由多...

    应用服务器的安装(Windows 7).doc

    1. 安装 Windows 7 操作系统:首先,需要安装 Windows 7 操作系统,这是应用服务器安装的基础。 2. 安装 IIS:在安装 Windows 7 之后,需要安装 IIS(Internet Information Services),这是应用服务器的基础组件。 ...

    苹果电脑安装Windows7

    "苹果电脑安装Windows7" ...苹果电脑安装Windows7需要了解苹果电脑的硬件配置和软件环境,了解Boot Camp的使用方法,了解安装Windows7的步骤和注意事项,以及了解MAC OS X和Windows操作系统的区别。

    windows程序设计教程

    在Windows程序设计中,首先要理解的是Windows API(应用程序接口),它是Windows操作系统提供给开发者的一系列函数、结构体和常量,使得程序员可以编写与系统紧密交互的应用程序。Windows API包括窗口管理、消息处理...

    Windows7_系列封装系统_Ghost封装或ImageX封装

    在封装前需要进行准备工作,包括安装 Windows7 操作系统、安装应用程序、禁用 UAC 和关闭错误报告等。安装操作系统时需要注意安装在 C 盘、不要连接到网络、不要输入序列号等。在安装应用程序时需要控制系统盘的容量...

    操作系统实验指导(基于windows)

    总的来说,这个操作系统实验不仅涵盖了进程控制的基础知识,还涉及了Windows操作系统中的服务管理、程序编译和链接过程,以及代码优化和库的使用,为学习者提供了全面了解操作系统运作的实践机会。

    一步一步制作Windows7封装系统

    Windows7 封装系统是一种可以根据用户需求进行定制的操作系统,通过将 Windows7 操作系统与需要的应用程序和设置结合起来,生成一个专门的操作系统镜像。制作 Windows7 封装系统需要具备一定的电脑基础和细心耐心,...

    C#自编获取Windows任务管理器所有应用程序名称

    首先,我们需要理解Windows API(应用程序接口)的概念,它是操作系统提供给开发者访问操作系统服务的接口。 **Windows API与进程管理** Windows API提供了丰富的函数,允许我们获取关于系统进程的信息。在C#中,...

    Windows7操作系统技巧.pdf

    内置应用程序的快速开启和关闭是Windows 7的另一个实用特性。在搜索栏输入相应功能名称,就能直接打开或关闭如IE浏览器、DVD机等系统自带程序。 对于注重隐私的用户,Windows 7的InPrivate浏览模式可以在浏览网页时...

    Windows.7设备驱动程序开发

    《Windows 7设备驱动程序开发》是一本深入探讨Windows操作系统下设备驱动程序设计与实现的专业书籍。这本书由Ronald D. Reeves撰写,旨在帮助开发者理解并掌握在Windows 7环境下编写设备驱动程序的关键技术和方法。 ...

    基于Visual C++2010与windows SDK fo windows7开发Windows 7的多点触摸特性应用程序

    在Windows 7操作系统中,微软引入了一项名为“多点触摸”(Multitouch)的创新技术,极大地拓展了用户与计算机的交互方式。通过利用触摸屏设备,用户可以同时使用多个手指进行操作,实现更加直观和自然的界面控制。...

    基于Windows CE操作系统下USB设备驱动程序研究与开发

    分析Windows CE操作系统对于USB总线的支持,并结合在ARMSYS2410嵌入式开发板上关于Webeye 2000的USB摄像头的开发步骤,详细阐述了WindowsCE下USB摄像头驱动程序开发的策略,并根据该策略开发出USB总线实验设备的驱动...

    Windows7&windows XP程序运行补丁

    标题中的"Windows7&windows XP程序运行补丁"指的是专门为在Windows 7和Windows XP操作系统上运行的C#程序设计的一组修复更新。这些补丁的目的是解决程序在执行过程中可能出现的错误、崩溃或无响应问题,确保程序能够...

Global site tag (gtag.js) - Google Analytics