I have been asked to write an application (visual application) that can be run both online and locally.

This application contains a lot of external data (video, images and audio) files so the main issue I have is deploying this over the web.

I want to architect this so that I only have to write 1 system and not a separate code base for the online version.

What I and a colleague have come up with so far is;

  • Tomcat/Application server - for the code logic
  • HTML Pages for the delivery of the content
  • A number of small Silverlight Scenes depending on the page that is severed.

I have only got a few months so writing 2 sets of applications is not efficient for me.

Is this a scalable approach? Are there better ways to write/deploy this type of application?

  • 1
    "A number of small Silverlight Scenes"? Would this be a windows only online app? What issue do you have with deploying this over the web? What do you want the user experience to be for the local version?
    – user40980
    Commented Jan 16, 2014 at 3:52
  • Essentially for both versions the SAME experience. The silverlight scenes should also work on Mac. My client is considering running this online aswell. So Id rather just write this system once. The experience should be somewhat graphical "Flashlike" Commented Jan 16, 2014 at 3:58
  • @IEnumerable my experience is a couple of years old, but when we attempted to build a Mac desktop app using Silverlight it was far too unstable to be acceptable. Commented Jan 16, 2014 at 4:53
  • Please provide more details about what online and local user experience should be.
    – superM
    Commented Jan 16, 2014 at 8:14
  • 1
    You don't want to write 2 applications, makes totally sense. Did you think about an architecture with one business layer (on your servers) with 2 separate clients using the API of the business layer? So you only create 2 "clients" or "interfaces" but all business logic only once? Then you can implement later also for example a native iOs/Android app using that business layer. Commented Jan 16, 2014 at 10:09

1 Answer 1


The basic approach is scalable.

Where you will run into issues is with Silverlight. MS goes back and forth about if they are still supporting it or not. It seems mostly not.

HTML5 with support for the Canvas object in the DOM mostly eliminates the need for Flash or Silverlight. It will run almost anywhere. And for those places where it doesn't (notably IE8 and below), you can shim your pages to include the additional functionality. The end user experience will be close to the same between all of the browsers, but not identical.

Pick a good framework for your needs. AngularJS and Backbone both are built toward business needs, not fancy graphics, so they would not be a good choice for the graphical side of your application. They both might be what you need for the standard I need a registration form, a place to pay form, etc. Either would be a good choice in that case.

A quick internet search turns up several canvas related frameworks. One in particular looks interesting: CAKE. It says:

CAKE is a JavaScript scene graph library for the HTML5 canvas tag. You could think of it as SVG sans the XML and not be too far off.

  • 2
    I have a similar situation for which I'm using node-webkit. Gives you a great way to easily package up your webapp into a desktop app with a fixed version of the browser. So far I've enjoyed it a lot.
    – J Trana
    Commented Jan 27, 2014 at 5:08
  • Something else to consider is mobile apps - PhoneGap is an open source solution for building cross-platform mobile apps with standards-based Web technologies like HTML, JavaScript, CSS.
    – Alexander
    Commented Feb 18, 2014 at 21:44

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.