Interview With Scott Guthrie
Elden Nelson sits down with the “father” of ASP.NET.
October 30, 2009
Editor's//Comment
Interview With Scott Guthrie
By Elden Nelson
If there's a"father" of ASP.NET, Scott Guthrie may well be it. Guthrie co-founded theASP.NET team six years ago. Back in version 1, he was the key architect,driving the design of the feature set. Today, as Product Unit Manager over theASP.NET and Visual Studio Web Tool Teams at Microsoft, he oversees thedevelopment, testing, and design of ASP.NET. Steve Smith - feature contributorand Technical Director for this special ASP.NET 2.0 issue - and I chattedrecently with Scott to learn a little more about what we can expect in the nextversion of ASP.NET.
Tell us a littleabout the ASP.NET team at Microsoft and how they work to create ASP.NET.
Basically, the team's broken down into three differenttypes of disciplines. First, there's program management, which is responsiblefor figuring out the feature set of the product: What are the features we needto build and how should they work? They work very closely with customers toidentify the common things people do over and over again, and figure outfeatures that address those issues.
Next, there's the development discipline on my team.Developers are responsible for actually implementing the features and designingthe core architecture of the product.
The third discipline on my team is testing. They'reresponsible for testing the product, figuring out the bugs and holes in ourstory and making sure they get addressed.
All in all, it takes us about 14 hours to build theproduct end-to-end on a clean machine. If you count everything that comes fromour team, there's close to 20 million lines of code. It's a fairly big product- lots of moving gears. We do a build basically every single day of the year.We kick off the builds usually in the late evening and have the build out inthe morning. From there, the testing team picks it up, start verifying it, getbugs checked in, and then gets the next build ready for the next night.
This process goes on for a year or two between releases.It's a like a steady, marching machine, where we figure out how to make thebest product possible, build it, test it, and then get it out to our customers.
As we've beendeciding what to include in this special issue of asp.netPRO, we've had to pick and choose from a pretty largefeature set.
Yes, it's a pretty massive release in terms of featureset. I'd say it's as major a release as our version 1 release was. Hopefully,it will take what is state-of-the-art of Web development today and bring itforward. It makes administration and deployment a lot easier. Performance-wise,it's going to scale tremendously. In fact, those are the three core themes wefocused on for ASP.NET 2.0: First and foremost, developer productivity; second,administration and management; and third, speed and performance. If you look atour feature set, you'll find you can put most of the new features into one ofthose three buckets.
What new featuresdo you see as key to supporting those three themes?
Well, for developerproductivity, we talked to a lot of customers and asked ourselves, "Whatare the kinds of things people need to do over and over again within theircode? Is it data access? Role-based security? What are the patterns of thingspeople are having to roll their own solutions for time and time again?" InASP.NET 2.0, you'll see we've component-ized these kinds of features and builtthem into the product. For example, we now support a built-in membership androle management system, so we can store usernames and passwords for you in asafe, secure location, as well as map incoming users into roles you define -without you having to write any code (formore on this topic, see GetPersonal by G. Andrew Duthie. - Ed.).
We've also got Master Pages, which allow you to do UI pageinheritance across a single site, so you can define a single-page template thatdetermines the overall site structure; every page on your site then effectivelyinherits the layout of that template (formore on this topic, see StandardizeYour Site FastWith Master Pages by Paul Wilson. - Ed.).
We have things like a navigation system, which helps youkeep track of links throughout your site. Rather than hardcode links on anyindividual page, you can now define in an XML file or database for the linkstructure of your site. Then, from code, you can quickly figure out what pageyou're on, and what links to other pages you should show.
We have Themes, which allow you to "skin" the UI of yoursite. All these features work well together, so you could, for example, use thepersonalization system to store UI preferences for individual users - whetherthey like the metallic green theme or the wacky blue theme. I can use a themeto dynamically apply a skin to the site, so when that user comes to the site,the appearance is personalized for that person's preferences.
We have Web Parts, which let you do rich portal-stylecustomization of the UI, so that end-users can drag-and-drop bits of the pagewithin the client browser, re-ordering what the page looks like (for more on this topic, see Meetthe Web Part Framework by Stephen Walther. - Ed.).
We augment all these infrastructure features with morethan 40 new server controls out of the box. These enable declarative supportfor data access, security, wizard navigation, cross-page posting, tree views,menus, portals, and more. What would take 100 lines of code today with aDataGrid - paging, sorting, editing, filtering - you can do completelydeclaratively with two lines of code (formore on this topic, see BindYour Data in ASP.NET 2.0 by Steve Smith. - Ed.).
For administrationand management, we're trying to ensure that administrators love ASP.NET asmuch as developers do today. We're focusing on features that enable deployment,management, and the operation of ASP.NET servers. For example, in ASP.NET 2.0,we now have a built-in config management API, so you can programmaticallymodify web.config and machine.config files. This works both locally andremotely.
We also have an NMC admin tool that snaps into the IISadmin tool. Rather than having to write code or work with the XML directly,administrators can directly graphically adjust settings for their Web apps.