Well, another year has come and gone, and as always, the end of the year seems to have sneaked up on me. This month marked the second full year of Developing For .NET. I’ll soon be gone for the Christmas holiday, so I thought I’d go ahead and post my end of the year reflections now.
From a .NET perspective, the last 12 months have been quite a journey. I have spent most of my time learning and exploring a whirlwind of new technologies: Visual Studio 2008, .NET 3.5 (and SP1), LINQ, ASP.NET MVC, WPF, Silverlight 2, Expression Blend 2, Expression Design 2, Expression Web 2, and WCF. I’ve spent more time in Sql Server than ever before, although I’m still using 2005. I’ve given 3 presentations for RVNUG, presented at the Richmond Code Camp, presented at the Roanoke Visual Studio 2008 official launch, and taught dozens of classes to my co-workers. Along the way I’ve spent countless hours reading .NET books, watching video training, and working through a mountain of tutorials and articles on the Internet. All in all, this has been the busiest year of my professional career, and I’ve really enjoyed it.
So, how’d I do?
In January I posted a list of Resolutions for 2008, so I thought it would be interesting to see how I did:
Learn Blend, XAML, and WPF
I actually did OK here. In fact, I have transitioned completely to WPF for all my Windows development. And I’ve really come to appreciate Blend as a superior design tool. This one was a success.
Finally learn ASP.NET and publish an ASP.NET driven website
Well, sort of. I learned enough ASP.NET to conclude that I don’t really like ASP.NET. Fortunately, this effort was interrupted by ASP.NET MVC, which I do really like. With Silverlight 2, though, I doubt I’ll be doing much in this space (at least not directly – more to come on that). I’ll call this one another success, but only because the rules changed on me half way through.
Take a SQL Server class
Fail. The local opportunity I was pursuing for this never came to fruition, and I haven’t been able to travel this year. Maybe next year.
Publish a White Paper (already underway – watch for the announcement)
The funny thing is I had completely forgotten about this project. It is basically written, it just needs a final review. Along with input from Kathleen Dollard, I wrote an “Extension Method Style Guide”. If I can motivate myself, I’ll dig it up and finally put it out. Partial success since I did write the thing.
Post here at least once a week but more often as I am able
Given that my last post was Nov. 24th, I obviously failed this one. But I did manage 54 posts in 2008 (not including this one), which averages out to over 1 per week. So I’ll call it mostly a success.
Attend VSLive! somewhere other than Texas!
As much as I would have liked to go back to my favorite conference, I really didn’t travel anywhere this year. If I HAD gone, though, it would have been to Vegas. And I am still hoping to go again in 2009.
Find and become an active member of some .NET forums
I guess it depends on your definition of “active”. I did join some forums, and I have tried to answer some questions. Of course, between MVC, Blend, and WPF, I think I have asked more than I answered. I’ll rate this one a partial success.
With 2 Successes, 2 Failures, and 3 Partials, I’d have to rate it an overall success.
What I’ve learned
It certainly has been a big year for me. I’m sure that this slew of new technologies appears random and disjointed to my non-.NET friends and co-workers, who have to constantly endure my ramblings about the tech-du-jour I’m studying. Of course, this view is far from accurate. In fact, the overview of all these bits and pieces has been solidifying in my head for some time now. If you aren’t sure if or how all these things cohabitate, here is how the big picture comes together for me.
1) Visual Studio 2008 and .NET 3.5 - Obviously, these are the core of any development effort that uses these new technologies.
2) LINQ – In its many flavors, LINQ is the new cool kid on the block. Combined with Lambda expressions, LINQ simplifies and reduces coding. There hasn’t been a project this year I wasn’t able to leverage LINQ to the betterment of the project.
3) ASP.NET MVC – I see Silverlight 2 becoming my preferred web development software, but the XAP files still have to be hosted somewhere. Not to mention that there are still some things for which Silverlight would be overkill. And I really like the Routing mechanism and the control that MVC provides. So I see ASP.NET MVC becoming the reigning architecture for deploying all of my Web projects from here forward.
4) WCF – The possibilities here are extensive. At least at first, I’ll be using WCF to provide data to my Silverlight applications. Long term, however, I see using WCF to transport lightweight business objects across the network.
5) WPF – I have been to the mountain top, and I have seen … well, some really cool stuff! Having emersed myself in WPF the last couple of months, I now view Windows Forms as almost childish. That’s not to say anything against Windows Forms, which I’ve been a fan of for some time, but WPF is several orders of magnitude more refined and impressive. Now, when I work on a Forms application, I feel so constricted!
6) Silverlight – If you learn WPF, you’ve mostly learned Silverlight. Silverlight only supports a subset of WPF, but your skills will be interchangeable. And what freedom! For the first time, we can really develop Rich Internet Applications using a first class language like C#.
6) Expression Blend – Having said what I did in #5 and #6 above, I would also say this: I would not wish to develop WPF or Silverlight without Blend. It takes most of the drudgery out of your hands and allows you to really focus on design. It is NOT just for Designers! Skip the Microsoft hype about separating responsibilities – you are going to need to be able to at least do rudimentary design with Blend if you want to compete. Trust me, you’ll be happy you did.
7) Expression Design – If you break out of the Developer mode and begin exploring your Designer Dark Side, you will appreciate Expression Design. The interface is suitably familiar to Blend, but more geared towards simply designing graphics. The best part is that they can be exported as XAML resources, which makes them very easy to consume in Blend. The great thing about this is that it allows you to focus your Blend efforts on Application Design, and not get bogged down in Graphics Design.
So my recommendation would be to get at least basic knowledge of these technologies. This combination of skills should serve you well in the .NET space for years to come. I hope you had a great year, and I look forward to another year of Developing For .NET!