Sunday, June 13, 2010

Enable Agile Testing through Continuous Integration

Continuous integration is one of the key processes that support an agile software development and testing environment. Sean Stolberg from Pacific Northwest National Laboratory wrote a great paper titled "Enable Agile Testing through Continuous Integration". In this paper he describes how a traditional software tester - transitioning to an agile development environment - put a continuous integration infrastructure in place. 

In doing so, he helped improve development practices and made possible his team’s transition to agile testing. Sean discusses his team’s initial motivations for adopting agile development practices and dives into the nuts-and-bolts implementation details. He shares their post-assessment of the implementation using Martin Fowler's “Practices of Continuous Integration” and concludes with a retrospective on implementing and promoting continuous integration within the context of agile testing. 

Find out how continuous integration can help improve your testing results and the quality of the software your team delivers. You can download the paper here from the Agile Alliance.

Related Posts:

Continue Reading...

Saturday, June 12, 2010

Continuous Integration with Hudson and .NET

Continuous integration - the practice of frequently integrating one's new or changed code with the existing code repository - should occur frequently enough so that no intervening window remains between commit and build, and such that no errors can arise without developers noticing them and correcting them immediately. Normal practice is to trigger these builds by every commit to a repository, rather than a nightly (or weekly!) scheduled build. Automated tools such as CruiseControl or Hudson support this process.

We decided to use Hudson for one of our projects since we allready had a Hudson server up and running for Java projects. Hudson includes numerous plugins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. With help from Redsolo's Guide to building .NET projects using Hudson we got it up and running within a day.

Our setup is as following:
  • Get the source code from our Subversion repository.
  • Link change logs to the repository browser using ViewVC.
  • Build the project using MBuild.
  • Run the tests using NUnit and display the results together with a trend graph.
  • Publish artifacts from the build (triggered builds).
  • Run FxCop on the created assemblies and display warnings (linked with source code) and a trend graph.
  • Search the source code for TODO comments and display the open tasks with links to the source code.
  • Create documentation using Doxygen.
  • Deploy the whole build on a dedicated test server.
  • Notify project members about the build result by email.
So far we are really impressed by Hudson, but I will tell you more about our experiences when we have used it for a little longer.

Continue Reading...

Monday, May 17, 2010

Top Ten Lies of Web 2.0

I read the article The Top 10 Lies of Web 2.0 from Dan Fost at SFGate.com and found it very compelling to morph it into a slideshow. So that is what I did ...

Continue Reading...

Monday, April 5, 2010

How to use ASP.NET MVC in combination with ADO.NET Entity Framework

As mentioned in a previous post I am currently working on a web application that we are building on top of the ASP.NET MVC Framework. The framework allows for a very clean implementation of the MVC pattern.

Because there is a database behind the application we decided to use the ADO.NET Entity Framework to access this database with help from model classes. The Entity Framework is a modeling framework that enables developers to define a conceptual model of a database schema that closely aligns to a real world view of the information. Benefits include easier to understand and easier to maintain application code that is shielded from underlying database schema changes.

In theory this all makes perfectly sense, but you have to implement it as well. There are two resources that I want to pass on because they were an incredible help to us.

The first is the tutorial Creating Model Classes with the Entity Framework on www.asp.net. The goal of this tutorial is to explain how you can create data access classes using the Entity Framework when building an ASP.NET MVC application. This tutorial assumes no previous knowledge of the Entity Framework. By the end of this tutorial, you’ll understand how to use the Entity Framework to select, insert, update, and delete database records. And in my opinion this tutorial meets its goal.

The second is a sample application written by Brad Abrams and Lance Olson. You will find a link to the sample and a description in his article ASP.NET MVC Example Application over Northwind with the Entity Framework. The sample application is a little outdated, but still an excellent reference point.

Related Posts:

Continue Reading...

Sunday, April 4, 2010

How to use ASP.NET MVC in SharePoint

Currently I am working on a web application that we are building on top of the ASP.NET MVC Framework. The framework is pretty impressive and allows for a very clean implementation of the MVC pattern.

As some of you know I do some SharePoint development as well, and I decided to try to run an application developed with ASP.NET MVC within SharePoint.

Why I want to do this? Because we could leverage all strong points of ASP.NET MVC like separation of concerns, testability, clean HTML together with the huge foundation that SharePoint offers. I am definitely not the first who wanted to do this, so help was allready on it's way.

SharePointMVC from Simon Cropp which is available for download on CodePlex is a great start for getting your ASP.NET MVC application to run in SharePoint.

Here is how it works:

  1. A SharePoint Master Page contains all SharePoint styles and theme
  2. A custom ASP.net page (MVCHostingPage) is based upon the SharePoint Master Page
  3. MVCHostingPage contains a web control called RenderControl
  4. RenderControl (and other internal classes) interrogates the current request and forwards it onto the ASP.NET MVC rendering engine.
  5. A HttpHandler takes all requests to *.mvc and redirects them to the MvcHostingPage.aspx page.

Continue Reading...
Copyright © 2009–2010 this++
Template Blogger Green by Dicas Blogger, pimped by Henrico Dolfing.