We need a new “user settings” framework before rich internet apps will replace Windows apps

Desktop and application virtualization are fundamentally about providing applications for users. In a corporate environment, these applications are almost exclusively Windows-based, meaning our mission to provide applications to users could perhaps more appropriately be our mission to provide Windows applications to users.

Desktop and application virtualization are fundamentally about providing applications for users. In a corporate environment, these applications are almost exclusively Windows-based, meaning our mission to provide applications to users could perhaps more appropriately be our mission to provide Windows applications to users.

And so that’s been our focus the past ten years or so. Every few years, someone asks, “Are there any desktop virtualization solutions that provide Linux desktops to users?” or “When will there be a version of Citrix XenApp for Linux?” My answer is always the same: When people start using Linux apps on the desktop, we’ll focus on them. But until then, we live in a Windows world. Sure, there are plenty of Linux desktop apps in the world. But these tend to be used by individuals. Very few companies actually use Linux desktops instead of Windows desktops.

The same could be said about web apps. Sure, web apps have certain advantages over Windows apps, but by and large, most desktop apps that run businesses today are Windows apps. (And when there are web versions and desktop versions of the same app, most people choose the desktop version. Example: Outlook versus OWA.)

A few years ago the notion of the “Rich Internet Application” (RIA) came to be. These applications are written for frameworks like SilverLight, Adobe AIR, or Google Gears. The idea is that they can bridge the best of both worlds—cross platform, portable, non-conflicting, and service-oriented like web apps, but with rich interfaces and the ability to run locally and work offline like desktop apps.

So why do we care about RIAs if I just spent the whole first part of this article talking about how we live in a world where Windows apps are entrenched?

The desktop virtualization world is pushing the limits of what's possible with Windows desktop apps. We have virtualization, isolation, streaming, redirection, layering, and all sorts of reverse-engineering, hacked-together sorcery to try to make our Windows apps work better on shared, streamed, on-demand virtual desktops. In fact recently I've wondered whether we'll ever be able to re-shape Windows (and Windows apps) to support what we want to do.

RIAs to the rescue?

So this is where RIAs are interesting. Sure, today we use Windows apps instead of RIAs. But what would it take to get rid of our Windows apps and replace them with RIAs that have all the good app behaviors that we want moving forward?

The problem with RIAs (and I guess web apps too) is that they're missing the common services that are usually handled by Windows. A desktop OS is more than just a window manager. It allows a user to have a collection of settings, configurations, and services that are shared between multiple applications. I'm talking about things like colors, fonts, button styles, and text sizes. I'm talking scroll bar behavior. I'm talking custom spelling dictionaries, time zones, currency, date, and time formats...

