YARI2 (Yet another refactoring iteration) (Final) 25 July 2008
Posted by Baz in technical.Tags: do-it, gui, ncover, Presentation Model, refactoring, v-base, wpf, youthnet
add a comment
For the past few weeks we have been working on converting the remaining main section (organisation + opportunities) to Presentation Model. If you are not familiar with Presentation Model read Martin’s blog post on 4th June 2008 (below) which gives a brief summary of the pattern.
By moving to the Presentation Model we have been able to increase our Test coverage significantly resulting a greater chance of detecting any bugs which could be introduced as we add more functionality.We use NCover to generate code coverage reports which indicates the percentage of the test as well as highlighting line of codes which are not covered with the test we have.
We mainly focus our tests on the Controller of a user control as that is where all the important stuff happens.
From Tuesday, It will be all about adding more and more new functionality iteration after iteration.
Until next time, its goodbye, ciao, adios
YARI (Yet another refactoring interation) 4 June 2008
Posted by martin in Uncategorized.Tags: Add new tag, DDD, gui, nHibernate, Presentation Model, refactoring, v-base
1 comment so far
We have just started yet another refactoring iteration. The last one for a wee while, I’ve been told. It’s nice to have had the chance to take a step back and change some of the things that can come back and bite you later. In the previous refactoring iteration we concentrated on changing the way the database was structured and started with a schema that barely fit on an A3 page even with the smallest possible font and ended the iteration with a schema that shows quite clearly on an A4 sheet. The same functionality with less complexity. Success!
So this iteration we are aiming at the domain and the gui code for one of the main areas of the application. We will be shifting the gui components from autonomous views (gasp) to a version of the presentation model called Model/View/ViewModel . This is a pattern that is fairly simple to implement with WPF’s excellent data binding model. The main reason for implementing this model is the fact that it makes it easier to test gui components in code but as it’s similar to the MVC model it also has other benefits. We have all successfully used this pattern to implement and test the latest gui components that we have written in recent iterations and this iteration we will be going back and converting the older code over to this model so that we can properly test them. Rise ohh rise almighty coverage value…
At the same time we will be adding an entity translation service in to convert from the nHibernate data classes to a true domain level entity for volunteers. This will allow us to get around a few problems we have with our usage of nHibernate. We have always generated the data classes from the the mapping files. This is setup as part of the build process and works very well. We have a modified version of the nHibernate hbm2cs tool that generates partial classes so that we can extend the generated classes without having to worry about custom code being overwritten the next time you run a build. This unfortunately only goes so far. We still needed a way of adding in business rules and validation rules to the properties of these classes in the generated code. We could have beaten the code generator with a stick until it allowed us to implement these features in the nHibernate classes but I just didn’t like that idea. It seemed to me that an entity translation service and a new domain level class would be a more effective solution for our rules problem and also for better separation of the application layer from the data layer. It also means all those strange things you have to do to get your data stored in a database can be hidden in the entity translation service which in turn can be hidden behind the volunteer service layer. Then you can have an application layer class that works the way you would like it to work and don’t have to let the database schema and nHibernate dictate the way your application is coded. Maybe I’m just a control freak but that sounds good to me.
refactoring iteration 28 May 2008
Posted by Baz in Uncategorized.Tags: refactoring, v-base
add a comment
Yesterday, as I was about to start coding, a blue screen appeared with an error message. I restarted the machine, believing a simple restart would solve it, how wrong I was!!!
My Windows XP was corrupted and after it was examined by a Technical Support member, it was necessary to install a clean copy of XP. Which meant I spent most of the day installing and configuring software on my machine.
In the process I created an image of the machine so that should a similar scenario arise, we would not need to spend as much time installing and configuring all the required software.
We are currently doing a refactoring iteration, changing the way which we store the lookup tables in our database. We are currently doing regression testing to make sure changes we made have not affected the way the application works.
iteration 10 21 May 2008
Posted by Tracey in Uncategorized.Tags: Accessibility, refactoring, skills, v-base
add a comment
yep, we’ve broken 2 figures on the iteration count, woo hoo! another refactoring iteration.
on monday we drove iteration 9 into the corral. this was sofia’s first proper iteration and martin was tasked with introducing her to the intricacies of the v-base codebase. despite the overhead of induction, the 2 of them delivered some functionality that takes us into some new territory for v-base, skills management, which seems to be the current hot topic. martin’s also been making progress on accessibility and if all goes to his plan, v-base 3 will be a truly accessible product. outside of the client development, ben’s been working on user account administration, which contains functionality to make lots of our users extremely happy. it did me, because it will deliver the kind of control that some of our users have been hankering after for ages. what about the rest of the team? well, our intern sheetal is, with olivier’s help, skilling herself up in spring and subversion; olivier has been immersed in system administration tasks… orchestrating virtual servers, installing databases, upgrading our various tools (this may not be his ideal way of spending his days but at least he’s not having to deal with recruitment agencies
); paul and camille have mainly been tied up with other youthnet projects and i’ve been wrestling with the product backlog in jira and starting to get to grips with expression blend, so that i can input more into the actual development. and baazi? he’s been on annual leave for a couple of weeks, writing his final university exams. busy us.