Windows Mobile 对新开发人员来说是地狱吗?(如果我没记错的话) [英] Windows Mobile is hell for new developers? (If I'm not wrong)

查看:22
本文介绍了Windows Mobile 对新开发人员来说是地狱吗?(如果我没记错的话)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的,刚接触 Windows Mobile 开发.但我见过和经历过,对于没有培训师或经验丰富的 Windows 移动开发人员的新开发人员来说,这就像一个地狱般的震动.在复杂的主题中,除非运气好,否则您将无处可寻.

I am new here and new to windows mobile development. But I have seen and experienced, for new developers having no trainers or experienced people around windows mobile development is like a hell shaking one. In complex topics you are going to find help from nowhere except you are lucky.

所以我的问题是我应该如何在没有任何培训师的情况下获得 Windows Mobile 的专业知识.只知道C#,有一个半月windows mobile开发的粗略经验

So my question is how should I gain expertise in windows mobile without having any trainer. The thing that i only know is C# and have a rough experience of one and a half months in windows mobile development

推荐答案

是的.... 老实说,这是相当大的一步.它也是邪恶的,因为乍一看它看起来非常简单,但它转过身来咬你.

Yea.... it's quite a step to be honest. It's evil as well because at first glance it looks to be so very simple but then it turns around and bites you.

我从 2003 年开始这段旅程时的经验说起.哦,我也没有教练,所以我只是从痛苦的经历中学习.

I speak from experience as I made this journey starting in 2003. Oh, I had no trainer either so I just learnt via bitter experience.

了解自己的局限性

我记得有史以来第一个 CF 应用程序.我真是个白痴……那时候我也不太擅长发展.我犯的第一个错误是高估了 CF 1.0.我无法想象 CF 没有读写数据网格,所以我指定了它......然后发现哦,是的,没有.所以我不得不自己写一个(记住我此时也是垃圾).我把一个黑进了现有的数据网格(尽管我应该从头开始).我记得我必须删除一行然后选择现在当前选定的行"的删除"功能是地狱般的,因为它会根据集合中的项目数量和滚动条的位置而上升或下降.

I remember the first ever CF application. I was such an idiot..... I wasn't much good at developing back then either. First mistake I made was overestimating CF 1.0. I couldn't possibly imagine that the CF didn't have a read-write datagrid so I specced it...... then found out that oh yes, there wasn't one. So I had to write one myself (and remember I was rubbish at this time too). I hacked one into the existing datagrid (although tbh I should have just started from scratch). I remember that the "delete" function where I had to remove a row and then select the "now currently selected row" was hellish because it would go up or down depending on how many items were in the collection and where the scrollbar was.

当我告诉桌面开发伙伴我在做什么时,很多时候他们会把我归类为疯子.

There are many times that my desktop development buddies will categorise me as mad when I tell them what i'm working on.

你在做手动 Xml 解析?你疯了吗?"
Ewwww 代码生成器?"
你……重新使用你的窗体?"

"You're doing manual Xml Parsing? Are you crazy?"
"Ewwww code gen?"
"You.... re-use your windows forms?"

是的,在 CF 上工作会让你在外人眼中看起来很疯狂.

Yes, working on CF will make you look crazy to outsiders.

性能

这可以走极端,但每一点都有帮助.如果您正在构建一个大型灵活的应用程序,那么请仔细考虑性能.考虑用代码生成替换反射.考虑使用 XmlReader 而不是 XmlDocument.当然,这个建议在大多数情况下对于台式机来说可能很疯狂,但对于 CF 来说却是明智的.

This can be taken to extremes but every little does help. If your building a big flexible application then think very carefully about perf. Consider replacing Reflection with codegen. Consider using an XmlReader instead of an XmlDocument. Sure this advice might be crazy in most cases for desktop but for CF it is sensible.

了解您的 PInvokes

在桌面领域,您可以生活在纯粹的管理中.在 CF 上不可能发生这种情况.一些最简单的事情(播放声音、设置时间、更改音量、网络等)仍然只存在于 Mobile 的非托管世界中.OpenNETCF 在公开其中一些方面做得非常出色,但您总是会偶然发现一两个需要自己写.

In desktop land you can live in pure managed. No chance of that happening on CF. Some of the simplest things (playing a sound, setting the time, changing the volume, networking, etc etc) still only exist in the unmanaged world in Mobile. OpenNETCF have done an awesome job in exposing some of these but you will always stumble into one or two where you will need to write your own.

有真有假但也有文件未找到

PowerManagement,我多么爱你.在通常的 C# 应用程序代码中(如带有 IF 的 fork),可能会抛出异常,并且可能会有许多线程在代码路径上运行.这已经很复杂了.再加上力量可能随时消失的想法.没错,您用来调用 Dispose 的 using 语句可能永远不会调用 dispose,因为设备已关闭,然后它又没电了.

PowerManagement, how I love thee. In a usual C# app code goes the way of the logic (like a fork with an IF), perhaps an exception will be thrown and perhaps there will be many threads treading the path of the code. This is already complex. Add into the mix the idea that the power might vanish at any point. That's right, the using statement you were relying on to call Dispose might never call dispose because the device was turned off and then it ran out of power.

设备特定的乐趣

桌面/移动世界的另一个重大差异是硬件和制造商.在 PC 上,您通常可以假设硬件没问题,固件更新应该可以完成这项工作.在 CF 中,固件更新很可能会杀死您的代码.有些硬件可能有点,如果你以某种方式敲打它的头部,它会有点工作.基本上,您的设备集成(最坏的情况)可能是一个大的时间黑洞.请记住将此纳入您的估算中.

Another big difference in desktop/mobile world is hardware and manufacturers. On the PC you can generally assume that the hardware will be okay and firmware updates should do the job. In CF a firmware update may well kill your code. Some hardware might sorta, kinda work if you bash it round the head in a certain way. Basically your device integration can (worst case) be a big black hole of time. Remember to work this into your estimates.

这篇关于Windows Mobile 对新开发人员来说是地狱吗?(如果我没记错的话)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