For a .net developer, what's the learning curve to get into mobile development?

前端 未结 6 1065
清酒与你
清酒与你 2021-02-02 00:32

For a .net developer, what\'s the learning curve to get into mobile development?

How many different operating systems are there that run .net?

Is windows mobile

相关标签:
6条回答
  • 2021-02-02 00:35

    A big issue is how to design the UI. WinCE seems to still assume the desktop 3-handed user operation (left, right, and mouse), and the event-driven architecture that enables (requires) the user to initiate everything amodally. This often doesn't work very well on a cell phone. Forget pull-down menus. Multipanel windows are not very useful. etc. etc. So many of your fundamental design assumptions and patterns need to be unlearned.

    0 讨论(0)
  • 2021-02-02 00:38

    I think the curve may depend a bit on what kind of .Net world you come from as well as what kind of mobile development you want to get into. For example, if you are a web developer and want to build a site using the Mobile controls within the compact .Net framework this may not be as difficult as say a web developer trying to write a stand alone application where there is a change in how things should flow. There is also the question of what do you want to call mobile development as there is the iPhone, Blackberries, Treo smartphones and a few other environments that may carry different capabilities to some extent.

    Which .Net do you mean: There are different version numbers as well as the original and compact differences.

    I think there was another answer addressing your last question well.

    0 讨论(0)
  • 2021-02-02 00:44

    Learning Curve

    I hate to say "it depends" but it really does, and on several factors. What is your ".NET development" experience? Keep in mind that the CF supports C# and VB.NET, so if you're a COBOL.NET guy, it's going to be steeper than if you're a C# guy. If you do primarily ASP.NET on the desktop, it's going to be steeper than if you do WinForms. If you know nothing about occasionally connected scenarios and nothing about embedded systems it's going to be steeper than if you do.

    Moving from desktop to mobile is fairly straightforward , but the Compact Framework contains a subset of the full framework, but it's not a pure subset. It also contains several things that simply don't exist on the desktop. So there are some things to learn.

    Bigger than that, however, is that you often need a different mindset. You don't have swap files. You have limited memory and storage. You have sleep/wake. You have smaller resolutions and dynamic resolution and aspect changes. Desktop developers rarely think of these things.

    Operating Systems

    This is more straightforward. Only Windows CE platforms (see the next answer for more clarification) support the Compact Framework. There's also the Micro Framework, but I'd call it more "embedded" than "mobile" so it's likely not something you're considering (correct me if I'm wrong there).

    CE versus WinMo

    This is a major confusion point for lots of beginners. Unlike XP (exclude XPe for the sake of this discussion) or Vista, Windows CE is a modular OS. That means the device OEM can choose to include or exclude just about any feature in the OS. That means there is no one "Windows CE". Think of Windows Mobile and a Windows CE customer. They take CE and select a specific subset of available features. They then add their own pieces to it (like the WinMo shell, several APIs, etc). This means that a vanilla CE device can (and often will) have stuff that a Windows Mobile device doesn't. It also means that all Windows Mobile devices contain pieces that no vanilla CE device can. To make it even more fun, the WinMo OEM can then add even their own stuff, so one WinMo device may have stuff that another doesn't.

    This doesn't even get into the differences between the WinMo platforms themselves (Professional, Standard, Smartphone, Phone Edition, etc).

    Other Relevant SO Questions

    You might want to look at these:

    • CF Tips, Tricks and Gotchas
    • WinMo Development - where to begin
    • Getting Started with WinMo development
    0 讨论(0)
  • 2021-02-02 00:44

    I think a background in .NET development definitely helps. There are some differences between the two platforms, the biggest being that the Compact Framework only provides a subset of the .NET Framework. This can prove difficult when transitioning from the desktop environment when some functionality your familiar with isn't implemented on the CF.

    A few other things to be aware of when developing for Windows Mobile devices:

    • Catering to the multitude of screen orientations, sizes, and resolutions
    • Processor speed limitations
    • Memory constraints/management
    • UI Design (You just don't have the same screen estate as on the desktop)
    • Data input (Stylus/Soft Input Panel)
    0 讨论(0)
  • 2021-02-02 00:51

    Can't add a great deal to what is already here but I will say you'll be surprised in a lot of places if you've only used the Full Framework.

    • There is true, false and power off, remember this when writing code that touches system resources.
    • Performance - OMG, things are slow, probably much slower than you would expect in some places.
    • Missing bits and pieces - You will have to re-write the wheel on a few occasions as some stuff hasn't been ported due to space. Did I mention Decimal.Round() only supports banker's rounding?
    • Keys... there are limited keys. Sometimes you might want keys to do different things, then you will remember that WinForm widgets intercept keys and do pre-programmed things. Oh noes!
    • P/Invoke. Some of the things you are used to getting for free will require P/Invokes.
    • The GC is different. Might be worth reading up on it if you want to create a large app.
    • Not all devices are the same like PCs are the same.
    0 讨论(0)
  • 2021-02-02 00:58

    In addition to comments from ctacka about the confusion caused by various OC versions, I would mention my initial difficulty with the sheer number of CAB options for frameworks, SDKs, and especially SQL Server engines and clients. The options seem to be changing all the time and I'm still trying to sort it all out. My steepest part of the learning curve to Mobile Development was getting the development and runtime environments and install processes working properly.

    0 讨论(0)
提交回复
热议问题