Once 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:
- Tom Miller
- 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".
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
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
The Solution
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":
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 )
As soon as you have 4 words in one row you win the game:
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?
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.