Archiv für den Monat Oktober 2012

Mobile Serie – Ebook Reader

In diesem Beitrag befasse ich mich mit der Nutzung von Ebook Readern im privaten Umfeld. In einem späteren Beitrag gehe ich auf den beruflichen Einsatz ein.

Ich hatte die letzten Wochen Gelegenheit meinen Kindle ausgiebig zu testen und eines steht fest: Ich bin begeistert! Kein Wunder, warum die Branche boomt. Die Lesequalität steht der im Vergleich zu normalen Büchern in nichts nach. Selbst direkte Sonneneinstrahlung schmälert die Anzeige nicht. Und genau hierbei grenzen sich die digitalen Lesegeräte ganz klar von Tablets ab: Die Displaytechnologie E-Ink ist speziell auf die Lesebedürfnisse ausgelegt. Ausgenommen sind lediglich stark bildlastige und farbenreiche Werke, die weniger dafür geeignet sind. Die Akkulaufzeiten, welche lediglich von der Anzahl gelesener Seiten abhängig sind, suchen ihresgleichen (3 Monate sind keine Seltenheit).

Viele nützliche Funktionen rund um das Gesamtpaket ab:

  • Automatische Lesezeichen, sodass man überall und auf jedem Endgerät (z.B. Handy oder PC) genau dort weitermachen kann, wo man aufgehört hat
  • Eigene digitale Notizen und Markierungen, d.h. das Beschreiben von Bücherseiten mit Textmarkern entfällt. Ebenfalls toll: Das Einblenden der Notizen von Personen, denen man auf Amazon folgt, ist ebenfalls möglich.
  • Über soziale Netze lassen sich Textpassagen weiterempfehlen
  • Direktes Nachschlagen in Wörterbüchern
  • Text-to-Speech: Ein integrierte Vorlesefunktion, welche mit englischen Titeln sehr gut funktioniert
  • Günstigere Preise als für gebundene Bücher
  • Abonnements von Zeitschriften möglich
  • Verleihen und Verschenken von Inhalten ist möglich
  • Pro Monat kann ein Ebook aus der Leihbücherei geliehen werden
  • Kostenlose Ebooks erhältlich
  • Kompakt und leicht
  • Features wie ein MP3-Player sind angedacht

 

Leider ist gerade Deutschland noch Schlusslicht, was das Angebot und die Preise von Ebooks angeht (vgl. aktuelle Zahlen hier und hier). Demzufolge sind nicht alle Inhalte digital verfügbar und die Einsparungen entsprechen bei weitem nicht denen im Ausland. Doch im Segment der Fachliteratur und der englischen Titel ist eine gute bis sehr gute Abdeckung gewährleistet. Am besten erstellt man sich eine Liste seiner 10 Lieblingsbücher und schaut zunächst einmal nach, welche davon verfügbar sind, um eine Einschätzung zu bekommen. Allerdings sollte man sich auch bewusst sein, dass durch den Kauf lediglich das Nutzungsrecht eingeräumt wird. Der Vertreiber, z.B. Amazon, kann somit jederzeit dieses Recht wieder entziehen, sodass das gekaufte Buch damit weg wäre.

Für wen sind nun Ebook Reader interessant? Zunächst einmal natürlich für Leseratten. Neben barem Geld können sie sich auch das Schleppen schwerer Bücher sparen. Aber auch auf Grund des geringen Preises zw. 80-130€ dürfen Gelegenheitsleser und Zeitschriften Fans bedenkenlos zugreifen. Als Geschenk ist es allemal eine gute Idee. Persönlich denke ich auch, dass selbst Tablet-Nutzer einen Kauf in Erwägung ziehen können, was darin begründet ist, dass die zwei Geräteklassen für unterschiedliche Einsatzzwecke konzipiert sind.

Als Privatperson ist man meiner Einschätzung nach mit dem W-LAN fähigen Kindle von Amazon, welcher seit Monaten Platz 1 der Bestenlisten belegt, am besten bedient. Für geschäftliche Zwecke muss dies nicht unbedingt gelten (vgl. 1 und 2), aber dazu später mehr. Noch ein wesentlicher Punkt um Fehlkäufe zu vermeiden: Das Kindle Fire ist ein Tablet. Hier ist aber die Rede von dem Ebook Reader Kindle ohne Fire im Namen. Bitte beim Kauf darauf achten.

Noch ein Link zu dem Blogeintrag eines Lesers, der vor knapp einem Jahr sich ebenfalls mit der Thematik auseinander gesetzt hat.

UAC oder keine UAC – Das ist hier die Frage

Mit meinem vorherigen Blogeintrag Windows 8 ist Gift für Legacy Code kam auf Twitter eine Diskussion zu Stande, wieso denn unsere Anwendung derart hohe Berechtigungen benötigt und dass der Code doch inzwischen längst neu geschrieben worden sein sollte. Außerdem wurde eingeworfen, was Legacy Code direkt mit der UAC zu tun hätte.

Gemäß der englischen Wikipedia Ausgabe beschreibt Legacy Code unter anderem eine nicht länger unterstützte Technologie. Demzufolge ist Windows XP, als das am weitesten verbreiteten Betriebssystem nach Windows 7 ein Legacy System. Zunächst einmal hat Legacy Code nichts direkt mit der Benutzerkontensteuerung zu tun. Allerdings ist es so, dass Legacy Code in der Regel recht alt ist, weshalb er konsequenterweise eben auch nicht mehr weiterentwickelt wird. Code, welcher z.B. vor .NET entstand, würde ich in jedem Fall als Legacy bezeichnen. Selbst .NET 1.0 und 1.1 würden vermutlich die meisten von uns hier einordnen. Nun ist klar, dass vor beispielsweise 10 Jahren die Coding Conventions noch völlig andere waren. Programmkonfigurationen standen in INI-Dateien im lokalen Ausführungsverzeichnis oder die Registry musste für das ein oder andere Szenario herhalten. Demzufolge ist es vorwiegend Legacy Code, der mit der UAC Probleme macht. Das heißt nicht, dass nicht auch neuer Code nicht Schwächen aufweist, jedoch betrifft es vornehmlich alte Module.

 

Ich schätze, dass mindestens 80% der Anwendungen (z.B. die ERP-Systeme) noch entsprechende Module verwenden. Und das ist eine sehr konservative Schätzung! Holger Schwichtenberg schrieb zu Windows 7, dass noch kein Bestandteil auf .NET basiert. SAP hat nach dem, was ich von Consultants höre, noch teilweise Programmzeilen aus den 70er Jahren. Wie ich aus eigener Erfahrung weiß, ist selbst heute noch für die Datenübertragung im EDI Umfeld primär OFTP v1 im Einsatz, d.h. die Kommunikation zwischen Firmen geht mit einer überwältigenden Mehrheit über ISDN. Das zeigt, dass alte Technologien allgegenwärtig sind. Wer sich damit bisher noch nicht hat rumschlagen müssen, gehört zu den wenigen Glücklichen.

 

imageWie gesagt: Nur, weil alte Software im Einsatz ist, heißt dies nicht, dass deshalb automatisch höhere Berechtigungen notwendig sind, doch leider ist das oft der Fall. Nun könnte man noch erörtern, wie es denn sein kann, dass die Codestrukturen noch nicht aktualisiert wurden. Das spielt für mich allerdings kaum eine Rolle, da wir einfach vor diesem Problem stehen.

Aber um der Sache Genüge zu tun: Projekte werden immer noch (nichts von wegen agil) in großen Firmen auf Jahrzehnte geplant, wenn man nach HP geht, läuft deren Strategie sogar auf 75 Jahre (geradezu lächerlich!). Darüber hinaus kann eine IT sich nicht einfach einmal 3-5 (oder länger) Jahre Zeit nehmen und allen alten Code migrieren. Wenn sie das täte, würde die Fachabteilung / Geschäftsleitung vermutlich den Verantwortlichen direkt vor die Tür setzen. Selbst wenn dem nicht so wäre, so käme man der Konkurrenz nicht mehr hinterher und könnte das Produkt gänzlich einstellen.

Frage an die Leser: Wer kam denn bisher gar nicht in die Berührung mit Legacy Code?

Windows 8 ist Gift für Legacy Anwendungen

Mit Windows 8 könnte für viele Entwickler das böse Erwachen kommen: Legacy Anwendungen, die höhere Rechte erfordern, können nicht mehr ausgeführt werden. Vergleicht man die zwei Dialoge der Benutzerkontensteuerung von Windows 7 und Windows 8, so erkennt ist kein Unterschied ersichtlich. In beiden Fällen werden die Benachrichtigungen deaktiviert. Leider versäumt es Microsoft darauf hinzuweisen, dass damit die Benutzerkontensteuerung nicht wie in Windows 7 deaktiviert ist. Demzufolge laufen die Anwendungen weiterhin mit niedrigeren Rechten. Technischer Hintergrund ist der Admin Approval Mode (als Teil der UAC), welcher einen Security Token mit einer niedrigen Berechtigungsstufe an alle gestarteten Prozesse hängt. Mehr Informationen liefert Technet. Außerdem möchte ich auf diese Seite hinweisen, die das Thema verständlich und auf den Punkt gebracht erläutert.

Allerdings gibt es zwei Wege die UAC gänzlich abzuschalten: Über die Registry oder Richtlinieneditor (Anleitung). Leider führt das zu neuen Problemen, die sich so manifestieren:

image

Alle Windows 8 Apps können somit nicht mehr gestartet werden. Lediglich reine Desktopanwendungen funktionieren weiterhin. Der integrierte PDF Reader ist damit wertlos.

Die Theorie von Microsoft, dass alle Anwendungen inzwischen ohne Admin-Recht laufen sollten, ist schön und gut, allerdings ist sie, betrachtet man die Betriebe, eher realitätsfern. Legacy Code greift leider immer noch auf das Programmverzeichnis zu oder muss bei Updates COM-Komponenten in der Registry anmelden. Hier wäre es von Vorteil, wenn Microsoft eine Art Sandbox anbieten würde, in welcher die eigenen Anwendung auf Zugriffe mit erhöhten Berechtigungen analysiert werden kann. Dieses Analyse-Tool sollte dabei z.B. auch alten VB Code unterstützen und bis runter auf Methoden-Ebene die Ergebnisse anzeigen. Ich meine, dass es hierfür eine Lösung gibt, jedoch fällt mir der Name nicht mehr ein. Falls ein Leser helfen kann, so möge er mir das doch bitte schreiben!

Ansonsten bleiben zwei Alternativen. Zum einen müssen die Anwender das Programm übers Kontextmenü als Administrator ausführen, zum anderen wäre ein vorgeschalteter Prozess denkbar, der folgende Funktion übernimmt:

Well, it actually has to request permission in the code, which means a lot of programs are not going to work well with Windows 8 unless they rewrite the code to properly ask for permission.

 

Wer hat seine bestehenden Anwendungen bereits mit Windows 8 getestet und hat ähnliche Schmerzen? Oder können Microsoft Insider den Hintergrund für diese Entscheidung erklären, also den offensichtlichen Sicherheitsaspekt einmal außen vorgelassen. Könnte die Entscheidung im Rahmen der Apps notwendig gewesen sein?

Open Space 2012 – Das Video

Das geschnittene Video aus den Amateur-Aufnahmen ist jetzt online. Wenn Szenen auftauchen, die ich entfernen soll, dann kontaktiert mich über die üblichen Kanäle.

Panorama2

 

 

 

 

 

Wenn ihr den Link weiterleitet, dann verweist bitte auf den Blogeintrag, statt direkt auf das Video!

 

Alle Aufnahmen zusammengeschnitten

Mobile Serie – Das Lizenzlimit des Kindle

Nachdem ich in diesem Artikel einige Kritikpunkte am Ebook-Reader Kindle von Amazon geäußert hatte, stieß ich heute auf eine weitere Unannehmlichkeit, die ich als Frechheit empfinde:

image

 

Die maximale Anzahl an Geräten, auf denen dieser Artikel gelesen werden kann, wurde überschritten. Um den Artikel dennoch herunterzuladen, melden Sie zuerst alle nicht mehr verwendeten Geräte ab und löschen Sie die darauf befindlichen Inhalte. Anschließend können Sie diesen Artikel herunterladen. Sie können auch eine weitere Kopie im Kindle Shop kaufen.

 

Mit aktuell 2 PCs, einem Laptop, zwei Tablets, einem Kindle und einem Handy, auf welchen ich allesamt die Kindle App installiert habe, ist besagtes Limit natürlich schnell erreicht. Wo dieses genau liegt (ich vermute bei 2-3 Geräten), weiß ich bis dato nicht. Eine schnelle Google-Suche brachte nichts Konkretes zu Tage. Ich kontaktiere in den nächsten Tagen diesbezüglich den Support. Ich finde es sehr ärgerlich, dass hier Einschränkungen gemacht werden. Das liegt sicherlich darin begründet, dass der kollektiven Konsumierung durch mehrere Personen Einhalt geboten werden soll, allerdings stellt sich die Frage, wer seinen Amazon Account so einfach mit anderen teilt.

Außerdem wäre zumindest eine zentrale Online Lösung wünschenswert, in der die Inhalte von einem Gerät gelöscht und somit wieder freigeben werden können. Liegen Laptop und Kindle zuhause, so könnte ich die Ebooks am Handy nicht abrufen. Selbstverständlich ist das technisch nicht ganz so leicht zu lösen, dennoch wäre es machbar. Als Endkunde erwarte ich einfach, dass wenn schon eine Einschränkung seitens Amazon für meine (!) gekauften Güter vorgenommen wird, sie sich diesen Aufwand machen!

Einführung in IoC Container

In diesem Webcast biete ich einen kleinen Einstieg zur Verwendung von IoC Containern. Diese Frameworks helfen bei der Umsetzung des Inversion of Control Principle unter Einsatz von Dependency Injection. Damit ist es möglich gemeinsam an an einem Feature zu arbeiten und so den Work in Progress (WiP) zu minimieren.

  • Alle Blogeinträge zu Castle.Windsor samt den im Video gezeigten Code Beispielen gibt es hier.
  • Die Projekte aus dem Webcast habe ich vorübergehend hier zur Verfügung gestellt.

 

Modularisierung durch Dependency Injection

dotnet pro für den Kindle

Kürzlich habe ich die dotnet pro kontaktiert, um mich darüber zu informieren, ab wann mit einer dedizierten Kindle Ausgabe gerechnet werden kann. Die Antwort kam wie gewohnt prompt. Ich zitiere Tilman Börner, seines Zeichens Chefredakteur:

[…]Als Antwort: Mit der Ausgabe 12/2012 wird es die dotnetpro als iPad/iPhone-App geben. Kindle, Epub, Windows App, Android, etc. müssen noch etwas warten. Dazu müssen wir unsere Produktionsweise ändern, was schon bei den Schwesterzeitschriften in Angriff genommen wird. Bei der dotnetpro wird es aber noch bis Herbst nächsten Jahres dauern.

Wer sich über die Nachteile eines Kindle informieren möchte, kann dies hier tun.

Eindrücke vom Developer Open Space

Session Berichte–Teil 3

Hiermit komplettiere ich die Berichte zu den Sessions. In diesem Beitrag geht spreche ich über den Sonntag, an dem wie gewöhnlich nicht mehr ganz so viel Teilnehmer anzutreffen waren. Nichtsdestotrotz war zu jeder Zeit für mich eine spannende Session verfügbar.

Freelancer II:

Leider war ich in der ersten Session samstags nicht anwesend. Ich sage leider, weil ich aus der Diskussion sehr viel mitnehmen konnte und gerne noch mehr erfahren hätte. Wenngleich ich aktuell keinen Grund darin sehe mich selbstständig zu machen, so kam mir immer wieder einmal der Gedanke, dass für sehr kleine, dedizierte Projekte außerhalb meines Angestelltenverhältnisses eine eigene Firma nicht schlecht wäre. Aufgrund weniger Kenntnisse und der Scheu vor zu viel Zeitaufwand habe ich den Weg allerdings immer gemieden. Vermutlich konnte ich deshalb so viele Infos von den überwiegend selbstständigen Teilnehmern mitnehmen. Auf den Punkt gebracht, kann kurz und knapp resümiert werden:

  • Beauftrage in jedem Fall einen Steuerberater (idealerweise einen Selbstständigen und keine Kanzlei)
  • Sichere dich vor privater Haftung (z.B. durch Bildung einer GmbH)
  • Für ein kleines Geschäft nebenher (bis 12.500€ oder 50.000€ Jahresumsatz ist Gründungsaufwand recht gering und gefahrlos

 

Rabbit MQ:

Hier stellte der Hoster eine eigene Lösung für Bus-Architekturen vor, die genau auf die eigenen Bedürfnisse zugeschnitten war. Im Untergrund nutze er Rabbit MQ als Messaging Lösung. Geprägt war das Gespräch von dem direkten Vergleich zu MSMQ. In Erinnerung geblieben ist mir, dass die API von ersterem einwandfrei zu konsumieren ist, wohingegen letzteres neben diverser Bugs (Queues verschwinden) weniger Feature mitbringt. Allerdings gilt es bei einer Evaluierung noch einmal die aktuellen Versionen zu vergleichen. Laut den Anwesenden würde beispielsweise die Möglichkeit zur Verschlüsselung fehlen, welche nach der englischen Wikipedia-Ausgabe seit Version 5 enthalten ist. Natürlich wurden auch die gängigen Bus-Systeme NServiceBus, Mass Transit und Rhino ServiceBus erörtert Stichwort make-it oder buy-it Analyse. Hier konnte an den Vortag angeschlossen werden, v.a. da viele Teilnehmer von früheren Sessions wieder anwesend waren. Wenn es um Infrastruktur geht, so tendiere ich oftmals zum Kauf fertiger Frameworks, um Entwicklerzeit für Domänenlogik freizuhalten. Alles in allem komplettierte sich für mich damit der Blick in Messaging und Bus Architekturen. Wer aktuelle Vergleiche zw. den unterschiedlichen Messaging und Service Bus Frameworks kennt, der möge mich doch bitte anschreiben. Gerne auch konkrete Praxiserfahrungen!

 

Web Compiler:

Alex Groß stellt am späten Nachmittag noch die GROSSWEBER Web Lösung vor. Da die Homepage zum Großteil aus statischem Content besteht, konnte er mit Ruby und dem Package Nanoc, sowie diversen Datenformaten (Markdown und Haml), einen wie ich finde interessanten, unkonventionellen Lösungsansatz aufzeigen. Diesen will ich für meine Homepage bei Gelegenheit ausprobieren. Vor allem die Geschwindigkeit und die Google Optimierung bestachen hierbei!

Interviews vom Developer Open Space

Meinen YouTube Channel findet ihr hier.

Tom Wendel: Link zum YouTube Video

Tom ist Microsoft Evangelist und hat einen sehr guten Draht zur Entwicklerszene. Nach insgesamt 5 Open Space Besuchen gehört er bereits zu den alten Hasen. Besonders erwähnenswert ist, dass Tom sich nicht scheut, dahin zu gehen, wo es weh tut: Mit den Microsoft Bash Sessions geht er direkt zum Puls der Entwickler.

Tom von Microsoft spricht über den Open Space

 

 

Alexander Groß: Link zum YouTube Video

Alexander Groß ist technischer Geschäftsführer von GROSSWEBER und Ausrichter des Open Space Nord. Er genießt in der Community ein hohes Ansehen und tritt unter anderem als Sprecher auf diversen Konferenzen auf.

Alex von GROSSWEBER spricht über den Open Space

 

 

Olga Sheshukova: Link zum YouTube Video

Olga von Beautiful Inc spricht über Persönlichkeitstypologien

Session Berichte–Teil 2

Kurzer Zwischenbericht zu drei hammergeilen Sessions!

 

Domain Driven Design + CQRS => Eventual Consistency:

Hier wurden mir quasi die Augen geöffnet. Das kann ich am besten so beschreiben: Wenn jemand nur das Reisen mit dem Auto kennt, dann staunt er nicht schlecht, wenn ihm das Fliegen gezeigt wird. Natürlich wird von da an jetzt nicht jede Strecke geflogen, das wäre für kurze Strecken weder sinnvoll, noch rentabel. Aber für weite Distanzen ist das eine ganz neue Welt. Nachdem Dennis gestern in seinem Workshop bereits darauf hindeutete, dass DDD konsequent zu Ende gedacht  zu CQRS führt, konnte heute der Hintergrund und Rahmen durch diverse Praxisexperten geklärt werden. Als ERP-Developer würde ich Stand heute auf einem Greenfield definitiv einen großen Bereich mit diesen Ansätzen zu lösen versuchen.

Direkt im Anschluss fand Eventual Consistency statt, getrieben von den gleichen Hostern wie aus eben genannter Session. Demzufolge schließt sich folgende Aussage direkt an: Für DDD + CQRS wird ein Umdenken notwendig. Beispielsweise muss man sich von der Denke verabschieden, dass immer irgendwo in der Datenbank ein aktueller Objektzustand in Form eines Datensatzes liegt. Beispielsweise der aktuelle Kontostand von Person xy. Das ist einfach nicht mehr der Fall. Gleiches gilt für eine “aktuelle” Anzeige, was de facto, wie es auch schon der CIO von Amazon erläutert hat, nichts existiert. Bei korrekter Domänenbetrachtung ist das auch in de wenigsten Fällen nötig. Die Vorteile überwiegen imho immens einige wenige, bei näherer Betrachtung vernachlässigbar Unschönheiten. Da fällt beispielsweise der OR-Mapper in vielen Fällen einfach weg, da das Lesen von Daten sich auf eine einzig Form von Abfrage beschränkt. Das Testen ist wesentlich spezifischer und einfacher; immer verhaltensgetrieben!

 

WIX:

Bei uns ist es bereits seit Jahren ein Krampf zu einem vernünftigen, automatisierten Setup zu kommen. Unsere Anforderungen sind klar: Ein durch den Buildserver TeamCity dynamisch erzeugtes Installpaket, welches auf die Clients ohne Admin-Rechte verteilt werden kann. Hinzu kommt die Einschränkung, dass wir VB6-COM-Komponenten dabei registrieren müssen. Leider gibt es auf dem Gebiet nur wenige Experten und noch weniger aktuelle Literatur. Dank Sebastian Seidel konnte ich nun einen Einblick gewinnen. Da er auch Consultant auf dem Gebiet ist, steht hier noch die Make-it or Buy-it Evaluierung noch aus, die vermutlich zu Gunsten von Sebastian ausfallen wird.

Session Berichte–Teil 1

Heute Vormittag habe ich die Sessions zu MVVM++ und Continuous Deployment/Delivery besucht.

Continuous Deployment:

Persönlich empfand ich die Gespräche nicht zielführend, weil immer wieder die Gründe für den Einsatz von Versionskontrollsystemen und Buildservern angesprochen wurde. Es gab die verschiedensten Ausführungen, von wo man eigentlich kommt; den manuellen Builds (Stichwort: “Bei mir läuft’s doch”) der Anwendungen und dem XCopy-Austauschen von DLLs. Außerdem wurde primär über den TFS gesprochen. Hier zeichnet sich klar ab, dass so ziemlich jeder Kritikpunkte hat, die das tägliche Arbeiten erheblich stören. Meiner Meinung nach ist ein System, welches mir keinen Support für dezentrale Versionskontrollsysteme out of the box bietet, keine Empfehlung wert. In unserem Betrieb kommen Team City, YouTrack und Git im Verbund zum Einsatz. Ohne TFS eingesetzt zu haben, nahm ich die Situation so wahr, dass die Konfiguration und das Neuaufsetzen durch aus mehrere Tage in Anspruch nehmen könnte. Einig sind sich aber alle darin, dass es – egal welche Produkte zum Einsatz kommen – jederzeit möglich sein sollte, per Knopfdruck eine aktuell lauffähige Version auf die Clients zu deployen. Dabei ist Continuous Integration von Continuous Deployment dahingehend abzugrenzen, dass bei ersterem die Möglichkeit bestünde dies zu tun, bei letzterem es aber tatsächlich getan wird. Auch hier ist sollte man nochmal an die Verantwortlichen in den Unternehmen appellieren, dass sie eine entsprechende Infrastruktur schnellstmöglich einführen. Die Kosten, wenn denn welche entstehen (es gibt sehr viel Open Source Software), haben sich sehr schnell amortisiert.

 

MVVM++:

Auf der Session Wall finden sich aus gutem Grund – wie ich finde – viele UI Themen. MVVM++ ging hier primär auf entsprechende Frameworks und das Integrieren in einer modularen Anwendung ein. Neben Anfängern saßen auch erfahrene Profis im Raum. Die Gespräche waren imho sehr lohnend. So konnte abgegrenzt werden, dass Prism als sehr komplexes Framework klar von MVVM Light und Caliburn.Micro abzugrenzen ist. Im gleichen Kontext musste klar gestellt werden, dass modulare UIs (korrekt wäre Composite UI) zunächst einmal nichts mit einer modularen Architektur, wie sie durch die Verwendung von IoC Containern möglich werden, zu tun haben. Zusammenfassend lässt sich in jedem Fall sagen, dass Technologieentscheidungen betriebswirtschaftlich getrieben sein sollten. Wenn der Kunde eine Composite UI benötigt und auch bereit ist hierfür Geld in die Hand zu nehmen, dann verwende ich Prism. Soll hingegen der Overhead durch MVVM auf Basis von Konventionen reduziert werden, so ist Caliburn.Micro völlig ausreichend. Außerdem ist es eine Frage des Wissenstandes: Im Zweifel mit weniger komplexen Frameworks einsteigen!

Über IoC habe ich inzwischen mehrfach gebloggt und auch einen Webcast aufgenommen.

World Cafe beim Developer Open Space

 

 

Viel Spaß damit. Ich hoffe, es ist keiner ungünstig getroffen. Gerne auf YouTube liken! Falls jemand gar nicht damit leben kann, wie er abgebildet ist, dann kurze Nachricht an mich.

Workshop Test Driven Development

Nach dem DDD Workshop nahm ich ebenfalls bei Dennis an der TDD Session teil. Persönlich habe ich hier einige Erfahrungen. Angefangen bei dem praktischen Einsatz in unserem ERP System über betriebsinterne Coding Dojos bis hin zu Katas in der Karlsruhe User Group.

In dem Kontext brachte mir der Workshop leider nicht weiter. Meine eigentlichen Erwartungen waren dahingehend gerichtet:

  • Besonders gute TDD/BDD Frameworks kennen lernen
  • Best Practices für konkrete Spezialfälle (Parallelisierung, Zeitstempel, Datenbankzugriff) exerzieren

Allerdings konnte ich den Einblick bekommen, dass es (leider!) immer noch Entwickler gibt, die vom Arbeitgeber kein ReSharper zur Verfügung gestellt bekommen oder mit Windows XP arbeiten müssen. Meiner Ansicht nach ein absolutes No-Go! Hier lässt sich nur hoffen, dass ein Umdenken in den verantwortlichen Stellen noch stattfinden wird.

Workshop Domain Driven Design

Heute Vormittag hatte ich das ausgesprochene Vergnügen dem Workshop von Dennis Traub beizuwohnen.  Für mich persönlich immer wieder ein Klassiker und das aus gutem Grund: Egal mit welcher Sprache und auf welcher Plattform man entwickelt, die Domänensprache ist omnipotent. Wer hier nicht mitreden kann, disqualifiziert sich schon fast als ernstzunehmender Entwickler.

Nichtsdestotrotz handelt es sich um einen sehr umfassenden, teils komplexen Ansatz, dessen vorgeschlagenen Praktiken immer wieder an konkreten Fallbeispielen geübt und ggf. im Kontext von diversen Prinzipien (SRP, DRY, etc.) evaluiert werden müssen. So verwundert es auch nicht, dass Dennis mehrfach darauf hinwies, dass es mehrere Lösungen geben kann, je nachdem wie die Context Boundaries definiert sind.

Besonders gefallen hat mir der Austausch mit den anwesenden Entwicklern. Selbst vermeintlich eingefleischte Theoretiker konnten hier sicher etwas mitnehmen. Und sei es nur, dass bei einer deutschen Fachdomänensprache der entsprechende Code ebenfalls in Deutsch sein sollte! Gefüttert wurden die Diskussionen mit einfachen User Stories, die betont unspezifisch respektive fachlich fragwürdig gehalten wurden. Ganz so, wie es in der täglichen Arbeit mit dem vermeintlichen Domänen-Experte auch der Fall ist. In kleinen Gruppen wurden diese zunächst gelöst, um dann in der Runde die Ergebnisse zu konsolidieren.

Zusammenfassend ein sehr lohnenswerter Workshop, in dem ich einige Punkte mitnehmen konnte. So zum Beispiel die interessante Aussage: DDD konsequent weitergedacht führt zu CQRS. Vor allem bin ich auf die anhängende Diskussionen bzgl. dreier Artikel gespannt, welche ich dem Präsentator zur Verfügung gestellt habe. Wem ich diese später zukommen lassen soll, der kann mich gerne kontaktieren.

Themen für den Developer Open Space

Auf der langen Fahrt nach Leipzig habe ich mich gefragt, welche Themen dieses Jahr wohl besonderen Anklang finden, sodass Sessions daraus resultieren können.

Nach meiner Einschätzung werden wieder die Dauerklassiker Agile Development, TDD, BDD und DDD auftauchen. Sicherlich werden auch weniger verbreitete Sprachen, Technologien und Architekturen auftauchen: Darunter Python, Node.js, CQRS und F#. Hier ist das Interesse zwar immer recht groß und jeder hat bereits davon gehört, allerdings haben nur wenige damit aktiv gearbeitet und kennen sich eher oberflächlich damit aus.

Naturgemäß sind Webtechnologien wie HTML 5, JavaScript und REST ebenfalls vertreten. Weniger Interesse seitens der Gemeinde sehe ich was Windows 8 und Modern UI angeht. Da stünde Microsofts neuester Spross auf der gleichen Ebene wie Parallelisierung, was letztes Jahr eher unterdurchschnittlich besucht war. Inwieweit Neuerungen aus 4.5 eingebracht werden, lässt sich imho gar nicht abschätzen.

Persönlich hoffe ich auf Sessions zu NServiceBus, IoC, MVVM und NoSQL Datenbanken.

Zu guter Letzt konnte ich auch immer wieder beobachten, dass jeder Entwickler, egal mit welchem Hintergrund und Kenntnisstand, immer die Ohren spitzt, wenn es um das Entwerfen, Modellieren und Planen von von Projekten geht. Verständlich, schließlich steht und fällt damit selbiges.

Darüber hinaus bin ich allgemein auf die Gespräche gespannt. Welche Markteinschätzungen herrschen vor? Ist die Zufriedenheit mit dem eigenen Arbeitgeber gefallen oder gestiegen? Wie wird es sich wohl in den nächsten Monaten bei der aktuellen Wirtschaftslage entwickeln.

Bitlocker vs. TrueCrypt

Im Rahmen unseres Risk Managements beschäftigt uns natürlich auch das Verschlüsseln primär im mobilen Umfeld. Im Microsoft Umfeld gibt es lediglich zwei ernstzunehmende Tools, die es zu evaluieren gilt.

Zum jetzigen Zeitpunkt ist TrueCrypt 7.1a aktuell. Die Versionsnummer von Bitlocker aus Windows 8 ist mir nicht bekannt. Nach längerer Recherche habe ich keine aktuellen Artikel für einen Vergleich gefunden. Die folgenden Punkte geben mehr oder weniger aktuelle Informationen aus diversen Foren und Blogs wieder. Da ich Bitlocker selbst noch nicht verwendet habe und mich selbst nicht als TrueCrypt Experte bezeichnen würde, kann ich nicht für die Richtigkeit garantieren!

Geschwindigkeit:

Hier hat sich besonders in den letzten 2 Jahren etwas getan, da aktuelle Prozessoren bereits hardwareseitig AES implementieren, was laut vielen Berichten zu einem größeren Performance Schub führen soll. Unverständlicherweise habe ich in meinem recht aktuellen PCs und Laptops dies noch nicht. Ob eure CPU den Befehlssatz unterstützt, könnt ihr beispielsweise mit HWiNFO oder CPU-Z nachschauen. TrueCrypt selbst zeigt einem dies unter Settings – Performance an (siehe Screenshot).

image

Toms Hardware veröffentlichte im April 2010 einen Vergleich beider Systeme genau unter diesem Gesichtspunkt. Allerdings zweifle ich an dem Artikel, da TrueCrypt 6.3a zum Einsatz kam und die Unterstützung von Hardware-accelerated AES laut Versionshistorie erst in 7.0 Einzug hielt. Generell ist dort die Schlussfolgerung, dass heutzutage kaum Geschwindigkeitseinbußen seitens des Anwenders zu merken sind. Aus eigener Erfahrung kann ich aber sagen, dass zumindest das Arbeiten mit verschlüsselten Platten, auf denen sich nicht das Betriebssystem befindet, hervorragend funktioniert. Darüber hinaus ist es auch so, dass Sicherheitsaspekte stets den Vorrang haben sollten!

 

Sicherheit:

Hier gilt es vor allem einen Gesichtspunkt zu berücksichtigen: Inwieweit erkennt man proprietäre Software, in diesem Falle Bitlocker, als sicher an. TrueCrypt ist mehrfach durch Experten getestet und als sehr sicher bewertet worden. Im Netz finden sich mehrere Artikel, wie beide Systeme unter gewissen Umständen ggf. umgangen werden können. Speziell das Thema Hibernate Modus gilt es hier in die Überlegungen einfließen zu lassen (für Bitlocker siehe hier, für TrueCrypt siehe hier). Ob sich die eingebaute Hintertür in Bitlocker von Microsoft für Bundesbehörden tatsächlich nutzen lässt und ob dies sonderlich relevant ist, muss jeder für sich selbst entscheiden. Nichtdestotrotz bietet TrueCrypt mehrere Kryptographieverfahren, längere Schlüssel und die Möglichkeit Partitionen zu verstecken an. In diesem Punkt gebe ich TrueCrypt den Vorzug.

 

Verfügbarkeit:

Diese Disziplin gewinnt ganz klar TrueCrypt: Es ist ab Windows XP aufwärts geeignet, es ist kostenfrei und – für diejenigen, die es brauchen – auch für anderen Plattformen erhältlich. Bitlocker hingegen kommt erst mit Vista und ist bis zu Windows 7 nur in den teuren Ultimate und Enterprise Versionen enthalten. Ab Windows 8 ist es dann auch in der Pro Edition (auf Grund der Tatsache, dass Ultimate wegfällt). Ein weiterer Nachteil von Bitlocker ist, dass es nur in Zusammenhang mit einem TPM Modul (ebenfalls nicht auf meinen Systemen verbaut!) funktioniert. Ganz stimmt das nicht, denn eine entsprechende Gruppenrichtlinie macht es auch mit einem USB Stick und entsprechender Hardware möglich (siehe hier und hier). Eine reine Passwort-Authentifizierung ist nicht möglich! Allerdings kann dies eventuell Sicherheitsvorteile bringen.

 

Komfort:

Bei diesem Kriterium gibt es keinen klaren Sieger. Bitlocker lässt sich natürlich über die Gruppenrichtlinien verwalten, was ein großer Vorteil ist. Man kann zudem bereits vor der Installation die Verschlüsselung aktivieren. Da TrueCrypt aber eine Systemver- und -entschlüsselung anbietet, ist der Vorsprung reine Makulatur. TrueCrypt hingegen bietet neben einer vollständigen Disk-Verschlüsselung auch Partitions- und Container-Encryption an. Während eine rein passwortbasierte Entschlüsselung für mich ein must-have darstellt, sind Features wie das Auto-Dismounten (z.B. bei Hibernate und Sleep-Mode, Benutzerabmeldung, etc.) einfach nice-to-heave! Die Dokumentation ist auf beiden Seiten sehr gut.

 

Sonstiges:

Bezüglich SSDs gibt es auch einige Artikel im Netz, die auf etwaige Angriffsszenarien hinweisen. Hier sollte man sich vorher schlau machen. Die Verschlüsselung soll angeblich nicht sonderlich die Lebensdauert beeinflussen, aber auch in diesem Fall gibt es teilweise widersprüchliche Informationen (siehe hier).

Außerdem weiße ich noch darauf hin, dass bei TrueCrypt ein sehr starkes Passwort gewählt werden sollte!

 

Zusammenfassung:

Vor allem die Verfügbarkeit ist nahezu ein Knockout Kriterium. Mit diesem Argument allein ist unsere Entscheidung gefallen. Da sich Bitlocker in keiner Disziplin klar durchsetzen konnte und ich das Entschlüsseln rein passwortbasiert erreichen können will, wird in Zukunft TrueCrypt in unserem Betrieb eingesetzt.

Sollte ich falsche Informationen wiedergegeben haben oder sollte etwas Wichtiges fehlen, so kommentiert doch bitte den Beitrag oder schickt mir eine Nachricht über die üblichen Kanäle.

Wie erhalte ich die 50 GB Dropbox Speicher beim Samsung Galaxy S3

Nachdem ich selbst vor dem Problem stand, hier die Infos: Zunächst einmal erhält man nicht 50 GB, sondern 48 GB, denn die restlichen 2 GB sind jene, die man mit der normalen Registrierungen sowieso gutgeschrieben bekommt.

Zunächst müsst ihr euch Dropbox auf dem Handy installieren (ist in der Regel vorinstalliert, wenn das Handy nicht gerootet ist) und euch neu registrieren (oder alternativ mit den bestehenden Kontodaten einloggen).

Wichtig: Wenn ihr bereits über ein Konto verfügt und bereits intensiver mit Dropbox gearbeitet habt, bekommt ihr höchstwahrscheinlich den Speicher direkt freigeschaltet!

Da ich kein Konto hatte, musste ich eines registriert. Danach erhielt ich eine Email mit dem Betreff “Get free Dropbox space” und nachstehendem Inhalt:

Hi Uli,
Thanks for supercharging your Samsung device with Dropbox! To claim your 48 GB of space, complete five steps from our Get Started guide.
Enjoy,
– The Dropbox Team

Und hier lag bei mir der Hund begraben: Da bei Neuregistrierungen in der Regel immer maßlos lange Emails mit uninteressantem Inhalt eingehen, lese ich diese inzwischen nicht mehr. Nun ja, muss man die erwähnte Seite aufrufen und sich einloggen. Danach wird man auf die URL http://www.dropbox.com/gs weitergeleitet (Achtung: JavaScript im Browser muss aktiviert sein), welche ungefähr so aussieht:

image

Erst nachdem man diesen Prozedere durchgespielt und die Punkte abgehakt hat (ich musst übrigens nicht alle abarbeiten, es ging schon früher), erhält man den Speicher. Auf dem PC sieht dies dann so aus:

image

 

Alles in allem finde ich den gesamten Prozess mehr als fragwürdig. Da kommt ein Prinzip zum Tragen, das von Support Center bekannt ist: Mache es für einen Anwender möglichst aufwendig, dann wird er die Leistung nicht in Anspruch nehmen! Normalerweise würde ich erwarten, dass direkt mit der Registrierung das Guthaben freigeschaltet wird.

Fallbeispiel: Verantwortungsbereiche definieren

 

Ich habe den Artikel ‘Deutsche Chefs informieren Mitarbeiter ungenügend’ als Anlass genommen, um an einem Fallbeispiel für eine IT Abteilung in einem mittelständischen Betrieb (rein fiktiv natürlich) eine mögliche Definition der Verantwortungsbereiche zu erstellen. Natürlich ist das hier sehr reduziert und weniger formell, aber es soll nur als Anregung dienen.

Unternehmensziele:

Innovationsgetriebene Prozessentwicklung und –optimierung zur Steigerung des Marktanteils und der Kostenreduzierung, um die Wirtschaftlichkeit in der aktuellen Marktlage zu gewährleisten.

Admin1:

Der erste und wichtigste Schwerpunkt ist das Business Service Management (BSM). Also die Schnittstelle zw. IT und Fachabteilung bzw. das Ausrichten der IT Dienste an den Geschäftsprozessen. Hier arbeitet er vor allem dem Geschäftsführer (Product Owner) und den Entwicklern zu, indem er Prozesse dokumentiert und modelliert. Deshalb muss er bei allen Gesprächen mit der Fachabteilung anwesend sein. Das ermöglicht eine schnellere und bessere Implementierung der Prozesse als Programm-Features; der Business Value der Anwendung steigt.

Der zweite Bereich betrifft die die strategische Ausrichtung der Administration samt Innovationsmanagement. Ziel ist es das IT Service Management damit weiter zu verbessern.

Beispiele:

Beispiel 1: Pflege eines Wikis zur Dokumentation, sowie Modellierung in Form von erweiterten Ereignisgesteuerten Prozessketten (eEPK). Concept Maps dienen zur Erfassung der Problemdomäne.

Beispiel 2: Wechsel von den klassischen Terminaldiensten zu Remote-App, sodass das Arbeiten in den Verkaufsbüros (v.a. mit mehreren Bildschirmen) annähernd an die Qualität heran kommt, wie sie intern vorzufinden ist.

Admin2:

Primär im Support angesiedelt, handelt er das komplette Tagesgeschäft ab, sodass Admin1 sich auf seine Aufgaben konzentrieren kann. Darüber hinaus dokumentiert er die täglichen Aufgaben (Tickets) und führt Listen zur Qualitätskontrolle (Qualitätsmanagement), sodass Admin1 ggf. Adaptionen in die Wege leiten kann, die den IT Betrieb für die Anwender optimieren.

Beispiele:

Beispiel 1: In einer Liste mit Ausfällen werden ausnahmslos alle Systemausfälle dokumentiert. Neben dem betroffenen System und dem jeweiligen Server (ein Server kann mehrere Systeme zur Verfügung stellen), sind auch Ausfalldauer, -grund und daraus resultierende Konsequenzen festzuhalten.

Beispiel 2: In einer Liste mit den regelmäßigen Aufgaben, die am Ende/Anfang jeden Monats anfallen, wird dokumentiert, was genau zu tun ist und wann die Aufgabe das letzte Mal bearbeitet wurde. Neben Ausfalltests und Backup-Prüfungen, kann dies auch kleinere Aufgaben umfassen, wie beispielsweise die manuelle Aktualisierung der Infoterminals oder das Aushängen der neuen Dokumentationen in den Serverräumen (beispielsweise Notfallpläne).

 

Web-Developer:

Sein Aufgabengebiet ist zweigeteilt; neben der eigentlichen Weiterentwicklung der Webseite übernimmt er zum großen Teil die strategische Planung. Übertragen auf die eingangs erwähnte Administration übernimmt er demzufolge beide Funktionen. Mit den Möglichkeiten und v.a. der Wichtigkeit des Webs, steigt auch die Notwendigkeit den Kunden eine hochwertige Plattform für ihre Einkäufe zur Verfügung zu stellen. De facto kann sich heute niemand mehr leisten auf das Web ab Absatzmarkt zu verzichten.

Beispiele:

Beispiel 1: Er evaluiert die eingesetzte Plattform Typo3, d.h. inwieweit trifft diese Plattform die Bedürfnisse des Business. Bietet sie entsprechende Möglichkeiten zur Qualitätssteigerung anhand von Unit Tests (JavaScript und PHP). Stehen Werkzeuge zur Verfügung für das Application Lifecycle Management. Gibt es schnellere und sicherere Datenbanken als MySQL.

Beispiel 2: Er migriert die Extensions einer alten Typo3 Version auf die Basis der neuen Version.

 

ERP-Developer1:

Seine Tätigkeit ist vorwiegend die Entwicklung, d.h. sonstige Aufgaben werden so weit als möglich von ihm abgeschottet, damit das ERP kontinuierlich mit den Anforderungen der Fachabteilung Schritt halten kann. Allerdings ist wie bei allen gewachsenen Systemen auch bestehender Code zu migrieren, d.h. parallel zur Neuentwicklung muss auch Legacy Code angepackt werden. In dem Kontext gilt es zu eruieren, welche neue Technologie hierfür am besten geeignet ist. Geeignet bedeutet hierbei v.a. skalierbar, erweiterbar und mit möglichst langläufiger Herstellerunterstützung. Außerdem ist eine enge Kooperation mit der Fachabteilung notwendig und ein betriebswirtschaftliches Verständnis, sodass vom Entwickler selbst auch Verbesserungsvorschläge kommen können.

Beispiele:

Beispiel 1: Das alte CRM Modul soll neu aufgelegt werden. Die Fachabteilung denkt primär an eine neu Oberfläche und die Optimierung der vorhandenen Daten, z.B. Bildung von Kundengruppen und Validierung der Personendaten. Darüber hinaus können aber von Entwicklerseite Social CRM Funktionen vorgeschlagen werden. Außerdem ist zu klären, ob und wo das Modul in den restlichen Geschäftsprozessen (z.B. Auftragsverwaltung) zu integrieren ist.

Beispiel 2: Zur Optimierung der Lagerhaltung und somit zum Einsparen der Kosten soll ein Bestellvorschlagswesen programmiert werden, sodass die EK-Abteilung auf der einen Seite Deckungslücken und auf der anderen Seite zu hohe Bestände vermeiden kann. Alternativ kann auch der Aufwand bei gleichbleibendem Umsatz anhand des Pareto-Prinzips optimiert werden.

Mobile Serie – Tablet ist nicht gleich Tablet

Hierbei handelt es sich um den 2ten Beitrag meiner Serie rund um das Thema Mobilität. Den ersten Beitrag gibt es hier.

In den letzten Wochen konnte ich verstärkt wahrnehmen, dass diverse Gerätetypen gar nicht bekannt sind oder dass diese verwechselt werden. Letzteres liegt teilweise auch an den Modellbezeichnungen der Hersteller: Während Amazon sein Tablet Kindle Fire nennt, heißt der E-Book Reader einfach nur Kindle. Meines Erachtens sind die Namen unglücklich gewählt, was zu besagter Verwirrung bzw. Fehlinterpretation führt.

Hier eine Auflistung der Geräteklassen:

  • Smartphone
  • E-Book Reader
  • Tablet
  • Ultrabooks
  • Laptops
  • Convertibles

Smartphones sehe ich als die Geräte an, die außer Konkurrenz laufen, da sie weiterhin immer benötigt werden. Deren Absatz wird weiter steigen. Vielmehr beeinflussen sie Tablets, da der Otto-Normalverbraucher mit ihnen zum ersten Mal in Kontakt mit den mobilen Möglichkeiten kommt und sich ggf. schon an ein System eines Herstellers gewöhnt. Folgerichtig würde der Konsument dann auch ein Tablet bevorzugen, auf dem die gleiche Umgebung vorzufinden ist.

E-Book Reader sind in dem Nischenfeld, wofür sie gedacht sind, konkurrenzlos. Allerdings eben nur hier. Elektronische Bücher sind auf dem Vormarsch, wenngleich Deutschland hinterher hinkt. Gründe dafür gibt es hier. Aber wo waren wir überhaupt in den letzten Jahren bei neuen Vertriebsmodellen schon vorne mit dabei? Der berühmteste Vertreter ist Amazons Kindle. Es steht im Bereich des Lesekomforts Büchern in nichts nach. Ich würde diese Gerätekonsorten als Buch 2.0 betiteln.

Kindle eReader: Gerät in der Hand im Cafe lesend

Ein Amazon Kindle (Quelle: www.amazon.de)

Tablets bedürfen keinerlei weiteren Erläuterung. Wie man einem heute veröffentlichen Bericht entnehmen kann, sollen sie bis 2016 Notebooks in den Verkaufszahlen überholt haben. Deshalb gilt bei Tablets immer die Frage, ob es für den vorliegenden Verwendungszweck besser geeignet ist als Laptops oder Convertibles. In meiner Blogserie werde ich ausgiebig die Unterschiede analysieren und Empfehlungen geben.

 

Beispiel für ein Ultrabook (Quelle: www.chip.de)

Nachdem Notebooks den klassischen PCs den Rang abgelaufen und deren Verkaufszahlen massiv gedrückt haben, sehen sie sich nun selbst mit einem kleineren Gegner konfrontiert; den zuvor erwähnten Tablets. Deshalb reagierten die Hersteller und brachten eine Reihe von Geräten hervor, die alle den Anspruch erhoben, das Beste aus beiden Welten zu vereinen. Es entstanden diverse Derivate, angefangen bei Ultrabooks bis hin zu Convertibles. Allen gemein ist die niedrigere Bildschirmauflösung, die typischerweise zw. 12 und 14 Zoll liegt (also höher als bei Tablets und kleiner als bei Laptops). Während Ultrabooks relativ dünn sind, handelt es sich bei Convertibles um echte Hybriden. Sie können können derartig verdreht werden, dass sie sich wie ein Tablet bedienen lassen. Ein wesentlicher Unterschied zu Tablets besteht darin, dass häufig Windows zum Einsatz kommt und dass neben Touch-Steuerung weiterhin mit einer Maus gearbeitet werden kann. Vor allem in Verbindung mit Windows 8 werden hier ganze Konzepte gemixt. Einen sehr guten Artikel samt Videos findet ihr hier.

 

Beispiel für ein Convertible (Quelle www.chip.de)

Mobile Serie – Am Anfang war die Mobilität

Die IT in einem Unternehmen hat viele Aufgaben. Allen gemein ist das sogenannte Business Alignment oder auch Business Service Management. Vereinfacht ausgedrückt heißt es das, was im Grunde jeder Stabsstelle inhärent ist: Die IT hat sich den Geschäftsprozessen anzupassen und diese so gut wie möglich zu unterstützen und zu optimieren.

Heute beschäftige ich mich mit letzterem: Optimieren bedeutet Veränderung. Vermutlich das Unwort für alle Anwender schlechthin, denn das ist zunächst einmal unbequem. Für viele handelt es sich um einen pejorativen Terminus, der ausdrückt, dass die Wohlfühlzone verlassen werden muss. Doch im vorliegenden Fall verhält es sich anders: Tablets sind das Hypethema überhaupt. Jeder Mitarbeiter bekommt glänzende Augen, wenn ihm ein Tablet als Werkzeug an die Hand gegeben wird. Die beeindruckenden Wachstumsprognosen unterstreichen das, worauf sich inzwischen jede IT einstellen sollte: Der Trend geht klar zu mehr Mobilität. So wie sich zur Reiselust die Fortbewegungsmittel fanden, so gesellen sich zur Always-On-Mentalität (immer online und verfügbar) die mobilen Geräte.

Deshalb starte ich mit diesem Blogeintrag den Auftakt zu einer Serie über Mobilität im privaten und beruflichen Umfeld. Neben einer Einführung in die unterschiedlichen Geräteklassen gibt es auch Empfehlungen, damit am Schluss auch jedem klar ist, für wen denn z.B. E-Book Reader und Convertibles ein must have sind. Dann klappt es auch mit den Weihnachtsgeschenken!

Natürlich wird die Thematik auch im betriebswirtschaftlichen Rahmen: Wie lassen diese sich gewinnbringend einsetzen, welche Prozesse kann ich optimieren und was wird damit erst überhaupt möglich.

Auch IT-ler sollen ihr Kapitel bekommen: Welche Mobile Strategie sollte man fahren, denn mit den Geräten kommen auch die sicherheitskritischen Probleme. Verschlüsselung, Viren- und Diebstahlschutz, Backups, Aktualisierung, Rechtemanagement und Mitarbeiterschulungen.

Workshop – Eine Zeitreise mit dem Desktop Teil 2

Nachdem ich in Teil 1 die aktuell zur Verfügung stehenden Technologien angesprochen habe, soll es nun mehr um Patterns und Clean Code Prinzipien schlechthin gehen.

Während WinForms mit seinem Code Behind in keinster Weise den Anforderungen an die Evolvierbarkeit von Code genügt, wurde mit WPF von Anfang an eine leichte Abwandlung des MVC/MVP Patterns “vermarktet”: Das Model View ViewModel Pattern.

Frank und Silvio stellen hierbei das Seperation of Concerns Principle in den Vordergrund. Besonders gut gefallen hat mir in diesem Kontext auch deren Haltung zu Domain Driven Design. Wie ich, haben sie eine von der ursprünglichen Lehre Evans abweichende Meinung bgzl. der Vermischung von Daten und Logik im selben Objekt. Ralf Westphal hat dies in den vergangenen 6 Monaten ebenfalls in einer 3-teiligen Serie in der dotnetpro (in den Heften 4, 6 und 7 2012) thematisiert.

Anmerkung: Auf dem im Juli stattgefundenen .NET Open Space Süd kam im Übrigen selbige Diskussion. Deshalb an dieser Stelle meine Aufforderung an die Community hierüber vermehrt zu bloggen.

Leider hat MVVM auch diverse Nachteile, darunter das häufige Wiederholen von gleichem bzw. ähnlichem Code. Nachdem kurz über diverse MVVM Frameworks gesprochen wurde, stellten die Referenten eine von ihnen entwickelte im Produktiveinsatz befindliche Lösung vor, die mit ca. 1000 Codezeilen recht überschaubar ist. Laut Aussagen haben sie sich dafür die Schmerzstellen in den eigenen Projekten angeschaut und das Beste für sich aus den verschiedenen Frameworks herausgepickt.

Den Code werde ich, nachdem die Zwei das Feedback des Workshops eingearbeitet haben, mit deren freundlicher Erlaubnis hier online stellen.

Workshop – Eine Zeitreise mit dem Desktop Teil 1

Am vergangenen Freitag, d.h. ziemlich genau eine Woche vor der NRW Conf, haben sich Frank Pfattheicher und Silvio Katzmann freundlicherweise bereit erklärt, ihren Workshop ‘Eine Zeitreise mit dem Desktop’ in abgespeckter Form für mich und ein paar weitere Auserwählte abzuhalten. Der Workshop thematisiert die aktuellen Oberflächen-Technologien für den Desktop Bereich. Angefangen bei dem Klassiker WinForms, über WPF bis hin zum brandaktuellen Modern UI auf Basis von XAML und C# (als ein Vertreterpaar, siehe Bild).

Der Workshop beinhaltet zunächst ein kurzes Für und Wider der jeweiligen Technologien. Das Resümee entspricht dem, wie es vermutlich aktuell die meisten Entwickler sehen:

  • WinForms: Für bestehende Anwendungen, Remote Desktop Szenarien (WPF hat hier Probleme) und für ältere Betriebssysteme wie Windows 2000
  • WPF: Für neue Anwendungen, stark multimediale Szenarien (oder Spiele) und bei Bedarf zur Kollaboration von Entwickler und Designer
  • Silverlight: De facto am Ende
  • Modern UI: Für Windows 8 App Entwickler

Da mir die Technologieauswahl essentiell erscheint, möchte ich näher darauf eingehen:

WinForms wird früher oder später aufgegeben. Allerdings erkennt man anhand der Community Feature Wunschliste für VS2012, dass hier noch lange Support erwartet wird. Darüber hinaus zeichnet sich ab, dass es eher später, als früher fallengelassen wird. Speziell bei Remote Desktop Anwendungen führt aktuell kein Weg daran vorbei, da WPF auf Grund der technischen Implementierung (DirectX statt GDI) hierfür zu langsam ist. Einen entsprechenden Artikel gab es vor geraumer Zeit in der dotnetpro.

WPF scheint aktuell die beste Wahl zu sein, wenn es darum geht neue Applikationen zu schreiben. Allerdings ist der kleine Bruder Silverlight bereits zu Grabe getragen worden und hin und wieder zeichnen ehemalige Mitarbeiter von Microsoft ein eher trübes Bild, wohin die Reise geht. Microsoft hat bis auf wenige Ausnahmen (z.B. mit Visual Studio) selbst kaum Produkte im Sortiment, die WPF nutzen. Auch das ist kein positives Zeichen. Auch ein besonders für mich persönlich schlagkräftiges Kriterium, nämlich der oft versprochene Designer-Developer-Workflow, stellt sich in der Praxis laut besagten Referenten nicht ein und ist wenn überhaupt nur innerbetrieblich mit stark zusammenhängenden Teams zu erreichen. Der Vollständigkeit halber sei noch angemerkt, dass sobald man Komponenten von Drittherstellen (wie DevExpress) einsetzt, es sich sowieso nicht mehr um WPF Controls handelt und dass ggf. Designer Werkzeuge wie Expression Blend Probleme haben können.

Zu guter Letzt bleibt Modern UI mit unterschiedlichen Lösungsansätzen. Aktuell kann man sicherlich sagen, dass die Zukunft ungewiss ist. Gemäß dem, wie ich die Stimmung bisher in der Community bisher empfinde, sieht es hier noch nicht rosig aus. Da wir aber von “Kachel”-Apps sprechen, ist diese Technologie sowieso für ERP-Systeme und ähnlich Geschäftsanwendungen nicht praktikabel.  Ganz abgesehen davon, ist der Code nicht kompatibel zu den .NET APIs. Inwieweit die gleiche Code Basis für Windows Phone 8 verwendet werden kann, ist ebenfalls fraglich. Gerade dieser Punkt, nämlich Write Once Run Anywhere, wäre für mich ein Killer Argument für das neue Framework gewesen.

Alles in allem sind sich die Referenten und ich uns einig, dass XAML bzw. die Konzepte und der Aufbau dahinter, sicherlich überleben werden. Demzufolge ist die Einarbeitung in XAML keine vergeudete Zeit. Wie es denn nun mit den Oberflächen für den Desktop weitergeht, ist unklar. Hier sind wir sicherlich nicht die Einzigen, die sich eine konkrete Aussage von Microsoft wünschen.

Beim hoffentlich im November stattfindenden Hackathon in Karlsruhe werde ich versuchen die Meinung anderer Developer einzufangen. Außerdem verweise ich noch auf zwei Artikel von mir:

 

Teil 2 des Serie gibt es jetzt hier.

%d Bloggern gefällt das: