I've been a fan of Windows Mobile devices for the last couple of years for the sole reason that the development model is imho far superior that what's been available for Blackberry, Symbian etc. However this is all changing as the mobile phone wars intensify. With the introduction of the iPhone we are seeing a plethora of mobile web applications being built but of course this brings with it the pain found on the desktop of having to support multiple browsers on multiple platforms.
On the other hand we are starting to see Microsoft's position with regards to the .NET Framework loosen so that in the coming months/years we are likely to see a cut down version of the .NET Framework working across browsers/platforms. And this move will hopefully mean that we can build rich media applications for mobile devices in a similar way as we can now build Silverlight applications for the desktop.
Of course this is all looking way to far into the future for most developers but something that is of interest right here, right now is the expansion into rich applications for mobile devices. Today I was reminded to go across to the Blackberry developer site where they have a Visual Studio 2005 addin that gives you designer support for building Blackberry MDS applications that consume .NET webservices. Unfortunately the MDS application itself still can't be written in .NET being the limiting factor when it comes to building cross platform applications. Of course you can still build mobile browser applications for the Blackberry but then you loose the ability to sync data and work offline.
Earlier this month one of the team across at Red Five Labs reminded me that they were close to release. I posted a while ago about their intitative to create a runtime for the Symbian S60 platform to run .NET Compact Framework applications. As they approach a commercial release I am almost convinced to go and get an S60 device (the Nokia N95 or E65 look like nice phones). Unfortunately there are two limitations of this runtime that will prevent me looking at it in any seriousness:
- It's .NET CF v1 - This would require me to do a lot of rework to port v2 applications back to v1.
- Lack of a data platform - There is no local database supported. On the Windows Mobile platform we have SQL Server CE(SSCE) or VistaDB. Of these SSCE supports Merge Replication (and potentially Sync Services in the future). This is a significant consideration when building applications that are designed to work offline. Whilst investigating a few alternatives I did come across an MSDN article (whilst old, it might be of some value) that talks about a DataSet approach to syncing and persisting data - see the DataSet Server CE