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
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.
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.
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:
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:
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.
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.