Microsoft Corporation
2001年10月25日
请从 MSDN Downloads 下载本文实时通信 (RTC) 一节的源代码。
摘要:本文讨论了在 Windows XP 上用 Visual Studio .NET 开发应用软件的效率优势(本文包含一些指向英文站点的链接)。
Windows XP Professional:开发人员操作系统
您是否一直在寻找提高您本人的专业效率以及整个开发组织的生产效率的途径?如果是这样,请立即采用 Microsoft® Windows® XP Professional 作为应用程序开发平台。理由如下:
更高的可靠性和性能 => 更高的开发效率
由于采用了许多改进措施,在可靠性和性能方面,Windows XP 比早期的 Microsoft 操作系统有了长足的进步。
与 Windows 98 和 Windows NT 4.0 相比
当您测试最新的程序更改时,是否已经被桌面不断崩溃弄得精疲力尽?如果是为 Windows 9x 平台开发应用程序,您可能会发现这些平台使您束手束脚。再想一想,的确如此,您必须在所有支持的平台上进行测试,Windows XP 就是其中之一!
因此,与其在 Windows 9x 上进行开发,然后将 Windows XP 作为需要在实验室中测试的配置之一,为什么不在 Windows XP 上进行开发,然后在实验室中测试 Windows 9x 呢?可以肯定地说,大部分在 Windows 9x 中遇到的错误在 Windows XP 中同样会存在,因此您完全可以将大部分时间用在 Windows XP 的高效开发环境中。
Windows XP 的可靠性究竟提高了多少?去年,美国国家软件测试实验室得出的结论是:Windows 2000 Professional 的可靠性是 Windows 98 的 14 倍,是 Windows NT® 4.0 Workstation 的 4 倍。有关详细信息,请参阅 Microsoft Web 站点。新一轮 Windows XP 的可靠性测试正在进行,预计会在 Windows 2000 的基础上进一步提高。
Windows XP 的速度有多快?eTesting Labs Inc. 测试了各种桌面计算任务,发现 Windows XP 是所有 Windows 操作系统中速度最快的。例如,正如本报告中指出的那样,Windows XP 中应用程序的平均启动时间比 Windows 98 缩短了 25%,这使您可以直接进入更快的开发过程。
与 Windows 2000 相比
Windows XP 在性能和可靠性方面的许多核心改进,在 Windows 2000 桌面系统中可以通过 Service Pack 更新来获得。同样,也可以从相应的 PC 外围设备制造商的 Web 站点下载和安装最新的设备驱动程序,从这些最新的驱动程序得到改进。
因此,如果您已经运行 Windows 2000 并且安装了最新的更新,则主要为了提高开发平台的可靠性和性能而升级到 Windows XP,不过是一次刷新而已。
但是,Windows XP 新增的所有可靠性功能可能还是会令您动心。
新的可靠性功能
Windows XP 是建立在 Windows 2000 基础上的,其中添加了一系列新的、更高效的功能,其目的在于减少发生严重问题的次数。这些功能使您可以更快捷、更容易地解决问题,并且提供了更为可靠的个人计算体验。
Reliability Improvements in Windows XP Professional 一文讨论了 Windows XP 新增的效率功能(其中包括指向更详细信息的链接),例如防止安装和加载有问题的驱动程序的 Windows 驱动程序保护功能,以及设备驱动程序回滚功能(该功能比 Windows 2000 和 Windows NT 的“上次的正确配置”选项在效率方面有很大的改进)。同时,本文还回顾了 Windows 安装程序中的“动态更新”选项,该功能可以自动从 Windows 更新站点下载最新的安装程序更新。
相关链接:
- Windows XP Professional Developer Center
- Windows XP Professional for IT Professionals
- Windows XP Professional on Microsoft.com
快速用户切换
快速用户切换是 Windows XP 的新增功能,建立在 Windows 2000 基础结构上,用于分隔用户状态和数据设置。新功能的主要效率优势在于,可以在同一台计算机中同时使用多个登录的用户配置文件来测试应用程序功能。如果没有 Windows XP,要做到这一点需要多台计算机或多次注销并重新启动,非常耗时。
这样,就有可能为不同的网络资源或本地计算机资源访问权限,创建具有各种不同的语言和辅助功能设置的多个用户配置文件。
在下面的相关链接中将讨论许多适用于特定应用程序方案的编程指导。
相关链接
- 位于 Fast User Switching 的 Platform SDK: Policies and Profiles(Platform SDK:策略和配置文件)文档。
- 位于 User Accounts with Fast User Switching and Remote Desktop 的 Platform SDK: Shell Programmer's Guide(Platform SDK:Shell 程序员指南)文档。
- 位于 Test Your Application with Fast User Switching 的 Platform SDK: Application Compatibility Guide(Platform SDK:应用程序兼容性指南)文档。
- 位于 Fast User Switching with RTC 的 Platform SDK: Real-time Communication(Platform SDK:实时通信)文档 C++ 编码示例。
- Windows XP Networking Features and Enhancements。
Windows XP 和 .NET 框架中的隔离应用程序和并行程序集
Windows XP 使用隔离的应用程序和并行的程序集,与 Windows 98 Second Edition 和 Windows 2000 时间框架中采用的并行共享和动态链接库重定向相比具有显著的优越性。这些早期版本建议开发人员建立新的组件,以便支持同时执行该组件的多个版本。这种方法需要使用注册表,因此组件并不是完全隔离的。如果注册表发生冲突,应用程序仍有可能被破坏。
而在 Windows XP 中,程序集由一个声明来说明,不再依赖于注册表来存储和访问 COM 激活数据。这就使得组件之间完全隔离。现在仍可以对共享程序集进行处理,与静态链接 DLL 不同,Windows XP 配置允许程序集发布者、应用程序发布者和管理员在部署后改变并行程序集的相关内容。Windows XP 提供了一个模型,可以安全地为程序集提供服务,并对某个应用程序使用的并行程序集进行管理。
.NET 框架也完全支持隔离应用程序、使用程序集、声明、显式版本管理和配置服务等概念。就像 Windows XP 的实现一样,.NET 中的公共语言运行时通过提供默认版本,或者通过覆盖每个程序集的发布者以及覆盖每个系统的管理员,来强制使用特定的版本。同样,使用公共语言运行时提供的服务,Visual Studio® .NET 能够在代码开发过程中自动创建声明。
相关链接
- How To Build and Service Isolated Applications and Side-by-Side Assemblies for Windows XP
- Simplifying Deployment and Solving DLL Hell with the .NET Framework
- Side-by-Side and Versioning Considerations for .NET Remoting
- Platform SDK: Isolated Applications and Side-by-Side Assemblies
- .NET Framework SDK: Side-by-Side Execution
存储的用户名和密码
登录到运行 Windows XP Professional 的计算机时,您提供的用户名和密码将成为连接至网络中的其他计算机和连接至 Internet 的默认安全环境。但是,许多用户有时需要使用不同的用户名和密码以连接至不同的资源。例如:
- 您希望使用标准帐户登录到自己的计算机,但是需要作为管理员连接至某些计算机,以进行维护或查找故障。
- 当您在家中工作时,要使用工作时的用户名和密码以连接至与工作相关的服务器。
- 您的帐户位于某个域,但您需要访问某个未受信任域中的计算机。
- 访问不同的 Web 站点时,您希望对每个站点使用不同的用户名和密码。
您可以访问用户界面,以管理“用户帐户”控制面板小程序的“高级”选项卡中所存储的身份验证凭据。
在“开始”|“运行”对话框中输入“hh key.chm”,可以了解该功能的更多信息。
相关链接
您有多少次曾因为需要完成运行时间很长的程序而无法回家?或者,您启动程序让其整夜运行,但在家里又替它担心。或者,某个项目只能在工作单位的计算机上处理,因此不得不留在办公室?
您有多少次花费大量时间在自己的系统上再现某些错误,而另一台计算机已经再现了这些错误,但您却没有物理访问权限?
Windows XP 的远程桌面连接功能为以上问题和许多其他情况(在这些情况下,您需要通过网络连接远程且安全地访问另一台计算机)提供了现成的解决方案。
使用远程桌面功能,您可以从运行任何 Windows 操作系统的其他客户端计算机运行安装了 Windows XP Professional 的远程计算机中的应用程序。应用程序在安装了 Windows XP Professional 的计算机上运行,仅将键盘输入、鼠标输入和显示输出数据通过网络传输到远程位置。
相关链接
An overview of Windows XP Remote Desktop
How to set up and use Remote Desktop
远程协助
远程协助与远程桌面连接类似,允许一台计算机远程查看或控制另一台计算机。但是,远程协助用户界面是供用户进行交互的,所以两边的用户需要同时登录计算机并坐在计算机前面。(实际上,当远程计算机处于远程控制状态时,远程桌面连接并不允许用户登录到该远程计算机。)
过去,如果要将某个新的设计用电子邮件发送给客户或合作伙伴,我们还需要通过电话告诉他们如何安装、更改和修正。现在情况已大为改观,如果您的合作伙伴请求您提供远程协助,您可以亲自指导他们完成安装过程,并向他们展示所做的更改,而他们只需要坐在那里看您远程控制他们的计算机。如果有 Web 摄像机,那就更好了!现在当您向他们展示您最喜欢的功能时,还可以看到他们的面孔。
以下链接介绍了可用于启动远程协助的几种方案,以及在家中或公司网络中管理远程协助的详细信息。
相关链接
TechNet Step-by-Step Guide to Remote Assistance
Using Remote Assistance in Windows XP
用 Visual Studio .NET 进行远程调试
您有多少次由于无法在自己的计算机上再现问题,而不得不跑到另一幢楼,甚至飞到外地去解决问题?如果能够不离开自己的桌面而直接调试远程计算机上的问题该多好!
如果安装了 Visual Studio 6.0 远程调试功能,您应该已经知道使用源代码调试运行在另一幢楼内服务器上的应用程序组件,其效率可以提高多少倍。
遗憾的是,您也知道在 Visual Studio 6.0 中使用远程调试功能很难让它稳定运行。使用 Visual Studio .NET 则没有此问题,但您仍须执行某些设置步骤,不过不像以前那样有那么多的要求。更令人高兴的是,只要设置成功,它就一直能够正常运行。
相关链接
从这里获得 Visual Studio .NET Release Candidate。
有关使用 Visual Studio .NET 进行远程调试的详细信息,请参阅上面 Visual Studio .NET Release Candidate 中的“What's New in the Visual Studio Debugger”(Visual Studio 调试器的新增功能)文档主题。
实时通信 (RTC)
Windows XP 包含一系列新的交互功能,用于通过 Windows Messenger 与朋友和同事进行实时通信。这些功能为用户通过台式计算机或膝上型计算机直接与办公室或另一个城市的同事和合作伙伴进行合作提供了新的方案,其中包括文本邮件、仅语音和视频会议、交互传输文件、共享应用程序或图形,或者应邀接管朋友或同事的整个桌面以提供远程协助。
开发人员也可以通过某些途径将这些协作功能用到自己的应用程序中。重复使用 WebBrowser 控件使开发人员可以轻松地在其应用程序中添加浏览、文档查看和数据下载功能。与此类似,Windows XP 中新增的 RTC API 使开发人员可以方便地将 Windows XP 的实时通信功能集成到自己的应用程序中。
除了集成基于 PC 到 PC 会话(如 Windows Messenger 中所见)的通信功能外,RTC 客户端应用程序编程接口 (API) 还可以实现 PC 到电话以及电话到电话的呼叫。
相关链接
- Windows Messenger in Windows XP
- Windows Messenger: New Waves of Innovation
- Platform SDK: Real-time Communications (RTC) Client API
- Platform SDK 中包含 Visual C++® 6.0 和 Visual Basic® 6.0 示例,演示了如何创建 PC 到 PC、PC 到电话以及电话到电话的音频和视频会话;如何在 PC 到 PC 会话中实现应用程序共享;以及如何接收、应答和断开接入的 PC 呼叫。您可以在此处下载和安装 Platform SDK(请确保选中复选框,以下载示例),然后您会发现示例被下载到安装驱动器的 /Program Files/Microsoft SDK/Samples/NetDS/rtc 文件夹。
- 在 Windows 窗体中将 RTC 当作控件使用(请参阅下面的内容)。
用 Visual Studio .NET 进行 Windows XP 开发
Visual Studio .NET 为开发 Windows XP 应用程序提供了一整套工具。这些工具基于一种新的多语言模式,在这种模式下,可以在公共语言运行时的控制下执行任何编程语言,这些语言可以平等地访问相同的集成开发环境功能和单一的统一类库。在公共语言运行时上执行的应用程序代码称为“受控代码”。
由 .NET 框架提供的类库是一个面向对象的、分层的可扩展 API 架构,它统一了以前应用程序开发的不同模型,如 C++ 的 Microsoft 基础类、Java 的 Windows 基础类以及传统的 COM+ 和 Win32 编程模型。
Visual Studio .NET、.NET 框架类库和公共语言运行时包括了创建 Windows 应用程序、Web 应用程序和 Windows 服务应用程序的功能。它们还提供了从受控代码访问传统 COM 接口和 DLL 函数的功能,反之亦然。
本文余下的内容将讨论从受控代码访问 Windows XP 的功能。
相关链接
- Visual Studio Developer Center
- .NET Development Developer Center
- .NET Framework SDK Developer Center
- .NET Framework SDK: Introduction to the .NET Framework Class Library
- .NET Framework SDK: .NET Framework Class Library。
- .NET Framework SDK: Language Interoperability Overview
从 Visual Studio .NET 访问 COM 组件
有些应用程序需要与您自己的 COM+ 组件或与 Microsoft 及第三方提供的 COM+ 组件进行交互。为了简化这些应用程序的开发过程,公共语言运行时提供了一组功能,可以隐藏受控和非受控编程模型之间的差异,例如调用约定和错误处理。Visual Studio .NET 通过这些功能来编写受控代码,来访问由 COM DLL 实现的功能,就好像 COM 接口是用受控代码编写的一样。这是因为当您在 Visual Studio .NET 中添加一个对 COM 类型库的引用时,就为类型库中说明的 COM 接口生成了受控包装程序。当然,这也意味着从受控代码访问 COM 功能时在性能上会有一点损失。
相关链接
- .NET Framework SDK: COM Wrappers
- .NET Framework SDK: Interoperating with Unmanaged Code
- .NET Framework: Adding a Reference to a COM Type Library in Visual Studio .NET
- Building Distributed Applications with .NET
将 COM+ 应用程序作为 XML Web 服务提供
利用 Windows XP 和 .NET 框架,您可以方便地将现有的 COM+ 应用程序作为 SOAP 终结点提供。这样,通过在“组件服务”控制台的“COM+ 应用程序”属性对话框中单击“激活”选项卡上的复选框,就可以将 COM 接口中的方法转变为 Web 服务。
有关详细信息,请查看以下 MSDN 技术文章和示例代码:Microsoft .NET and Windows XP COM+ Integration with SOAP。
在 Windows 窗体中使用 RTC 控件
通过添加对类型库的引用(如前面所述),可以很方便地从 Visual Studio .NET 中的受控代码访问 Windows XP 的 RTC 功能。
但在设计时,要使在 Windows 窗体中使用 RTC 就像在 Visual Studio .NET 工具箱中使用文本框或其他控件那样容易,还需要做一点额外的工作。因此,我们为您提供了一个 RTC 受控包装程序,用于 Visual Studio .NET Release Candidate,以便您立即将 RTC 集成到基于窗体的 Windows 应用程序中。
RTC 受控包装程序的这个初始版本不支持用于确定联机可用性和位置信息的“存在”功能。我们希望您使用下载文件中的 RTCSimple 窗体,并将建议和错误发送到 msdn@microsoft.com,请在主题行标明“Issues for RTC Managed Wrapper”。我们将根据最好的建议和“存在”功能(在发行存储存在信息所需的 Windows .NET Server Beta 3 之后)对示例进行更新。
您可以在此处下载实时通信 COM 包装程序。
相关链接
在 Visual Studio .NET 中使用后台智能传输服务
您想利用空闲的 CPU 周期和网络带宽在后台下载大型数据文件吗?后台智能传输服务 (BITS) 是 Windows Update 向 Windows XP 桌面异步传输文件的通道,所有需要从 HTTP 服务器获取数据文件的客户端应用程序均可以使用。
只要用户保持登录和网络连接状态,BITS 在初始应用程序退出后仍然会继续下载。如果用户注销或断开网络连接,BITS 将自动挂起传输并在用户下次登录和建立网络连接时恢复传输。即使计算机重新启动,也同样能保持传输状态。BITS 提供一个队列管理器,可管理四个级别的前台和后台传输优先级,并支持传输工作状态的轮询和回调。
Platform SDK 包括一个 C++ 示例,演示如何访问该功能。您可以在此处下载和安装 Platform SDK(请确保选中复选框,以下载示例),然后您会发现示例被下载到安装驱动器的 /Program Files/Microsoft SDK/Samples/Web/bits/bits_ie 文件夹。
C++ 示例 bits_ie 很好地演示了 Visual Studio .NET 的这一功能,但您可能还想了解有关使用 Visual C++ 6.0 生成的工程的详细信息,请参阅 Visual Studio .NET RC 文档中的“Upgrade Previous 32-bit Versions of Visual C++”(升级以前的 32 位版本的 Visual C++)主题。
如果希望通过 Visual Studio .NET 中的受控代码使用 BITS 接口,只需按照 .NET 框架文档中的说明操作就可以了。
相关链接
- 位于 Using BITS 的“Platform SDK: Background Intelligent Transfer Service”(Platform SDK:后台智能传输服务)。
总结
与 Windows 98 SE、Windows Me 和 Windows NT 4.0 Workstation 相比,Windows XP Professional 的效率优势非常明显——即便从 Windows 2000 Professional 升级,也很值得。
Visual Studio .NET 在开发 Windows 应用程序的能力上进步很大,它是目前开发 Windows XP 应用程序的最佳开发环境。