Tuesday, February 28, 2012

Learning ASP.net - an approach

I have personally met at least one hundred people who feels that ASP.net is their primary skill-set. Some of them  are drifting to MS share-point due to some kind of "gravity" or "pull".  A sizable majority (more than 90% ) just fiddle with the pages and most of them are using the technology through some kind of home grown framework.

Recently,I happen to take a serious look at ASP.net MVC , from an architectural perspective. Being a person who has worked with Struts and Spring MVC ( through Groovy/Grails ) , I was trying to map my knowledge to the ASP.net pipeline.

Since ASP.net mvc was an open source project and the release of ASP.net mvc did not co-incide with a new realease of ASP.net web forms,I was sure that the ASP.net mvc technology might have been implemented using the existing ASP.net pipeline.

I began to ask about how ASP.net MVC is implemented through HTTP modules ( I suspected url routing might be module ) and handlers. To my surprise,even the most seasoned veterans of the technology do not have a clue regarding these stuff.

Now,I understand, why most people take months to learn ASP.net technology. They only have a peripheral familiarity with the request/response pipeline of the ASP.net.

In a week's time,I figured out the ins and outs of ASP.net by contemplation,consultation and digging into the code.

Ideally,Every developer should try to understand the ASP.net request processing pipeline to have command over this technology.

"Every ASP.net url request is passed through series of Modules (some kind of implementation of  IHttpModule  ) and finally reaches a Handler ( some kind of implementation of IHttpHandler ) "


1. ASP.net web forms are implemented through ASP.net modules and PageHandlerFactory
2. Web services are implemented in these fashion
3. Ajax.net is implemented this way
4. WCF web services follow the same pattern
5. ASP.net mvc follow this pipeline
6. For uploading large files,one needs to be familiar with IHttpModule interface


Invest time in learning the pipeline and have familiarity with how  above technologies are implemented. You will save lot of time for sure !

0 comments: