Schlagwort-Archive: Windows Installer XML

Die DotNet Cologne 2013 (#dnc13)

2013-05-03 09.17.38Dieses Jahr war die dotnet cologne 2013 eine besondere Konferenz für mich: ich habe erstmals auf einer Entwickler-Konferenz einen Vortrag gehalten. Das Thema war “Einstieg in das Windows Installer XML (WiX) Toolset”.

Der Raum war wirklich gut gefüllt und es hat mir wirklich viel Spaß gemacht. Auch Dank der freundlichen Unterstützung meines überraschenden  “Co-Referenten” Sebastian Seidel zu den Fragen während des Vortrags war die Session aus meiner Sicht ein Erfolg.

Die Folien habe ich auf SlideShare hochgeladen:
http://de.slideshare.net/minibrain/einstieg-in-das-windows-installer-xml-wix-toolset

Die gezeigten Codebeispiele liegen auf github:
https://github.com/minibrain/DNC13

Nach dem Vortrag gab es noch zahlreiche interessante Diskussionen zum Thema Windows Installer, MSI und Windows Installer XML Toolset. Vielen Dank an dieser Stelle nochmals an alle Teilnehmer!

Während meines Vortrags gab es noch weitere Vorträge, die mich sehr interessiert hätten. “Hackers Reverse Engineering Uncovered” von Rüdiger Kügler war einer davon. Glücklicherweise hat sich im Gespräch später am Stand von WiBu Systems ergeben, dass demnächst der Vortrag in einem webcast wiederholt wird. Das werde ich mir dieses Mal nicht entgehen lassen Smiley

Die Lunch-Session und die folgende Session stand ganz im Zeichen von Usability und User Experience. War wirklich mal interessant, einen Einblick in einen Entwicklungsprozess zu bekommen, der einen Focus auch auf Usability hat. Der Vortrag “WPF UI Development Best Practices” drehte sich im ersten Teil auch um Usability und besprach dann WPF Best Practices natürlich mit Focus auf Usability!

Timur Zanagar hat dann im Vortrag zu “Mobile .NET Entwicklung mit Xamarin 2.0” die Entwicklung mobiler Applikationen für iOS, Android, Windows Phone und MacOS unter Xamarin 2.0 gezeigt. Auch hier haben die zahlreichen Diskussionen zu einer wirklich guten Atmosphäre geführt. Hier muss ich unbedingt mal ein wenig Zeit investieren und eine eigene Android App basteln Smiley

Den Abschluss meiner .NET Cologne 2013 machte der Vortrag von Dennis Traub “Strategischer Anwendungsentwurf mit Domain-Driven Design”. Wirklich interessant, aber schon etwas schwere Kost zum Abschluss.

Alles in allem war diese dotnet cologne 2013 für mich noch etwas besser als die letztes Jahr. Die Organisatoren Albert Weinert, Roland Weigelt, Stefan Lange und Melanie Eibl haben wieder einmal eine tolle Konferenz organisiert. Dankeschön nochmals an dieser Stelle!

Buch-Review: “WiX: A Developer’s Guide to Windows Installer XML”

Vor einigen Jahren bin ich auf das “WiX”-Projekt (WiX = Windows Installer XML) von Rob Mensching aufmerksam geworden. Dabei handelt es sich um ein Open Source Projekt von Microsoft (sogar das erste!), mithilfe dessen man via XML-Beschreibung eine MSI Installationsdatenbasis erzeugen kann.

Nachdem ich zahlreiche Tutorials wie beispielsweise DAS WiX Tutorial von Gabor Tramontana durchgearbeitet habe, konnte ich erstmals brauchbare MSI-Dateien erzeugen. In meiner Abteilung habe ich das Projekt dann publik gemacht und mittlerweile setzen alle Produkte meiner Abteilung WiX zum Erzeugen von Installationspaketen ein.

WiX: A Developer's Guide to Windows Installer XMLDas Buch “WiX: A Developer’s Guide to Windows Installer XML” von Nick Ramirez habe ich als Vorbereitung auf einen Vortrag zu dem Thema durchgelesen. Meiner Meinung nach ist es sowohl für Einsteiger als auch für Fortgeschrittene gleichermaßen geeignet.

Das erste Kapitel “Getting Started” gibt einen kurzen Einblick in das WiX Toolset und erklärt grob die XML-Elemente und deren Bedeutung. Am Ende des ersten Kapitels ist man bereits in der Lage, einen Installer zu erstellen. Es werden alle dafür notwendigen Schritte erklärt.

Ab Kapitel zwei “Creating Files und Directories” geht’s dann wirklich in die Tiefe. Es wird erklärt, die Dateien und Verzeichnisse in Komponenten verpackt und in Features gruppiert werden. Zudem gibt es Kniffe, wie große Mengen an Dateien effizient in XML referenziert werden können – Stichwort “Heat” (Heat ist ein “Harvester Tool” aus dem WiX Toolset, das aus dem Dateisystem XML generiert).

Kapitel drei “Putting Properties and AppSearch to Work” erklärt erst einmal, was Properties sind – nämlich Variablen und wie diese befüllt und referenziert werden. In zweiten Teil wird das Thema AppSearch (also Suche nach Dateien, Verzeichnissen, RegistryKeys, installierten Komponenten, ..) detailliert und wie jeder Abschnitt ausführlich mit XML-Codebeispielen erklärt.

Startbedingungen sind Thema in Kapitel 4: “Improving Control with Launch Conditions”. Beispiel: Mein Programm installiert eine .NET Assembly. Hier wird gezeigt, wie ich prüfen kann, ob und welches .NET Framework auf dem Zielrechner installiert ist.

Ein wirklich komplexes Thema, die Installationsreihenfolge, ist Thema von Kapitel 5: “Understanding the Installation Sequence”. Dabei wird sowohl auf die UI-Sequenzen (nicht zu verwechseln mit Dialogen und Wizards) als auch auf die Execution Sequences eingegangen. Custom Actions, also das Ansprechen von externen DLLs, EXE-Dateien, das Ausführen von JScript und VBScript-Code, runden das Kapitel ab.

Kapitel 6, 7 und 8 drehen sich um das rudimentäre Erstellen von Benutzerschnittstellen, Dialogen usw. Dabei wird unter anderem auf vorgefertigte Dialog-Sequenzen als auch auf die einzelnen Controls eingegangen.
Schade, dass der Autor hier nützliche Tools verschweigt, mit denen man die UI deutlich komfortabler erstellen kann. Ich möchte hier ein Tool nennen: SharpDevelop von ic#Code. Es ist mit Abstand das beste Open Source-Tool für diese Aufgabe.

Kapitel 9 erklärt noch einmal alle Tools, sowie deren Benutzung auf der Kommandozeile. Das ist aber in der Regel unnötig, denn das Votive Projekt, das die Integration des Toolsets in Visual Studio mitbringt, ist für die meisten Fälle vollkommen ausreichend. Aber ok, schlecht ist es nicht.

Kapitel 10 “Accessing the Windows Registry” erklärt wie Registry Keys sowohl gesetzt als auch gelöscht werden können.

Lokalisierung ist Inhalt des Kapitels 12: “Localizing Your Installer”. Hier wird erklärt, wie ein Installationspaket mehrsprachig gemacht werden kann.

Kapitel 13 behandelt wieder ein ziemlich komplexes Thema: “Upgrading and Patching” – Welche Update-Typen gibt es? Was ist bei welchem Typ zu beachten?

Ein Kapitel, das ich vermisst habe, sind Bootstrapper. Beispiel: Eine Setup.exe, die die Voraussetzungen auf dem Zielsystem prüft und ggf. Software nachinstalliert. Visual Studio selbst bietet schon zahlreiche Bootstrapper-Pakete beispielsweise für das .NET Framework, die Visual C++ 20xx Runtimes, SQL Server, etc. an.

Alles in Allem bin ich aber zufrieden mit dem Buch. Es enthält viele Code-Schnipsel in XML-Form abgedruckt, sodass es sehr praxisnah die Thematik behandelt. Als Schulnote wurde ich eine 2 vergeben.

Wer sich allerdings mehr für Windows Installer im Allgemeinen interessiert, dem würde ich eher das Buch “Inside Windows Installer 4.5” von Andreas Kerl empfehlen. Ein Kapitel aus diesem Buch behandelt ebenfalls das Windows Installer XML Toolset.