The following is an excerpt from an article written by Erlanger_Digital president Louis Erlanger for the Infusive Solutions blog. The full article can be accessed here:
Awesome Resources For Windows PC Developers Moving to Mobile Development
The laws of physics dictate that if you are not mobile you are not going anywhere. A similar law governs survival for modern day software development careers in New York and the rest of the country.
Mobile development is the place to be to remain viable.
So what do you do if your experience is limited to PCs, networks and the web? For Microsoft developers, clearly the smoothest transition is to Windows phone and tablet development. The C# and VB languages are fully supported, and development can be done within the familiar Visual Studio environment. The official Windows Phone website is http://developer.windowsphone.com, and it contains a wealth of tutorials to get you started.
But here’s the dilemma: Windows phones and tablets are currently only a small piece of the mobile pie. iOS and Android phones and tablets currently rule the mobile world. So how does a Windows developer reach the rest of the pie?
1) Mono: The easiest option is to work with an open source framework called Mono. Mono allows a developer to create apps for all three platforms using C#. While this may seem like an easy way to go, there is a tradeoff: apps generated by Mono may run slower than native apps. Mono can be downloaded at http://www.mono-project.com, and the website also includes full documentation and tutorials.
2) Adobe Flex: A second option that also falls into the “path of least resistance” category is Adobe Flex, an open source framework for building mobile apps that work on both iOS and Android, as well as on the Blackberry. Again, your resulting apps may be a bit slower than native apps. Information and a downloadable SDK are available at http://www.adobe.com/devnet/flex.html.
3) Native iOS and Android:If you are willing to bite the bullet and learn native iOS and Android, the good news is that it is not as difficult as you may think. All mobile devices have some things in common:
The languages used for development are object-oriented. Native Android development is done in Java, and native iOS development is done in Objective C, and both of these languages have constructs that are similar to C#.
Mobile interfaces are all developed using some form of XML, which is familiar to most Microsoft developers.
Development conforms to the Model/View/Controller (MVC) paradigm already familiar to .NET developers.