When you use web apps and RIAs, you lose that. (Example: How many times do I have to right-click and select “add to dictionary” for the word “VMware?” Once on my Mac host. A second time in my Windows VM. Again in Twhirl and Tweetdeck. (Both Adobe AIR RIAs.) A fifth time in Gmail. The list goes on... And that’s just for one little thing. How many settings are in my profile that these apps should access? Dozens? Hundreds?

And you could take it beyond just user settings. What about passwords? Data? Location information?

This could be solved by some kind of industry standard user settings service that could be accessed in an open way by any application. Maybe you do a one-time config of each app to point it to your own (dare I say "cloud-based") user settings configuration? (Even if you don’t use web apps or RIAs, a little bonus of this concept is that once Windows and Mac interfaces were written, you’d be able to get your settings in sync between your Mac host and your Windows guests.)

How can we make this happen?

I did some googling and haven't found anything like this out there. Does anyone know whether anything like this exists or whether anyone's planning anything like it? I talked with AppSense's Martin Ingram about this at BriForum, and we agreed that this is something that needs to come from beyond more than one vendor. I wonder if we could start with the user profile and user environment vendors and grow from there?

Of course I understand that a cloud-based central repository is not the only thing preventing RIAs from taking off. But I think it's a big part of it, and it's certainly something that we could start to solve today.


Join the conversation


Send me notifications when other members comment.

Please create a username to comment.


Eight years ago Microsoft tried to achieve this with Hailstorm:


The project died amid a "hailstorm" of privacy and data control concerns:


BTW some even question whether Microsoft Azure is a sort-of new iteration of Hailstorm:





The problem with Hailstorm/Passport was 'who manages the data'. Certainly for a commercial organization some of thsi data is too critical or sensitive to leave in the hands of a third party.

The way I see this has to work (certainly from the foreseeable future) is that all this data would be managed by the customer organization. This way the customer gets to change suppliers more seamlessly (less lock in)

Martin Ingram (AppSense)


Yeah at this point I think we just need the standard that specifies what we store and how we access it. I would imagine then that it could be hosted/stored by a customer, a web service, an individual nerd with a server, whatever...


Sorry but the problem is not on the apps. Windows as an OS was not meant since day one to be used the way VDI, TS and other application delivery mechanisms are using it. The problem lies at the core of the OS. Once Windows as we know it, is written in a different way, with a much more granular separation between OS and Apps and between user/user settings and OS, I think RIAs will be dead. Even today, years and years after Web Apps have been around they cannot still do 100% of the things you can with a native Win32/64 app. And that will probably remain for the years to come for several reasons.


RIA != Good behavior, just different behavior


There is another problem to RIA and that is the data the apps use.  Where is the data stored?  Sometimes, the data is stored with the provider (Google Docs – I know it isn’t a RIA, but it is an example where the data remains with the provider).  Sometimes the data remains on the Workstation.  You start running in to data integration issues with disparate data locations.  Same idea as “user setting framework”, just on the data side.


I'm in agreement with Martin - I think there needs to be some sort of Windows User Environment Server that can server as your organization's repository for this kind of thing.

Maybe they can create a standard communications format (data type/TCP port) that can also be used by web services handling the same thing, but that's secondary.

Now, regarding RIA's - Your Mac host has a shared dictionary.  The apps don't use it.  If the apps don't use that, what makes you think they'll use some other, (shiver) cloud-based service.

(<rant again=yes>That's ridiculous...it's not a cloud based service...it's a web service</rant>)

I'd also argue that the color/fonts/etc... that you mention are all available to the RIA.  They only scraping out the components that they need and formatting it to look different on your screen. The people making the RIA's simply aren't making them with that level of integration in mind.

So, RIA's /could/ be a solution to making web apps work on the desktop, they just need to be written to take full advantage of the framework that the OS provides.


Hi Bri & all,

Bri, I take back all my bad through virtue of this article. Man, you're like the overintelligent, super-annoying end user we all love to to hate, to eventually love.

So, with this, I ask you this. Where is an individual supposed to speak up and about nowdays? For surely every hillbilly out here in the wastelands are largerly ignored outside the MVP and suchalike chatarounds.

Also, I'd appreciate comments from Tim Mangan or other guys among us from a largerly dev background.

/spelling and grammar is on the house.


Interesting topic and something that is definitely not solved easily.

Specifically continuing from your spell-checking example: if those different applications do not have common model/technical implementation for spellchecking (i.e. it's not OS provided service like, say, handling printers or i8n settings), so how would they be able to use this "cloud registry" of sorts to share any spellcheck -specific settings? They would still have their private configuration locations for whatever features those applications contain, unless specifically coded against some commonly agreed "spellchecking standard" etc., which is sadly something that just isn't going to happen as long as all software being used is not provided by one single party. Intra-vendor software, sure (like sharing Office spellchecking data between Mac and PC), but across totally different applications, not gonna happen.

Privacy -related issues notwithstanding, there is the matter of would this service be inside each organization, hosted service or some hybrid (like synching selected application settings between different services)? If it's fully run on the cloud, just look what happened recently with Sidekick..

The idea is good, but getting everybody to agree on even basic level level of interoperability for this to succeed is asking a lot, given how some/most vendors just don't care about following even other technical standards or best-practices when manufacturing applications.


There are no clear and compelling business drivers to bother with any mass conversion. The development tools all make developing for Windows so easy, and until that changes, Windows apps are here to stay and as a result Windows is here to stay.


I have written a few Silverlight based apps.  As a developer, I like it because it is almost like writing a full app using WPF, but can be delivered from a web page.  I use the same tools to develop, and mostly the same code, it is just that I am restricted to a subset of the libraries I might otherwise use.  

The problem with RIA apps is really based in security.  Because these things just download and run when you hit a web page, without asking if they may do so in any way, they must conform to a very restrictive set of functionality.  So what the app can read and what it can write on your PC is quite limited.

In Silverlight 3, the RIA does have a small amount of local isolated storage.  2MB by default, but the user can choose to increase it.  But it is isolated so it can't be shared.  You really don't want a rogue RIA (make that RIA based virus) snooping around your system even to read.  I think that further work will be needed to open the scope of what these apps may access from the local device.

I am glad that security comes first here and we arer not starting with something overly open for exploitation and trying to patch it up.  Of course, until adoption rates go up we won't know for sure if there are major holes lurking because the bad guys aren't going to pay attention just yet!


Have a look at Microsoft's Mesh initiative (mesh.com). While they seem to be playing Mesh down a bit lately this is an exciting platform.

The basic file store and sync functionality exposed in the trial is supposedly only the tip of the iceberg. Already it's a great foundation for data sync, but when you add IE favorites you can start to see a uniform experience across machines. If you could expose within that platform additional functions, like an XML based settings file, perhaps a copy of your personal dictionary, then it all starts to work.

The final piece though is getting the apps and OS to allow users to define their settings in this fashion. Not a big stretch when you look at the number of apps now that allow you to specify the location of this or that.

The problem could be advanced under some standards banner with groups tackling various facets. With Mesh allowing shared folders you could support content, or settings, coming from employers or vendors or separate services you subscribe to.

Just a thought.


It's nice that Microsoft has this Mesh framework, but in reality the problem is more about applications storing data in exchangeable fashion than mechanisms for synching it. So it IS big stretch as each application writer wants to store settings in its own preferred format, physical (virtual?) location is only top of the iceberg here.

Another issue I see with Mesh is that knowing how Microsoft operates, I'm sure there's some ties to Windows as a client etc. So how easy it would be to use from various RIA technologies or various non-Microsoft platforms? I'm also pretty sure that Amazon, Google et als would like to have _their_ mesh to be the one that gets used instead of Microsoft's :-)

What also came into my mind is little bit related to what Tim wrote above; you don't necessarily want to share everything with everybody (everybody meaning other apps), how would you control this in meaningful way? I foresee impossible task for defining permissions in granular level and if something - anything! - is to be learned from how security software (A/V, firewalls) is used by most people, it is that people generally are too lazy to really devote time to understand who needs to talk with whom. I.e. exposing more choices just makes people to click OK to everything and in the end you just have fully open system anyways.


Wow, this thread has driven some good debate. There are so many good comments here that I am going to try and pull together some thoughts around several of them, have also put some thoughts up on the AppSense blog:


There are a number of comments that focus on whether Windows is a holding us back or the way forward and similarly whether RIA’s are the answer or not. I think that this is a more general problem than either of these technologies. For instance, it could be that some application providers choose to deliver applications as ‘published applications’ over RDP/ICA/HDX/PCoIP/etc. into a desktop hosted by another provider. It could well be that that desktop is a Windows OS as we recognize it today or it could be something else entirely that brings together applications and data for a user. And to Jason’s point, where the data is stored is up for grabs too.

The key point underlying my comments above is that we have been breaking down client computing into separately delivered components since the arrival of application publishing. This is just the next stage but it is a huge change because we are now bringing together components some or all  of which are externally hosted. The goal of this ‘Federated User Environment’ is to provide integration across the multiple hosted solutions.

As to whether the ‘User Environment Server’ should be customer hosted or out in the cloud my initial thoughts are that organizations would want to host this to give them control but that could change long term. As Kalle says, the big challenge here is getting everybody to agree to do this.

Martin Ingram (AppSense)


I actually wonder if it's possible anymore to commonly agree on any one standard, which is rather instrumental on success of this common user environement management.

What I mean by this is that we have whole lot of [mainly Internet] protocols in use today, that pretty much everybody uses. SMTP, HTTP, DNS etc. One common thing for these are the fact that they were developed as (mostly RFC) standards couple of decades or more ago. The IT world was very different place back then, and especially relevat for this discussion, it was very small compared to all-networked world of today. This enabled making of certain underlying standards that all began to use, and those are - at core - pretty much what we still use today.

Now, I challege you to name at least one as significant standard from, say, past 10 years that has gained so widespread adoption that pretty much everybody agree on using. In the world of today, everybody wants to make their own standards (broker protocols, RIA platform, remote display protocols, and the list goes on forever)  as the process is mostly driven by commercial entities who, for commercial purposes, need to land-grab as much marketshare for their technologies as possible. And there's so much more dissident interest-parties today than there were in the early days of networked world.

This, I think, is the biggest problem on any hypotethical user environement standard. Even ISO/ECMA/whatever based standardazation is not really an answer here, as we can witness from whole OpenOffice XML and Microsoft Office XML standard fighting.

Well, I certainly don't want to be a harbinger of doom but I see so many practical (or political) problems with this whole thing, in addition to technical, security etc. problems already discussed here. Trust me, I would love to see this happen but knowing how world spins, I have hard time believing in it!


Why wouldn't you just leave it local so the user can decide what they want to share with an outside vendor. Sorry to be obtuse and obvious, but I don't see why, when accessing a cloud, that the user wouldn't want to store their data on their local device. Making that easy would be a device manufacturer's problem (developing a standard is almost silly because platforms make themselves relevant ... not the other way around).

Sorry, again.