Monthly Archives: March 2011

Monospace Conference in July

Monospace 2011 was just announced today, and tentatively set for July 20-23 in Boston. Looks like a great opportunity to come out and learn more about Mono, and rub elbows with the heavyweights from Novell ūüėČ

I’m planning on attending; if you’re interested in some of the coolest cross-platform .NET technologies out there, you should plan to attend too. Looks like a great time!

For more info:


Leave a comment

Posted by on March 29, 2011 in Mobile Development, Mono



Mono @ Microsoft

I wrote last week about C# and .NET for mobile development, since they are currently the only language and framework that is portable across the major mobile platforms, (iOS, Android, and Windows Phone). Well it looks like the idea is gaining some momentum in Redmond.

Both Rabi Satter and Rob Tiffany have been blogging on the subject, and the two have even ported their Mobile Line of Business Accelerator over to MonoTouch.

Rob even speaks of Mono as a key component of what he calls the Microsoft MEAP. For those unfamiliar, MEAP stands for Mobile Enterprise Application Platform — a term coined by Gartner in an attempt to provide a definition for software vendors who offer a packaged enterprise mobile solution. Currently Microsoft is listed as something of a “niche player” on Gartner’s MEAP Magic Quadrant due to their support for only a single platform. Mono would make support for multiple platforms simple, and greatly strengthen their MEAP offering. I for one hope Mr. Tiffany is successful in the bid to make his vision a reality.

1 Comment

Posted by on March 28, 2011 in Android, iOS, Mobile Development, Windows Phone


Tags: , , , , , , ,

C#/.NET: The New Mobile Standard?

Miguel de Icaza made a bold statement last month after Nokia announced they would be replacing Symbian with Windows Phone 7. He made the assertion that C# and .NET, via the ECMA CLI standard, is becoming the de facto language for cross-platform mobile development. As you can imagine, this resulted in some rather lively discussion in the open source and mobile development communities.

Politics and Religion aside, I think he makes a strong argument. Despite their recent troubles, and their virtually non-existent U.S. market share, Nokia still has more mobile devices in the market worldwide than any other manufacturer. The WP7 announcement advances the portability of C#/.NET code to these devices, and offers a world of possibilities across all of the major players in mobility today, as Miguel’s chart clearly shows:

Portability of C#/.NET code

Now I can already hear the arguments that HTML 5 provides the same portability, and is an open standard without all the excess baggage, (read: Microsoft), of C#/.NET. In fact, many clients I speak to today hail HTML 5 as the answer to their mobile prayers, but the reality is often not so rosy.

Don’t get me wrong, I love HTML 5. It brings incredible flexibility and power to mobile devices, and the apps you can write with frameworks like SenchaTouch, and JQuery Mobile are truly impressive. But there are just some things a web-based application cannot do. The HTML 5 Cache Manifest standard provides for disconnected capabilities, but it is still difficult to support full offline transactions without some intelligence to manage them outside the browser. Access to the device’s native features, (GPS, Camera, Accelerometer, File and Storage), all require native interaction via frameworks like PhoneGap; and despite the advances in the HTML 5 user experience it still cannot provide the same richness that the native platforms can.

HTML 5 can provide an elegant, cost-effective solution to many cross-platform problems, and I counsel my clients to take a long, hard look at it as a first step in any assessment of their mobile application strategy. Most enterprises already have an army of web developers who can be re-trained to develop mobile-optimized web applications, and this often provides a critical first-step for many of them into the mobile world. But as soon as the problem at hand requires disconnected transactions, or access to the device, or a rich user-experience that HTML cannot provide, native options have to be considered.

C#/.NET and Mono are my first suggestion for organizations who already have a significant investment in Microsoft technologies. They offer full access to the device, and all the native capabilities of Obj-C on iOS, and Java on Android — plus C# and Silverlight for WP7. What’s more, they can still deliver HTML 5 web applications via ASP.NET while leveraging existing investments in the .NET platform.

Time will tell if C#/.NET and Mono will become as Miguel puts it the “lingua franca of all major mobile operating systems”, but for most of my clients it is their best solution for their cross-platform mobile problems.


