09 January 2011 CI Team

imageOnce upon a time there was a group of developers on a Microsoft WebCamp with too much unused energy and the idea was born to create a "Bulshit-Bingo-Online-Version" as a Demo MVC project. As Open Source of course! Now we are proudly presenting our first big step...

Try it out here: www.bizzbingo.com

Little introduction story

On the WebCamp in Munich in June 2010 we´ve got a little quest to solve: develop a Demo MVC WebApp. The team I (Robert) and Torsten Hufsky boiled up at this time consists of 4/5 nice follows of mine and they are from Dresden too:

- Ken Kosmowski

- Tom Miller

- Oliver Guhr

- Torsten Hufsky

- Robert Mühsig

To say the true, we didn´t reach a lot on this first day but we have ideas and the project was already published on Codeplex. We planned to create a "Bullshit/Buzzword Bingo" - but as an online game. But we are far away from this today but for me it becomes a little hobby project now.

After the WebCamp was over the development falls into sleep but Ken and Robert are still working on it to try out some interesting technics.

Technic/ Architecture

To save our files we used a Microsoft SQL databank and as a "Frontend Framework" for the web component ASP.NET MVC 3 - the whole thing is on Windows Azure / SQL Azure. For the "Architecture" we are planning to make a gentle try with CQRS.

At the moment we are (still) using a data source but the idea behind CQRS is that Queries do a kind of "Cache".

image

Commands: Delete / Create / Update

Queries: Read

Here are some of the frameworks we have used.

Applikations-Frameworks:

- ASP.NET MVC 3

- .NET 4.0

- Entity Framework für Datenzugriff

- Castle Windsor für IoC

- jQuery

- FEM CSS Grid

Test-Frameworks:

- NUnit

- Moq for Mocking

Build / Deployment:

- Powershell to deploy the SQL Scripts

- MSBuild

- Azure SDK

miscellaneous:

- Azure SDK isn´t used in any project at the moment but here you will find a description of the hosting.

- NDepend for Codeanalyse

- TeamCity as Buildserver

- The tests are done after the example of Thomas Badts blogpost (unfortunately it´s only available in german language) - more details how we structured the tests will follow soon or you check it out by yourself Zwinkerndes Smiley

The Solution

image

Here you can see our actual solution. Our current status you are able to see on our Codeplex side.

Web = MVC Frontend

Queries/QueryHandlers = "Read" order

Commands / CommandsHandlers = "writing" orders

Data = Entity Framework & Mapping to the Model

Model = POCOs

Installer = IoC Konfiguration

We also used a lot of time for the tests. Little special on our "Unit Tests":

Data.Tests are throw the file bank and they are testing the repositories. Because of this the databank will be performed, if needed automatically, by SQL scripts, which are located on the database folder.

IntegrationTests are testing the whole System and start at the controller - they are not really "WebTests" or "BrowserTests"

Both kinds of Tests are creating a test databank at the beginning with consistent effective - constructing on a SQL script.

So what is this website suposed to do?

Visitors will find a random created set of "Buzzwords":

image

If you are on a (boring) meeting you have to click on the words which are used by the speakers in you meeting. (yes, it´s possible to cheat but you don´t have to Zwinkerndes Smiley )

image

As soon as you have 4 words in one row you win the game:

image

That´s it for now. You can choose between English and a German version and you don´t have to register yourself.

Why are we doing a Postback? Because we have lots of ideas left and we want a really online game. Yes, a Postback isn´t in time now a day but it´s enough for us at the moment.

Source Code?

image

We use CodePlex (and with this TFS). You are welcome to take a look on the source code here.

Try? Feedback?

If you want to try it click here. And of course we are thankful for every kind of feedback either here or in our UserVoice forum. We will go on working on this project and maybe it will be a little help for anyone of you out there. Some of our future blogposts will be about this subject and take a deeper look on some aspects like for example Unit Testing or how to do Database Tests.