Bullshit-Bingo-Online mit BizzBingo – RTW

image

Es waren einmal ein paar Entwickler auf einem Microsoft WebCamp und es war die Idee geboren einer “Bullshit-Bingo-Online-Version” als Demo MVC Projekt. Alles Open Source natürlich. Unseren ersten Meilenstein haben wir erreicht… Ausprobieren unter www.bizzbingo.de / www.bizzbingo.com :)

Kurze Vorgeschichte

Auf dem WebCamp in München im Juni gab es am zweiten Tag eine Aufgabe zu meistern: Ein Demo MVC WebApp sollte entwickelt werden. Das Team was sich damals zusammengefunden hat – zu 4/5 Kollegen von mir und Torsten Hufsky kommt ebenfalls aus Dresden:

Ehrlich gesagt kamen wir an diesem Tag nicht wirklich weit, aber die Ideen waren da – und auch das Projekt wurde auf Codeplex eingestellt. Die Idee dreht sich um “Bullshit/Buzzword Bingo” – nur als richtiges “Online Spiel”. Davon sind wir heute noch weit entfernt, aber es ist wie gesagt nur ein kleines Hobbyprojekt.

Nach dem WebCamp ist die Entwicklung etwas “eingeschlafen”, jedoch haben Ken und ich weitergebastelt um mal ein paar Techniken auszuprobieren.

Technik / Architektur

Als Datenspeicher dient eine Microsoft SQL Datenbank und als “Frontend Framework” für die Webkomponente ASP.NET MVC 3 – das ganze gehostet auf Windows Azure / SQL Azure. Als “Architektur” wollen wir uns an CQRS ranwagen.

Momentan ist es aber ungefähr so geworden – wir greifen (noch) auf eine Datenquelle zu, auch wenn die Idee eigentlich von CQRS war dass Queries auf eine Art “Cache” gehen.

image

Commands: Delete / Create / Update
Queries: Read

Hier mal ein paar Frameworks die wir einsetzen.

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 fürs Mocking

Build / Deployment:

  • Powershell zum Deployen der SQL Scripts
  • MSBuild
  • Azure SDK

Sonstiges:

  • Azure SDK wird aktuell noch in keinem Projekt genutzt, nur für das Hosting wie hier beschrieben.
  • NDepend für Codeanalyse
  • TeamCity als Buildserver
  • Die Tests sind nach dem Vorbild von Thomas Bandts Blogpost entstanden – genauere Details wie wir Tests bei uns strukturieren folgen später, oder ihr schaut einfach selber nach ;) .

Die Solution

image

Hier seht ihr die aktuelle Solution – den aktuellsten Stand findet ihr auch auf unserer Codeplex Seite.

Web = MVC Frontend

Queries / QueryHandlers = “Read” Befehle
Commands / CommandsHandlers = “Schreibende” Befehle

Data = Entity Framework & Mapping zum Model

Model = POCOs

Installer = IoC Konfiguration

 

Viel Zeit haben wir auch für die Tests aufgewendet. Kleine Besonderheit bei den “Unit Tests”:

  • Data.Tests gehen gegen die Datenbank und testen die Repositories. Dabei wird wenn nötig automatisch die Datenbank über SQL Scripte, welche sich im Database Ordner befinden ausgeführt.
  • IntegrationTests machen einen gesamten Systemtest und gehen von den Controllern aus – “WebTests” oder richtige “BrowserTests” sind es also nicht.
  • Beide Tests erstellen zum Anfang einen Testdatenbank mit einem konsistentem Stand – aufbauend auf SQL Scripten.

Was kann die Website nun?

Besucher sehen ein zufällig generiertes Set an “Buzzwords”:

image

Wenn man nun in einem Meeting ist liegt es nun an dem Benutzer selber auf die Wörter zu klicken (ja, man kann bescheissen… muss man ja aber nicht.)

image 

Sobald 4 Wörter in einer Reihe getroffen wurden hat man das Spiel gewonnen:

image

Momentan kann man nicht mehr machen… außer das die englisch und deutsch unterstützen. Man muss sich zudem nicht anmelden.

Warum wir einen Postback durchführen? Weil wir eigentlich noch mehr Ideen haben und richtig “Online Spielen” wollen. Ja – ein Postback ist heutzutage nicht mehr zeitgemäß, reicht uns momentan aber.

