Tuesday, August 17, 2010

Silverlight Technology — Runs in ANY Browser

One of the really great things about Silverlight Technology is that it literally runs in any browser — at least any browser running on an operating system that runs the .NET platform.

In this article I describe an expense reporting application that I wrote from scratch to demonstrate .NET technology being used with Silverlight, and deployed on a web site (which will be at TBD once I do the deployment). For now, I'll just include three (one is linked) screen shots of the application running on a local web server.

I was given this sample programming problem and decided to take it on as requirements for a "Silverlight application" to add to this portfolio because it's a useful way to demonstrate an Object Oriented design, coded in C#, with a .xaml front end.  The main application screen, shown on the left, is not very fancy; that's because the assignment called for most of the action to be in the "Expense Item (Details)" screen, shown on the right, below.
The "Expense Item" screen is designed to be very dynamic — to fully encapsulate all the low-level mechanisms called for in the requirements. One of the comboBox controls is static, but the other (where you pick a currency type) is 100% generated by C# code behind the scenes. Moreover, depending on what you do on the screen… many other UI elements change to "show you" what is allowed and what isn't. For example, the "Save" button doesn't enable until all of the required parameters have been specified; the "Override Exchange Rate" button is disabled if the "From" and the "To" currencies are the same (it would be nonsensical, otherwise). Each time you select a different currency all of the calculated fields on the form are updated. If you change any of the calculated values, the "label" that shows you which currency you are using is modified to show that the rate has been "hand modified" … and many more… All of this is pretty easy in Silverlight because creating "next-generation, rich User Interfaces" is one of the main goals of this technology.

I'll finish this description once I find a site to host this application so that you can experience the joy of Silverlight in action.