I have project where I need to design & build a complex interface to sit on top of an ASP.NET/MVC4 back-end and run as a web-based application in a browser. The client has an existing "sister project" built using Sencha ExtJS and the GUI is a "recreation" of a Windows desktop, with floating, draggable windows, a "start" menu, tiling & z-indexing of windows, icons on the desktop, all running inside a single browser tab. In either IE6 or IE8 and probably on a 1280 x 1024 monitor (big corporate client with lazy IT department). They want the new site to mirror this existing "windows-style" version.

I think this is nuts: they're losing all the power of a real desktop environment (inherent speed & functionality such as alt-tab, keyboard shortcuts, system-drawn windows) and also not using the native functionality of the browser, such as tabs for separate "windows". It's almost like they're ditching the good things about each of those two environments and only using the bad things, and will end up with a clunky & unreliable app with massive impact on the user experience and totally going against the users' expectations of a website. (They are for the most part what you might call "low-level" users, with not much experience out of the MS Office "sphere").

I'm trying to construct a reasoned & balanced argument (that doesn't incorporate my perhaps obvious disdain) and I was wondering, other than my reasons above, is there anything obvious I'm missing (pros or cons) as I can't think of a single reason supporting building the app this way.

  • 1
    Hi Spuds. I've removed the elements of your question where you're requesting examples. Answer just listing examples of 'X' aren't really constructive to a Q&A site - none of those such answers could be considered 'correct', and we need questions that can be answered with a correct answer for this site to be useful to future visitors. However the basic gist of your question is a good one that can be answered in a useful way. (Provided you're happy to accept that you may be wrong in your thinking - but then that's for the responders to decide!)
    – JonW
    Commented Sep 27, 2012 at 20:14
  • Some questions: Will users see the browser chrome and be exposed to the fact they're in a web browser? Will there be any restrictions on the desktop functionality that isn't available? Will the users be moving between faux- and real-desktop experiences during their use of the system? Commented Sep 27, 2012 at 20:45
  • "a reasoned & balanced argument" = it's not a desktop application. Why cling to an antiquated user experience when we have the power of the web browser in our hands? (maybe not those words, but try to push them away from the LIMITATIONS of the desktop UX and have them embrace the web UX)
    – DA01
    Commented Sep 28, 2012 at 5:01
  • Maybe a more tangible example that would make sense to the suits = would it make ANY sense to have to deal with an emulation of a windows application on say, an iPad...or any tablet which is quickly becoming a primary way to interact with web applications? (Again, pushing for the antiquated argument...even Microsoft themselves has finally realized that Windows isn't what people want on the mobile web and have come out with Metro--er---"Windows 8")
    – DA01
    Commented Sep 28, 2012 at 5:10
  • @Jimmy - yes, the users will probably see browser chrome. The browser may or may not be run windowed/maximised/full-screen, its entirely up[ to the user. They will continue to have access to the normal Windows desktop and will most likely be running other applications such as Outlook, Word and Excel "behind".
    – spuds
    Commented Sep 28, 2012 at 8:40

3 Answers 3


Well, if you look at Office 365 or Google Apps, you see that it is possible to build fully functional, almost desktop-like applications that run completely in the browser.

  • They're not really much like a Windows environment though, with draggable panels, "start" button etc. I'm talking more like this thing: docs.sencha.com/ext-js/4-1/#!/example/desktop/desktop.html which I should imagine was built purely as a proof of concept demonstration and not really as a real-world example implementation.
    – spuds
    Commented Sep 27, 2012 at 15:06
  • @spuds: actually, most of real-life uses I've seen of Sencha ExtJS uses the desktop application framework as that's what's familiar to everyone yet scales indefinitely. Personally, our ExtJS were usually running on their own in the browser, but with a familiar toolbar + side panels + main content area pattern. It was ugly, but everyone knew instantly how it works, and that's what counts in terms of being intuitive.
    – Aadaam
    Commented Sep 28, 2012 at 1:00
  • @Aadaam - That's not necessarily the definition of intuitive, though. That's just the definition of being already familiar with a concept. If the web app is acting EXACTLY like the desktop app, then fine, I guess I can see that being an argument. But my guess is that it will never accurately emulate the same UX and, a such, there's little reason to cling to it. (just as it doesn't make much sense to design a Windows app to look like a DOS app)
    – DA01
    Commented Sep 28, 2012 at 5:02
  • As for Andre's answer, I think that's an excellent argument, really. Gmail is a FULLY functional email app, yet doesn't look like your normal Windows GUI app--and that's for a reason. (And it's always fun to use the "well, google does it this way and they seem to be doing OK...")
    – DA01
    Commented Sep 28, 2012 at 5:04
  • @DA01: by intuitive, I mean that we asked users to perform some daily tasks on the newly created interface and they didn't have any questions, yet succeeded with their goals. I guess that's a pretty good definition of intuitive. Originally we planned it to use just as a prototyping tool for interactions on that project (did I mention development is faster?), but it worked fine for users as well, so it stayed. Normally, I use it for development environments and generally internal tools which are needed for developers.
    – Aadaam
    Commented Sep 28, 2012 at 11:47

In my eyes, iGoogle always reminded me of a desktop with all of its windows. Supports dragging as well.


You can also look in the mobile direction. The line between a mobile native app and a mobile web app has always been pretty thin. Many mobile web apps try to mimic the native app interface, which should be considered "desktop-style" since it's native OS. If you look at tablet-specific sites (like iPad-specific, for example read Apple dev documentation website on an ipad, it looks just like a native app), the screen size is actually very close to a desktop.

This is just a demo, not a real use-case, but it's pretty funny nevertheless :) http://www.soyos.net/tl_files/demos/Windows-7-UI-and-Windows-Aero-for-Websites

  • 1
    That demo is a good example of why this is a bad idea: a pseudo-desktop that almost-but-not-quite manages to maintain convention just kept tripping me up. Commented Sep 27, 2012 at 20:47
  • It seems to me that they really want a desktop app. The reason they rely on web technology is probably due to existing code / wanting it to run without installation and other irrelevant technical issues. If they want a desktop app, why not make a desktop app? Have them use .NET and get a native app that they don't really need to install.. it sounds like an enterprise app so the issue of home users not running because it's native is pretty irrelevant
    – talkol
    Commented Sep 27, 2012 at 21:10
  • But also note that iGoogle is dead.
    – DA01
    Commented Sep 28, 2012 at 5:08

Actually, the sencha library is pretty fast (albeit, agreed, not in IE), and it brings familiar metaphors to both developers and users.

In my opinion, it's much more easier to develop large-scale business applications using ExtJS than using custom tools based on JQuery.

I'm yet to see a design language in JavaScript comparable in terms of effectiveness to Sencha. Even Twitter Bootstrap or JQuery UI vs Sencha ExtJS feels like a text console app edited in qbasic vs Mac OS X Aqua with XCode.

That said, of course, it's a fundamentally complex visual language, which creates unnecessary clutter. Most companies try to get away from their ExtJS interfaces, as they bring all the clutter we secretly hated in Windows-based ERP applications.

So, you're essentially out to build something to ExtJS like what Metro is for Windows.

Don't look at it from the outside: actually read its documentation, play around with the designer (Sencha Architect), watch the tutorials. Try to define a form layout in Sencha. It takes about a weekend to write some form-designer app yourself (been there, done that).

We built our internal development apps sometimes on ExtJS. It took us 2 days (while the user acceptance tests were running on the product) to create full applications with reasonable UX!

Anything else would feel custom for both users and developers. While it's not entirely impossible to build more effective web application interfaces per se, if the users are fine with it, let them live with it. Development speed would grind to a halt basically if they'd loose all the support ExtJS gives to them.

The unfortunate thing is, that yes, you can't create a "good-looking" interface out of it, it's a CSS and HTML mess what gets shown.

The only alternative I see is to grab some applications already in use inside the system, redesign them (and the interactions between each other) using more webbish patterns, then distill the whole thing to the level of how the ExtJS widgets are defined, in terms of events, methods, properties, layouts, etc.

Takes a lot of work, but I'd be curious if you - or anyone else - could create a coherent webbish design language able to scale out for ERP apps.

  • Interesting answer, but it sounds like (unfortunately) ExtJS's value for your team is more that your team isn't necessarily proficient with the Presentation Layer to begin with. This is certainly not atypical, of course, and the real benefit of all Web UI frameworks. I think it's a valid argument. All that said, those lucky enough to have a UX and Dev team structure that included talented presentation layer developers, the particulars of the framework one chooses becomes less of an issue.
    – DA01
    Commented Sep 28, 2012 at 5:07
  • @DA01: actually, it takes a lot to know about javascript to be able to at least understand Ext.JS, but from that on, you can speak the visual language instead of implementing it. A code which needs custom developed for each project takes infinitely more time than a code which doesn't get written at all.
    – Aadaam
    Commented Sep 28, 2012 at 11:01
  • I did not mean to imply one doesn't know anything, but rather that the UI team maybe isn't well versed at UI design. I've worked with incredibly talented developers that know way more than I ever will, but simply could not design a well thought out UI if tasked with it...it's just not part of their particular skill set. Which is fine.
    – DA01
    Commented Sep 28, 2012 at 14:56
  • And I do agree that a framework can speed up the process. But it's a tradeoff, as rarely does a universal solution work universally on every project. So it's a balance of priorities that has to be made.
    – DA01
    Commented Sep 28, 2012 at 14:57
  • Exactly, but also, it's hard to do an interface which could scale consistently: it's super easy to create a microsite for an advertisement, but it was always hard fight with visual designers to make them understand that in a "Google Maps clone" we developed for a major brand some of their ideas just couldn't scale to an application of that size and complexity. We know how to scale WIMP apps, that's why extjs is preferred in these envs.
    – Aadaam
    Commented Sep 28, 2012 at 15:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.