什么是最有价值的.Net Compact Framework提示,技巧和Gotcha-Avoiders?

我们在.Net Compact Framework和Windows Mobile中广泛工作。我看到很多关于ASP.Net应用程序或其他基于.NET的桌面应用程序的开发细节的问题,但没有CF特定。

任何人都是移动开发人员,可以共享一些事情开始做,停止做,并避免做在开发中的Compact Framework?

当然:

>尽可能使用物理设备(不是模拟器)
>使用多个设备(不同的供应商,不同的型号)
>围绕睡眠/唤醒行为集中测试
>当使用MSTEST单元测试时,不要使用私有访问器
>避免ActiveSync像瘟疫 – 使用CoreCon直接调试
>熟悉RPM并及早开始使用它
>尽可能重复使用对象
>避免在Form的ctor-off加载它用于延迟加载或在后台线程中做大量工作
>在可能的时候根据需要加载表单(不是所有的一次)
>缓存常用的表单,根据需要创建不常用的表单
>保持图像分辨率低
>如果一个类暴露了Dispose使用它。总是。
>没有应用程序太小,无法从MVC / MVP模式中受益
>不要使用Microsoft CAB / SCSF端口的CF(移植它的人显然从来没有实际使用资源有限的设备)
>如果您将进行任何远程数据/服务活动,请熟悉“偶尔连接”的概念
> Docking和Anchoring是你的朋友和你的敌人 – 测试运行时屏幕旋转和多个分辨率(即使你认为你不会瞄准他们,因为你可能是错误的思维)
>看看,但不要大量投资设备部署包项目类型。它有很大的局限性,可能会咬你。批处理文件工作异常顺利,或者调用CabWiz的自定义MSBUILD任务
>刷新你的C和P /调用技能。你会需要他们。几乎不可能写一个有用的CF应用程序没有P /调用的东西。
>代码到目标的最低公分母。
>部分类是你的朋友,特别是在目标类型(PPC,电话,非移动CE)之间划分逻辑。
>避免从永久存储器运行应用程序,特别是对于CE和pre-WInMo 5.复制到RAM并从那里运行,以防止需求分页杀死你,特别是在睡眠/唤醒周期后。
>应用程序不应该关心睡眠/唤醒转换,但这是纯理论。睡眠唤醒**会*改变你的应用程序的行为,所以再次测试,测试,测试。
>我提到测试吗?特别是在每个设备上,你可以得到你的手?为您的测试实验室购买eBay的便宜硬件。拥有更多设备比拥有最新设备更重要,除非您打算使用较新设备的特定功能。
>如果您计划以编程方式使用蓝牙,请询问神圣的干预。熟悉Widcomm和Microsoft堆栈,并了解它们不一样。
>观看Compact Framework中内存管理的MSDN网络广播。再次观看你第一次错过的东西。
>注意睡眠/唤醒使内部句柄无效,并导致访问冲突。这是更深奥,但肯定会发生。例如,如果您正在从存储卡运行应用程序,则整个应用程序不会加载到RAM中。使用中的片段被请求执行。这一切都很好。现在,如果关闭设备电源,驱动程序都关闭。当您恢复供电时,许多设备只需重新安装存储设备。当你的应用程序需要在更多的程序需求页面,它不再是它的地方,它死了。安装的商店上的数据库也会发生类似的行为。如果您有一个数据库的打开句柄,在睡眠/唤醒周期后,连接句柄可能不再有效。
>安装evaluation version of Platform Builder.许多东西的源代码是在那里(如网络UI,许多驱动程序等),当你的P / Invoke代码没有做你期望你会至少有一个地方去寻找“为什么”。

添加5/25/10

> Don’t expect the power management APIs under WinMo to work consistenly or properly(甚至在所有设备上)。事实上,即使使用相同的硬件,它可能会从操作系统构建更改为操作系统构建。

添加7/27/10

>如果你是一个审美的UI,准备做很多定制或手工绘图。
>如果你正在做自定义或手工绘图,你需要使用透明度,准备负载frustrations和不得不写wacky code或直接调用native codework around shortcomings在CF。

添加11/22/11

>不要假设只是因为在BCL中存在一个命名空间或类,它实际上是以任何有用的方式实现的。 Certificates certainly aren’t

我只是添加到列表中,因为他们发生我…

http://stackoverflow.com/questions/363158/what-are-the-most-valuable-net-compact-framework-tips-tricks-and-gotcha-avoid

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:什么是最有价值的.Net Compact Framework提示,技巧和Gotcha-Avoiders?