Pocket Outlook 增强功能
Pocket Outlook 向用户和应用程序开发人员提供了易于使用的 PIM。将 Pocket Outlook 集成到您的应用程序中可以同时使您的应用程序和它的用户获益。用户通过具有一致的 PIM 体验和数据获益,而无论他们是直接与 Pocket Outlook 交互,还是通过您的应用程序与其交互。应用程序通过有机会立即合并用户的完整 PIM 数据而获益。
为了进一步简化应用程序与 Pocket Outlook 交互的方式以及为应用程序提供合并更为丰富的 Pocket Outlook 交互的机会,Pocket Outlook 向本机和托管开发人员提供了多种新功能。
联系人选择对话框
正如它的名称所暗示的那样,联系人选择对话框使应用程序能够显示功能齐全的联系人选择对话框 — 就像 Pocket Outlook 显示一样。该对话框提供了可供用户选择整个联系人或单个联系人属性(如电话号码或电子邮件地址)的筛选功能。当该对话框显示时,用户可以直接选择联系人,或者可以输入联系人姓名的一部分,后者会自动筛选列表以便只显示匹配的姓名。该对话框还可以选择支持用户添加新联系人。本机开发人员可以通过 ChooseContact 函数使用联系人选择对话框;托管开发人员需要使用 ChooseContactDialog 类。
下面的示例演示了如何从 C++ 和 C# 中使用联系人选择对话框。在每个示例中,应用程序都显示限制用户选择现有联系人的对话框。为了使示例保持简单,应用程序随后在 MessageBox 中显示所选联系人的姓名。
下面的代码演示 C++ 中的联系人选择对话框。
#include
// ...
HRESULT hr = E_FAIL;
CHOOSECONTACT cc = {0};
cc.cbSize = sizeof (cc);
cc.dwFlags = CCF_RETURNCONTACTNAME | CCF_HIDENEW;
// Display the contact selection dialog
hr = ChooseContact(&cc);
// Show the selected name
MessageBox(NULL, cc.bstrContactName, TEXT("Selected Contact"), MB_OK);
// Free memory
SysFreeString(cc.bstrContactName);
下面的代码演示 C# 中的联系人选择对话框。
using Microsoft.WindowsMobile.PocketOutlook;
using Microsoft.WindowsMobile.Forms;
// ...
ChooseContactDialogcontactDialog = new ChooseContactDialog();
contactDialog.HideNew = true;
contactDialog.ShowDialog();
// Show the selected name
MessageBox.Show(contactDialog.SelectedContactName, "Selected Contact");
图 3 说明了所显示的对话框。
图 3. 新的 ChooseContactDialog 联系人选择器类
事件通知
由于引入了事件通知,Windows Mobile 5.0 现在使应用程序可以比以往任何时候都更密切地与 Pocket Outlook 合作。通过事件通知,本机和托管应用程序都可以监视 Pocket Outlook 文件夹内部的成员添加、删除和修改。
要注册以接收这些通知,本机应用程序必须访问感兴趣的 Folder 对象上的 IItem 接口,然后调用 IItem.SetProp 方法以便将属性 PIMPR_FOLDERNOTIFICATION 设置为表 7 中的值之一。
PIMFOLDERNOTIFICATION_LOCAL
|
在从当前进程中进行更改时,向应用程序发送通知。
|
PIMFOLDERNOTIFICATION_REMOTE
|
在从其他进程中进行更改时,向应用程序发送通知。
|
PIMFOLDERNOTIFICATION_ALL
|
在从任何进程中进行更改时,向应用程序发送通知。
|
当更改发生时,消息被发送到在对 IPOutlookApp.Logon 的调用中注册的窗口。表 8 显示可能的消息。
PIM_ITEM_CREATED_LOCAL
|
该进程创建了一个 PIM 项。
|
PIM_ITEM_DELETED_LOCAL
|
该进程删除了一个 PIM 项。
|
PIM_ITEM_CHANGED_LOCAL
|
该进程更改了一个 PIM 项。
|
PIM_ITEM_CREATED_REMOTE
|
另一个进程创建了一个 PIM 项。
|
PIM_ITEM_DELETED_REMOTE
|
另一个进程删除了一个 PIM 项。
|
PIM_ITEM_CHANGED_REMOTE
|
另一个进程更改了一个 PIM 项。
|
托管应用程序使用标准委托机制来处理由 AppointmentCollection、ContactCollection 和 TaskCollection 公开的 ListChanged 事件。借助于相应文件夹中的 Items 属性可以最为容易地访问这些集合。下面的示例演示如何注册委托以处理对约会集合所做的更改。
using Microsoft.WindowsMobile.PocketOutlook;
// ...
OutlookSessionsession = new OutlookSession();
session.Appointments.Items.ListChanged +=
new ListChangedEventHandler(Items_ListChanged);
// ListChanged Event Handler
void Items_ListChanged(object sender, ListChangedEventArgs eventArgs)
{
// Details of change are found in eventArgs
}
除了跟踪对某个文件夹内的所有对象的更改以外,托管开发人员还可以获得有关对任何特定 Appointment、Contact 或 Task 所做更改的通知。这些类中的每个属性都具有相应的事件。例如,要获得有关对 Appointment 的 Start 属性所做更改的通知,请处理 Appointment.StartChanged 事件。要获得有关对 Contact 的 BusinessTelephoneNumber 所做更改的通知,请处理 Contact.BusinessTelephoneNumberChanged 事件。
自定义属性
很多应用程序不仅使用 Pocket Outlook 提供的数据,而且还需要扩充标准 Pocket Outlook 对象模型以跟踪附加数据。过去,那些希望自己的应用程序这么做的开发人员必须显式管理扩充数据的存储及其与 Pocket Outlook 对象的相互关系。Windows Mobile 5.0 通过引入自定义属性消除了手动管理扩充内容的需要。
自定义属性使本机和托管应用程序都可以将自定义数据直接与 Appointment、Contact 和 Task 对象相关联。Pocket Outlook 自动将这一关联数据存储到它的可以通过相关联的 Appointment、Contact 或 Task 对象直接访问的数据存储区中。自定义属性可以是从简单类型(如 int)到复杂的自定义对象的任意类型。要访问自定义属性,本机应用程序开发人员可以使用 IItem.GetProps/IItem.SetProps;托管开发人员可以使用由 Appointment.Properties、Contact.Properties 和 Task.Properties 公开的 PimPropertySet 属性。
邮件应用程序管理
消息处理(包括 SMS 和电子邮件)是包含从轻松的会话到详细业务过程信息的所有内容的现代通信的核心。很多应用程序可以从下列做法中获益:紧密集成消息处理,从而向用户提供在直接与应用程序交互以及与应用程序的相关 SMS 或电子邮件信息交互之间的无缝体验。Windows Mobile 5.0 通过引入多个新的消息处理 API,使开发人员可以轻松地提供这一无缝体验。
这些新的消息 API 向本机和托管开发人员提供了轻松访问设备消息处理程序中的多个功能的方式。这些功能包括显示现有的电子邮件、使用消息处理系统的 SMS 和 Email 窗体来撰写新邮件以及控制消息处理系统中的当前活动帐户的功能。通过使用这些 API,开发人员可以向用户提供在应用程序和设备消息处理程序之间的平稳过渡,从而给予用户熟悉的一致的消息处理体验。表 9 显示本机消息处理系统函数的列表,表 10 显示托管消息处理系统函数。
MailDisplayMessage
|
使用标准信息显示窗体显示现有信息。
|
MailSwitchToAccount
|
给予消息处理程序焦点并切换到指定的帐户。
|
MailSwitchToFolder
|
给予消息处理程序焦点并切换到指定的文件夹。
|
MailSyncMessages
|
将指定的帐户与邮件服务器同步。
|
MessagingApplication.DisplayComposeForm
|
显示包含任何内容或附件的信息撰写窗体。
|
MessagingApplication.DisplayMessage
|
显示现有信息。
|
MessagingApplication.SwitchToAccount
|
给予消息处理程序焦点并切换到指定的帐户。
|
MessagingApplication.Synchronize
|
将指定的帐户与邮件服务器同步。
|
工具和技术
Microsoft 为那些创建面向 Windows Mobile 5.0 平台的应用程序的开发人员提供了许多工具和技术。这些工具简化了开发过程并提高了开发人员工作效率。本节将描述这些工具和技术。
Visual Studio
Visual Studio 是 Windows Mobile 5.0 开发的首选工具,它提供了多产的开发体验以及与 Windows Mobile 5.0 平台的最完整集成。现代应用程序开发要求开发人员使用多种技能,因为这些应用程序通常必须混合使用服务器、桌面计算机和设备组件。在很多情况下,提供完整的解决方案还可能涉及到组合本机和托管代码。Visual Studio2005 是第一个使开发人员能够从单个工具中为上述所有环境进行生成、调试和部署的开发平台。适合于所有应用程序类型的单个开发工具为开发人员提供了一致的熟悉的开发体验,从而使其能够利用在开发人员培训和代码库方面的投资,而且还能更加有效地工作。
集成式本机开发
Visual Studio 包含对使用 C/C++ 开发设备应用程序的充分支持。它是 eMbedded Visual C++ 4.0 的后续开发环境。Visual Studio 向 C/C++ 设备开发人员提供了完整的工具集,并且支持以前可以通过 eMbedded Visual C++ 4.0 使用的相同向导和工具。Visual Studio 包含用于创建 MFC、ATL 和 Win32 项目的熟悉的应用程序向导。当开发人员向项目中添加类时,Visual Studio 为 ATL、MFC 和 C++ 提供了整套类向导。它还包含其他熟悉的工具,如设备交叉编译器、资源编辑器、调试器和模拟器。Visual Studio 还充分集成了设备 SDK。
除了向 C/C++ 开发人员提供熟悉的功能以外,Visual Studio 还引入了很多新功能,如智能感知、集成测试、对丰富的 Team System 功能集的访问等等。通过使用 Visual Studio,设备 C/C++ 开发人员自动拥有了对各种可以提高 Visual Studio 开发人员工作效率的功能的访问权限。
通过将设备 C/C++ 开发集成到 Visual Studio 中,开发人员现在能够对服务器、桌面计算机和设备应用程序使用单个技能集。开发人员不再需要为服务器和桌面计算机应用程序去了解一个工具,而为设备应用程序去了解不同的工具。这还意味着,在开发 C/C++ 设备应用程序时,桌面计算机开发人员不再需要放弃对于 Visual Studio 可用的丰富功能集和第三方工具。
这对于在设备上用本机和托管代码工作的开发人员而言,也是一个非常好的消息,因为他们现在也可以使用单个工具。对于需要创建本机和托管项目以作为单个应用程序的一部分的开发人员而言,甚至可以将本机和托管项目放到单个 Visual Studio 解决方案中。
移动设备 C/C++ 开发人员没有受到用 Visual Studio 开发 Windows Mobile 5.0 应用程序的限制。Visual Studio 支持从 Windows Mobile 和更高版本中为所有 Windows Mobile 平台开发本机移动设备应用程序。这意味着面向运行 Windows Mobile、Windows Mobile Second Edition 和 Windows Mobile 5.0 的 Pocket PC 和 Smartphone 设备的开发人员可以利用 Visual Studio。
Windows Mobile 5.0 将继续运行用 eMbedded Visual C++ 3.0 和 eMbedded Visual C++ 4.0 开发的应用程序。但是,使用这些工具的开发人员将无法直接面向 Windows Mobile 5.0 调试或部署他们的应用程序。只有 Visual Studio 支持直接面向 Windows Mobile 5.0 部署和调试应用程序。
集成式托管开发
对于使用托管代码的移动设备开发人员而言,Visual Studio2005 是取代 Visual Studio .NET2003 的首选工具。熟悉 Visual Studio .NET2003 的开发人员会发现 Visual Studio 提供了非常熟悉和一致的体验。
Visual Studio2005 为托管开发人员引入了 .NET Compact Framework2.0,并且提供了很多新的类和方法。它还包含很多针对运行库的增强功能(如改进的性能)以及对高级编程功能(如泛型和匿名函数)的支持。对于那些需要支持现有 .NET Compact Framework 1.0 应用程序或那些希望继续使用 .NET Compact Framework 1.0(由于它在 Windows Mobile 设备上的 ROM 中的广泛可用性)的开发人员,Visual Studio2005 继续支持 .NET Compact Framework 1.0,以便进行 Pocket PC 和 Smartphone 开发。
无论是开发 .NET Compact Framework 1.0 还是 2.0 应用程序,托管开发人员都可以充分利用 Visual Studio2005 的强大设备开发环境。.NET Compact Framework 1.0 和 2.0 都具有对上文描述的 Windows Mobile 5.0 托管 API 的完整访问权限。这些托管 API 是作为 Windows Mobile 5.0 操作系统的一部分予以合并的,并且不与任何版本的 .NET Compact Framework 相联系。
注有关 Visual Studio 中提供的新设备开发功能的详细信息,请参阅下一部分 — Visual Studio 设备开发。
Windows Mobile 5.0 将继续运行用 Visual Studio 开发的应用程序。但是,那些希望直接针对 Windows Mobile 5.0 调试或部署应用程序的开发人员必须使用 Visual Studio2005。只有 Visual Studio2005 支持直接针对 Windows Mobile 5.0 进行部署或调试。
Visual Studio 设备开发
Visual Studio 为那些以前使用过 eMbedded Visual C++ 或 Visual Studio .NET 的开发人员提供了一个一致、熟悉的开发环境。对 Visual Studio2005 开发环境的熟悉使开发人员可以立即应用他们现有的 eMbedded Visual C++ 或 Visual Studio .NET 技能来高效地工作,以便生成高质量的设备应用程序。
Visual Studio 还包含很多旨在改善开发人员工作效率和开发人员总体体验的增强功能。总之,Visual Studio2005 提取了 eMbedded Visual C++ 和 Visual Studio .NET 的最佳功能,并且将它们包装到单个软件包中。
适合于设备开发人员的新功能
除了将 eMbedded Visual C++ 和 Visual Studio .NET2003 中的很多熟悉的功能组合在一起以外,Visual Studio2005 还引入了很多新功能。这些新功能建立在最初由 eMbedded Visual C++ 和 Visual Studio .NET 提供的丰富开发环境之上,以便产生更加高效和多产的开发人员体验。本节概述这些新功能。
改进的用户界面设计器
不久以前,所有 Pocket PC 设备都具有相同大小的屏幕,并且所有 Smartphone 设备也都具有相同大小的屏幕。在这两种情况下,所有设备都总是显示为纵向模式。随着 Windows Mobile Second Edition 和 Windows Mobile 5.0 的先后引入,不同的设备开始支持不同的屏幕分辨率。例如,Pocket PC 现在支持的屏幕分辨率有 240 x 320、240 x 240、480 x 640 和 480 x 480。此外,设备还支持纵向、横向或方形显示,并且某些设备支持在纵向和横向布局之间动态更改的显示。为了简化设计面向这些更加丰富的显示选项的应用程序的过程,Visual Studio2005 已经向 UI 设计器中添加了多种新功能。
可以将 Visual Studio2005 托管 UI 设计器描述为“所见即所得”(WYSIWYG),它支持交互式设计体验,使开发人员可以在任何可用的 Windows Mobile 显示大小和方向下查看他们的应用程序窗体。图 4 显示一个 UI 设计器,它将窗体显示为纵向,并且显示 Rotate Right 菜单选项 — 该选项用于将 UI 显示旋转到横向。图 5 显示在用户已经选择 Rotate Right 以后,该 UI 设计器中的同一窗体。
图 4. Visual Studio2005 托管 UI 设计器(纵向)。
图 5. 旋转到横向的 Visual Studio2005 托管 UI 设计器。
为了简化能够支持多种屏幕分辨率的应用程序的开发过程,所有托管控件现在都具有更高的屏幕敏感性,并且支持锚定和停靠。锚定用于指定控件与窗体边缘保持固定的距离。当窗体大小和方向更改时,控件调整它的位置以便与窗体的边缘保持相同距离。开发人员可以将控件锚定到一个或多个边缘。
停靠控件可指定该控件直接针对该窗体的边缘确定自身的位置,并且该控件占据整个边缘。开发人员可以针对同一个边缘停靠多个控件,以便产生层叠效果。当用户旋转屏幕时,停靠的控件会自动调整以便始终占据指定的边缘。在图 5 中,当 UI 横向显示时,窗体底部的列表框被部分遮掩。停靠和锚定可以轻松地矫正这一问题。图 6 和 7 分别纵向和横向显示同一窗体。文本框和标签锚定到窗体的左上角,列表框停靠到窗体的下边缘。
图 6. 纵向显示的窗体 — 控件利用了停靠和锚定。
图 7. 横向显示的窗体(窗体和图 6 中的相同)。
对于面向 Pocket PC 和 Smartphone 的托管应用程序,Visual Studio2005 UI 设计器现在具有设备敏感性,并且完全了解这两种设备之间的屏幕和控件功能方面的差异。设计器工具箱会自动调整,以便只有适用于当前所选设备的控件可用。Visual Studio2005 甚至更进一步。开发人员完全可以将原来为 Pocket PC 设计的窗体从 Pocket PC 设计器拖到 Smartphone 设计器中,Visual Studio2005 会自动为 Smartphone 更新该窗体。Visual Studio2005 将调整控件大小,并且为不受 SmartPhone 支持的窗体控件提供适当的替代控件。
模拟器
• |
像 Windows Mobile 5.0 一样,Visual Studio2005 的目标是提高开发人员的工作效率。用于减少开发时间的关键工具是设备模拟器。设备模拟器使开发人员无需访问设备就能够开发和调试应用程序。Visual Studio2005 比以往提供了更多模拟器,而且这些模拟器带有更多的功能。图 8 显示 Windows Mobile 5.0 Pocket PC 模拟器。图 9 显示 Windows Mobile 5.0 Smartphone 模拟器。
|
图 8. Windows Mobile 5.0 Pocket PC 模拟器。
图 9. Windows Mobile 5.0 Smartphone 模拟器。
一种真正的 ARM 模拟器
Visual Studio 引入了一种真正的 ARM 模拟器。作为真正的 ARM 模拟器,它提供了更多精确且完整的应用程序测试功能,从而提供了以前从未达到过的设备-模拟器一致性级别。ARM 模拟器运行相同的计算机指令,具有相同的内存布局,甚至使用与 ARM 设备相同的驱动程序。所有设备开发人员都会发现这些功能很重要,但 ARM 模拟器对于本机开发人员具有额外的好处,因为它使用与设备相同的二进制文件。不再需要为模拟器编译一组二进制文件,而为设备编译另一组二进制文件。通过在模拟器和设备上使用相同的二进制文件,开发人员可以减少开发时间并提供更精确的测试。
ActiveSync 支持
• |
ActiveSync 支持的添加进一步提高了模拟器和设备之间的一致性。现在,所有 Visual Studio2005 模拟器都可以通过 ActiveSync 卡接和连接。一旦连接,模拟器在桌面计算机看来将和 ActiveSync 卡接设备完全一样。模拟器使用 ActiveSync 与 Exchange 同步电子邮件、日历、联系人和任务,与桌面计算机同步文件夹,并且支持所有 ActiveSync 编程功能 — 这些功能都使开发人员可以使用模拟器来创建和测试基于 ActiveSync 的程序。
|
共享文件夹支持
• |
为了简化桌面计算机和模拟器之间的文件共享,模拟器现在支持共享文件夹。共享文件夹使模拟器可以访问桌面计算机上的文件夹或网络中的任何位置。共享文件夹在模拟器上显示为 SD 卡。共享文件夹使得从模拟器中访问桌面计算机内容变得容易,并且对于在模拟器之间共享文件也很有用。
|
丰富的显示和更多的串行端口
• |
为了与 Windows Mobile 设备的日益增长的功能相匹配,模拟器还具有很多新功能。现在,模拟器可以在 Windows Mobile 支持的所有屏幕分辨率下使用,并且支持在纵向和横向显示之间动态切换。对于需要与多个已连接的串行设备通信的应用程序,模拟器现在支持四个串行端口。
|
Device Emulator Manager
• |
Visual Studio2005 和 Windows Mobile 5.0 SDK 一起为开发人员提供了 15 个不同的设备模拟器。新的 Device Emulator Manager(如图 10 所示)为开发人员提供了一个中央实用工具,以便管理这些模拟器以及可能添加的其他模拟器映像。Device Emulator Manager 节省了开发人员与模拟器进行交互的时间,因为它为查找、连接或关闭已安装的任何模拟器提供了一站式服务。Device Emulator Manager 还是 ActiveSync 所支持的模拟器的重要组成部分,因为它用于卡接和卡断设备模拟器,从而将模拟器与 ActiveSync 连接和断开。
|
图 10. Device Emulator Manager
数据设计器
随着设备应用程序变得越来越复杂,它们的数据管理需要的复杂性也在日益增加。为了简化移动设备数据库的设计和维护,Visual Studio2005 提供了新的数据设计器。这些设计器为设备数据库提供了完整的生命周期管理,包括架构设计、表约束管理和数据填充。开发人员现在可以从他们的桌面计算机中执行所有数据库管理。
图 11 说明了如何使用 Create Table 数据设计器来创建新的数据库表。通过使用该设计器,可以添加列,包括设置它们的类型、数值范围、精度和 null 支持。您可以创建特殊值列(如 identity 和 rowguid 列),并且可以定义构成该表的主键的列。还有类似的用于修改架构、创建索引和填充数据库的设计器。通过使用如图 12 所示的数据库图表工具,您可以定义数据库关系和约束。您还可以使用设计器创建强类型的 DataSet。
图 11. 使用“Create Table”数据设计器向设备数据库中添加表。
图 12. 使用数据库图表工具定义表关系。
数据设计器提供了创建和管理数据库所需的所有工具。除了已经讨论的功能以外,您还可以使用设计器完成一些基本的管理任务,如压缩数据库或加密数据库内容。数据设计器的另一个重要功能是它们的连接性支持。无论数据库是位于桌面计算机中、包含在模拟器中还是位于实际设备中,数据设计器都可以同样出色地工作。无论您是要在桌面计算机上创建新的数据库并将其作为部署的一部分部署到数百个设备,还是要管理单个设备中包含的数据库的内容,该连接性支持都使您可以同样高效地工作。
数据设计器除了对在桌面计算机文件系统中以及直接在设备中管理数据库提供支持以外,还通过基于服务器的数据管理工具提供了一致的体验。已经使用过 SQL Server Enterprise Manager 或 Visual Studio .NET Server 工具的开发人员将发现数据设计器非常熟悉。开发人员现在可以跨所有数据库利用单个技能集,而无需考虑物理位置。
多平台开发
Visual Studio 的针对多平台项目的支持使面向多个设备平台变得空前容易。本机和托管项目现在都可以面向 Pocket PC 和 Smartphone 设备。这些项目使开发人员可以在保持不同的用户界面的同时,对这两种设备使用相同的代码。这些项目还可以跨越多个 Windows Mobile 版本。对于本机开发人员,Visual Studio2005 支持面向多个 CPU 类型。
改进的调试器
应用程序调试是开发体验的核心。对于 Visual Studio2005,设备调试器已经完全重构,以便在提供无与伦比的性能的同时,向设备开发人员提供最完整的可用调试功能集。
改进的调试器性能
开发人员需要花费大量时间来使用调试器,这一点毫无意外。可以将开发人员的总体工作效率的大部分直接与调试器的性能联系起来。这也就是完全重构 Visual Studio2005 调试器以提供比以往任何时候都更好的性能的原因。
调试器的整个控制和通信模型已经进行了修改,以便更为高效地在设备和桌面计算机之间分配工作负荷,以减少基于 CPU 的性能瓶颈。新的调试器通过大大减少桌面计算机和设备之间的通信量,进一步提高了性能。因为大多数开发人员使用 USB 2.0 连接进行调试,所以调试器也已经针对 USB 2.0 连接进行了优化。
进程附加
通过 Visual Studio2005,设备开发人员现在可以附加到和调试正在运行的进程。借助于这一功能,设备开发人员不再受到只能调试该调试器启动的应用程序的限制。开发人员现在可以调试可能由用户、系统或另一个进程启动的进程。该功能还通过标识在该调试器未启动的应用程序中发生的问题,改进了开发人员工作效率。现在,开发人员在识别问题时,可以在应用程序的当前状态下调试这些应用程序,而不必用调试器重新启动相应的应用程序,然后试图再现识别出的问题。
多进程调试
设备开发人员现在可以同时调试多个应用程序。随着多进程调试支持的引入,设备开发人员可以同时调试互相合作或依赖的设备应用程序,而无论这些应用程序是在同一设备上运行,还是在不同设备上运行。当开发人员调试正在模拟器上运行的应用程序时,该功能可以同样出色地工作。
对组合式本机和托管解决方案的支持
本机和托管代码都提供了很多独特的好处。当生成复杂的设备应用程序时,开发人员将本机和托管代码组合起来以利用二者的长处,这是一种常见的做法。对于 Visual Studio,开发人员可以创建同时包含本机和托管项目的单个解决方案。该支持显著简化了管理和测试应用程序组件的任务,因为开发人员可以将应用程序的所有部分作为单个单元进行管理。
添加了 CAB Designer Project 类型
对于应用程序的成功而言,正确的部署与合理的设计和编程同样重要。为了减少开发人员用来创建设备 CAB 安装文件的时间和精力,Visual Studio2005 引入了 CAB Designer Project。如图 13 所示,CAB Designer Project 使开发人员可以用图形方式设计 CAB 文件。借助于这一图形模型,开发人员只需要将部署文件与特定的文件夹相关联,并且进行任何必要的注册表修改 — 让 Visual Studio2005 完成实际构建 CAB 文件的工作。对于需要代码签名的应用程序,应用 Authenticode Signature 就像设置单个项目属性一样简单。
图 13. Visual Studio2005 CAB Designer Project。
改进的智能感知
很久以来,智能感知一直是 Visual Studio 家族中最有效的工作效率工具之一,它显著减少了键入工作,为开发人员消除了查找方法参数列表的需要。在这些优势的基础之上,Visual Studio2005 通过使智能感知对上下文更加敏感,并且仅显示所面向的平台类型和成员,使其更进一步。
当特定平台不能支持所有可用控件时,该功能非常有用。例如,在面向 Smartphone 的项目中,只有那些对 Smartphone 有效的控件出现在智能感知中;然而,在面向 Pocket PC 的项目中使用相同的库时,智能感知会自动包括其他受支持的控件。