|
|
I recently threw together a quick project for an internal customer who needed a spreadsheet turned into a web accessable database with a user base of about 5 people. We had decided to use EF and Dynamic Data since this was really not a huge app, and there was no sense in turning it into a month long project. There was a bit of a learning curve, but in the end, I knocked it out in a couple of weeks, complete with several lookup tables, a few many to many relationships, and a solid interface into a document management system out in the cloud.
There was some custom coding needed for a couple of field templates, but beyond that, it was quick, easy, and well recieved by the customer. Mission Accomplished!
....well...not exactly. A functional acceptance meeting a couple days ago revealed that there were actually going to be 2 child relationships thrown into the mix that they hadn't realized they had when we initially scoped the project. My one root table was now going to be split into 3 tables, with 1 to many child relationships to the main table. As I said, this was revealed at the Functional Acceptance Meeting.
Normally, this would absolutely suck balls, but I was excited, because this is where my risk on EF and DD was going to pay off. Imagine if you will, having to go back in, adjust your database, rewrite stored procs, rewrite your data layer, your model, your business logic, and your UI to accomidate this new requirement that was recieved as you were handing over a finished product. I'm not going to have to do all of that, and I'm going to gloat about it all day, live blogging as I fly through a couple weeks of work in less than a day. I will start at 8a.m CST and throw down some updates to this post throughout the day, and maybe a little on twitter, so keep checking back.
[UPDATES]
8:00 am :: Start adjusting the tables in SQL.
8:54 am :: DB redesign complete, checking with customer on a couple of minor details.
9:17 am :: DB Diagrams completed and printed, 1 table lost, 4 tables added.
9:21 am :: EF Data Model refresh picked up new tables but left artifacts in old main table that shed a few fields. Easy cleanup though, still have not touched any code, all work done in the designer.
9:29 am :: Realizing that the silly hack I did in the database for doc storage will have to be refactored.
9:41 am :: Launched debug and entered my first full record minus document upload. In less than 2 hrs I have a new DB and model in place and working, now on to the UI side of things.
2:38 pm :: Took a while off for lunch and a network outage, yet all prior functionality is back online and working. Only thing left is the export functionality needs to be tweaked, but will have to get together with the client for that. For all intents and purposes, I'm calling it done!
I honestly have to say, and I'm being serious, if I were to scope out these changes, I would have said 2 to 3 weeks, and probably would have gotten it done in 10 typical working days (including interuptions etc). If you have not made yourself familiar with Dynamic Data yet, I would seriously recommend it. It saved my ass today, and will really make me look good to my client.
By Hank on 13. November 2008 01:26 | Comments (0)
|