Big picture thoughts on software and other topics

July 29, 2008

Philly.NET Workshop - Slides, Code, and Lessons Learned

by Brian Donahue

Tonight, Erik PetersonBroken Link: http://erikbase.blogspot.com/ and I did a hands-on workshop as part of Philly.NETBroken Link: http://phillydotnet.org/'s workshop series.  Our topic was "Building Maintainable, Testable WebForms Applications with the Model-View Presenter Pattern."  Without further ado, here are the slides and code from the workshop.  This is the "final" version of our basic app, which is farther than we got in the workshop, so hopefully this will answer some questions that we didn't get to. 

SlidesBroken Link: http://www.persistall.com/images/persistall_com/MVP%20Demo%20Slides.ppt

CodeBroken Link: http://persistall.com/images/persistall_com/MVP%20Workshop.zip

Model-View-Presenter
Model, View, Presenter!

I'd like to thank everyone that came out and Philly.NET for hosting us.  This was the first workshop for both of us and your feedback was incredibly valuable.  We definitely got some feedback that we'll incorporate in the future.  One of the challenges of teaching TDD is finding the balance between examples and/or approaches that are too simplified to be useful, vs. throwing way too many concepts and/or tools at the audience for them to be able to follow along.  Things like rolling your own mocks and stubs vs. using a framework like Rhino Mocks - the former may be easier to understand initially, but adds a lot more busy work and complexity to the test library, and can end up being almost as hard to explain.  I tend to show all the tools and tricks, and hope that the concepts are made clear, and detailed usage can be researched further after the fact.  But, I do think I need to be very careful about this approach and do as much as possible to help people follow along.  I'm definitely interested in any tips or advice from those more experienced in teaching these things than I.

Also, some more technical details - I should have definitely used the default color scheme of Visual Studio, and not my crazy black background.  People made the valid point that it's easier to follow the code in the scheme they are used to.  Finally, starting out with a blank slate application was probably too ambitious for a 2.5 hour workshop.  We should have started with a little demo functionality to introduce concepts, and then added on top of it. 

In the last slide of the PPT deck there are some links to further references on MVP and TDD.

A couple shout outs:

UPDATE:  I'm wondering if anyone would be interested in a follow-up presentation at a Philly ALT.NET meeting where we could review the "final" version of the app in more detail, answer lingering questions, etc.  If you are interested in this, please leave a comment, or post a note to our  discussion group.