Subtext 2.5 Released!

0 comments suggest edit

Wow, has it already been over a year since the last major version of Subtext? Apparently so.

Today I’m excited to announce the release of Subtext 2.5. Most of the focus on this release has been under the hood, but there are some great new features you’ll enjoy outside of the hood.

Major new features

  • New Admin Dashboard: When you login to the admin section of your blog after upgrading, you’ll notice a fancy schmancy new dashboard that summarizes the information you care about in a single page.subtext-dashboardThe other thing you’ll notice in the screenshot is the admin section received a face lift with a new more polished look and feel and many usability improvements.
  • Improved Search:We’ve implemented a set of great search improvements. The biggest change is the work that Simone Chiaretta did integrating Lucene.NET, a .NET search engine, as our built-in search engine. Be sure to check out his tutorial on Lucene.NET. Also, when clicking through to Subtext from a search engine result, we’ll show related blog posts. Subtext also implements the OpenSearch API.

Core Changes

We’ve put in huge amounts of effort into code refactoring, bulking up our unit test coverage, bug fixes, and performance improvements. Here’s a sampling of some of the larger changes.

  • Routing: We’ve replaced the custom regex based URL handling with ASP.NET Routing using custom routes based on the page routing work in ASP.NET 4. This took a lot of work, but will lead to better control over URLs in the long run.
  • Dependency Injection:Subtext now uses Ninject, an open source Dependency Injection container, for its Inversion of Control (IoC) needs. This improves the extensibility of Subtext.
  • Code Reorganization and Reduced Assemblies: A lot of work went into better organizing the code into a more sane and understandable structure. We also reduced the overall number of assemblies in an attempt to improve application startup times.
  • Performance Optimizations:We made a boat load of code focused performance improvements as well as caching improvements to reduce the number of SQL queries per request.
  • Skinning Improvements:This topic deserves its own blog post, but to summarize, skins are now fully self contained within a folder. Prior to this version, adding a new skin required adding a skin folder to the /Skins directory and then modifying a central configuration file. We’ve removed that second step by having each skin contain its own manifest, if needed. Most skins don’t need the manifest if they follow a set of skin conventions. For a list of Breaking changes, check out our wiki.


Because of all the changes and restructuring of files and directories, upgrading is not as straightforward as it has been in the past.

To help with all the necessary changes, we’ve written a tool that will attempt to upgrade your existing Subtext blog.

I’ve recorded a screencast that walks through how to upgrade a blog to Subtext 2.5 using this new tool.


Installation should be as easy and straightforward as always, especially if you install it using the Web Platform Installer (Note, it may take up to a week for the new version to show up in Web PI). If you’re deploying to a host that supports SQLExpress, we’ve included a freshly installed database in the App_Data folder.

To install, download the zip file here and follow the usual Subtext installation instructions.

More information

We’ll be updating our project website with more information about this release in the next few weeks and I’ll probably post a blog post here and there.

I’d like to thank the entire Subtext team for all their contributions. This release probably contains the most diversity of patches and commits of all our releases with lots of new people pitching in to help.

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.



14 responses

  1. Avatar for Zacho
    Zacho June 6th, 2010

    I just may be giving Subtext a try. Nice work Phil!

  2. Avatar for Scott Koon
    Scott Koon June 6th, 2010

    Congrats to the team on the release. We'll start looking at this and possibly upgrading the blogs.

  3. Avatar for amexn
    amexn June 7th, 2010

    Great work! I hope next version of subtext will be in mvc

  4. Avatar for haacked
    haacked June 7th, 2010

    Hi all, we've found a few bugs we'll be fixing and releasing a point release soon.

  5. Avatar for jdn
    jdn June 8th, 2010

    I'm having a heck of a time with the upgrade. Biggest issue right now:
    Go to, and it says I'm in the middle of an intall. Go to, and everything displays fine. Is that one of the bugs you are working on? if not, could you ping me offline?
    "The type initializer for 'Subtext.Extensibility.Providers.EmailProvider' threw an exception." is another one.

  6. Avatar for Jack
    Jack June 8th, 2010

    Nice, the style looks like WordPress ;)

  7. Avatar for Johan Driessen
    Johan Driessen June 9th, 2010

    I couldn't get the upgrader tool to work at all. Or rather, it ran, but it totally destroyed my blog in the process. I got (at least) 3 serious errors:
    1. It added a <httpErrors> section in web.config under <system.webServer>, which got me the error message "Config Error: This configuration section cannot be used at this path."
    2. It removed my connectionstring. Yep, that's right, totally cleared out the connectionStrings section of web.config
    3. Once I commented out the <httpErrors> section and put my connection string back, I got the "upgrading" page, but after that i couldn't log in. Not with my admin account, and not with OpenID.
    So by then I just gave up on upgrading... If it helps, I'm currently running on Win2K8 R2.
    Is there some manual way to do the upgrade?

  8. Avatar for kad1r
    kad1r June 9th, 2010

    Congrats, yes it's looks like Wordpress. I will try it after fix is released.
    Thank you.

  9. Avatar for HJ
    HJ July 1st, 2010

    The upgrade to 2.5 causes the following problems:
    - The connection string is deleted.
    - The Hostadmin/Upgrade directory is inside a new 'aspx' subdirectory; and then the <url>/Hostadmin/Upgrade part for the database upgrade does not work.
    So, how can I perform the upgrade?

  10. Avatar for Ch
    Ch July 13th, 2010

    When trying to upgrade the database to the lastest release the host admin page displays the error "The page cannot be displayed because an internal server error has occurred." any suggestions

  11. Avatar for ch
    ch July 13th, 2010

    Ok I found out what the problem was. I needed to add default.aspx at the end of the url to upgrade the site. Example:

  12. Avatar for Cria&#231;&#227;o de Site
    Cria&#231;&#227;o de Site August 4th, 2010

    where is the rel="nofollow" at comments ?
    it will stop spam

  13. Avatar for Jason
    Jason November 17th, 2010

    New comments not displaying until IIS is reset. Also, pages don't refresh after comments are added, so users don't see their comments and re-submit duplicates.
    I assume this is an internal cache "improvement"? I can't find a setting to turn it off (yet). Any hints? I want it off, and I don't mind if the server gets a little more stressed. it's a dedicated box.

  14. Avatar for ajexpress
    ajexpress March 7th, 2011

    Is there a way subtext can be configured to use users from aspnet membership? Any suggestions ?