It’s been awhile since I’ve written about the next version of BlogEngine.NET that we have been working on for the past three months. It is not because the development has slowed down, but because we have worked very hard on all the new features. Some of them are listed in the roadmap and some are not, so I thought I’d give a brief overview on some of the stuff we are working on.
Even though XML is preferred by the masses as data storage, there’s still some who thinks it’s less than optimal for their needs. When SQL Server support was added we made a lot of people happy. However, we have had a lot of requests for a MySQL provider and even a few for PostgreSQL and Oracle. Instead of writing providers for each of these databases, we decided to write a single provider called DatabaseProvider which will work on any T-SQL compliant database. That means out-of-the-box support for SQL Server, MySQL, Oracle, Access etc.
Since the extension model was introduced in version 1.2, it has been really popular. The widget model expands the same kind of extensibility introduced by the extensions and elevates it to a whole new level. Widgets can be created easily by even the newbie ASP.NET developer and is very easy to apply to your own blog. Each widget can then be dragged and dropped in a Widget zone like the one on the right side panel on this blog.
Each widget can be edited directly from the widget itself in a Lightbox kind of fashion and BlogEngine.NET handles how settings are saved and retrieved automatically. Check out this video I made displaying the early prototype. It has become much more powerful and easy to write since and I plan to start testing it on this blog in a week’s time or so.
We are implementing a profile provider to handle profile information for each registered author. Now any author can edit her own profile including name, photo and about me text. BlogEngine.NET will then generate a profile page for each author. A widget displaying the authors with their pictures and links to their profile page will also be part of the default installation.
Because authors now have a profile image, we can then use it to support Pavatars and use the picture in the comments as well. The profile image can be a Gravatar, an uploaded image or a URL to any picture on the web.
Semantic web improvements
The current version already contains a lot of microformats out-of-the-box such as XFN, rel-tags, XOXO, xFolk, VoteLinks, rel-home, rel-directory, rel-directory and rel-bookmark.
This is pretty good and definitely better than most other blog platforms, but we can do even more. Since the next version will have author profile pages we can now add other elements like hCard, FOAF, OWL and a personal APML file. SIOC will also be supported.
If the timeframe permits it, the search page will let you type in the URL to an APML file and you’ll get a list of posts and pages that matches your interests from that APML file. All of this will probably make BlogEngine.NET the most semantic web supporting blog platform.
New admin navigation
The admin menu is very static today and it’s difficult to control the permissions to individual admin pages, since you have to edit multiple XML files. Also, each added page adds a new horizontal tab and we’re almost running out of space.
The new admin menu addresses these issues and makes it really easy for people to add custom pages. Each admin page must inherit from a special base page that forces you to give each page a display name. If you have written a photo gallery that needs one or more admin pages, you will be able to do that by dumping a folder with the admin pages needed into the /admin/pages folder. The menu will then, by using reflection, create the menu items automatically. The default.aspx will be the main menu item and all other .aspx pages will be sub menu items.
To handle the security on build-in and custom admin pages, administrators will have the ability to easily define which roles can access the different admin pages.
New page structure
Pages have been part of BlogEngine.NET since the first release almost a year ago. Then came the ability to build a page hierarchy and with a sitemap provider you could build a dropdown menu on your theme. You can even mark a page as being the homepage instead of the blog chronology.
Still, a lot of users have requested an easier and more powerful way of organizing and presenting the pages in a menu structure. To do that, a special admin page will be added that let’s you create a menu structure based on your own pages and pages like the build in contact, archive and blog pages. We haven’t specified this yet, but my guess is that it will be some sort of tree view where you can drag and drop the different pages around to build the hierarchy.
A lot of people have written extensions and designed new themes and with the new widget feature we expect a lot of exciting widgets being written as well. Today, we don’t really have a place to share all these creations, but that will change with the introduction of the community website.
It will allow developers and designers to upload themes, extensions and widgets for anyone to download. The community site isn’t part of the next version of BlogEngine.NET but it will be released around the same time. In time the community site will be the hub for all BlogEngine.NET resources like community written blog posts, custom add-ons and downloads.
Slugs on pages and categories
Better live comment preview
Tag selector when creating and editing posts
Role manager admin page
SSL support for Windows Live Writer and the MetaWeblog API
New settings mechanism for extensions, widgets and theme settings
OpenID delegate support (and if time permits, login support as well)
Better comment spam protection
More admin settings
Many new system events for extensions to act upon
As you can tell, the listed features are not small ones and that is why this release has taken a longer time to develop then the previous ones. This is by far the biggest release in BlogEngine.NET history and illustrates the ambitions we have with the project.
There is no release date yet, since we still have a long way to be feature complete, but my guess is that it will be in the end of May.