Web- und Software Development

WM2010 – Management | Das “DevBattle” Resultat

Written By: - Jun• 09•10

Ich hatte ja damals mal aus dem Bauch heraus zum DevBattle aufgerufen, erinnert ihr euch noch? Die Resonanz war eher bescheiden, kann ich ja auch verstehen, nicht viele setzen sich nach der Arbeit noch hin und entwickeln an private Projekten. Nun denn, ich möchte heute meine Version vorstellen.

Das WM2010 Management

Die Features

Über das WM2010 Management kann man die Spielstände der einzelnen WMSpiele speichern. Für die Finalrunden werden die Gegner aus den Gruppen und den einzelnen Finalspielen automatisch ermittelt und für die nächste Begegnung eingetragen.

Des Weiteren findet man zu jedem Spiel links oberhalb das Datum und die Uhrzeit, an dem das Spiel stattfindet und rechts oben den Ort der  Begegnung.

Die Ergebnisübersicht, zeigt den aktuellen Gruppenstand der Länder in dieser Tabelle.

Die Fenster öffnen sich mit einem FadeEffekt und sind rahmenlos im eigenen Design gehalten und können mittels Drag & Drop auf dem Desktop verschoben werden. Das Schließen eines  Fensters erfolgt natürlich auch über ein Fading.

Die Applikation kann geschlossen und minimiert werden. Ein Klick auf den Ball oben rechts führt zurück zur Startseite. Eigentlich nichts dolles, musste aber implementiert werden, da kein vorausgewählter Style verwendet wurde.

Der Blick unter die Motorhaube

In der damaligen Ankündigung ging es ja darum, nicht nur das Tool zu entwickeln, sondern auch um das Beschreiben der Vorgehensweise. Hier möchte ich gerne meine Herangehensweise darstellen.

Die Planung

Die Planung begann recht früh, nämlich sogleich nach der Idee im März. (Viel Zeit blieb ja nicht). Ich aggregierte dazu erstmal Informationen rund um die Fussballweltmeisterschaft. Die am besten geeignete Wissensquelle fand ich – wie so fast immer – bei Wikipedia.

Das Datenbankdesign

Das Design der Datenbank plante ich schon recht früh, hab hab nicht wirklich alles verwendet (Spieler, Position). Hier das ADO-Modell:


SoftwareDesign

ADO Framework / Managementkomponente

In der Managementkomponente findet der Zugriff, über das ADO Framework, auf die SQL Datenbank statt. Hier stehen die CRUD Operationen zu den einzelnen Entities bereit.

Controller

Der Controller bereitet die Operationen für den WM2010 Manager auf und bietet für die Implementierung Methoden zum Ermitteln und Speichern von Datensätzen.

CodeBehind

In den vereinzelten CodeBehind-Dateien werden die Daten für die View (XAML) aufbereitet.

XAML

Die Darstellungsschicht. Diese Schicht dient ausschließlich zur Darstellung der Elemente.

GrafikDesign

Die Fahnen, der Rasen (Hintergrundbild), die WMIcons und die anderen kleinen Icons die im Design verwendet werden, werden namentlich in der Applikation mit einer Verlinkung genannt.

Das ganze dann Zusammengeschustert ergibt das gesehene Gesamterscheinungsbild.



Werkzeuge


Versionierung


Zukunft

Angedacht für eine nächsten Version wären zum Beispiel folgende Anpassungen / Features:

  • Refactoring!
  • Tippspielintegration
  • globales Hosten der Managementkomponente
  • das Ermitteln der Ergebnisse über eine API
  • Einbinden der Wikipedia API um Informationen zu Teams und Stadien darzustellen

Denkbar wäre auch das Streamen von Spielen (was der Hammer wäre) – aber hier spielt wahrscheinlich die Obrigkeit (Veranstalter) nicht mit :/


Fazit

Natürlich ist das ganze noch Verbesserungswürdig. Gerade zum Schluss fängt man dann doch an, das eine oder andere Workaround zu implementieren. Aber es gibt ja immer noch die Zeit “danach”, nicht wahr : ) Okay in diesem Falle hat man Zeit bis 2014 zur nächsten WM etwas gescheites draus zu machen, hehe.

Alles in allem kann ich sagen, es hat ne Menge Spass gemacht und plane schon wieder an etwas Neuem. Aber dieses mal ohne den Abgabedruck, jedenfalls wollte ich das in kommenden privaten Projekten vermeiden.

Nun, Euer Feedback ist gefragt, das WM2010 Management ist eingecheckt und kann gerne weiter verwendet werden (auch einzelne CodeTeile natürlich). Eine Erwähnung des Authors wäre natürlich Super  ;)

Ich bin des Weiteren auch gerne zu größeren, privaten Teamprojekte bereit, bei denen ich mein KnowHow entfalten und natürlich auch von anderen lernen kann.

Offen

Leider bekomme ich das nicht gebacken, eine anständige Setup mit den entsprechenden Datensätzen der Datenbank zu bauen, vielleicht kann mir da ja jemand etwas unter die Arme greifen. Den ConnectionString in der app.conf muss auch für den Benutzer funktionieren. Kein Plan :/

Aber bevor ich es geschafft habe, wäre ich natürlich dankbar, wenn derjenige das Projekt auschecken und als Setup bauen könnte. Die SQL Scripte liegen in der Solution unter SolutionItems.

Download:

Ähnliche Beiträge

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

9 Comments

  1. Jörg sagt:

    Schöne App hast du da gebaut. Ich würde dir ja gerne etwas helfen aber ich setze kein GIT ein (und will es auch nicht :-) ) und das auschecken ist über die URL sehr mühsam (zumindest habe ich nichts gefunden wie man das mit einem klick downloaden oder auschecken kann). Kannst du mir hier einen Tipp geben?

  2. Mario Priebe sagt:

    Hallo Jörg,

    vielen Dank für dein Interesse. Ich verwende dazu TortoiseGit, das bindet sich in das KontextMenu ein, von dem man aus bequem die Quellcodeverwaltung managen kann.

    Aber wenn du sagst das du Git nicht einsetzen willst, welche Art von Versionierung verwendest du denn in deinen privaten Projekten?

  3. Jörg sagt:

    Ich benutze Subversion ebenfalls mit Tortoise

  4. Mario sagt:

    Ja, ich hab mein VServer kürzlich abgegeben, da hätte ich das via Subversion versionieren können. Vielleicht hole ich mir aber irgendwann mal wieder eine Kiste, da könnte ich dann ein SubversionServer aufsetzen. Aber atm brauch ich nicht wirklich einen Server.

  5. Jörg sagt:

    Kannst du deine Sourcen nicht mal als ZIP zum download irgendwo anbieten?

  6. Mario sagt:

    Ja klar, hier der Link

  7. Jörg sagt:

    Super, vielen Dank. Ich schau bei Gelegenheit mal rein. Hast du dir mal überlegt es z.B. auf Codeplex.com als OpenSource Projekt zu hosten. Da wäre dann vieles einfacher :-)

    Als Beispiel kannst du dir ja mal mein Projekt dort anschauen
    http://wde.codeplex.com/

    Gruß Jörg

  8. Mario sagt:

    Ja Jörg, hehe ich hatte mein Projekt da auch schon registriert, aber noch nicht freigeschalten. Weil ich die Grösse des Projektes nicht wirklich für angemessen hielt, hab ich es gelassen.