Playing Around with the Web: ASP.NET MVC, jQuery, and Silverlight 3
A few of the technologies that are getting lots of attention over the last 6 months are ASP.NET MVC, jQuery, and Silverlight 3. Everyone is talking about them on blog posts, video series, Twitter, podcasts, you name it. There’s plenty of information to be had if you want to learn about them. The only thing really holding me back is time. My current projects are mostly service-based with basic front ends for configuration. Not very sexy when it comes to being able to use all the hyped up technology out there. At least I can use .NET 3.5 and all its goodness.
My ASP.NET MVC Introduction
I’m working on a new project that has a front end that is well suited to be a web site. It’s a simple monitoring application that keeps an eye on a few services distributed across a couple of servers and monitors some application logs files looking for error conditions. When a service crashes or errors occur, we’ll send out an email to the administrators so they can take a look at it. I’m going to have a Windows service to monitor everything, and then use WCF to let the web site grab the latest data for viewing. Overall its a simple project. Perfect for learning a new framework.
I must say, so far I really like using the MVC pattern. I haven’t done a ton of WebForms projects in the past, but I can see why people really like using it. I’m not a test-first kind of guy (yet), but the easy unit testing is a plus. The flow feels more natural to me. I’m currently using the default view engine, but would love to give Spark a try since it looks cleaner on the code side.
I have another internal web app I wrote to control our Hyper-V virtual machines that I started moving over to MVC. I think it’s going to be a good fit since it’s data-based and there are discrete actions that can be taken against each VM. I might turn that process into some future posts.
Not having done a lot of web development, I never really looked into jQuery to see what it is or what it can do. It’s inclusion into ASP.NET MVC by Microsoft was my first time seeing it. I’m at the point where I don’t know what I need it for, but am trying to learn it to know for sure. Reading over the jQuery web site, I am amazed at all of the things it can do. I also really like that they have a UI library. I played around with the ProgressBar a bit. It’s totally over kill for what I used it for since I just need to display a constant percentage. Never the less I added it in to play around with it.
I’ve wanted to do a Silverlight project for a few years. I never really had the time or an idea for what I should do. So I sat down one afternoon recently and wrote a test app.
Our company has a team of engineers that handle support calls from our customers. We use Salesforce to manage the tickets. As part of the support we offer, we provide service level agreements of various levels to our customers for how prompt a response they will get. We currently have a ASPX page, which ties into a tab in Salesforce, which displays data from XML files generated by an Windows service reading from our internal SQL Server which has a copy of all existing cases. The ASPX page is really just a couple of DataGrid controls. We kept it simple so that it works on our Windows Mobile phones without any issues. It has met our needs for over 3 years.
I decided that I would make a Silverlight 3 app which would display the cases currently within their SLA. I was really interested in seeing how the Out of Browser feature worked and what the end-user experience was. I used a single DataGrid control with grouping to display the tickets based on their support plan. I haven’t picked up XAML yet, so that part was a little new. There were a couple of good blog posts I found (but didn’t save) on how to do the things I wanted to. I just used the WebClient to download the XML files as strings then parse them using the XDocument APIs. The end result was pretty decent for only spending a couple of hours on it. It would probably make a good series of posts, but I don’t think we’re going to develop it into anything. Everyone like the web page version better.
The tough part about Silverlight right now is that about 90% of all blog posts that come up on Google cover the beta versions. I took me 30 minutes to get the correct code to do grouping on the DataGrid control. The way it was done in the beta didn’t make it to RTM. I finally did find one post that showed an RTM example and I was up and running.
I really want to play around with Windows Azure. I thought I read some where that it will remain free for CTP users until January. Hopefully they’ll have a free offering that I can get a chance to develop against if I miss the window before PDC 09. I just need an idea of what to test!