March 2008 - Posts
For the development of the next version of Tech Head Brothers I wanted to have a continuous integration server running for our small team. I used for that Team City 3 from JetBrains.
Continuous integration is very nice and works very good. Then I discovered another nice feature directly built in Team City: Duplicate Finder. Ok you might use other tools to do that, but it is there so just use it in two clicks.
As the name tells it, the aim is to find duplicates of code in your solution.
We use it daily as a kind of "nightly build" to get a morning email about the possible code smell in our code.
And this is the way it shows up the duplicates found.
I can see here that in VideoUrlRewrite and ArticleUrlRewrite classes I have so work to do :-)
Isn't that nice?
Starting the development of the new Tech Head Brothers in a remote multi developers environment I wanted to have some tooling to ease our work. For sure we have:
- A code repository: Subversion installed using VisualSVN server
- A continuous integration server: Team City
The continuous integration MSBuild script is doing the following steps:
- Compiling the code checked out by Team City
- Run NUnit tests
- Run NCover code coverage, that's the new integration of today
- Precompile the website
- Package the website
- Deploy the website on IIS in a staging stage
In Team City I have two configuration settings for the Portal project:
- CI - Trunk - Unit Tests - Coverage - Deploy Staging: Run as Continuous integration with unit test, code coverage and deployment to iis
- Daily - Trunk - Duplicate Finder: Run daily and find duplicates in our code
Now for each build I can look at those information!
I can see that all my 35 tests passed, the changes made, the log of the build, Artifacts that I defined (more in a minute) and finally a new tab Code Coverage Summary.
The unit tests are ok for a start but needs some more work as we can see! But ins't that cool to get the output directly in Team City! I love it.
And finally the artifacts tab
On this tab I get the output that is shown on the tab Code Coverage Summary as a file that I can download; CoverageSummary.html generated by MSBuild script using NCover, I also get the folder Coverage on which I can click on the index.html file to get a full report of NCover as you can see:
To get access to those Artifacts I needed to define in my settings the following:
And also modify the Team City server main-config.xml as described here with the following entries:
<report-tab title="Code Coverage Summary" basePath="" startPage="CoverageSummary.html" />
<report-tab title="Code Coverage" basePath="/Coverage/" />
To integrate NCover into my Continuous Build process made with MSBuild script I used the documentation on that page.
Update: First take care that in the main-config there are already some report-tab configuration, and the name msut be unique. If the name is not unique then the first in the list will be taken. So I removed the predefined report-tab and modified the one from my last post to this:
<report-tab title="Code Coverage Summary" basePath="" startPage="CoverageSummary.html" />
<report-tab title="Code Coverage" basePath="Coverage" startPage="index.html" />
By starting to write a post about the new step achieved in the tooling of Tech Head Brothers development I just realized that VisualSVN Server 1.1 is released.
So I downloaded and updated my installation in 2-3 minutes, all went well, just nice.
VisualSVN Server Change Log
- Added support for authentication via Windows domain.
- Implemented VisualSVN Server dashboard.
- It is now possible to edit server configuration via management console, without reinstallation.
- Implemented "Import Existing Repository" command.
- New user-defined configuration file named httpd-custom.conf has been added.
- URL of the selected node is now displayed in the description bar.
- New toolbar for the "VisualSVN Server" node has been added.
- VisualSVN Server now will always use hostname as "server name".
- VisualSVN Server will now suggest to subscribe to our news channel during installation.
- "Copy URL" and "Browse" commands will now issue a warning if there are no users defined.
- Warn user if the port we use is occupied by another service.
- "Create Repository" command has been renamed to "Create New Repository".
- "Copy URL" command has been renamed to "Copy URL to Clipboard".
- Fix: File C:\.rnd was being created during installation.
- Fix: VisualSVN Server couldn't be installed if there was no "C:\" drive in the system.
The aim is to be able to associate a bug/feature described into JIRA to source code changes made into the Subversion repository.
First of all you need to install the JIRA Subversion Plugin on you JIRA server.
Then you need to have VisualSVN installed and configured with your project checkout and opened in Visual Studio. You might do the same directly with TortoiseSVN.
Right click on your solution in solution explorer and choose VisualSVN /properties:
Add then two properties bugtraq:url and bugtraq:message as here:
Now when you commit your code to Subversion using VisualSVN or TortoiseSVN you will get access to the textbox Bug-ID/Issue-Nr:
And in JIRA you will see linked to your bug/feature the Subversion commits associated to it:
A very nice feature to have in a development process!
When I started to work on the new version of Tech Head Brothers I decided to use the new version of the unit testing framework from Microsoft. Before making this decision I read that it was much better and faster in several places. As I also wanted to get code coverage I thought it was a good idea.
I also had to setup a version control system and decided to use subversion with the facility of the free VisualSVN Server. Very simple way to setup in less than 10 min (including download time) a subversion repository on a Windows server. I highly recommend it ! I am also now, for some months, using VisualSVN that provides a seamless integration between subversion and Visual Studio 2005 and 2008. VisualSVN Limited offered a license of VisualSVN to me and my brother. Thanks a lot, really appreciated! And now at innoveo solutions, my company, we are also using it.
Then came the time to have a continuous integration server. After having CC.NET installed and used at innoveo solutions I decided to give a try to JetBrains Team City for my personal use on Tech Head Brothers development. The installation and configuration with subversion was straight and achieved in less than two hours. So I had a version control system and continuous integration process setup in less than 2 hours and a half. Isn't that incredible?
But as you can see on the following picture I had and still had an issue!
My unit tests aren't running at all! And you know what? What I feared the most was actually true!
As you can read it on this msdn article: How to: Set Up a Build Computer
In order to run tests during the build, Test Edition must be installed on the build computer. In order to run unit testing, code coverage, or code analysis, Visual Studio Team System Development Edition must be installed on the build computer.
Or on this forum post "Strange MSTest.exe problems with Build Server 2008 RTM"
We are indeed hoping to address this issue in a future release, but for now running unit tests with Team Build does require VS Team Suite or VS Team Tester on the build machine.
So no what I need to do as a next step is to convert my Visual Studio unit tests to a framework, like NUnit, that doesn't needs a development environment installed on a build server. What a waste of time!
At innoveo we are successfully using NUnit and Rhino Mocks with Team City!
I have nothing to say! You should watch this demo from Michael Schwarz, it is really impressive.
Today I updated my Surface Demo (original source from Silverlight examples). Well, there are only some small changes since last beta 1.1. So I have added a DeepZoom control (MultiScaleImage) to the demo:
See the online demo here.
It shows a way to create photo sets using DeepZoom and Silverlight 2.
You might sign-up and start to use it on http://photozoom.mslivelabs.com.
You also can see my first album, it was only two photos but shows the possibilities:
My friend David Catuhe (his French blog) just released a demo of what he calls a little 3D engine in Silverlight 2.
Check it out here: http://www.vertice.fr/NovaLight/NovaLightTestPage.html
This guy is not only a great person but also a high technically qualified engineer. And I even don't talk about his speaker talent.
Truly awesome what you have done David!
You might also check Nova, the real time 3D engine he made, for his company Vertice.
I finally got time to go on with the new Tech Head Brothers publishing tool!
This time I wanted to go on with source code and I reached a quite good status.
The usage scenario is as following:
- In Visual Studio the author select source code that he wants to publish on his article
- The author switch to Word 2007 an click on Source Code button and the code is automatically inserted
As you can see on the following pictures!
Behind the scene:
- I get the code from the clipboard,
- Build up a XML document with one tag representing the source code in html and inline css and another of pure text
- Insert a CustomXML part into the Word 2007 document
- Insert a PlainTextContentControl into the document with read only rights
- Uses XML mapping to display the text tag into the PlainTextContentControl
Great! I look forward to see the projection of the source code to HTML and preview it into the browser!
So the next steps will be:
Projection of hyperlink Projection of picture
- Projection of numbered list and
- Fixing bugs found by Sébastien and Rédo
Picture caption Giving the possibility to insert source code
- Projection of the source code
- Adding the possibility to the author to post the article directly from Word to Tech Head Brothers web site using secured web services made out of WCF
- Adding all validation of the content
Nice to see that my company, innoveo solutions, became a HP Partner!
Developer & Solution Partner Program (DSPP)
Company name and address:
Zurich ZH 8048
Phone: +41 43 500 54 54
innoveo solutions is a software company whose products, services and technologies enable its insurance industry clients to create business value. It provides high-level expertise in software, multi-channel e-business platforms, SOA, architecture, open source, infrastructure in combination with insurance industry knowledge.
Product Name: >> innoveo insurance enterprise sw
Last updated date: February 13, 2008
More Posts Next page »