If you'd been ASP.NET group architect what are the top 5 changes that you would have done.
I've been asked this question more then once so I decide to take the challenge. I listed the changed by the level of importance (from my point of view).
1) NVC 2 as internal implementation of ASP.NET. MVC 2 is pretty common in other technologies, and not for nothing! If someone uses that pattern he probably found it more easy to work with and as major factor that helps system maintains. Implementing IHttpModule broke some of the Page abilities such as PostBack and
2) I don’t know if they design ASP.NET this way but I really like the Microkernel implementation of ASP.NET. I can find there kernel, internal services as HttpModules and external services as HttpModules. But if they have gone toward adaptive systems why they didn't implement Reflection and let us add our own events to the application and page events. That might be more useful then pile of events compiled in code.
3) Container, light container or even very light container. I think that there is lot of power in containers. Implementation of IOC and AOP might help those software infrastructure guys in enterprises to supply easily services to their co-workers: the developers. I even heard couple of MS folks argue that ASP.NET is application server. Application server without Container…. As far as I know MBF is going to save us with some level of container, let's wait and see.
4) Enable Post back to return just needed data to the client and enforce the changes in client side on given HTML control automatically. Most of the time that we use post back is just for update certain control as a result of changes in another control. So why we need to send all the HTML back from the server to the client, even if the HTML contain tens of Listbox that aren't going to change at all? Post back might be design in such a way that with little changes in the server side code and client side __dopostback method, the doPostBack can send request to the server and receive back just the needed HTML for given control. Then the __dopostback can update the given HTML control content and that's all. Probably much less data goes on the net this way and less tasks to be done on the server side.
5) Pluggable – It common those days that by given Interface I can write my own implementation of given service and by update certain configuration file the system will call my own implementation instead of the default one. Now, why can't I do that with Session, cache, and security modules? I know that Session object will be pluggable in 2005 but what about the others?
That's the 5 that think are the most important and naturally there are much more. But, don’t take me too serious. After all ASP.NET team found me not technical enough :-)