Wednesday, January 26, 2011

Windows Mobile Development in .Net

For windows mobile development we have 4 choices in .Net:

a) ASP.Net Mobile – Browser based access to the application which is not hosted on Mobile. Application is hosted on a webserver. The advantage is that it supports wide variety of mobile devices as all we access is webserver and it renders HTML ultimately. Drawback is that it cannot use any phone specific features and runs in browser. From VS2008 onwards, there is no explicit template available for ASP.Net Mobile development. Any ASP.Net web application developed, runs on modern mobile web browsers. Some considerations must be taken like not using huge images and large scrollable data. Here is a blog that provides some more information:

b) .Net Compact Framework – To develop standalone Windows Mobile application. This is most matured framework so far but UI render engine is old Winform based so UI experience is not great. But the platform is powerful and is directly hosted on mobile device.

c) Silverlight for mobile – This has advantage of rich UI development as with Silverlight apps we see. It has advantage of accessing Phone features but the drawback is that it needs a host like web browser to run and thus cannot run as a standalone application. However, the experience is not at all bad - I would like you to have a look at this 6 mins silverlight video:
Also, Silverlight is supported from Windows Phone 7 onwards. Windows mobile 6.5 does not have support for this.

d) .Net Micro Framework – This is relatively very new and looks promising. It will allow creation of rich WPF applications on Windows Mobile. The drawback is that as of now it does not have tooling support for development. So even to add a button, we need to do that via code.

For now, I will recommend Silverlight for mobile as it has Rich UI support and Microsoft roadmap looks promising on Silverlight support going forward.