No more declarative programming please
Writing ASP.NET 2.0 applications is harder than before. Yes you read well, harder. If you are a newbie or an amateur of declarative programming, you're safe. I am not an expert, I place myself in the middle ground, but yes damn it it's hard.
I am struggling today with the real deal, a new project where as a serious programmer you have to do all the plumbing from behind the curtain.
Yes I admit I hate declarative programming. It's the lazy way of doing things properly; drag few controls, drag one datasource on your page, type few SQL commands, and hop your site is ready.
No sorry but for me that's not enough. I like to learn, I like to know what's going on in my project from A to Z. OK maybe not to Z, I let the framework doing the last goo by itself.
Take the Gridview control. It's great stuff, but if you want to learn properly all the possibilities you have on offer, exception of googling, can you use one of the dozen existing books on ASP.NET 2.0?
Not really! Unless I didn't buy the right book, they are falling in the declarative programming trap.
In ASP.NET 1.x, it was so easy to declare a datakey. It took me a while to understand the new way. Not that I think I am stupid but in all the books I have, they declare the datakey field on the Gridview tag.
Yes now it's there, but some reason they change the method name. Well of course this is only one little view on the issue.
You can see dozens of examples all built in one page, mixing the client side script, the user controls, the ASP.NET controls, and the sql datasource, and worst for most of them the code behind is written in the ASP.NET page itself!
Where are the layers separation? I don't want to sound like a war veteran, but I find more easy to go through my code if everything is done as a two or three layers project.
So my message to Microsoft, is to get more balanced in the next version of Visual Studio and give more on the code behind, and to the technical writers please less declarative programming (or in in proper english "spaghetti code").