Announcing The Code Wiki

I'm excited to announce the release of The Code Wiki – a learning tool to help teach fundamental programming practices. The Code Wiki is both a web-based sample application as well as a completely free eBook.

I've currently written/released the first two chapters and am hopeful to be able to release a chapter roughly every month (although something tells me I'm going to be disappointed on that one). The two chapters are 24 or so pages, at a full 8.5 x 11, with few graphics and little artificial spacing.

I'm going after, what I think, is one of the largest .NET audiences out there which also happens to be the worst targeted by tech books. This isn't a reference book like the countless others out there, and it isn't a super-advanced book either. It's squarely aimed at developers who know how to code, but want to learn how to better design their code. I shudder when I hear the word "architect", but I'll use it this one time.

If you'll forgive me my hubris, I see this entire endeavor as an introduction to Jimmy Nilsson's excellent Applying Domain-Driven Design and Patternsbook, amongst other things. The app/book has a strong focus on important topics like domain design and unit testing, which I'm glad to say seems to be gaining momentum within the .NET community.

I'm also hopeful that The Code Wiki might be useful for authors/presenters who need a sample application to write/talk about. For example, The Code Wiki doesn't use an O/R Mapper, and there's nothing I'd like to see more than someone writing an article on how to make The Code Wiki leverage NHibernate (or something). (don't worry, if one isn't written by the time I get to it, I do plan on writing one myself).

There's a lot more to blog about, but for now we'll stick with this simple introduction. I'm anxious to see what people think, and more importantly to learn from the mistakes I've made.

Check it out at www.thecodewiki.com

 

This entry was posted in The Code Wiki. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

9 Responses to Announcing The Code Wiki

  1. btompkins says:

    Karl,

    Just got finished reading the first two chapters. Very cool! Your explanation of the domain versus the data model was perhaps the most succinct and best I’ve read.. Good job!

  2. karl says:

    Scott: I do plan on releasing the source/project. The biggest issue are the 2 commercial dll’s which I’ve used…I can’t include them, but don’t want a bunch of emails asking “why doesn’t this build”. As a whole, this isn’t really an app that I foresee being used for real, but I understand that playing around with it in VS.NET is invaluable. I’m hoping to release it sooner than later.

    Derik:
    Anything is helpful. Blog about it, write an article on an alternative you think might be best. I’d love to see someone take TCW and say, “this is how you’d do it if it was running on .NET tiers or CSLA.NET”. Review the code…I actually wrote most of it 6 months ago…at the time I was just getting into TDD and mock objects, I spend the last couple weeks taking out embarrassing stuff I obviously didn’t know at the time. I’m sure there’s more :)

  3. jmiller says:

    Nicely done Karl. Congrats on getting this out there. It’s going to be interesting to see where it ends up.

  4. Scott Peterson says:

    Any chance of code / sql scripts so we can run this locally?

  5. This rocks, how can I help?

    Derik

  6. karl says:

    ooopss..those are (a) and (b) :)

  7. karl says:

    Thanks all.

    Michel, that’s a very good point and one which I’ve given a bit of thought to. I’ve thought about adding a labeling mechanism which would like the book target a almost set-in-stone version, something like: http://www.thecodewiki.com/code/book.aspx. I think that might help solve the problem a bit, but I’m not sure.

    It isn’t something I implemented upfront because [a] I was happy with the simplicity of the application and [b] wasn’t exactly sure how it would all play out. It’s certainly something I’m keeping in the back of my mind, and would welcome any suggestions.

  8. Michel Grootjans says:

    Very nice stuff. I see a double maintainability challenge here.

    First, the published code must be kept up-to date with the running application.

    Second, the CodeWiki application itself has to be kept up-to-date, without altering any comments on code files.

    How do you keep this up-to-date and in sync?

  9. AgileJoe says:

    Excellent idea Karl!

    As an enterprise developer, I am always looking for tools that can help me mentor other developers on fundamental programming practices. The fact that your site plays on the fact that you are actually commenting on the source code that it is working on is a fascinating approach.

    I agree with you that there is a short supply of technical books in the .Net community that cater to “seasoned” developers. I look forward to your future contributions.