Microsoft .NET Compact Framework 开发常见问题解答
http://www.microsoft.com/china/msdn/library/NetFramework/netcompactframework/understandingnetcfFAQ.mspx
1. 开发
1.1. 什么是 Microsoft .NET Compact Framework?
Microsoft .NET Compact Framework 是针对 Microsoft .NET 计划的智能设备开发框架,是实现 Microsoft 随时随地在任何设备上为客户提供良好体验的目标的关键所在。.NET Compact Framework 将托管代码和 Web 服务带给了智能设备,它允许安全的、可下载的应用程序在诸如个人数字助理 (PDA)、移动电话和机顶盒等设备上运行。
http://msdn.microsoft.com/mobility/prodtechinfo/devtools/netcf/overview/default.aspx
1.2.开发 .NET Compact Framework 应用程序需要什么工具?
Visual Studio .NET 为基于 Windows Mobile 的 Pocket PC 2000、基于 Windows Mobile 的 Pocket PC 2002 和 Windows CE .NET 4.1 设备开发基于 .NET Compact Framework 的应用程序需要 2003 Professional 或更高版本。Visual Studio .NET 2003 附带了 .NET Compact Framework。
http://msdn.microsoft.com/mobility/prodtechinfo/devtools/vstudio/default.aspx
在最新的 Windows Mobile 平台上进行开发还有其他的 SDK 可用:
Windows Mobile 2003 Pocket PC SDK:
http://www.microsoft.com/downloads/details.aspx?familyid=9996b314-0364-4623-9ede-0b5fbb133652&displaylang=en
Windows Mobile 2003 Smartphone SDK:
http://www.microsoft.com/downloads/details.aspx?familyid=a6c4f799-ec5c-427c-807c-4c0f96765a81&displaylang=en
本文将提供用 .NET Compact Framework 1.0 和 Visual Studio .NET 2003 开发健壮的智能客户端设备应用程序的说明。
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/netcfgetstarted.asp
1.3. 哪里可以下载最新的工具和软件?
Visual Studio .NET 2003 试用版可以通过以下地址获得:
http://msdn.microsoft.com/vstudio/productinfo/trial/default.aspx
最新的平台更新和 .NET Compact Framework service pack 可以通过以下地址获得:
http://msdn.microsoft.com/mobility/downloads/default.aspx
1.4. .NET Compact Framework 支持什么设备?
.NET Compact Framework 支持基于 Windows Mobile 2000 的 Pocket PC、基于 Windows Mobile 2002 的 Pocket PC、基于 Windows Mobile 2003 的 Pocket PC、基于 Windows Mobile 的 Smartphone 和运行 Windows CE .NET 4.1 及更高版本的嵌入式系统。
1.5. 以后 .NET Compact Framework 将会支持什么设备?
不久以后,.NET Compact Framework 将会作为一个操作系统 (OS) 组件,在所有的 Microsoft 智能设备中提供,包括将来基于 Windows Mobile 的 Pocket PC 设备、基于 Windows Mobile 的 Pocket PC Phone Edition、基于 Windows Mobile 的 Smartphone、Windows CE for Automotive 和 MSTV。每种特定设备的具体时间选择将由各个产品发布周期确定。
Windows CE .NET 4.1 也支持 .NET Compact Framework,将其作为一个集成的 OS 组件,因此允许 OEM 使用 Platform Builder 工具将 .NET Compact Framework 嵌入到所有装备 Windows CE 的新设备中。
1.6. 调试器在与模拟器建立连接时为什么会失败(错误启动应用程序)?
以下链接是针对调试的安装和疑难解答指南:
http://download.microsoft.com/download/c/d/b/cdbff573-73fb-4f9f-a464-c5adc890e1ae/Readme.htm
1.7. .NET Framework 和 .NET Compact Framework 之间有什么区别?
请参见下面 .NET Framework 和 .NET Compact Framework 之间的比较:
http://msdn.microsoft.com/library/en-us/dv_evtuv/html/etconComparisonsWithNETFramework.asp
.NET Compact Framework 类库比较工具中的信息:
http://msdn.microsoft.com/library/en-us/dv_spchk/html/NET_Compact_Framework.htm
1.8.最新的 .NET Compact Framework Service Pack 有什么新内容?
.NET Compact Framework SP2 提供了针对大量缺陷的补丁。补丁列表可由以下链接获得:
http://www.microsoft.com/downloads/details.aspx?familyid=10600643-09b3-46d8-ba28-bc494bc20d26&displaylang=en
.NET Compact Framework SP1 提供了针对大量缺陷的补丁。补丁列表可由以下链接获得:
http://www.microsoft.com/downloads/details.aspx?familyid=1f62a2a3-7282-4ba9-b26b-2267e972501d&displaylang=en
注: Service Pack 2 (SP2) 替代了 Service Pack 1 (SP1),它包括所有 service pack 的最新更新。
1.9. 在 .NET Compact Framework 开发中,基于 Windows Mobile 的 Pocket PC 和 Windows CE .NET 之间有什么区别?
这篇文章概述了为基于 Windows Mobile 的 Pocket PC 和 Microsoft Windows CE .NET 平台开发基于 Microsoft .NET Compact Framework 的应用程序之间的区别。
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/netcfPPCtoCE.asp
1.10. 在哪里可以找到有关如何创建基于 .NET Compact Framework 的应用程序的更多信息?
下列资源有助于您了解如何创建基于 .NET Compact Framework 的应用程序:
? .NET Compact Framework 快速入门
http://samples.gotdotnet.com/quickstart/compactframework/
? MSDN 移动与嵌入式技术开发人员中心中的 .NET Compact Framework 白皮书:
http://msdn.microsoft.com/mobility/understanding/articles/default.aspx
1.11. .NET Compact Framework 的文档在什么位置?
http://msdn.microsoft.com/library/en-us/dv_evtuv/html/etconNETCompactFramework.asp
1.12. 如何指定在每次调试器运行时不必复制依赖文件?
在 Visual Studio .NET 2003 中,右键单击该项目并选择 Properties。将 Build Action 更改为 None。这样就不会再复制此文件了。如果此文件已修改或者需要再复制,则将 Build Action 更改为 Content。
1.13. 如何设置模拟器属性?
在 Visual Studio .NET 2003 中,从菜单中选择 Tools->Options。然后打开 Device Tools 文件夹并选择 Devices。现在应该能看到一个显示设备选择列表的对话框。选择您想要修改的设备,然后按 Configure 按钮。
现在您应该能够看到一个含有几个选项卡的对话框,它允许您访问和修改设置,例如内存和屏幕大小。
1.14. 如何调试 Microsoft .NET Compact Framework 应用程序?
Microsoft .NET Compact Framework 完全集成在 Visual Studio .NET 2003 中,它支持的调试功能与对其他 Visual Studio .NET 应用程序类型可用的调试功能相同。但是,在独立设备或在仿真器中调试运行的应用程序时,用户需要注意一些特殊事项。请参考下列建议以获得最详尽的 .NET Compact Framework 调试体验:
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/CompactFXDebug.asp
1.15. 如何开始使用 Visual Basic .NET 为设备开发应用程序?
了解如何使用用于 Visual Studio .NET 的智能设备扩展 (SDE) 来为支持 .NET Compact Framework 的智能设备构建 Windows 应用程序。这篇文章包括对整个开发、调试和部署过程的检查,并探讨了 .NET Framework 和 .NET Compact Framework 之间的区别。
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/sdeforvb.asp
12. 基于 Windows Mobile 的 Smartphone
12.1. 从哪里可以获得最新的基于 Windows Mobile 的 Smartphone SDK?
从这里可以下载 Windows Mobile 2003 Smartphone SDK:
http://www.microsoft.com/downloads/details.aspx?familyid=a6c4f799-ec5c-427c-807c-4c0f96765a81&displaylang=en
12.2. 基于 Windows Mobile 的 Smartphone 菜单的规则是什么?
基于 Windows Mobile 的 Smartphone 菜单有若干规则,例如:
? 第一个菜单项(对应于左边的软按钮)不能有任何子项
? 第二个菜单项(对应于右边的软按钮)可以有子项
? 其他任何顶级菜单项都不使用
如果第一个菜单项有不止一个项,则会产生 NotSupportedException。
要获得完整的需求列表,请参考
基于 Windows Mobile 的 Smartphone 帮助文档。
前面的链接是从 Windows Mobile 2003 Smartphone SDK 引用的:
http://www.microsoft.com/downloads/details.aspx?familyid=a6c4f799-ec5c-427c-807c-4c0f96765a81&displaylang=en
12.3. 当创建基于 Windows Mobile 的 Smartphone 项目时,为什么在工具箱会有禁用的控件?
基于 Windows Mobile 的 Smartphone 平台只支持一小组控件。不支持的控件则禁用。
有关更多信息,请参考下面的
基于 Windows Mobile 的 Smartphone 帮助文档。
前面的链接是从 Windows Mobile 2003 Smartphone SDK 引用的:
http://www.microsoft.com/downloads/details.aspx?familyid=a6c4f799-ec5c-427c-807c-4c0f96765a81&displaylang=en
12.4. 基于 Windows Mobile 的 Smartphone 是否支持 .NET Compact Framework 的 RAM 安装?
不支持。.NET Compact Framework 是通过操作系统更新提供的,这取决于运营商 /OEM 的决定。因此,.NET Compact Framework 通常会作为更大的用于 Smartphone 的 Windows Mobile 操作系统更新的一部分提供。
12.5. 如何设置全屏多行编辑控件窗口的标题?
当前版本的 .NET Compact Framework 中不支持这项功能。
12.6. 如何通过现有的基于 Windows Mobile 的 Pocket PC CAB 文件生成基于 Windows Mobile 的 Smartphone CABWizSP XML 文档?
从 Windows Mobile Developer Power Toys 下载 Convert PPC DAT to SP XML:
http://www.microsoft.com/downloads/details.aspx?FamilyId=74473FD6-1DCC-47AA-AB28-6A2B006EDFE9&displaylang=en
12.7. 如何通过 ActiveSync 向基于 Windows Mobile 的 Smartphone 2003 Emulator 发送字符和字符串?
从 Windows Mobile Developer Power Toys 下载 TypeIt:
http://www.microsoft.com/downloads/details.aspx?FamilyId=74473FD6-1DCC-47AA-AB28-6A2B006EDFE9&displaylang=en
12.8. 如何以编程方式设置基于 Windows Mobile 的 Smartphone 输入模式?
可以根据以下代码,使用 GetFocus 和 SendMessage API 来设置输入模式:
'VB
Imports System.Runtime.InteropServices
Public Const EM_SETINPUTMODE As Integer = &HDE
Public Const EIM_SPELL As Integer = 0
Public Const EIM_AMBIG As Integer = 1
Public Const EIM_NUMBERS As Integer = 2
_
Public Shared Function GetFocus() As IntPtr
End Function
_
Public Shared Function SendMessage(ByVal hWnd As IntPtr, _
ByVal Message As Integer, ByVal wParam As Integer, _
ByVal lParam As Integer) As Integer
End Function
'Sample use setting TextBox to number input
Private Sub txtAmount_GotFocus(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles txtAmount.GotFocus
Dim hWnd As IntPtr
hWnd = Me.GetFocus()
SendMessage(hWnd, EM_SETINPUTMODE, 0, EIM_NUMBERS)
txtAmount.SelectionStart = txtAmount.Text.Length
End Sub
//C#
using System.Runtime.InteropServices;
public const uint EM_SETINPUTMODE = 0xDE;
public const uint EIM_SPELL = 0;
public const uint EIM_AMBIG = 1;
public const uint EIM_NUMBERS = 2;
[DllImport("coredll.dll")]
public static extern IntPtr GetFocus();
[DllImport("coredll.dll")]
public static extern int SendMessage(IntPtr hWnd,
uint Message, uint wParam, uint lParam);
// Sample use setting TextBox to number input
private void Form1_Load(object sender, System.EventArgs e)
{
txtAmount.GotFocus +=
new System.EventHandler(txtAmount_GotFocus);
}
private void txtAmount_GotFocus(object sender, System.EventArgs e)
{
IntPtr hWnd;
hWnd = GetFocus();
SendMessage(hWnd, EM_SETINPUTMODE, 0, EIM_NUMBERS);
txtAmount.SelectionStart = txtAmount.Text.Length;
}