My job as a testing software engineer doesn’t really require me to do much development on my own, and when I get back home, the last thing I want is look at a computer and develop, even though that’s changing, its going slow. I have been trying to take the job of working with web development to satisfy my interest in usability engineering.
I have found that most of the developers have been working with ASP and some Ajax. From what I heard, things could get very messy in ASP and Ajax, especially since my workplace doesn’t really care much for being multi-browser friendly. When I first tried to open one of there websites with firefox, the CSS (or lack of) freaked out the browser and displayed the whole site out of order. I tried fixing it as much as possible, but it was a huge headache. I have successfully done that, but that raised a concern for me. Is there a better way of developing web apps that would better suite our development team?
Since my department is a Microsoft Gold partner, I decided to see what they had to offer. I found Silverlight, and thought I would give it a shot. I had a version of expression Blend SP1, which enables the creation of Silverlight 2 web apps. I started tinkering with it, but I found that it lacked some of the key controls that asp had. After some searching, I found the Silverlight toolkit on codeplex [LINK]. I have used this toolkit to create a not too complicated web app, but soon found a huge bug that made it so that I had to scratch the whole project. The tree view provided reset the chosen item, every time a button was pressed inside another opposite grid. I have very annoyed, and disappointed. At the same time, I felt like it was for the best. I will be alienating people who have linux and moonlight (Silverlight implementation for mono), since moonlight only supports Silverlight 1. I also felt disappointed, because I really liked the development environment of Silverlight. The solution file created from Blend is a Visual Studio 9 (2008) solution. The ability to switch between visual studio and blend to write code behind and then design again is just amazing. The separation of XAML code for the interface and the C# code behind makes it ideal for teams that have a separation between designers and coders. Furthermore, I liked Silverlight because I didn’t have to worry about how the pages are going to get rendered on different browsers, since the Silverlight player is available for almost all browsers, on Windows and Mac.
What made me think about Silverlight and not adobe AIR is the C# code behind. Most of the developers in my organization are C# developers; I didn’t want to take them away from their environment. Plus, I have heard that with AIR, there is no separation between design and code. Correct me if I am wrong.
I later experimented with third party controllers, like Telerik’s RAD controllers, which are beautiful and easy to use [LINK]. I might use these controls in the future. I also experimented with WPF, where I recreated the same Silverlight interface in WPF. WPF is a superset of Silverlight, so it was naturally more powerful, since it uses the same XAML code for design. 3D through managed Direct3D could be used and complex animation can be achieved, and well as the usage of imbedded WinForms components. WPF could also be used in a browser, but to use its full features, enabling some security privileges to the server machine has to be granted. XBAP (XAML Browser App) is what WPF in a browser is called. XBAP is not designed to be massively available as a Web App, since it requires Windows, manual installation of .Net 3.5 SP1 on the local machine, and have Internet explorer 7. I think by the time I write this, a Firefox plug-in might have been developed. For local Application, I highly recommend ditching WinForms and going for WPF from now on.
So, I went back to a basic ASP and Ajax design, but this time, I made sure the design works on all browsers (including IE8). I am looking forward to working more with ASP and Ajax, even though I would rather work with PHP and Ajax. I hate Microsoft for having such amazing development tools.