Originally, I had planned on blogging about each major ASP.NET 2.0 feature independently. Themes, Membership, Roles, ADO.NET, Controls, and many more were already on my list, but I began to realize I had the same thoughts on most of them. Although I still plan to give a detailed review of each feature, I wanted to go ahead on voice my opinions on ASP.NET.
The Bad
ASP.NET, in my opinion, attempts to provide a RAD environment for developing new applications. DataSets, Membership, Roles, and Data-bound controls all show how ASP.NET doesn’t want the developer to waste time on mundane tasks. What I hate is the lack of flexibility with these approaches. For the same reason I dislike Rails, I dislike many of the extras ASP.NET has to offer.
For example, I don’t want to use the Membership API because I am porting an existing application to ASP.NET. Membership has a strict set properties a MembershipUser must have. This is inflexible. I don’t want to adapt my application to fit with Membership, I want Membership to adapt to my application. The same goes for many of the other tools in ASP.NET.
The Good
ASP.NET is a great foundation. It provides all the necessary tools to create a great web application. Although ASP.NET is a framework, it lets you pick the tools you need and want for your application. If you want to implement a custom authentication system, you don’t have to use Membership. If you hate DataSets, don’t use them.
For developing new Web 2.0 applications, I have no doubt that using all the built-in ASP.NET tools could greatly speed up development. For existing applications, or enterprise applications, many of the tools probably won’t work. But at least you have the option to pick and choose.