Scott Hanselman

The Weekly Source Code 2

August 22, '07 Comments [4] Posted in Source Code
Sponsored By

In my new ongoing quest to read source code to be a better developer, I now present the second in an infinite number of a weekly series called "The Weekly Source Code." Here's some source I'm reading this week that I enjoyed.

  • DasBlog 2, SubText, BlogEngine.NET, SingleUserBlog - All these blog engines are FULL of good (and bad) source. Each is a treasure trove of patterns, anti-patterns, techniques, libraries, ideas and good fun. I love firing up the source to a new blog engine as the specification is well-known and the solutions are endless.
  • OpenTheme - A really strange but truly fascinating XML-based GUI toolkit (ala XAML). The article is tiny, but the source is pretty expansive.
  • Charles Cook is the reigning king of XML-RPC on .NET with his very clean XML-RPC.NET library. However, Clemens has been causing trouble (the good kind) on the dasBlog team lately, and is currently moving our prototype dasBlog 3.5 forward with WCF for all non-HTML endpoints. He's using this opportunity to create XML-RPC using WCF (Indigo) (download source). If you're familiar with the crazy XML-RPC format and you're looking to learn about how WCF isn't just about SOAP, this is a good sample to start with. (Windows Live Writer uses XML-RPC to talk to most blogs, by the way.)
  • While browsing Charles Cook's site, I noticed this post from January about Wesner's Hard Problems, Simple Solutions post. Wesner points to a regular expression engine in 14 lines of Python and suggests this could be ported to C# using iterators and anonymous functions. Charles responds with some really interesting C# code that I'm still getting my small head around. I believe what Charles is asking for is extension methods.
  • And jagged segue...speaking of using XML-RPC on the server-side, Charles put up a sample earlier this year on how to use System.Net.HttpListener as a basis for an XML-RPC server. Both his and Clemens samples give you the building blocks to start using Windows Live Writer or BlogJet as a content management front end to your (whatever it may be) own content management system; you might also use these samples to add XML-RPC to your own blog engine...and that brings this Weekly Source Code full circle.

Feel free to send me links to cool source that you find hasn't been given a good read.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Wednesday, August 22, 2007 1:59:30 PM UTC
Hey Scott,

check out "Beautiful Code" from O'Reilly.
Wednesday, August 22, 2007 6:34:31 PM UTC
I'd recommend reading the source for Paint.NET. I was really impressed by how cleanly commands were implemented there.
Wednesday, August 22, 2007 10:47:00 PM UTC
I want to second what Dominick said - I've been reading a chapter every second night or so, and it's been really inspiring to see how top-notch developers think and approach problems.
nexusprime
Thursday, August 23, 2007 11:49:47 PM UTC
I'm really liking the code reading posts - a great way to get examples of how to do things and to reinforce positive habits/patterns. It's also nice to see people's ideas on what to read, so keep those coming. CodePlex, SourceForge, Google Code and the various other open source project sites have really made a lot of good code available

I'm working my way through EntLib right now. It's interesting to see how it's changed since it was "application blocks". The last time I looked through the code was right after the Data Access Application Block was introduced, and things have gotten much more sophisticated since then.
Chris Haddix
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.