Yes ... I was thinking along those lines (possibly) too. I need to do some
homework on this, but I might give it a shot of creating my own MsmqBinding
for the mobile WCF.
My current native MSMQ on my mobile devices offers the same advantages (at
least from what I can tell with the, admittedly, little amount of info I have
so for on all this) as the WindowsMobileMailBinding that being the ability to
"address" (or push) an unsolicitied Message to a mobile device. By the very
nature of MSMQ, I can send a Message to the device even though my application
is off-line, and MSMQ will handle the tasks of ensuring the Message was
delivered exactly once (and will keep trying until the entire message arrives
in-tact). As long as I have an appropriate "time to live" value for the
Message (and any matching message delvery statuses that I may be interested
in) my Server can send a Message and I can trust in that Message showing up
to scanners. Then, when the user grabs a scanner, turns it on, and then
activates the software I am able to attach to the queue and grab any Messages
that may be pending. Of course the same advantages exist when sending info
from the scanners to the Server.
This level of "asynchronous, bi-directional, disconnected" communication is
highly valued in our shop because of the automatic problems that come with
maintaining network connections when mobile - walking around large
warehouses, driving OTR for delivery drivers across the country, dead spots
in the network coverage, etc., etc.
The biggest difference I see so far is my current architecture uses the MSMQ
component that's built-in to my Windows 2003 Server (which simply runs as a
service) versus the need for Exchange if you go with the
WindowsMobileMailBinding. Setting up MSMQ on a box takes all of about 5
minutes - setting up Exchange (plus the expense of the licensing) certainly
takes me much longer. I never seem to be able to install it in less than an
hour on a clean box, plus the configuration time .....
The thing that makes me curious about all this is the fact that MSMQ is even
included as a built-in component from your Visual Studio Tool Box .... what I
mean is that there is already a tremendous support for MSMQ in the mobile
world anyway - why not take advantage of this fact with WCF?
What I might try is to create a "WCF wrapper" around the mobile MSMQ
component. At a minimum it would be a good exercise in extending WCF, which
as you point out, MS has done a great job in making this possible. I need to
do some leg work before, though, because with some of the other missing WCF
features this entire effort may prove to result in something that would still
be "less" than what I already have - don't have the time to spend on this if
it's not going to be a step forward.
All my complaining aside, I'm still glad MS has brought WCF to the mobile
world. After 24 years of building software (the last 7 have been completey
focused on moblie dev) I appreicate having a "unified" approach between the
destktop/server/mobile device. I realize mobile will always be a cut-down
version, but it's still good to be using the same things where possible.
Thanks Chris .... if I dive in I'll keep you posted on the effort.
Markus Anderson
Pervasive Thinking, Inc.