<< Home
Web development Using Object Orientation in ASP.Net!
Yesterday I met with some old friends at the Internet world exhibition and discussed development practices.
I was surprised that it seems there are still a large amount of companies developing websites and applications in classic ASP.
I wanted to describe, for those of you not already subscribing to OOD and OOP, the benefits of working like this in ASP.Net.
Why Classic ASP?
It seems that the two main reasons for classic asp development are:
- Existing proven code hasn't been migrated to ASP.Net because it's not a money earning exercise
- Developers who are still happy to write classic ASP cost less money, when you have existing ASP code it seems like an expensive exercise to move over to ASP.Net
This may seem like an old subject, especially when we are approaching the next release of Visual Studio and the third version of the dot net framework.
Note :A good link to check out for this type of migration is:
http://msdn2.microsoft.com/en-us/asp.net/aa336573.aspx
IMHO, from a business perspective I understand why it might be difficult to invest in what seems like 'just a different way of developing web software'. However, companies who employ developers have to consider their career paths.
Web developers are more often than not excited by the ability to learn and use new technology, and when allowed to utitlise it in their current employment, it's reason to not look for work elsewhere. If harnessed correctly this enthusiasm can become a very useful business tool; offering software that other companies don't - having proven that it works on signature sites or internal development.
I've heard CTOs and team leaders moan about the increased amount of time it takes to develop OOP ASP.Net applications over classic ASP app's. There is some reasoning behind this, but I beleieve the problem really lies with them, for not investing the time to discover what the advantages are.
If you are going through proper development processes and coupleing them with your business proposition, you can increase development time on subsequent projects through code re-use and existing class libraries.
Real advantages of ASP.Net and OO Development
There are many excellent web developers who are building ASP.Net applications and still building them as single projects and building these projects in what is effectively a procedural fashion. Having someone describe OOP practices doesn't often show any immediate benefit, where as demonstrating does!
Lets take an example of a company that offers, to its customers, two products; a web based e-mail tool and a web content management tool:
There is immediately one thing that appears to be common functionality :
- Creating and persisting html.
The development team(s) involved should start by thinking about the following:
- What are the common features, of creating and persisting html, for the two applications
- What is unique to the email app
- What is unique to the CMS app
You can then loosely define three classes, that should meet requirements:
- company.baseHTMLClass
- company.emailHTMLClass
- comapany.CMSHTMLClass
If both the emailClass and the CMSClass derive from the base class, the development teams can work on them seperately.
Extending this, the teams could create seperate projects for the email tool and the CMS tool, with both referencing the base project, allowing the teams to work on their own seperate projects, whilst helping each other develop the common functionality in the base project and classes.
With the proper source control (I recommend SVN and TortoiseSVN as the client) and development processes in place, this can make development teams more producitve to the business.
Extending this practice further, a company could have a CMS system that is being used for several customers, all the development teams work on their own website project, but also work on the core CMS system. As new functionality is created, in the the core CMS project, it can immediately be offered as new (chargeable) functionality to existing customers.
If you want to know more about development practices including OO and agile methedologies, and how errumm can help you with anything discussed in this article contact us using the form on the home page