Tags: , , ,

The UX Revolution

I’ve written a lot of software. ¬†Most of it is for business users who have a job to do, and I frankly never put much thought into their experience using the applications I’d written. ¬†I just shipped my products, and let the trainers and support teams worry about user adoption and usability questions.

But something seismic has happened in the past two years. ¬†Apple released the iPhone, and then the iPad, and user expectations have drastically changed. People now have immediate access to some of the most intuitive and easy-to-use applications I’ve ever seen — and they’re bringing these expectations into the workplace. ¬†People are now wondering why the applications they use at work can’t be as easy and intuitive as the apps they use on their iPhone, iPad, or other mobile device? ¬†The days of throwing a half-baked web application over the wall appear to be over.

A few months back, I read an interesting article entitled 10 Tips for Enterprise Software Startups by Bernard Lunn.  You can read it here.  I was particularly struck by tip number seven, which stated:

“The new style of user interface – one click leads to another, no training needed, end users get results very, very quickly and that motivates them to learn the more complex functions – is fundamentally different from traditional enterprise software‚Ķ The architecture has to enable this type of user interface for all types of users, including developers, administrators, managers, partners and so on. These users require complex, feature-rich systems.¬† But they also now demand the types of user interfaces they experience online with Google,¬†Facebook and Twitter.”

This is a big change for those of us who write and design software. ¬†Sure, lists and¬†hierarchies¬†are very familiar, but when I have a list of things to display, I want to put them in a table, because isn’t that the best way to present it? ¬†When I have a hierarchy, I should put it in a nice, comfortable folder-model and display it in the left pane so I can see the whole tree if I want to. ¬†After all, that’s what Windows Explorer does. ¬†Right?

The reason the iOS user experience is so simple to use, and so satisfying is that there are built-in constraints that keep the experience on-track — you can’t do anything you please, you have to follow the rules. ¬†Menus lead to other menus. ¬†Details are organized logically, and presented in bite-sized chunks. ¬†Tables and grids are nowhere to be found, and if they were, would ruin the experience. ¬†Navigation is a simple forward/back tree, and additional features have their own navigation stacks — going as shallow or deep as necessary to present the information needed in an intuitive flow that just makes sense when you use it.

As I ruminated on this change it occurred to me that this paradigm shift contains an opportunity: ¬†I believe this fundamental change is what will finally enable true 4G development.¬† Previous 4G efforts, (software workbenches, software factories), have failed because they invariably tried to do too much.¬† Their underpinnings were based on a ‚Äúblue sky‚ÄĚ approach to software development ‚Äď specifically UI design.¬† But ‚Äúblue sky‚ÄĚ is inherently a 3G development concept ‚Äď that‚Äôs what 3G languages and frameworks are built for, and why they remain so fully entrenched in enterprise software development today.

3G languages and frameworks will always have a place in the enterprise, but we need to abandon this 3G concept and ‚Äúembrace the constraints‚ÄĚ that this new UX paradigm imposes if we ever hope to realize the benefits of 4G development.¬† Mobility has enabled this shift ‚Äď specifically Apple‚Äôs leadership in UX design for the iPhone and iPad ‚Äď but these concepts must be extended to solve enterprise problems outside of mobility.


Tags: , , , ,

Wondering what to do? Just start something…

I’ve been meaning to do that for a long time…

I meant to get that done this weekend, but…

That’s something I really want to do, but I don’t know how to start…

Enough, already.

Everyone makes excuses, (I do it all the time…), but there comes a time, after making excuses for days — months — even years — when you realize the opportunity to actually make “that thing” a reality is slipping away; that if you don’t do something about it right now, it will never happen.

Change is scary. ¬†Taking risks is scary — if it wasn’t, more people would do it. ¬†The fact is that standing up and speaking your mind, putting yourself out there, taking a chance on something you believe in is terrifying business. ¬†Most people would rather sit quietly and watch life go by. ¬†It’s easier that way.

Are you most people?

I’ve just decided that I’m not.

Leave a comment

Posted by on March 20, 2011 in Uncategorized

%d bloggers like this: