ReSharper 3.0 Released

Development, Tools Comments

JetBrains released ReSharper 3.0

ReSharper 3.0 is finally out and it´s better than ever. C#, VB.NET, XML, XAML or ASP.NET - we got it all for you right here!

You simply owe it to yourself to test-drive this baby and learn a whole new way to code in Visual Studio!

Get the dirty low-down on ReSharper 3.0 at New Features or use one of the links below:

Grab a free 30-day evaluation of ReSharper at http://www.jetbrains.com/resharper/download/index.html

Twitter Publisher for CruiseControl.NET

Development, ccnet, Twitter Comments

Some weeks ago I posted a CC.NET task which pushes build results to a blog using the MetaWeblogAPI. This might be a feasable solution for projects which sources aren´t updated that often. Otherwise that blog would be really cluttered, and you won´t be able to keep track of all the build results.

Several month ago a new social networking site started called Twitter. It offers a kind of micro-blogging service, allowing its users to send text-only status, up to 140 characters long. Whenever you update your status, it is delivered instantly to other users who have put you to their "friends" list. Though you can receive the updates of your friends via an RSS feed, it is more common to either use Twitter´s website or a desktop client such as TeleTwitter. Additionally, Twitter offers a RESTful API.

Therefore it was pretty obvious to write a CC.NET task which announces new build results on Twitter. The project manager creates a special Twitter account and configures CC.NET to post build results as updates for that user. The developers then just have to add that user to their friend list, and will get the announcements in the Twitter front-end of their choice.

The attached ZIP file contains both the sources and the compiled assembly, which you have to dump into CC.NET´s server directory. The configuration of the task is pretty easy, just specify the user and the password of the Twitter account.

<publishers>
    ...
    <twitter>
        <user>username</user>
        <password>password</password>
    </twitter>
    ...

Blog Publisher for CruiseControl.NET

Some time ago I wrote a blog publisher for CruiseControl.NET, but didn't manage to blog about it. In fact, it totally slipped my mind. However, my machine behaves more and more weird lately, so I started to clean up the hard disks and back up all my data. So today it happened that I stumbled over my old blog publisher and finally posted it here.

Background: CruiseControl.NET (CC.NET) is a continuous integration server for .NET. Publishers are tasks that are executed by CC.NET after a build is done, and are primarily used to report the build results, e.g. by sending emails.

There are instructions on how to write your own publisher available, so I created one which posts the build results to a blog. It stood to reason to access the blog using MetaWeblog API. Fortunately, Charles Cook wrote the XML-RPC.NET library, so my publisher degenerated to a simple gateway [;)]

The installation is simple: just drop the assemblies from the ZIP file to the server folder of CC.NET and restart the server. CC.NET uses a fixed naming scheme to find all extensions, that's why the assembly has that weird name ccnet.BlogPublisher.plugin.

The minimal configuration just takes details required to access a particular blog:

<publishers>
    ...
    <blog>
        <url>http://localhost/MetaWeblog url</url>
        <blog>blog</blog>
        <username>username</username>
        <password>password</password>
    </blog>

With this configuration the publisher uses the default XSL files to transform the build results before posting them. But if you want to change the content of the blog post, you can specify which XSL files should be used. Additionally you can specify categories for the post:

<publishers>
    ...
    <blog>
        <url>http://localhost/MetaWeblog url</url>
        <blog>blog</blog>
        <username>username</username>
        <password>password</password>
        <categories>
            <category>category 1</category>
            <category>category 2</category>
        </categories>
        <xslFiles>
            <xslFile>xsl\header.xsl</xslFile>
            <xslFile>xsl\modifications.xsl</xslFile>
            <xslFile>xsl\msbuild2ccnet.xsl</xslFile>
        </xslFiles>
    </blog>

The assembly is built with .NET 2.0, but it shouldn't be too difficult to change that. I even put the .NET 1.1 version of XML-RPC.NET into the ZIP file.

CAPTCHA for CommunityServer 2007

Brendan Tompkins released CAPTCHA for CommunityServer 2007:

I'm happy to announce that CodeBetter.Com is carrying on the legacy of CAPTCHA for Community Server.  CAPTCHA for CS2007 is the next generation of CS Guru Dave Burke's most excellent CAPTCHA control for Community Server 2.1This version is implemented as a Control Adapter which allows CAPTCHA to be added to Community Server site-wide without touching any ASPX or ASCX markup code.

You can get the dll and source code here.

The installation is pretty easy since Brendan leverages the same technique as I did for my CS2007 coComment support: by using ControlAdapters not a single page or control must be touched.

In the past I always hesitated to use CAPTCHA on my blog because it´s an additional obstacle a commenter must overcome. Adding this hurdle seemed like a capitulation. But because spam has taken the upper hand over all comments I get, and CAPTCHAs are commonly used everywhere so the regular visitor is used to them, I´ll give it try and add Brendan´s CAPTCHA to my blog.