I always got some affection towards the UI and design technologies as a hobbyist. Even though I’m working as a full time BizTalk consultant for a while now, in each and every project I kind of introduced a web project for some sort of monitoring/configuration type of work. In my current project, I decided to … Continue reading Silverlight on top of BAM data
I always got some affection towards the UI and design technologies as a hobbyist. Even though I’m working as a full time BizTalk consultant for a while now, in each and every project I kind of introduced a web project for some sort of monitoring/configuration type of work.
In my current project, I decided to use Silverlight on top of BAM database to create some cool management graphs. The below figure shows the screen shot of our services dashboard, giving all kind of information in attractive graphs. You can drill into each one of them to get more information.
I removed some metric information from the graph for confidential reasons.
I started this project on my spare time to get myself hooked into some of the new technologies like Silverlight, XAML, Microsoft Expression, VS 2008, LINQ etc. There is a wide misconception, Silverlight is only used for building media (streaming video/audio) based web applications, that’s the way Microsoft projected SilverLight 1.0. But with the release of Silverlight 2.0, that’s not the case anymore. It got inbuilt support for .NET languages, support for rich networking stack (support for both REST/SOAP based web services) and also it comes with a rich control set (Datagrid, Listbox, Combobox etc). Now there is no reason why you can’t use it to build some cool RIA (Rich Internet Application) business applications.
The architecture for the above site is quite simple. You got BAM data sitting in the SQL Database, a web service layer on top of it built using .NET 2.0 ASMX (we could not install .NET 3.0 for wcf, on production servers), a SilverLight 2.0 application built using VS 2008 + Expression Blend (LINQ is used widely inside).
Our SL 2.0 application talks to the Web Service asynchronously using the SL networking stack, and it renders some nice UI either using the built in SL controls or some open source controls like the chart shown above. You can also take advantage of the BAM portals Web Service interface, if required.
At PDC Silverlight team announced the availability of Silverlight Toolkit
in CodePlex, new set of controls like Treeview, Expander, Chart, numeric drop down etc, which will make your SL development even more easier.
Another cool screen shot from the same SL application. We got a composite orchestration which calls various underlying services (they are also built using orchestrations), below figure gives a clear picture of status of various underlying service calls. Some of them may not be executed due to business logic, some of them might return success, some of them might result in errors. There are 2 or 3 small button in each service calls, you can click on them to view the complete Request message, Response message or Error Details. Again I used Microsoft Expression Blend to design some user controls and flow chart to build this screen shot on top of BAM database (via SOAP based web service).
You can see the amount of value these SL application adds both to the management team and to our operations monitoring team. Time taken to diagnose live problems has reduced drastically after these application went live.
In fact I started writing this post to put a solution to one of the problem I faced, but the post went in a different direction. Anyway, you might encounter some unhandled exception as shown below while deploying your SL applications.
Debugging resource strings are unavailable. Often the key and the argument provide sufficient information to diagnose the problem. See….
There won’t be much information about it, using some snipper tool revealed the problem is mainly because the underlying web services cannot be reached. They were giving 404 errors. Fixing the URL in the ServiceReference.ClientConfig file resolved the issue.