Saturday, May 9, 2009

My Current Project

So I’ve been tasked with re writing the booking engine ( basically the check out process for reserving a room at a bed and breakfast ) at work.  The current system was written five years ago and with what seems like a conscious effort towards obscurity, bloat, and inextricability.  The current system was some time after it’s creation cloned and the clone was used to access product listed on a listed on a winforms product.  It’s a little complicated.  

The two use different databases: SqlServer and Oracle, and have diverged considerably over time. There is, as one might imagine, an awful lot of logic in the code behind, the middle tier is composed of almost all static methods and the data layer is a combination of a number of messy home rolled ado wrappers using in line sql.

I’m to combine the two processes into one as well as add considerable new functionality and checkout logic.  I will create a seam where the property ( a bed and breakfast ) has been chosen and the book it button is clicked, and replace everything through where the reservation conformation screen shows.  Sadly I will most likely have to interface with some legacy objects such as the credit card processing object and who knows what else.  And of course I will be using the legacy database schema.

This promises to be a rather exciting project for me.  At the very least I will be able to create a proper business process, in a middle tier, using nice clean SOLID principles.  I will also be able to interface with webforms in my chosen manner ( see next post, if I ever write it ) and hopefully I will be ale to use NHibernate for data access, at least for some of it.  I will be slipping structuremap into the project.  If they don’t like it I can always back it out and use a poor mans dependency injection, but the hope is that they will think DI and StructureMap in particular are very cool.  I believe and or hope that this will sow the seeds of future patterns ( i.e. using NHibernate, SOLID, StructureMap etc ) for future projects.  Hopefully it wont also cost me my job.  You know how people love change.

No comments: