InfoQ

News

Interview with Mads Kristensen of BlogEngine.NET

Posted by Jonathan Allen on Nov 12, 2007 06:53 AM

Community
.NET
Topics
Open Source ,
Web 2.0
Tags
Blog Servers ,
Mono

In the first we hope to be a series on .NET in the open source world, we interviewed Mads Kristensen of BlogEngine.NET.

Can you give us a brief overview of BlogEngine.NET?

BlogEngine.NET started out to solve the biggest problem with ASP.NET blog platforms at the time. Complexity. Community Server, DasBlog and SubText were all too complex to easily modify, extend or personalize. The Visual Studio solutions for each of them consist of multiple class library projects and heavy use of third-party .dll file dependencies. So not only was it hard to find exactly where to modify certain features, but you could end up finding that the place to modify it was in one of the many third-party .dll files they used. I wanted something easier and that’s how the BlogEngine.NET project started.

We solved the problem by focusing all the code around the KISS simplicity principle and I do believe we succeeded. There is not a single third-party dependency and the lines of code are only a fraction of the other platforms, but still having all the important features. I actually think we have more features than DasBlog and SubText (I’m not sure though).

To write custom themes for the other platforms can be a pain so that was a very important part of BlogEngine.NET from the beginning. I needed to find a way to make this as simple as possible. So we ended up with an architecture that gives unprecedented power and flexibility to theme builders in a very simple way. That was possible because we took advantage of all the relevant ASP.NET 2.0 features already available on the ASP.NET platform such as user controls, master pages and of course C# code-behind with no limits.

From an ASP.NET developer’s point of view, BlogEngine.NET is extremely easy to modify, extend and personalize and it’s extremely easy to install for non-developers too. Just download the files and upload them to your web server and it runs. We decided to use XML as data storage because SQL Server can be expensive for some on shared hosting. We knew that not everybody wanted to use XML, so we made sure to support SQL Server as well out of the box for those who prefer it.

BlogEngine.NET keeps focus on being a blog engine and only a blog engine. To keep everything as simple as possible I didn’t wanted to add features that moved focus away, even though many users requested a lot of those features. It could be galleries, templates, file management etc. Instead we build an extension framework that allows ASP.NET developers create their own extensions and share them with the community. That way, a lot of the features we left out to keep focus, is something others can do for them selves.

To sum up this (not so) brief overview, you can say that BlogEngine.NET is simple and focused with all the features you would expect a blog engine to have in 2007. I do have enormous respect for CS, DasBlog and SubText and they are all very good at what they do. BlogEngine.NET is merely and add-on to the .NET blog platform selection.

Historically there has been a general belief that .NET developers and open source projects don't mix. Did you run into any of that, or is this just another open source project that happens to use .NET?

I guess that we fell a bit under the shadow of other great .NET open source projects like Umbraco, DasBlog and SubText so it was generally well received as a .NET open source project right away. I do read occasional blog posts and articles about why BlogEngine.NET is not open source because it is a Microsoft .NET project and therefore cannot be completely open source. Also, there has been a little heat coming from the dynamic language (Python, Ruby etc.) people that claim that .NET open source is a waste of time and shouldn’t be taken seriously. I completely ignore it when I read it. Except one time where eWeek wrote about Microsoft open source projects and listed BlogEngine.NET among 19 other projects. BlogEngine.NET was badmouthed for being a blog platform which the author ridiculed because there are so many already. That hurt a bit because I believe eWeek to b a serious website with good articles and many readers.

But all in all, there have been no problems, just a few occasional anti-Microsoft articles that reflected poorly on BlogEngine.NET as a result. Nothing to keep me awake at night. It’s good to run open source projects on a Microsoft platform. BlogEngine.NET is just another open source project using .NET.

Why did you decide to support Mono?

Originally that wasn’t the plan. Not because we didn’t wanted to, but because we didn’t think of it. I’ve never used Linux really and therefore didn’t think of Mono. Then one guy who downloaded the early beta version wrote to me that he had some problems running BE on Mono. That was a wakeup call and I thought it would be very cool to run on Mono if it was possible. He taught us how to do it, and it literally only took an hour to make the adjustments. The issues with Mono was simply addressed by using the right casing for file names and do the file paths in a slightly different way. For the next release we plan on taking it even further and support MySQL and PostgreSQL out of the box. The whole Mono thing feels very good and I hope it becomes a first-class citizen in the Linux world if it isn’t already. It’s definitely something we will keep on supporting for future versions.

1 comment

Reply

Go Mads!!! by Adron Hall Posted Nov 20, 2007 11:12 AM
  1. Back to top

    Go Mads!!!

    Nov 20, 2007 11:12 AM by Adron Hall

    Congrats on the interview! btw - Excellent product. I'm going to put in some time and try it out, as I think it would be kind of cool to have more control over my blog than what I currently do with Community Server.

    Again, congrats and keep up the good work!

Exclusive Content

Book Except and Interview : Aptana RadRails, An IDE for Rails Development

Aptana RadRails: An IDE for Rails Development by Javier Ramírez discusses the latest Aptana RadRails IDE, a development environment for creating Ruby on Rails applications.

Fast Bytecodes for Funny Languages

Cliff Click discusses how to optimize generated bytecode for running on the JVM. Click analyzes and reports on several JVM languages and shows several places where they could increase performance.

Scott Ambler On Agile’s Present and Future

Scott Ambler, Practice Lead for Agile Development at IBM, speaks on the current status of the Agile community and practices having a look at the perspective of the Agile’s future.

Manager's Introduction to Test-Driven Development

Dave Nicolette and Karl Scotland try to introduce non-technical managers to one of the most popular Agile development techniques: Test-Driven Development (TDD).

Structured Event Streaming with Smooks

Smooks is best known for its transformation capabilities, but in this article Tom Fennelly describes how you can also use it for structured event streaming.

How to Work With Business Leaders to Manage Architectural Change

Successful architectures evolve over time to meet changing business requirements. Luke Hohmann presents how to collaborate with key members of your business to manage architectural changes.

Colors and the UI

In this article, Dr. Tobias Komischke explains how colors used in a GUI can influence our interaction with a computer and offers advice on using the appropriate colors for the interface.

Building your next service with the Atom Publishing Protocol

In his presentation, recorded at QCon San Francisco, MuleSource architect Dan Diephouse explores ways to use the Atom Publishing Protocol (AtomPub) when building services in a RESTful way.