Ich bewerte meine Platten bei discogs. Außerdem bewerte ich meine Platten bei iTunes. Und ich bewerte für meinen Blog die Platten, die neu in die Sammlung gekommen sind. Aber bewerte ich Platten für meine Plattenverwaltung? Nein! Warum eigentlich nicht? Die meisten der oben genannten bieten nur ein 5-stufiges System zum Musik bewerten. Ich möchte gern 10 Stufen.
Für die Umsetzung gehe ich wie immer vor.
Datenbank entwerfen
Ich habe zwar für meine MySQL-Entwicklung schon mal mit dem Code-First-Ansatz des Entity Frameworks 6 gearbeitet, aber meine Datenbank ist noch mit einer alten Version des EF erstellt, sodass ich hier noch ganz klassisch meinen Datenbankentwurf mache. Mir ist klar, dass die Bewertung immer auf Ebene eines Releases stattfindet. Ich könnte zwar alle Titel bewerten (zu viel Arbeit) oder jede physische Platte. Letzteres macht ja überhaupt keinen Sinn, da ich keine Platte kenne, wo es so krasse qualitative Unterschiede zwischen den einzelnen Scheiben gibt. Also wird die neue Tabelle mit der Releasetabelle verknüpft und schon kann ich das Datenbankskript generieren lassen.
Umsetzung
Noch bevor ich mit dem Datenmodell angefangen hab, ist der neue Zweig gezogen. Nach dem Datenbankmodell kommt erstmal der eher schwierige Teil. Ich möchte ein Control entwickeln, mit dem ich eine Reihe von Sternen anklicken kann, die meiner Bewertung entspricht. Sowas findet sich ganz schnell im Internet. Ich passe das Control nach meinem Wunsch, eine zehnstufige Skala zu haben an und den Bug, der im Quellcode versteckt ist, behebe ich auch noch.
Die nächsten beiden Schritte sind absolut einfach. Das Lesen und Schreiben des Objektes sind ruckzuck erledigt. Also schnell mal das Programm gestartet und ich schaue, ob es funktioniert. Fehlanzeige! Natürlich muss ich erstmal die Datenbank anpassen. Danach kann es losgehen. Das Control hat noch ein paar kleine Macken, die aber schnell behoben sind. Es läuft!
Testbetrieb
Nachdem ich die ersten Gehversuche gemacht habe, wird der Stand eingecheckt und ich beginne mit dem Feinschliff. Das Ratingcontrol bekommt noch eine feine Umrandung. Außerdem passe ich die Ansicht für den Release an. Ich gruppiere die Teile und setze Trenne, da wo es sinnvoll erscheint. So ordnet sich die Bewertung zum Stil ein – quasi der subjektive Teil eines Releases. Ich spiele ein paar Standardabläufe durch und bin damit zufrieden. Der endgültige Stand wird wieder eingecheckt und das Programm geht in den Testbetrieb.
Aktuell benutze ich noch einen riesigen Tooltip, der mich daran erinnert, was ich mit den Sternen eigentlich bewirken wollte. So fällt es mir leichter, mich daran zu erinnern. Und ich habe schon eine Idee für das nächste Mal. Jeder Stern zeigt seinen eigenen Tooltip, was er bedeutet.