codeplex

BlogEngine is a CodePlex-based project and uses Mercurial as source control. Most of described below equally applied to any CodePlex project that uses Mercurial. Here is step-by-step what you need to do to share your code on CodePlex.

Prerequisites

To work with BlogEngine you need Visual Studio 2010 (free express edition is fine) which can be downloaded from Microsoft site.

vs2010

You also need TortoiseHg to move files to and from repository. If you used to work with TortoiseSVN you know the concept. It works as Windows Explorer shell and very easy to use.

tortoisehg

Branching Out

First step is to create branch (fork) and clone code to your local computer. If you don’t have CodePlex account, go get one – registration is fast and easy. Once account created, log into CodePlex and navigate to BlogEngine and then go to “Source Code” tab. Hit “Create Fork” to create your own copy of code in the CodePlex repository.

source

Give your fork some descriptive name and click save button.

newfork

CodePlex will generate new branch and show you a URL where it will be stored. Copy it as you going to use it in TortoiseHg, we are done here.

cloneurl

Clone to Local

Now create folder on your local drive where you going to work with source code. In my case it is D:\temp\be, can be anything you like. Right-click this folder and choose TortoiseHg/Clone. Paste path to your CodePlex fork into “Source path” box and click “Clone” button, TortoiseHg will pull files from CodePlex to your computer.

hgclonedlg

You should be all set now to work with project files. BlogEngine structure is very simple, it has only two projects: web site and class library. Set website as startup project and default.aspx as start page and then hit “F5” – make sure Visual Studio can build and run project. Then do your changes, TortoiseHg will keep track on any changes you done.

Commit and Push

When you ready to save your work, you first save it into you local repository by right-clicking project folder and selecting “Commit” in the TortoiseHg menu. TortoiseHg will ask you to provide any description/notes for this commit, type in brief description of changes you done and push “Commit” button. Your work saved now on your local drive.

commitdlg

When all completed, you need to push changesets from your local repository to CodePlex. Again, right-click project folder and in the TortoiseHg menu group select “Hg Repository Explorer”. Review change sets you committed and if it looks good click “Push Outgoing Changesets” button. Tortoise will ask your user name and password at this point and copy all changes to CodePlex.

hgpush

Go to CodePlex and make sure all changes showed up in your fork.

verifypush

Last step – use “Send Pull Request” link to notify project team that you want your code merged into main project trunk. There!

pullrequest

At this point it is responsibility of the team to keep it going. Someone will receive notification, pull your fork and review changes. If everything looks ok, all will be merged with main trunk. You should always get back notification on the status of your request, even if it was not implemented.

It might look like a lot of steps but it really very simple and straight forward process. Have something you need to fix every time you upgrade to new version? Bringing it to the core project might be a good way of making your life easier and may be you’ll make someone else happy as a bonus.

Share/Save/Bookmark
Signature

custom

Spam comments are annoying and sometimes looking at comment allowed by Akismet or some other anti-spam service you think – I’m sure I would do better. It is just so hard to get the plumbing in or I would made my very own solution. With BlogEngine.Net 1.6 it is not, you can easily implement your own anti-spam filter or add existing if you like it more than built-in Akismet. Here is how. More...

Share/Save/Bookmark
Signature

be16 After few delays new version of BlogEngine.Net has been released. Although this release is mostly incremental with minimum breaking changes, there are quite a few improvements, enhancements and bug fixes to make it worthwhile for those stuck on previous versions to upgrade. Upgrade instructions can be found here, and you can download new version from the project site on CodePlex. More...

Share/Save/Bookmark
Signature
vote

resultsOne real surprise for me was that not many people use BlogEngine as their sandbox and playground. To me as a developer from the beginning it was mostly a toy and only over time it grew up into something bigger with responsibilities attached, so I’m sort of impressed. It seems like what most folks really want is a stable mature product with great features and scalability built it. There is understandable desire for cool new tech on part of some but most seems really care about how it serve their blogging needs (ye, I know, shocking…). So in the end it looks to me like loud and clear call to power along with demand for more advanced and polished tools and features.

Share/Save/Bookmark
Signature

This poll is not official and may be a little early, but it will provide BlogEngine team with some ideas on where we all, as a community, want to move. Are we looking for Wordpress.net? NewCrazyCool.net? Something in between? Please share your opinions and thoughts, it's all greatly appreciated. More we know, easier it is to make decisions and change gears. You can vote either using poll in the side bar or following the link. Feel free to drop a comment if you think of other options or just want to let everybody know what's on your mind. Don't be too harsh though, it still Christmas ;)

Share/Save/Bookmark
Signature

mailr Thanks to the magic of Metaweblog API and BlogMailr service, you can email posts to BlogEngine just as easily as publishing them from Windows Live Writer, Word or iPhone.  Here is what you need to do. Open personal account with BlogMailr, it only takes few minutes and it is free for personal use. Once your account setup you'll be able to add blogs to it. You have to provide user id and password so that BlogMailr can auto-login and publish posts on your blog. More...

Share/Save/Bookmark
Signature

elmah2

Few days ago I’ve noticed that “error.aspx” becomes quite popular destination on my site. What’s going on? I never run into errors, how do I know what others do to break in? Elmah to the rescue! This little utility specifically designed to run in the background and record any ASP.NET errors so you can review them later at your convenience. If you interested how it all works, check out this excellent article on MSDN, it goes in depth explaining technical details. I’ll focus here on how to set it up with BlogEngine (or any ASP.NET web forms application to that matter). More...

Share/Save/Bookmark
Signature

TitleWhile I’m personally not looking forward to writing posts on the phone, some maniacs out there demand modern blog should have this functionality. Or may be I just needed lame excuse to start writing something that can be used on my new Touch ;) Anyway, I’ve started looking into better way to publish posts from iPhone or Touch than using standard web admin UI. First I checked few apps in the app store but none of them worked well with Metaweblog API (as a mater of fact, none of what I tried worked with BE at all…). In the end I put together this little add-on to BlogEngine. More...

Share/Save/Bookmark
Signature

EasyHardOne of the tools I use a lot on my current project is ClearCase – fine version control overall, but its Windows client sometimes drives me nuts. The problem is that it is unnecessarily complicated, it exposes all functionality it got in very obnoxious way. For example, you’ll get dialog with two check boxes and, if try to select one of them you’ll get an error: “you can’t select this because so-and-so”. Really? If you know I can’t use this – why I’m getting this as an option? Why not show me only what I am able to use? And “features” like this is all over the product, you always get menus loaded with options some of which you will never use and some you can’t use even if you try. Very annoying. May be this is why when I started on comment administration for BlogEngine I was extra sensitive in trying to avoid this behavior. After several different approaches I decided that simplest pyramid-like flow will work best. It starts really simple. More...

Share/Save/Bookmark
Signature

comment-card The Commentor extension for BlogEngine got a lot of positive feedback from community and will become a part of standard BlogEngine install in the next version. As work on moving it under BE umbrella just started and it's not too late to make drastic changes, I'll try to outline here how it is going to look and work and, if you have any suggestions or special demands, feel free to drop a line. Your input is always appreciated!

- First of all, here are three basic usage scenarios: More...

Share/Save/Bookmark
Signature