Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

NDC 2009 Wrapup

I’m on my way back from the Norwegian
Developer’s Conference
in Oslo this past week.  I had a fantastic time
meeting some new people, hanging out with friends, interacting with a couple
heroes, and seeing a little bit of Norway.  Special thanks to Anders Norås for inviting me to NDC.  I had a
blast with the Bergen gang:  Mark Nijhof,
John St Clair, and Jon Arild Tørresdal.  I got to put a face
to Andreas Öhlund who is
developing the StructureMap integration with WCF and nServiceBus. 

I think all the talks were recorded and are going to be posted to the NDC
website for download.  I’ll blog the links as soon as they go up.  I gave 8
talks in 4 days across 2 cities.  I’m not sure I want to be one of those
professional speakers that do that a couple dozen times a year.  I had an
awesome crowd for my “Design and Testability” talk that I appreciated.  I had a
comparatively small crowd for my “Conventions over Configuration” talk, but I
had a lot of good questions afterwards that probably made that my favorite
session of the week.  Most importantly, I presented some preliminary design
patterns work on the “Screen Activation Lifecycle” from my book and I thought it
went over pretty well (you can see a little preview of it on Ward
Bell’s blog here

I got even more book ideas from Jonas
talk.  <bias>Apparently there are some crazy people out
there who think it’s not entirely insane to do “View First” navigation.  I need
to cover that pattern in the book and pretend it’s not a nutso thing to

Lastly, I gave my “Lessons Learned from StructureMap” talk one more time.  I
think I’m going to retire this one permanently, so I might try to blog it out
over the next 2 months. 

Upon reflection, I think my favorite thing about NDC was that there was a lot
of more or less ALT.NET-ish content (and the older speakers from the bigger
software world that we admire), but we weren’t in special camps or the “Agile
gutter” track like in the DevTeach’s I went to a couple years ago.  I love that
the tee shirts for the conference said “Legalize Unit Testing.”  I don’t ever
see ALT.NET becoming completely the mainstream, but it’d be nice to stop being
this strangely alternative stuff on the fringe.

I got ambushed by Hanselman and recorded
for Channel 9
spouting off on 3 hours sleep about “Executable Requirements”,
StoryTeller, apologizing for using angle brackets, and explaining why I’m not
using Oslo/MGrammar for creating external DSL’s for testing (hint:  I’m very
unenthusiastic about the phrase “you just have to parse the AST”).  There’s
several other impromptu recordings from the speaker’s area

All in all, I had a great time and I’d be happy to recommend NDC next year
for those of you in that part of the world.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://www.Hardwaresstores.com Home Building Materials

    I am not really sure if best practices have emerged around things like that, but I am sure that your great job is clearly identifed. I was wondering if you offer any subscription to your RSS feeds as I would be very interested and can’t find any link to subscribe here. Please come visit my site Garden Equipment and give me any valuable feedbacks.

  • http://www.DepartmentsFire.com Fire Departments

    You may have not intended to do so, but I think you have managed to express the state of mind that a lot of people are in. The sense of wanting to help, but not knowing how or where, is something a lot of us are going through. Please come visit my site Firefighting when you got time.

  • http://codebetter.com/members/jmiller/default.aspx Jeremy D. Miller


    Offhand I’d say you could make strictly the data access piece of Customer be the “CustomerRepository.” If you need it, you could have a “domain service” called CustomerService if some logic or operation just doesn’t fit into the Customer Entity.

    As far as splitting up the classes, yeah, following the Single Responsibility Principle is pretty well the first step to a good design.

  • Henning Anderssen

    It was great seeing you at NDC. What you talked about and most of what you write about is something that really interests me and I learned alot. You inspired me in so many ways :D. Thank you!

    I do have one question though, I think in regards to your Long lived codebase talk. I think you mentioned that the typical “Manager” classes usually ends up being a dump for code that doesnt fit anywhere.
    On my current project I’m in a similar predicament where I’m mostly struggling to name my business classes, but also whether or not to put some piece of code in that class.

    Now, lets say that I have a entity class called Customer, which primarily holds data. I want to save that customer through a business class, which is now also called Customer. This is, mostly, ambiguous and is hard to understand from code what the class does. I haven’t managed to find a good name for this class, but I’m leaning towards CustomerService. However, CustomerService in my mind implies that this Class has to do with services, namely webservices and wcf, and I’m not comfortable with this. A few other alternative suffixes is Factory, Coordinator and Manager.

    Factory is also quite bad, as it implies that it creates instances of other classes. Coordinator and Manager I feel will end up being a dump of all Customer related methods, while it doesn’t quite tell me what it really does.

    Do you have any comments/ideas/suggestions to my problem? Is a simple naming convention all it takes, or should I split up the classes somehow? If it has any bearing on your answer, I’m doing semi/quasi DDD. It’s my first project where I’m trying to implement DDD.

  • http://haacked.com/ Haacked

    Good times. I have some pics I need to send you when I get a free moment. :)

  • http://blog.fohjin.com Mark Nijhof

    It was good to see you as well, looking forward to the next time.

  • http://blog.torresdal.net Jon Arild Tørresdal

    Was great meeting you in person. Hope to see you back at NDC next year. Also looking forward to see some more codebits for StoryTeller. ST has great potential and looking forward to try it out at work.