Before I mention anything else, I want to thank Doug Turnure and Microsoft for hosting us and ordering us pizza! Thanks!
Despite the truly horrific storm (we actually took a break so people could go move their cars to lower levels of the parking deck in case of hail) we had a great turnout. Twenty people came and participated in the round table discussion group style of presentation. We were very relaxed and informal tonight, peppering our presenters with questions in the middle of their presentations. I don’t know if they enjoyed it, but I sure like that style of presentation – the level of group involvement shows interest and attention.
First up on the big screen was Michael Earls. He presented an idea that he credits to Keith Rome. Basically, if you have a PocketPC device and want to watch movies (and with 1Gb compact flash cards, why not?), wouldn’t it be easier to do so with a Media Center type of interface? So Michael dreamed up the Pocket Media Center and downloaded the OpenNetCF classes from www.OpenNetCF.org. If you’ve never seen these tools before, you owe it to yourself to check them out, they’re one of the truly invaluable open source developer toolkits out there for anyone working with the .Net Compact Framework. In the course of his presentation, Michael learned a valuable lesson for all of us – the CE emulators which come with Visual Studio require a network connection or loop-back adaptor for communication and debugging to be successful. Michael’s short presentation was mostly dominated by people discussing the merits of the emulators and other developer toolkits they had experience with. The other toolkit I remember being mentioned was the GDI+ wrapper and charting tool set from www.XRossOne.com.
Our feature presenter for the evening was Shawn Wildermuth. Shawn is widely recognised for his database programming expertise, and using databases on the .Net Compact Framework was the focus of the talk this evening. Before delving into the actual methods of data access on the compact framework, Shawn pointed out some differences between the traditional networked PC and the mobile devices. Aside from the obvious differences - screen real estate and small memory room, there are other differences between the PC and the mobile device. Low bandwidth and range/access problems force you to think about your apps differently. Input restrictions (no keyboard/mouse) make you think differently. How you think about data has to change. The CF allows access to System.Data (Datasets) and XML, but not serialisation. The SQLClient requires connectivity. SQL CE allows offline data access but is not supported on the Smartphone platform. Web services do work on all the platforms.
Shawn's first demo was of the SqlClient. While the code looks remarkably similar to what you would write with the full framework. One caveat - there is no local cache on a mobile device. Of course, that makes sense when you think about it - you wouldn't want to cache lots of data on a memory restricted device.
Next up was a discussion of SQL Server CE - a database engine that actually runs a database on your mobile device. The neatest thing about it is that it uses HTTP for communication with SQL Server. SQL Server CE allows two methodologies when it comes to data access - either remote data access or merger replication. Remote Data Access is when you execute queries against a remote host. Merge replication is when you bring some or all of the database to the device and make your changes locally. SQL Server CE will handle sending changes to the server database. Something nice about SQL Server CE is that the database engine handles compression for you, making it easier to send larger amounts of data across the "wire"
Web Services as a data access method is really Shawn's preferred method for accessing data. Shawn really seems to like how much control he gets when he's designing his own web services. Of course, the trade off for this amount of control is an additional amount of code.
Other topics of conversation included data binding (slow on the CF devices so push this off to another thread!) and some new features promised in SQL Server 2005's SQL Server Mobile Edition. I won't go into all of the details of these two topics. Instead, visit www.adoguy.com and look for his presentations section - the presentation and all the code he showed us is available for download. Also look for his data factory class - he promised us that his magic base class for database work is freely available.
The evening wrapped up with some prize giveaways – no one walked away empty-handed. We had books, hats, t-shirts, notepads, and more all thanks again to Doug Turnure and his magical swag closet.
Be sure to join us next month for Kirk Evans present the upcoming .Net Compact Framework 2.0.
— Matt Ranlett