Tangere.Net Rationale

by Admin 20. September 2011 05:34

Before this summer I wasn’t really aware of the revolutionary impact of HTML5. I ‘v seen just some new tags in html and some esoteric capabilities in CSS3. I missed the up rise of tables – at least I didn’t see any reason why I should get a tablet.

But every time I had been travelling this year the number of people I saw using iPads had been doubled. On my last trip before summer holidays I even got the feeling that now everybody had an iPad.

So on the day before our summer holiday trip I decided to get an iPad myself and to check if a tablet might be beneficial. Big surprise – I was immediately in love. During the whole trip I didn’t need my laptop and was really surprised that I like the basic interface of email, calendar, notes and tasks on the small screen more than the bloated Outlook 2010.

After my return I started to analyze the tools for mobile/touch/tablet application development. We’re developing web applications based on .NET since ASP.NET 1.1. So developing native apps in Objective-C is no real option. The mobile/touch market is also not just iOS. Android is gaining more and more traction and there is whole bunch of niche players from Windows Phone to Blackberry. I got the feeling that the only option to build future proof, device independent mobile/touch applications is using HTML5/Javascript5.

When Microsoft announced last week that HTML5/Javascript5 applications will be the new first class citizens in the Windows 8 universe my decision was finally confirmed. HTML5/Javascript5 is the future.

In the last 10 years our internal toolbox became a collection of different tools including COM, WebForms, MVC, jquery, extjs etc. Quite powerful but not nice and clean any longer. So HTML5 is also the time to restart with an empty toolbox. The only design principle we absolutely wanted to keep is our “holly” design principle: DRY KISS.

DRY KISS? Don’t repeat yourself and keep it simple and stupid.

After some days of brainstorming and research I came up with the following list of core requirements for our new Apps framework:

  1. Pure HTML5/Javascript5. No need to deal with browser cruft (IE6, etc.) and dated devices.
  2. Apps should be usable on different sized screens (e.g. iPhone/iPad) with minimal device specific code/logic.
  3. Clear separation between backend logic, frontend logic and user interface. The backend provides just JSON data, the frontend controls the application flow and the user interface.
  4. The Apps are real applications and not public, mobile web sites. So SEO tactics can be completely ignored. This allows to build high performance, single page applications .
  5. The user interface should be easily customizable/brandable. A designer with just HTML/CSS knowledge should be able to change e.g. the color schema or the order of buttons.
  6. The Apps should be modular e.g. allowing to add customer specific modules or features.
  7. The Apps should be easily upgradable without breaking customizations.
  8. Unlike traditional web applications WebApps don’t need to be stateless any longer. Local storage allows to maintain local state information.
  9. The WebApps should have a default look & feel quite similar to native Apps.
  10. The Apps should be addable to the iOS home screen.
  11. The Apps need to support the limited iOS multitasking WebApp capabilities (avoid unwanted complete restarts).

Being not among the first ones jumping on the HTML5 bandwagon comes with the benefit that a lot of tools and libraries are already available. But it became quickly obvious that none of the available frameworks comes even close to our core requirements. So we decided that we’ll build our own WebApp framework: