Maxdome getestet

Nachdem ich nun schon viel Werbung von Maxdome gesehen habe und nie Lust habe zur Videothek zufahren habe ich mich einfach mal für da registriert um das VideoOnDemand Angebot zu testen. Derzeit kann man da das sogenannte "Moviepaket" einen Monat lang gratis testen das normalerweise 5 Tacken im Monat kostet und das hab ich gleich mal mitbestellt, auch wenn man da noch nicht weiss was da genau enthalten ist. Ein schaler Beigeschmack kam gleich bei der Registrierung auf, weil ich gleich Kontodaten hinterlegen musste, obwohl ich erstmal nur nen Gratismonat buchen wollte. Sowas mag ich garnicht. Da ich einen Mediacenter-PC mein Eigen nenne brauchte ich keine zusätzliche Hardware. Man muss einfach nur das Maxdome-MediaCenter Plugin runterladen und installieren. Anschließend findet man die Anwendung dann im Menü unter "Extras" wieder. Beim ersten Login will die Anwendung die Logindaten vom Account haben und dann zeigt sich erstmals das etwas unübersichtliche Menü. Nach dem ich mich dann so 5 Minuten im Maxdome-Menü durch die Gegend navigiert habe ums kennenzulernen wollte ich natürlich wissen "Welche Filme sind denn nun alle in meinem "Movie-Paket" enhalten, die ich jetzt kostenlos angucken kann?". Nach einigem Suchen musste ich leider sehr überrascht feststellen das es keinerlei Sortier/Filterfunktion gibt mit der man bestimmte Angebote rausfiltern kann. Es gibt zwar eine Suche mit der man nach bestimmten Filmen suchen kann, aber es gibt keine Möglichtkeit nach Paketzugehörigkeit zu gruppieren. Da war ich dann erstmal echt angenervt. Man hat lediglich die Cover-Ansicht der Filme vor sich und erst wenn man auf den Film direkt drauf geht um die Details dazu zu lesen sieht man ob der Film in einem bestimmten Paket drin ist oder nicht. Ganz großes Kino sag ich da. Man muss da tatsächlich jeden Film anklicken und in die Details gucken um rauszufinden ob der für einen kostenlos ist oder nicht. Das kann ganz schön nervig werden wenn man sich durch tausende Filme klicken muss weil man ja nicht immer genau vorher weiß was man gucken will. Auch auf der Maxdome-Webseite kann man nicht rausfinden welcher Film in welchem Paket steckt, echt armselig muss ich sagen. Na jedenfalls habe ich mich dann durch allerhand Cover durchgeklickt und hin und wieder trifft man sogar mal auf nen Film der in seinem Paket ist. Die Auswahl ist allerdings relativ bescheiden und da war kaum ein Film bei der mich irgendwie begeistert hat, aber das ist sicherlich Geschmackssache. Als wir dann endlich nen Film gefunden haben der im Paket war und den wir auch sehen wollten konnte es endlich losgehen. Nachdem ich den Film ausgewählt hatte musste ich noch per Klick bestätigen das ich über 16 Jahre alt bin. Sowas ist echt lächerlich, das können die sich echt sparen. Der Film startete jedenfalls sofort und es gab auch keinerlei Unterbrechungen oder Störungen während der Wiedergabe. Die Bildqualität war absolut ok, aber wir haben noch nen altmodischen Röhrenfernseher, daher sind wir da kein Maßstab 😉 Hinweis zu Moviepaket: Das Paket läuft nach dem Gratismonat als Jahresabo weiter und kann nur in den ersten 4 Wochen telefonisch gekündigt werden, daher aufpassen! Hier sei noch erwähnt das das Paket SOFORT nach dem Kündigungsanruf deaktiviert wird. Ich habe da schon nach 2 Wochen angerufen ums nicht zu vergessen weil ich dachte das ich trotzdem die 4 Wochen habe, dem ist aber nicht so! Das Paket ist sofort weg, super Sache Maxdome. Es gibt hier noch deutlich mehr Pakete zur Auswahl die man als Abo buchen kann. Ob sich das für einen lohnt muss jeder für sich abwägen, aber für unsere Zwecke lohnt so ein Abo nicht. Wir leihen nur recht sporadisch mal Filme und dann nehmen wir eh meist irgendwas Aktuelles was dann sehr wahrscheinlich gerade nicht in dem Paket drin ist, das man gebucht hat. Das rechtfertigt die Kosten von 15 Euro im Monat für das Premium Paket nicht, da bleib ich lieber beim Einzelabruf. Also kurz gesagt: Technisch funktioniert das ganze gut, die Bedienung und die Preise sind allerdings ausbaufähig.

BASTA!Spring 2010 – Mein Fazit

Auch dieses Jahr war ich wieder Teilnehmer der Frühjahrausgabe der Konferenz für .NET Entwickler BASTA!. Hinter mir liegen 4 Tage voller teils sehr interessanter und unterhaltsamer Vorträge aus allen Bereichen der .NET-Welt. Hier mal ein paar Dinge die ich dazugelernt habe: Das Keyword "var" wurde nicht etwa nur erfunden damit man nicht mehr explizit den Typ einer Variablen angeben muss, sondern um Anonyme Typen darstellen zu können. Das war mir bisher irgendwie entgangen 😉 IPhone Anwendungen muss man nicht in Objective C schreiben, es geht auch in C#. Mit der Hilfe eines Apple Rechners, der Entwicklungsumgebung MonoDevelop (kostenlos) und einer MonoTouch Lizenz (400€) kann man eine C# Anwendung zu einer IPhone App kompilieren. Dazu gabs eine schöne Live-Demo, sah relativ einfach aus. Debugger Habt ihr im Visual Studio 2008 schon mal mit der rechten Maustaste auf einen Breakpoint geklickt? Ich leider nicht, daher sind mir einige sehr hilfreiche Funktionen bisher entgangen... Zum Beispiel kann man hier eine "Bedingung" festlegen die erfüllt sein muss, damit der Debugger die Anwendung anhält. Die "Trefferanzahl" ermöglicht es einem festzulegen, dass der Debugger beispielsweise erst beim 5. Erreichen des Breakpoints das Program anhält und nicht jedesmal! Mit "Bei Treffer" kann dem Breakpoint ein Makro hinterlegt werden, dass bei Erreichen ausgeführt wird. Das neue Visual Studio 2010 kommt allerdings mit einem Hammer-Feature daher, und das heisst "Rückwärts-Debugger". Man kann nun endlich im Programmablauf in der Zeit zurückspringen und sich jeden Zustand anschauen den man will. Leider wird dieses "IntelliTrace" nur in der teuersten Ultimate Version enthalten sein die ca. 2 Scheine kosten wird. TFS 2010 ist die neuste Version vom Team Foundation Server und dieser soll sich  im Gegensatz zu seinem Vorgänger sehr einfach (in ca. 20 Minuten) in Betrieb nehmen lassen und man braucht kein Server-Betriebsystem mehr dazu. Das hier integrierte Code-Versions-Verwaltungssystem ist der Nachfolger vom bisherigen "SourceSafe" und bietet auch sehr kleinen Teams sehr gute Kontrolle über gemeinsame Projekte. TFS enthält auch einen Issue bzw. Bug-Tracker und man kann WorkItems verwalten. Damit lässt sich quasi der komplette Lebenszyklus einer Anwendung abbilden. Sehr schönes Teil wie ich finde. Besitzer einer MSDN-Subscription bekommen das Teil mit einer 5 Benutzer Lizenz wohl schon recht günstig. Das MVVM Pattern (Model-Viev-ViewModel) ist ein Design Pattern, dass häufig bei WPF/Silverlight Projekten zum Einsatz kommt. Hierzu gibt es einen sehr schönen Beitrag auf Codeprojekt von Rainer Stropek wo gezeigt wird, wie das Entwurfsmuster angewendet wird und wie man damit eine wiederverwendbare Codebasis schaffen kann, die sowohl für WPF als auch für Silverlight Projekte gleichermaßen einsetzbar ist. An dieser Stelle möchte ich auch mal ein richtig dickes Lob an Rainer Stropek rausschicken. Er hat während der BASTA mehrere sehr gute und vorallem praxisnahe, Vorträge gehalten die mich wirklich weiter gebracht haben. Danke dafür, weiter so! IronPython ermöglicht die direkte Nutzung der sehr mächtigen Skriptsprache Python aus .NET Assemblies heraus. Hier gabs ein schönes Praxisbeispiel zu sehen in Verbindung mit dem HTML/XML Parser BeautifulSoup für Python, welcher einfaches ScreenScraping ermöglicht. Ist auf jeden Fall einen Blick wert! CodeContracts bieten eine sehr schöne Möglichkeit um Validierungslogik zu implementieren. Anstatt viele If-Anweisungen oder try/catch Blöcke in die Ablauflogik zu packen kann man beispielsweise mit dem Attribut  "Contract.Reqire(...)" über einer Methode oder einem Property eine entsprechende Gültigkeitsbedingung festlegen. Das sieht nicht nur sauberer aus, sondern ist auch deutlich besser testbar. Ist auf jedenfall empfehlenswert, wenn man sehr viele Gültigkeitsbedingungen abzuprüfen hat. RhinoMocks und MOQ sind zwei gute Mocking-Frameworks um Objekte bzw, Verhalten zu "simulieren". Es geht darum Code testbar zu machen in dem Abhägigkeiten "gemockt" werden. Das Ziel ist es, dass ein Testfall nur maximal EINEN Grund haben darf um zu scheitern und nicht mehrere. Sobald aber mein Testfall eine Abhägigkeit hat wie z.B. ein Zugriff auf eine Datenbankverbindung oder einen Webservice habe ich mehrere potentielle Fehlerfälle zu betrachten. Hier springen die Mockobjekte in die Bresche, mit denen man bestimmte Dienste, Rückgabewerte oder Abläufe simulieren kann, obwohl diese evtl. nicht erreichbar bzw. noch garnicht implementiert sind. Damit ist man in der Lage einzelne Dinge zu testen ohne auf die Abhängigkeiten eingehen zu müssen. Zum Thema "Geschwindigkeitsoptimierung" von Anwendungen gab es auch einen schönen Vortrag zu hören in dem auf Möglichkeiten eingegangen wurde, wie man seine Anwendung schneller machen kann. Das betrifft vorallem Anwendungen die viel rechnen müssen bzw, die sehr komplexe Algorithmen durchlaufen. Beispielweise ist die Verwendung von "struct" deutlich besser für die Performance einer Anwendung als bei der Nutzung einer Klasse und Methodenaufrufe in flachen Objekten sind deutlich schneller als bei Objekten die ein Interface implementieren bzw. die von einer Klasse erben. Um Performance von Anwendungen zu messen sollte man dotTrace von jetbrains verwenden. Das ist mit Sicherheit besser als jeglicher handgestrickter Kram. Sehr unterhaltsam war der Vortrag "Why software sucks" von David Platt. Der Mann ist Amerikaner und ein echter Entertainer! Er hat auf sehr amüsante Weise ausgesprochen, was die meisten Entwickler eigentlich nicht hören wollen: "Kein Schwein interessiert sich für deine Software". Leider hat er damit sehr recht, denn Anwender nutzen Software um ihre Arbeit zu erledigen und sonst für nichts. Es interessiert wirklich keinen Anwender wie Software gemacht ist und was alles für spannende Technologien drin verbaut wurden. Es geht dem Benutzer nur darum seine Arbeit zu erledigen bzw. einen Zustand der Zufriedenheit herzustellen. Deshalb sollten alle Entwickler immer darauf achten das Software einfach zu benutzen ist und möglichst kein Handbuch notwendig ist um sie zu verstehen. Es sollten nur Dinge implementiert werden die wirklich gebraucht werden. Maximale Flexibilität in einer Anwendung heisst oft leider auch zu viele unübersichtliche Features die oft eher zu Frustration des Benutzers führen als zur Zufriedenheit.
Don't let your software suck! Make it just work!
So, das soll reichen. Neben den vielen Informationen gabs natürlich auch wieder sehr gutes Essen! Daher möchte ich noch den Veranstalter loben, insbesondere die Küchencrew vom Maritim Hotel in Darmstadt. Das war mal wieder eine Schlemmerwoche vom Allerfeinsten, Super Leistung 😀 Na dann hoffentlich bis nächstes Jahr...