Introducing Cloud Light: a 10KB Application Runtime in Silverlight

Posted by Rishi on 13-Jan-10 7:38 PM - Comments (15)

Tags: , | Categories: .NET, Code, Silverlight, Technology

For the Mix10K smart coding challenge, I've create an application runtime that hosts, manages and runs cloud-based applications. The runtime is called Cloud Light, and per the rules of the Mix10K challenge the code and visuals weighs-in less than 10KB. The runtime environment also features an online application store from which you can download and install applications.

Cloud Light ScreenshotView the Cloud Light in the Mix 10K gallery and please vote for it.

Runtime Overview

  • Provides basic window management capabilities like opening, closing, activating, minimizing and restoring of windows
  • Allows you to install applications directly from the web
  • Installed applications information is persistent, with the applications themselves downloaded when the runtime starts
  • Allows you to uninstall applications with a single click
  • You can also install Cloud Light as a Silverlight Out-of-Browser Application (right click and choose "Install Cloud Light.." from the context menu)

Title Bar Overview

The Title Bar shows the active application's title and also show the current date-time. Additionally, it features four buttons on the top-right corner that enable full-screen toggling, showing/hiding of the application store, minimizing of the active application and closing of the active application.TopBar

Applications Store Overview

The online Application Store lists all currently available application in the Cloud. To install any application just click on the entry title, and the application is downloaded and installed - once installed, it should appear in the Application Bar. Going further, more applications will be available through the store.

InstallableApplications

Application Bar Overview

The Application Bar hosts all the currently installed applications, each application getting an icon for itself. The icon also with a highlight represents a running application, and each application can only have one instance running at a go. A single click to an application icon starts the application, if already running it activates it, if previously activated it minimizes it, and if minimized it maximizes and activates it - really simple, right. Also if an application is open, Shift+Clicking the icon closes it and by Ctrl+Shift+Clicking on the icon you can uninstall the application.

AppBar

Extensibility

Apart from the limited applications selection available in the Application Store, you can also create your own applications and install them using the Console application. In a separate post I will detail how you can create your own custom applications and install them.

InstallAppCommandLine

Another simple point of customization is setting the wallpapers, again through the console - so something like "setwallpaper -url:http://adsoftheworld.net/download/windows7/winwall7057_23large.jpg" will change the background into:

CloudLight3

And in addition to the built-in Commands, you can also create custom Console-based Script Commands, and have them automatically register with and be availed through the Console Application (see Silverlight Console).

Summary

So for 10KB worth of c# code and xaml, I think we have a surprising functional runtime that is both extensible and light thanks to Silverlight. It in some-ways can be seen as a prototype for a managed Cloud OS that relies on the Cloud but provides applications in the form we know them today. And in terms of the design it speaks to the simplicity and discoverability that iPhone brought, something that I think needs to be embraced in desktop-applications' designs.

View the Cloud Light in the Mix 10K gallery here
and please vote for it if you like it.

Acknowledgements
Default Grass Wallpaper by Radoslaw Rokita [vathanx@live.com]
Application Icons by Judge

Ok firsthand, let me qualify the title that this is "part of the vision". Now, you might have seen this great video of Microsoft's Vision for 2019 of what software and hardware might look like, and how we might interact with it in the future. It is really fascinating stuff, especially for a technology and UX enthusiast like myself. Anyway so, I wanted to create a demo app for my shiny new framework (which you can read up on other posts), and I kinda thought the kind of interactivity in the video is what my framework is all about - so I went out to replicate the UI using my little framework called nRoute.

Here are a couple of snapshot of the original UI, I referenced:MicrosoftVision2010
Snap1
 Snap2

I created the demo app with Blend 2 and Visual Studio 2008 (no Illustrator or Photoshop) in about 2 days - faster than I though I would. However, my work is rather preliminary, as I want to really develop on these concepts with Silverlight 3 and all the goodness that it brings. In fact, with the Silverlight 3 version of this app, I plan to feature much more of visuals shown in the original video (hello perspective 3D and multi-touch). Below are some grabs of my interpretation:

nRouteFutureDesktop1
nRouteFutureDesktop2
nRouteFutureDesktop3
Currently the application is very light on content, as it was primarily designed to showcase the technical marvels of the nRoute Framework ;) but given some time and inclination I think we can have a little piece of the future rather soon.

To run the demo click here (uses Silverlight 2) and for the source code visit http://nRoute.codeplex.com. BTW, I call this app the "Future Desktop".

UPDATE: for those technically inclined, this post goes over the nRoute-related features showcased in this demo app

The "Sixth Sense" - no, not the movie..

Posted by Rishi on 15-Mar-09 1:37 AM - Comments (0)

Tags: , | Categories: Technology, Cool

(Real World + Semantic Knowledge + Internet) * Cool Technology = Awesomeness, have a look..

I love these broad concepts of the semantic knowledge, communal knowledge, user-empowerment all mixed with the web and real-world using "human-oriented" technologies.. It's the future, and we are already on that road with things like twitter (chatter), touch, wikis, semantic-web, xml, google etc. What is also interesting and relevant is how we are gonna bridge the gap between structured and un-structured information. It is all so fascinating stuff, but for now let me unceremoniously put it under the "cool" tag..