Always Connected?

A year ago I wrote about Apple s foray into mobile
application development on the iPhone and the iPod Touch (see Web 3.0 and Your Next Mobile Application). At the time, my
bet was that Apple and Microsoft would scramble to enable better disconnected
scenarios. They have both established a beachhead, but not in the ways that I
predicted.

Instead of partnering with Adobe and Google, Apple opted
to allow client applications to be installed on the iPhone and iPod Touch
(albeit in a very controlled manner via the iTunes store). Client applications
can easily store data locally and manage differing connectivity states, so that
negated the urgency for a Web-centric solution to the problem; though you re
stuck learning Objective C, which is less than ideal.

Microsoft s latest version of Silverlight (version 2,
which is still in beta as of the time of this writing) has some support for temporary
local storage, which is a partial solution. With Visual Studio 2008, Microsoft
has also introduced Synchronization Services for ADO.NET to tackle the
Occasionally Connected Applications (OCA) scenario in client applications (for
more on OCA visit http://msdn.microsoft.com/en-us/sync/bb887608.aspx).

The more time that goes by, however, the more I wonder
whether most mobile device applications even need to tackle the OCA problem.
After all, most mobile devices these days are connected to the Internet most of
the time. As an example, my company produces a Windows Mobile client
application that simply needs a WiFi connection. When I went to the store to
pick up some test units, though, I was awakened to the fact that, in what seems
like overnight, just about everybody stopped manufacturing Windows Mobile
devices that were not also phones (Windows Mobile Classic devices is their
technical name, which might have hastened their demise). HP seems to be the
only company left that makes them and very few stores carry them (forcing you
to order them online).

So, by sheer market forces, almost every Windows Mobile
device that is sold today has Internet connectivity built-in that can always be
on. iPhones, obviously, also have built-in Internet connectivity. There are a
few exceptions, of course, to the always-on nature of Internet connectivity in
mobile devices; like when you re in an airplane or in a remote location. You ll
have Internet access in even those places soon enough, though. The net of free
WiFi is pretty widespread and getting wider every day.

Now that always-on Internet connectivity is becoming so
commonplace, it opens the door to storing data in centralized servers. This is
known as cloud services, and both Apple and Microsoft are actively pursuing
this strategy (Apple through MobileMe, http://www.apple.com/mobileme/, and Microsoft through Live
Mesh, http://www.mesh.com).
Having all your data available to you in the cloud makes it easy to get
access to it from just about anywhere, as well as to easily recover from the
loss of a mobile device (which never happens to me).

There will always be applications that will absolutely
need to function in a disconnected state (like e-mail), but my feeling is that
connectivity is becoming so ubiquitous that unless you are building an
application that is an edge case, you are probably better off spending your
development budget on other pieces of functionality and leveraging the cloud
for data storage. But it s good to know that Microsoft is still actively
pursuing better options for those of you who need to build an OCA.

Jonathan Goodyear
is president of ASPSOFT (http:// www.aspsoft.com), an Internet
consulting firm based in Orlando, FL. Jonathan is Microsoft Regional Director
for Florida, an ASP.NET
MVP, a Microsoft Certified Solution Developer (MCSD), and co-author of ASP.NET 2.0 MVP
Hacks (Wrox). Jonathan also is a contributing editor for asp.netPRO. E-mail him at mailto: [email protected]
or through his angryCoder eZine at http:// www.angryCoder.com.