What I learned at VSLive! New York

I had the opportunity early last week to attend the VSLive! New York .NET Developer conference from 9/8 thru 9/10 and I learned quite a bit from my attendance.  For context, the following is the list of talks that I chose to attend…

Monday

  • Best Practices in ASP.NET 2.0/3.5: defending yourself from worst practices by Richard Hale Shaw
  • The ADO.NET Entity Framework and Entity Data Model by Jackie Goldstein
  • Controlling AJAX when you’re out of Control by G. Andrew Duthie
  • ASP.NET AJAX Application Design by Fritz Onion
  • Building Effective Data-bound Applications with WPF and Silverlight by John Papa

Tuesday

  • Silverlight 2 with Expression Studio: a developer’s point-of-view by David Isbitski
  • Programming the ‘Beyond Relational’ features in SQL Server 2008 by Lenoard Lobel
  • The Zen of ASP.NET and MVC by Javier Lozano
  • Building Controls in Silverlight 2 by Fritz Onion
  • Silverlight, SOA, and Objects by Rocky Lhotka

Wedensday

Why my Choice of Talks?

The first thing you may notice is that my selection of talks to attend was pretty eclectic — some from the Silverlight/WPF camp, others from the ASP.NET track, and still others from the data/database track.  This was intentional, of course.  Since so much data about this stuff is already available on the Internet for anyone interested in spending time reading blogs, watching screencasts smile_wink, or posting questions for forums my point in selecting these topics was largely to make use of my time there to focus in mostly on things that I just hadn’t yet had time to dig into in my off-hours.

For example, since my company focuses almost exclusively on software development consulting for larger enterprise organizations we have no immediate need for Silverlight in our repertoire but its something that I always wanted to at least begin to get my feet wet with just to ensure that I’m fully aware of the technology’s capabilities and limitations when looking at proposing solutions for our clients.  Bottom line, BTW: Silverlight 2 still has little applicability to inside-the-firewall apps that will never be public-facing (IMHO) since its support for services, databinding, and other ‘baseline business expectations of client software’ is still way too raw compared to any of the other MS-sponsored alternatives (ASP.NET AJAX or Winforms).  Unless your clients are more interested in spinning, morphing graphics for their internal apps than responsiveness and rich UI interactivity, don’t bother with Silverlight for the time-being for enterprise applications.

General Overview

Like most conferences of this genre, both the topics and the speakers varied wildly in terms of value for me.  Some were rather introductory in their topics and their content while others I found to offer some quite useful value for my time.  This is what you get when you offer a conference designed to (somehow) appeal to developers of wildly-varying skill-sets and background, I think.  Some attendees will be bored to death and others will be completely lost in some topics.  Overall, I consider the conference to have been a good use of my time, but in the future I personally would prefer a distinct more advanced track offered that would provide more challenging topics and deep-dive info for people like myself with a significant background in a lot of the technologies being discussed.

What I Learned at VSLive! New York

So what was the big take-away from my attendance at the conference?  The single most important thing that I learned at VSLive! New York was how incredibly lucky I am to be working at a place like Microdesk.  No, really.  When the entire room full of conference attendees was asked "how many of you are still running VS 2005/.NET 2.0?" and over half the room of 200+ raised their hands, I was (personally) floored by this.

VS 2008 was released nearly a year ago, offers significant tooling improvements over VS 2005, and still allows devs to target the 2.0 framework from within the new IDE.  Given all this, I was amazed how many people are still on the ‘legacy’ IDE due to ‘corporate policies’, lack of upgrade funds (I guess clearly not everyone doing ‘real’ production software engineering using MS technologies is on an MSDN Premium subscription), or other internal "its already good enough" inertia.

I also came away happy that as a software engineering consultant we are constantly switching projects from one client to the next and so this avoids our getting bogged down in multi-year projects that lock one into years-old technologies.  Instead, we are (typically) afforded the flexibility of leveraging whatever technology makes the most sense to solve our client’s problems — in several of my discussions with other conference attendees, I was reminded again and again how truly uncommon such opportunities are in many software engineering efforts and it made me even more thankful for the environment within which I currently practice my chosen profession.

The ALT.NET Chasm?

The last thing I was reminded of at VSLive! New York was what its like to be surrounded by developers who (for better or for worse) have near-completely swallowed the Redmond-offered lines about how best to develop software.  The sheer lack of anything more than cursory name-recognition among most attendees for many of the TLAs that I consider best-practices for software engineers like TDD, SoC, SRP, IoC, etc. was somewhat frightening to a confirmed ALT.NETter like myself and it reconfirms for me the size of the incredible chasm that exists between the ‘average’ .NET developer (whatever that means!) and the values proffered by the ALT.NET community.

Surrounded as I am at work with other software developers who tend to share my values and approaches to solving problems (not much of a surprise since I participate in our hiring process!), I had completely forgotten what its like out there in the majority of the rest of the .NET software development world. 

While its not (to my knowledge) the mission of ALT.NET to make everyone else ALT.NET, my forced re-immersion into the ‘general’ .NET developer population certainly has reinforced to me in a rather stark way why Microsoft’s focus, tooling, and technologies have the focus that they do.  Rather than seeing to my needs as an ALT.NET developer, Microsoft is focused strongly with their developer technology stack on making these other developers productive.

I’m not certain that this is a bad thing at all — by lowering the bar for being an effective .NET developer, Microsoft managed to swell the ranks of .NET developers to a size at least near that of the Java programmers in a (relatively) short period of time and from a business perspective, this has to be a good thing for them.  Their own challenge now is to redefine what it really means to be a ‘productive’ .NET developer — it has to reach beyond ‘initial prototype via drag-and-drop demo-style apps’ to ‘building something that is flexible, adaptable, maintainable, and extensible that can serve the long-term needs of the software users’.

If Microsoft can successfully redefine what it means to be a .NET developer in these terms and provide tooling that reinforces these goals instead of the RAD demo goals, then the principles of ALT.NET will be reinforced by Microsoft tooling rather than an afterthought.  Introducing a formal unit testing framework into VS 2008 Pro and above is just the first in what I hope will be a number of successive moves down this very path that (with some luck) will result in the dissolution of the ALT.NET movement since its very reason for being will cease to have validity.