对于.net开发人员来说,进入移动开发的学习曲线是什么?

时间:2008-12-18 17:56:12

标签: .net windows-mobile compact-framework

对于.net开发人员来说,进入移动开发的学习曲线是什么?

有多少不同的操作系统运行.net?

Windows mobile是否与windows ce相同?

6 个答案:

答案 0 :(得分:20)

学习曲线

我讨厌说“这取决于”,但确实如此,而且还有几个因素。您的“.NET开发”体验是什么?请记住,CF支持C#和VB.NET,所以如果你是COBOL.NET的家伙,它会比你是C#家伙更陡峭。如果您在桌面上主要使用ASP.NET,那么它将比使用WinForms时更陡峭。如果您对偶尔连接的场景一无所知,也不了解嵌入式系统,那么它将比您更陡峭。

从桌面移动到移动是相当简单的,但Compact Framework包含完整框架的子集,但它不是纯子集。它还包含几个在桌面上根本不存在的东西。所以有一些事情需要学习。

然而,比这更大的是,你经常需要一种不同的心态。你没有交换文件。您的内存和存储空间有限。你有睡眠/醒来。您具有较小的分辨率和动态分辨率以及方面更改。桌面开发人员很少考虑这些事情。

操作系统

这更直截了当。只有Windows CE平台(请参阅下一个答案以获得更多说明)才支持Compact Framework。还有微框架,但我称之为“嵌入式”而不是“移动”,所以它可能不是你正在考虑的东西(如果我错了,请纠正我)。

CE与WinMo

对于很多初学者来说,这是一个主要的混乱点。与XP(为了讨论而排除XPe)或Vista不同,Windows CE是模块化操作系统。这意味着设备OEM可以选择包含或排除操作系统中的任何功能。这意味着没有一个“Windows CE”。想想Windows Mobile和Windows CE客户。他们采用CE并选择可用功能的特定子集。然后他们添加他们自己的部分(如WinMo shell,几个API等)。这意味着vanilla CE设备可以(并且经常会)拥有Windows Mobile设备所没有的东西。这也意味着所有Windows Mobile设备都包含没有vanilla CE设备的部分。为了使它更有趣,WinMo OEM甚至可以添加自己的东西,因此一个WinMo设备可能有另一个没有的东西。

这甚至没有涉及到WinMo平台本身(专业版,标准版,智能手机版,电话版等)之间的差异。

其他相关SO问题

你可能想看看这些:

答案 1 :(得分:2)

一个大问题是如何设计UI。 WinCE似乎仍然假设桌面3手用户操作(左,右和鼠标),以及事件驱动的架构,它允许(要求)用户以阳性方式启动所有内容。这在手机上通常不能很好地工作。忘记下拉菜单。多面板窗口不是很有用。等等许多基本的设计假设和模式都需要不被学习。

答案 2 :(得分:1)

无法为已经存在的内容添加很多内容,但如果您只使用完整框架,我会说您会在很多地方感到惊讶。

  • 真实,虚假和断电,在编写触及系统资源的代码时请记住这一点。
  • 性能 - 天啊,事情很慢,可能比你在某些地方预期的要慢得多。
  • 缺少点点滴滴 - 你必须在几次重新写入轮子,因为有些东西由于空间没有移植。我提到过Decimal.Round()只支持银行家的舍入吗?
  • 钥匙......钥匙有限。有时您可能希望键执行不同的操作,然后您将记住WinForm小部件拦截键并执行预编程的操作。哦,不!!
  • P /调用。您过去常常获得的一些东西需要P / Invokes。
  • The GC is different。如果你想创建一个大型应用程序,可能值得阅读。
  • 并非所有设备都与PC相同。

答案 3 :(得分:0)

我认为曲线可能取决于您来自何种类型的.Net世界以及您希望进入何种类型的移动开发。例如,如果您是一名Web开发人员并希望使用紧凑.Net框架内的Mobile控件构建一个站点,这可能并不像Web开发人员尝试编写独立应用程序那样困难,事情应该流动。还有一个问题是你想把移动开发称为什么,因为有iPhone,黑莓,Treo智能手机以及其他一些可能在某种程度上具有不同功能的环境。

你的意思是:.Net有不同的版本号以及原始和紧凑的差异。

我认为还有另一个答案很好地解决了你的上一个问题。

答案 4 :(得分:0)

我认为.NET开发的背景肯定有帮助。这两个平台之间存在一些差异,最大的问题是Compact Framework仅提供.NET Framework的子集。当您熟悉的某些功能未在CF上实现时,从桌面环境转换时,这可能会很困难。

开发Windows Mobile设备时需要注意的其他一些事项:

  • 迎合众多屏幕方向,尺寸和分辨率
  • 处理器速度限制
  • 内存限制/管理
  • UI设计(您只是没有桌面上的屏幕区域)
  • 数据输入(触控笔/软输入面板)

答案 5 :(得分:0)

除了ctacka关于各种OC版本引起的混淆的评论之外,我还要提到我最初的困难,那就是框架,SDK,特别是SQL Server引擎和客户端的CAB选项数量。这些选项似乎一直在变化,我仍然试图将它全部排除。我对移动开发学习曲线最陡峭的部分是让开发和运行时环境以及安装过程正常运行。