Source Code?

image

Wir nehmen CodePlex (und somit den TFS) als Source Control und arbeiten darauf. Den Source Code könnt ihr euch gerne hier anschauen.

Ausprobieren? Feedback?

Ausprobieren könnt ihr es hier. Feedback könnt ihr in unserem UserVoice Forum geben. Wir werden auf alle Fälle weiterbasteln und vielleicht kann es ja dem einen oder anderen auch helfen. Einige Blogposts werde sich bestimmt in Zukunft darum drehen und genauere Aspekte betrachten, wie z.B. Unit Testing oder wie wir Database Tests machen.


Kick It auf dotnet-kicks.de
Wenn dir der Blogpost gefallen hat, dann hinterlasse doch einen Kommentar. Wenn du auf dem Laufenden bleiben willst, abonniere unseren RSS Feed oder folge uns auf Twitter.

About the author

Written by Robert Mühsig

Robert Mühsig (@robert0muehsig) ist Webentwickler und beschäftigt sich mit Web-Frameworks (vor allem dem ASP.NET MVC Framework) und scheut sich auch nicht vor Javascript. Ansonsten bloggt er über all jene Probleme, die ihm über den Weg laufen. Seit 2008 ist er Microsoft MVP für ASP.NET und er arbeitet bei der T-Systems Multimedia Solutions GmbH in Dresden. Treffen kann man ihn online via Twitter (@robert0muehsig) oder dieser Seite oder bei der .NET User Group Dresden.

2 Responses

  1. Eine schöne Idee. Das Ergebnis habe ich schon ausprobiert! Vielleicht finde ich auch einmal die Zeit in den Code zu schauen.

    Reply

Comment on this post

Letzte Posts

  • image.png
    Chocolatey–apt-get für Windows

    Durch Zufall bin ich auf das Tool “Chocolatey” gestoßen. Wer die Website sich anschaut, wird evtl. eine Verwandschaft mit NuGet ausmachen. Was macht Chocolatey? Chocolatey ist ein “Maschine Package Manager”, das bedeutet, dass man für seine Maschine einfach Tools runterladen und Updaten kann – direkt über die Konsole. Was ist der Unterschied zu NuGet? NuGet ...

  • image.png
    SASS, LESS & Coffeescript in Visual Studio mit der Web Workbench

    CSS und Javascript sind die “kleinste” Schnittmenge von allen Browsern für die Erstellung von Web-Applikationen. Leider geht dabei etwas komfort verloren, daher lieben alle Webentwickler jQuery! SASS und LESS sind zwei Varianten, wie man “schöner” CSS schreiben kann und Coffeescript versucht Javascript Entwicklung zu vereinfachen. Aber immer der Reihe nach… Was ist SASS? SASS steht ...

  • image.png
    Code-Inside Sample nun auf GitHub: Google Code zu GitHub Migration

    Seit einiger Zeit habe ich Beispielcode auf Google Code bereitgestellt. Einfach nur noch weg von Google Code O-Ton damals war: Ich hatte mich für Google Code entschieden, weil ich hoffe dass früher oder später die Google Code Suche nutzbar ist und es dadurch wenigstens ein kleiner Mehrwert entsteht. Allerdings wirft es momentan noch ein Fehler. ...

  • image.png
    Windows-8-Hackathon @Night in Leipzig

    Hacken (=Entwickeln, nichts böswilliges!), Grillen und mitten in der Nacht fachsimpeln? Dann ist vielleicht der Windows-8-Hackathon was für dich. Der Hackathon wird vom 15. Juni (ab 19:00) bis zum 16. Juni (bis in die frühen Morgenstunden) in Leipzig stattfinden.  Mit dabei sind auch Darius Parys und Tom Wendel von der Microsoft Deutschland. Thematisch (wie der ...

  • image.png
    Einstieg in Redis on Windows & Redis mit .NET benutzen

    Redis gehört zu den NoSQL Datenbanken und ist dort in der Familie der Key-Value Stores zu finden. Redis wird oft mit “Blazing Fast” betitelt und laut dem Stackoverflow Thread soll es im Vergleich zu MongoDB zweimal (beim Schreiben) und sogar dreimal (beim Lesen) so schnell sein wie MongoDB – auch wenn der Vergleich etwas “hinkt” ...

Auf Amazon einkaufen & unterstützen

Facebook