The Best Recipe for Mobility Development
In my mobile talks, I always promote a combination of elements that make for the best mobile applications. It's a pretty simple list, but there are reasons for this list.
Here's the developer's list:
- Windows Mobile 5/6
- Visual Studio 2005
- .NET Compact Framework v2 (plus latest SP)
- Windows Mobile SDK's
- Mobile Client Software Factory (MCSF)
Sometimes, I get pushback from folks on different pieces of this list. For example, a customer will tell me that they can't afford to upgrade their PPC devices to Windows Mobile. OK, that's a real constraint - but I tell them that they need a plan to get to the WM releases. The enhancements and extra managed code (that's on WM and not in .NETCF) make WM 5 the oldest platform that you should target today. What's the big deal about WM? WM5 added several managed code capabilities on top of .NETCF - but one of the primary ones is SNAPI, or State and Notifications API. I've been pushing WM for over two years now, so let's move on to a more recent topic.
Here's a quick list of reasons for each element:
- WM5 - SNAPI
- WM6 - The goodness of WM5, enhancements to O/S, more SNAPI events, and .NETCF / SSCE in ROM
- VS2005 - great tool
- VS2008 - some really good additions - I'll point these out in the future
- WM6 SDK - improved emulators
- MCSF - do you really have to ask?
If you haven't looked into MCSF, you need to take a look. Thanks to Loke, I had an opportunity to take a deeper look and I really liked most of what I saw. Via Loke's provided Mobility Touchdown Tour, DPE presented a 3 day lab to customers all over the world - and MCSF was the centerpiece.
MCSF was developed by out Patterns & Practices team, and that means something in my book. MCSF is a set of application blocks, architectural guidance, and samples. Built on top of the Software Factory model, architects will like the potential of this. What I like is that the blocks provide some valuable capabilities.
Here's a quick peek at the list of blocks:
Configuration Block
Connection Monitor Block
Data Access Block
Data Subscription Block
Disconnected Service Agent Block
Endpoint Catalog Block
Orientation Aware Control Block
Password Authentication Block