I have a very clear view on what ASP.NET is and what it isn’t. I’ve never given it much thought until recently when I learned that my view was different from a lot of other ASP.NET developers’. It started at an ASP.NET session at the MVP summit where a presenter asked whether or not people in the audience used the Entity Framework or Linq2Sql. I thought to myself that data access had absolutely nothing to do with ASP.NET but found to my surprise I was the only one finding it a weird question at an ASP.NET session.

Since that session I started talking to people about this and almost everyone told me that a website without some sort of database is a thing of the past and that being an ASP.NET developer involved mastering databases, data access and business logic. I don’t disagree that mastering these disciplines is a huge part of being a .NET developer, but I still refused that it had anything to do with ASP.NET. Yes, I’m that anal.

The field trip

So, I went to Barnes & Noble to find some ASP.NET books. They had 8 different titles and I started to look at the table of contents in all of them. 7 out of the 8 ASP.NET books had minimum one chapter about databases and data access. I looked at the covers again and was reassured that I was indeed skimming ASP.NET books. Not data access books, but ASP.NET books.

What I have learned in the past few months is that databases and data access is part of ASP.NET. Or in other words, ASP.NET is a database presentation framework and NOT a web application framework. Not acceptable!

Here is my view on what ASP.NET is and what it isn’t.

My clear view of ASP.NET

ASP.NET is a framework for creating dynamic websites. It is not a framework for doing data access, business logic or any other thing besides building websites. If your business logic knows it is being used by an ASP.NET project by relying on an HttpContext for instance, then you are doing something wrong. Business logic is an API for what ever (presentation) logic that sits on top of it whether it being ASP.NET, WinForms, WCF or something completely different. This is a rule of the N-tier application architecture.

Smaller web projects often have the business- and data logic classes in the App_Code folder within the web project itself. Those classes are physically part of the web project but logically they are separate from the ASP.NET logic and as such the same 3-tier architecture applies. But it is still not ASP.NET, it is just C# classes that physically lives inside the web project in Visual Studio.

ASP.NET handles everything related to browser/server interactions and nothing more. Calling the database directly from your code-behind or controller action doesn’t make ADO.NET part of the ASP.NET framework. The presence of the BCL in both ASP.NET and the business logic makes it less transparent, but I hope you see my point.

Even though the data- and business logic aspects are both related and important to ASP.NET developers, they are still not ASP.NET.

This is my clear view on the ASP.NET database presentation framework.

The BlogEngine.NET 1.5 final release is now available for download at CodePlex. Since the RC1 was released a little more than a week ago, we have had some great feedback from the community - most of it positive, but there were also a few hiccups that needed to be fixed. The BlogEngine.NET team worked very hard on those fixes and I believe they were all taken care of properly.

Our main concern was around deployment on different server setups. That was basically why we decided to make the release candidate this time. You could run IIS 7 in Classic or Integrated Pipeline Mode with various restrictions or you could run IIS 6 maybe even more restricted. We got all those issues fixed by the help of the community. Thank you all for that.

New stuff in version 1.5


There are many new features, tweaks and improvements including:

  • Nested comments
  • Superb Windows Live Writer integration (including tags)
  • Latest TinyMCE text editor
  • Mono 2.4 support that just works
  • Doesn't screw with jQuery and Prototype anymore
  • Better database support out of the box
  • Higher performance
  • ...and of course a lot of general improvements, tweaks and bug fixes


All in all a very stable, high performing and versatile product.

Getting started


If you’re new to BlogEngine.NET or interested in upgrading then take a look at Al Nyveldt’s screencast that shows you how easy it is.

Performance tweak


If you are using IIS 7 and want to squeeze every little inch of performance out of your BlogEngine.NET 1.5 installation, then you need to tweak the web.config a bit. In the bottom you’ll notice some elements (staticContent and httpProtocol) that are commented out. The reason for this is that some hosting providers don’t allow them, so that’s why they are commented out by default. If you enable them you will get an YSlow score of 92.

BlogEngine.NEXT


The future of BlogEngine.NET looks bright and we have a lot of ideas we want to implement. At this point we haven’t updated our roadmap, but we will soon so you can see the good stuff we are planning for.

Another point is that version 1.5 will probably be the last release supporting IIS 6 and .NET 2.0. We are not all clear on that, but personally I would like to only focus on IIS 7 and the upcoming IIS 7.5 because that will give us extra possibilities like extension-less URLs even on hosted environments.