我在一个经验丰富且多元化的开发团队工作,我们正准备接近第一个针对Windows Mobile 6的移动开发(平台更改不是一个选项)。
我们拥有用于Windows桌面和服务器开发的Visual C ++和.Net技术的技能和经验。
移动开发将包括一些图像处理和对蓝牙设备的读/写访问。不幸的是,我无法提供更多细节。
我们正在尝试使用托管代码或本机代码编写移动客户端。我们将分别使用C#或C ++。
我的问题是:
这些语言之间的预期性能差异有多大?我听说本机代码在移动设备上明显更快,但我很乐意听取有经验的人的意见。
在使用Windows Mobile服务访问蓝牙设备方面,这两种语言都有什么主要优势吗?
托管代码或本机代码之间是否会对电池寿命产生影响?
还有其他专业应该知道吗?
感谢您的反馈意见。
答案 0 :(得分:4)
另一个考虑因素是内存使用和模块大小问题。我们在移动开发中遇到了一些重大问题,只是试图让操作系统将所有DLL加载到内存中。与常规Windows开发不同,对于必须加载所有模块的32Mb存在非常严格的限制。我们必须执行许多非常肮脏的技巧才能成功加载所有东西。我们发现,即使用户打开手机或使用蓝牙设备,这些设备的驱动程序也会导致我们的应用程序失败,因为它们会占用我们模块的空间。
考虑到所有这些,我们无法在我们的应用程序中添加对.Net的支持,因为这会在我们的应用程序中引入额外的模块权重。如果您的应用程序有很多依赖项,您可能需要考虑这一点。
答案 1 :(得分:1)
几天前就问过并回答了一个非常相似的question。你可以在那里找到有用的信息。
对您的问题的简短回答:
答案 2 :(得分:1)
除了在kgiannakakis提到的另一个问题中的伟大和长期答案之外,我还要添加一些想法和观点。
在我的工作场所,我们一直在使用C ++和ATL / WTL编写Windows CE 5.0应用程序。与MFC和.Net相比,这最终可以很好地工作并且非常轻便。
要考虑的另一点(正如这里的高级开发人员所解释的)是.Net紧凑框架需要在每次切换应用程序时将字节代码重新编译为机器代码。这可能需要很长的时间和处理器能力,所以要小心。