我是新手,Windows移动开发新手。但是我已经看到并且经历过,对于没有培训师或有经验的人来说,Windows移动开发的新开发人员就像一个摇摇欲坠的人。在复杂的主题中,除了幸运之外,你将无处寻求帮助。
所以我的问题是如何在没有任何培训师的情况下获得Windows Mobile方面的专业知识。我只知道的是C#,并且在Windows移动开发中有一个半月的粗略体验
答案 0 :(得分:9)
是的......说实话,这是迈出的一步。它也是邪恶的,因为乍一看它看起来非常简单,但它转过身来咬你。
我从2003年开始这段旅程的经历谈起。哦,我没有教练,所以我只是通过痛苦的经历学习。
了解您的限制
我记得第一个CF应用程序。我是个白痴......当时我也不擅长发展。我犯的第一个错误是高估了CF 1.0。我无法想象CF没有读写数据网格,所以我指出它......然后发现哦,是的,没有一个。所以我必须自己写一个(并记住我此时也是垃圾)。我把一个黑客入了现有的数据网格(尽管我应该从头开始)。我记得“删除”功能,我必须删除一行,然后选择“现在当前选定的行”是地狱般的,因为它会上升或下降,具体取决于集合中的项目数量和滚动条的位置。 / p>
当我告诉他们我在做什么时,有很多次我的桌面开发伙伴会把我归为疯子。
“你正在做手动Xml解析吗?你疯了吗?”
“Ewwww代码生成?”
“你......重新使用你的窗体?”
是的,在CF上工作会让你对外人看起来很疯狂。
<强>性能强>
这可以走极端,但每一点都有帮助。如果您构建一个灵活的应用程序,那么请仔细考虑perf。考虑用codegen替换Reflection。考虑使用XmlReader而不是XmlDocument。在大多数情况下,对于桌面而言,这个建议肯定是疯狂的,但对于CF来说这是明智的。
了解您的PInvokes
在桌面土地上,你可以生活在纯粹的托管中。没有机会在CF上发生这种情况。一些最简单的事情(播放声音,设置时间,改变音量,网络等)仍然只存在于Mobile的非托管世界中。 OpenNETCF在揭露其中一些方面做了很棒的工作,但你总是偶然发现自己需要写一两个。
确实存在错误,但也存在FILE-NOT-FOUND
PowerManagement,我多么爱你。在通常的C#应用程序中,代码采用了逻辑的方式(就像带有IF的fork),也许会抛出异常,并且可能会有许多线程踩踏代码的路径。这已经很复杂了。加入混合的想法,权力可能在任何时候消失。这是正确的,您依赖于调用Dispose的using语句可能永远不会调用dispose,因为设备已关闭,然后它耗尽电量。
设备特定的乐趣
桌面/移动世界的另一个重大差异是硬件和制造商。在PC上,您通常可以假设硬件没问题,固件更新应该可以完成。在CF中,固件更新可能会破坏您的代码。有些硬件可能会分类,如果你以某种方式将它猛击头部,那就有点工作了。基本上你的设备集成(最坏的情况)可能是一个很大的黑洞时间。请记住将其用于估算中。
答案 1 :(得分:7)
学习为Compact Framework编写实际可维护,可销售和可用的应用程序很困难。 CF的方式是按比例缩小的,所以桌面开发人员不会有他们习惯的东西。我一直在开发CF应用程序,因为在CF存在之前我仍然发现很多事情很困难(只是尝试使用透明度将控件绘制到带有背景图像的表单上的容器中,然后在不查看Project Resistance中的代码的情况下执行此操作)
在我看来,确实有两件事是必不可少的。
不要指望奇迹。我已经为Windows CE编写了十多年的代码,而且我不了解平台的数量远远超过了我所知道的事情。
答案 2 :(得分:4)
如果我理解你的问题......
如果你有c#经验,你根本不需要培训师。
如果你知道.net。
,在Windows Mobile上构建非常简单易用如果你有Visual Studio(我认为除了快递之外的任何版本),只需要启动一个新项目并选择移动设备。
我真的很喜欢它!我一直为我的手机构建小型应用程序...当我去购物的时候有一些小计算器,触发触发器的程序以及从网络服务获得响应等等......基本上是为了让我的手机做我想做的事情(没有人会对此感兴趣。
我采用简单地按照我想要的方式编写应用程序的方法,然后如果削减.net紧凑框架不支持某个功能,我尝试搜索另一种方法 - 但是,我找到了有点不起作用。
答案 3 :(得分:3)
在CF中发展可能具有挑战性。在推进Compact Framework之前了解C#非常重要 - 您拥有它。我建议你从较小的应用程序开始。一旦您了解了Visual Studio并使用模拟器,我建议您使用安装项目。一旦您了解了CF开发的流程,部署可能就是您的下一步。
我发现花费时间的一个方面是Designer支持。如果您正在为其他开发人员编写控件 - 设计时间支持至关重要。查看http://www.mooseworkssoftware.com/VS2005%20Control.htm上的文章以获取更多信息(我知道它适用于VS2005,但它确实有助于我们的开发)。
随着您前进,在不同区域创建小项目,并了解每个项目的陷阱。一个例子是GUI并处理不同设备支持的不同屏幕分辨率。接下来,可能是DB支持。在对几个区域感到满意之后,将它们组合在一个项目中并从那里构建。
给它时间 - 有时候会很痛苦,但在编写CF应用程序以及市场需要的时候,可能性是无穷无尽的。
答案 4 :(得分:2)
要回答您的问题,Windows Mobile就像是新开发者的天堂。您使用与桌面世界相同的工具和语言,并且设备调试和模拟器等基本功能就在您身边。您可以在没有经过培训的情况下构建简单的应用程序,只需遵循许多初学者教程中的一个。
在那之后,当然有许多复杂和困难的问题需要克服,但在我看来,你能够快速入手的事实非常重要。
此外,您还需要将Windows Mobile与其他移动平台进行比较。与Symbian,Brew和J2ME等平台相比,Windows Mobile对新开发人员更有利。我没有使用iPhone的经验,也无法评论它,但与其他所有内容相比,Windows Mobile更容易。