I've been doing several presentations lately on ASP.NET 2.0 so when I stumbled across Bertrand's blog posting which contained a great discussion on Whidbey features and comments from Alister on why things were they way they were (or not) I thought I'd pass it along. It's quite long but well worth it because both authors took the time to really state their case and provide great examples and context for their points. I felt this was especially relevant since I had some good discussions lately with some ASP.NET 1.x developers who raised similar concerns about Whidbey. I usually get three general reactions after doing a whidbey presentation:

  1. “This is AWESOME!! I love it! I can't believe how much mundane and tedious coding Whidbey is going to save me” (this is usually when I demo the new security controls, the web based admin utility where you configure your authentication providers, authorization (roles), personalization etc)
  2. “Oh my god! You're making it too easy... I won't have a job...” This is after I demo code-free databinding, themes, master pages, webparts, and mobile support. However, it's important to realize that a lot of the stuff that is now so simple and quick to do is annoying and tedious code that you would have to spend hours on using the current version (for example, using a datagrid and wanting to enable pagination, sorting, selection etc. Or, having to create a mobile web app project and duplicating your efforts, or creating your database tables/stored procs/DAL/business objects to support role based authorization or personalization features). So a better way to think of it is that Whidbey eliminates a lot of tedious coding so you can spend your time building much richer applications that support many more features and capabilities (so maybe you'll get a raise instead :-)
  3. “How am I ever going to learn all of this... I just got up to speed on the ASP.NET 1.x“ or “there's so much new stuff and it all seems so complex” (I find this comes up when I show things like webparts/advanced caching/app blocks etc. Basically things that some developers haven't ever had a chance to look at before and then seem instantly overloaded and view everything as being insanely complex). So, it's this last comment that I find is a great reason to head over to Bertrand's blog and read his email thread with Alister as they both do a fantastic job of explaining themselves.