Hi Folks! I have been using the .NET BlogEngine for quite some time and decided to upload my own 4.0 non-official version of it in my GitHub account. I will explain everything that was modified or updated in case someone wants to reflect the changes into their designed themes. The latest official version is the 3.3.5.

You can find the code here

Packages upgraded

One of the reasons I decided to ever come up with a separate version of the BlogEngine was its libraries. As I was updating them from the latest official version I noticed they had a few incompatibility issues. The list follows:

  • Bootstrap 4;
  • FontAwesome 5;
  • jQuery 3.3.1;
  • TinyMCE 4.7.12;
  • SyntaxHighlighter 3;

Bootstrap 4

I modified the default themes (Standard and Standard-2015), replacing every pull-* css class with their respective float-* css class. Panels are now considered Cards, so replaced every reference of them too. It's a lot easier to comprehend the changes by going to their official migration guide and by comparing the files inside the GitHub repository.

FontAwesome, TinyMCE and SyntaxHighlighter

It would have been easier to use all styles of the new FontAwesome, but because some parts of the admin section rely on glyph's copied directly into the css files, I bundled up only the solid and brands styles together. Otherwise, there would be some blank square icons in place of the right ones. TinyMCE and SyntaxHighlighter were also updated to their latest version using Bower.

TinyMCE is the only available HTML editor for now (summernote and bootstrap-wysiwyg were removed).

jQuery, Javascripts and other CSS files

One of the major changes to the .NET BlogEngine is where the scripts/css reside now: I moved everything under a directory called Resources of the BlogEngine.NET web project, as I was preparing to enable Bower on the ASP.NET project. Also I added a gulp script responsible for copying the files into the right directory. Now, there's only one version of the jQuery inside the project, which makes updating more practical.

The Content and Scripts directories were removed from the project.

NHibernate and Entity Framework Database Providers

I developed 2 sets of database providers, containing the Membership, the Blog provider itself and a Role provider a while ago based on the NHibernate and Entity Framework and decided to add them to this upgrade. They are easy-to-use and are automatically copied into the bin directory of the website. Be aware you need to deploy them manually in order to use them in your blog.

Both of them have separate layers of POCO classes, representing the entities, so the original business classes from the BlogEngine.Core remain unmodified.

In the web.config file, there's 2 commented lines adding the providers. Make sure all files are deployed properly in the bin directory and uncomment those lines.

New features and Bundling

When creating/editing new articles with media, the platform now uses an MVC controller to provide content files. It's called FilesController and can be referenced by the route "~/files/{*path of the image or file}". It features image scaling by adding ?size={large,medium,small,thumbnail} at the end of the URI address, meaning if you upload an image too large, it can be used to reduce overhead when someone's reading your article.

For developers: the class resides inside the AppCode directory of the website

There's still some work to be done in the HTML editor to support the feature and to select image dimensions.

I simplified the use of javascript and css resources, by putting them together under (js,common) and (css,common) bundles for the blog section. And (js,blogadmin) and (css,admincss) for the admin section. The Content and Scripts directories were removed from the solution (its files won't be automatically added to pages in order to simplify the use of javascripts and other files).

YoxView and Plyr

The YoxView plugin will enable readers to zoom in on scaled images.

The Plyr plugin was added to customize video controls and playback.

Conclusion

I am not sure how many people are still using the .NET BlogEngine, but I thought it'd be nice to share what I have done to it, since I have been blogging with it for a long time. Feel free to ask anything in the comment section.

Enjoy!