Karl was weighing in today about his thoughts on how the productivity promises in ASP .NET 2.0 haven't quite panned out the way he wanted them too. In one sense, I hear what he's saying, the 70% "code reduction" isn't there for enterprise users. Nor was it intended to be. The rad style development of dragging and dropping sql datasources and wiring things up was intended for a different scenario than Karl was into.
One thing we can note from the history of programming and development is that over time, we have gotten more tools, not less to work with. This is indicative of a problem set that is limited only by the human imagination. As such, I would boldly suggest that no tool or language is ever going to be the end all across all problem domains.
But I digress. Where has ASP .NET 2.0 made me more productive? Certainly not in the middle tier, but:
- Superior xhtml compliance allows me to spend much less time futzing with the page markup.
- Not an asp .net feature, but having visual studio not "help" you with your markup rearranging it like it used to ensures my markup is readable and thus easier to maintain.
- I've spent some time of late with the object datasource... it's swanky, I like it... but I like the two line databinding code in the code behind better because I feel that as a developer, and like many developers, I tend to look at the codebehind first, and using page controls for datasources tends to hide the fact that they exist. (karl- you did forget to mention that even though your 2 line codebehind is shorter there, you have to manually create all the columns in your grid rather than selecting them from a list. I think you actually lose there *shrug*).
Like Karl, I also have a "membership" provider that I already coded back in the day. I've thought about porting it to the new version but I'm unconvinced as to the value since for the internal apps we don't email reset passwords or anything like that. I'll probably end up doing it someday when I'm bored and have time, but it's not a high priority.
Master Pages are a beautiful, wonderful productivity enhancement. Don't believe me? Remember the old days having to put user controls on every page for consistant layouts? Ever have to add or remove one of those and have to go through every page stripping or adding it? 'nuff said. The kerfuffle I've had with master pages has been limited to figuring out the best way to pass events around to the page content and master page content, but most of that is simply due to my inexperience with the master page concept and that I absolutely hate the way c# does events. (My old position was all VB .NET and I feel like the VB way for events is way more intuitive than the c# equivalent)
As other posters on Karls thread picked at visual studio, refactoring problems etc I tend to think that's a completely separate issue than how ASP .NET 2.0 works. The compilation model tripped me up the first few times I played with it but it has been recognized and improved since then.
In the end, I have to credit CodeSmith as the biggest bang for my buck productivity enhancer in the business and data layers. With the xhtml compliance and improved server controls, I spend much less time worrying about difference in browsers (it was painful in the 1.1 days achieving compliance across multiple browsers).
Atlas I have played with the march CTP and I must say that before atlas, I used the Telerik callback control with pretty good success but Atlas blows it away. I basically created a form with add/update/delete for addresses in the traditional postback methods. Installed Atlas, watched Scott Guthrie's easy and informative video slapped a few lines of markup in and whammo, I had a whole page running in AJAX mode. It was sweeeeeet. I wouldn't call Atlas a productivity enhancer persay, since it's more work than using traditional postbacks, but from a user experience perspective it makes a leap over the old school style.