Wrote a lot about the IBM WebSphere MQ WCF Channels in the past. Check out my original post and an update on that one.
What changed in the meantime is that Microsoft added backout queue support to their channel in a hotfix. My comparison table now looks like this:
|
|
IBM
|
HIS2009
|
HIS2010
|
|
Fire-and-forget (oneway) client
|
+
|
+
|
+
|
|
Fire-and-forget (oneway) service
|
+
|
+
|
+
|
|
Request-reply client
|
+
|
-
|
+
|
|
Request-reply service
|
+
|
-
|
+
|
|
Local transactions
|
+
|
-
|
+
|
|
Distributed transactions (DTC)
|
-
|
+
|
+
|
|
Client side transactions (DTC)
|
-
|
+
|
+
|
|
Backout queue support
|
+
|
-
|
+
|
|
Message format
|
-
|
+
|
+
|
AppFabric support / IIS Hosting (WAS listener for IIS7) |
-
|
-
|
+
|
|
Works with .NET 3.x
|
+
|
+
|
-
|
|
Works with .NET 4.0
|
+
|
+
|
+
|
|
WMQ6 support
|
-
|
+
|
+
|
|
WMQ7 support
|
+
|
+
|
+
|
|
Sample code
|
+
|
+
|
+
|
|
Documentation
|
+
|
-
|
-
|
|
Licensing
|
+
|
-
|
-
|
Conclusion
We'll consider starting to use the HIS channel for services only. Hosting services with the HIS channel can be interesting due to support for AppFabric which can save development and maintenance time. For client side we’ll probably stay on the IBM channel anyway due to the licensing costs of the Microsoft channel.
Fowler did a nice sum-up of different approaches for cross platform mobile development: http://martinfowler.com/bliki/CrossPlatformMobile.html
A little more structured I see these six approaches for mobile development:
| Approach |
Build UI |
Build Libs |
Dev platforms |
UI Control experience |
User Experience |
| Cross-platform toolkit with native components from each platform |
1x |
1x |
1 |
Native. But lowest common denominator of functionality and UI controls from platforms available |
No native experience form device |
| Cross-platform toolkit with emulation |
1x |
1x |
1 |
Emulated. Differences in behavior per platform. Less performance / responsiveness |
No native experience form device |
| Cross-platform toolkit only for libraries |
Multiple x |
1x |
Multiple |
Native |
Native experience form device |
|
Cross-platform toolkit but building seperate apps for each platform
|
Multiple x |
1x |
1 |
Native |
Native experience form device |
| Mobile web apps instead of mobile apps |
1x |
1x |
1 |
Web instead of device |
No native experience form device. No interaction with mobile hardware like GPS, Camera, etc. No offline usage possible |
My conclusion can only be that building apps that work on all platforms today is quite hard.
But everybody wants apps these days. Why? I don't know, probably because it sounds cool.
My advice: if you don't need to interact with hardware from the device or need offline usage just keep doing web apps. Nothing wrong with that! In fact they're even easier to build. Or am I missing a point?