Friday, May 27, 2005 6:07 PM
Christopher
If I only knew then...
Not what I know now, but what I'm learning
now. I recently picked up a copy of the src to FlexWikiPad.
I just wanted to see how things were wired together in there: I only have a very
old installation of FlexWiki sitting around that still looks like crap in
FireFox.
To his credit, Craig has
done an awesome job of making FlexWikiPad very testable - something I didn't
think was all that easy to do in winforms. Apparently, his dialogs are very
humble. He's using a pretty strict Model View
Presenter (or controller, whatever) pattern throughout the application. I
thought this was a lot of extra coding at first (it kinda is), but in the
process Craig has made FlexWikiPad easier to maintain and update thru the use of
mocks/stubs and tests with this pattern.
Currently, I've got this itch that I want to scratch with regards to PostXING that would have been so
nice to be able to test my way thru. I'm just hacking thru it now, and I've
done a pretty good job of messing everything up so far :) In my
defense, I'm still learning unit testing and when it comes to winform
applications I feel that there is a balance that I like to hit right on the line
of usability and architectural beauty. Anyone who has looked at PostXING's
source will soon see that my architectin' ain't so purty - it's still just a lot
of different pieces from different places glued together. I don't validate
everything that I should. I left fields that I intended to add
functionality for disabled but visible. Even up to 1.1 versions.
BUT...
...and this is a big but...
...it works. That was priority #2 for me with PostXING. Priority #1 was to
make something useful that I could use to learn winforms.
Anyways, I'm hoping that I can glean some insight off of people like Craig
that are way more knowledgable than me on this front. If I feel like the task
for PostXING to be testable is too great, I may just try to apply this knowledge
to future projects. So, thanks Craig for making FlexWikiPad follow a concise
pattern that I did know about but have never seen implemented with tests in C#
before.
Filed under: PostXING