A couple of years ago my company started development on a web product that had designs for a very rich user interface. We started out building a AJAX HTML based application and realized very soon that we were having to work really hard to make HTML and CSS do what we wanted it to do and in many cases it just wasn’t happening.
Our UI designer was doing prototypes in Flex (which I didn’t know what it was at the time) but his stuff was really cool and we starting talking about it. I was skeptical about Flex at first, but it turned out to be a real platform for developing rich Internet applications. Anyway, to make a very long story short, we chose Flex as the front end of our .NET web application.
In the beginning Flex was cool. It gave us a strongly typed object oriented language (ActionScript 3) and IDE support in Eclipse. We were able to develop some really slick things in a fraction of the effort if we would have done them using DHTML/CSS. It was good, but working in Flex did have its negatives as well. Some of the things that we struggled with were
- We’re .NET folks, so there was a learning curve
- Extra time in working with two IDE’s to develop in (Eclipse and Visual Studio for Flex and .NET respectfully)
- The IDE plug-in was very buggy
- No refactoring support
- No real testing support
- Compiles painfully slow on large projects
- Not a lot of support from Adobe when we would have problems
I had been keeping my eye on Silverlight waiting to see how it was all going to play out. When the first beta of 2.0 came out, we started looking at it hard. Then in April at ALT.NET Seattle, I had the opportunity to steal a few moments of Scott Guthrie’s time and ask him about what to expect from Silverlight in the future. The guy’s enthusiasm about what they were doing completely sold me. We started our Silverlight project that following week and haven’t looked back.
I’m truly digging Silverlight. It is amazing to be able to write .NET code that runs in the browsers. I even forget that I’m working in a browser sometimes. There are a few things we miss from Flex, but nothing we couldn’t create ourselves without too much effort. Some of the things we now get to take advantage of are
- All the C# language features
- Passing .NET types to and from the server
- Testing Tools
- We able to use Resharper (can I get a “heck yeah” for this one?)
- Support of Microsoft
That last point is really important. Microsoft made us part of their early adopters program and we so have good channels of communication with the team. We tried to do something like that with Adobe, but I guess we never talked to the right person.
I think the Silverlight team has done a great job and I’m looking forward to the future releases.