Versionierungsstrategien

Artikeldaten
Erste Version 0.1 (22.08.2012)
Aktuelle Version 0.1(22.08.2012)

1. Kurzbeschreibung

Bei der Software-Entwicklung (und auch beim Schreiben von größeren Texten) ist es sinnvoll von Zeit zu Zeit den aktuellen Entwicklungsstand zu sichern. Am Anfang reicht hierfür vielleicht die Kopie des Projektordners auf einer externen Festplatte (in z.B. einen Unterordner mit dem Zeitstempel als Namen). Irgendwann wird dies aber zu umständlich und zu unübersichtlich. Es wird Zeit über ein Versionierungssystem nachzudenken und damit auch über eine Versionierungsstrategie. Dieser Artikel soll bei dieser Entscheidung helfen. Die vorgestellten Strategien sind unabhängig von dem eingesetzten Versionierungssystem (Git, TFS, Subversion, Mercurial usw.).

2. Ein-Zweig Strategie

Versionsstrategien - Ein-Zweig

2.1. Beschreibung

Diese Strategie ist relativ einfach. Alle Änderungen werden in einen einzigen Zweig abgelegt. Sobald der Code einen Release-Status erreicht hat, wird dieser Stand ausgeliefert und mit einem sprechenden Namen (meistens Versionsnummer) versehen. Damit ist diese Release-Version jederzeit in der eigenen Versionsverwaltung schnell auffindbar. Nach der Auslieferung der Release-Version geht die Entwicklung linear weiter.

2.2. Pro

  • Sehr einfache Benutzung
  • Kein Merge zwischen unterschiedlichen Zweigen notwendig
  • Sehr gut für den Einstieg in die Versionsverwaltung geeignet
  • Sehr gut für Dokument-Versionierung (Bücher, Artikel, Manuskripte usw.)

2.3. Kontra

  • Schwer zu handhaben, wenn mehr als nu rein Entwickler beteilig ist, da während des Release-Tests keine Weiterentwicklung für nächste Version möglich ist.
  • Hotfixes einer Version sind sehr schwer zu realisieren, da eventuell bereits unvollständige Features für neue Version da sind.

3. Master-Develop Strategie

Versionsstrategien - Master-Develop

3.1. Beschreibung

Diese Strategie ist auch relativ einfach. Das eigene Versionsverwaltungssystem besteht aus zwei Zweigen. In dem Master-Zweig werden nur benannte, getestete und abgeschlossene Versionen abgelegt (z.B. Stand einer Release-Version). Der Develop-Zweig wird dagegen wie in der Ein-Strang-Strategie benutzt. Alle Projektstände, die gesichert werden sollten (egal ob der Stand vollständig und / oder lauffähig ist), werden diese in den Develop-Zweig geschrieben. Ist ein Code / Text-Stand erreicht, der an den Kunden ausgeliefert werden kann, und ist getestet, wird der Master-Zweig mit dem Develop-Zweig zusammengeführt. Danach wird der Stand des Master-Zweiges benannt (z.B. mit Versionsnummer).

3.2. Pro

  • Bietet besseren Überblick über ausgelieferte / veröffentlichte Projektstände und belässt die Flexibilität bei der täglichen Arbeit.
  • Schneller Zugriff auf benannte Stände, da diese nur im Master-Zweig vertreten sind (ohne Entwicklungsbalast).

3.3. Kontra

  • Schwer zu handhaben, wenn mehr als nur ein Entwickler beteilig ist, da während des Release-Tests keine Weiterentwicklung für nächste Version möglich ist.
  • Hotfixes einer Version sind sehr schwer zu realisieren, da eventuell bereits unvollständige Features für neue Version da sind.

4. Git-flow Strategie

Versionsstrategien - Git flow

4.1. Beschreibung

Diese Strategie ist mit Git-Versionsverwaltung entstanden, da bei Git die Zweige (branches) sehr einfach erstellt und wieder gelöscht werden könne. Hier werden zwei Arten der Zweige verwendet.

imortal branches (unsterbliche Zweige)
Das sind Zweige, die über die gesamte Dauer des Projektes bestehen bleiben. Zu solchen Zweigen gehören bei Git-Flow-Strategie master und develop Zweige
mortal branches (sterbliche Zweige)
Das sind Zweige, die nur eine begrenzte Lebensdauer haben und nach dem Erfüllen des Zwecks, gelöscht werden (können). Zu solchen Zweigen gehören bei Git-Flow-Strategie die release, hotfix und feature Zweige.

feature

Auf dem „develop„-Zweig werden direkt nur sehr kleine Änderungen gemacht. Größere Änderungen werden in eigene sterbliche Zweige ausgelagert, die mit dem Präfix „feature“ anfangen (Ursprung ist „develop„-Zweig). Die Entwicklung der neuen Funktion erfolgt dann bis zur Fertigstellung auf diesem sterblichen Zweig. In der Zwischenzeit kann man diesen „feature„-Zweig mit „develop„-Zweig abgleichen, um die Unterschiede klein zu halten, oder bestimmte bereits bereinigte Fehler auch in diesem Zweig zu korrigieren. Nach dem Beenden der neuen Funktion wird der „develop„-Zweig mit dem „feature„-Zweig zusammengeführt und der „feature„-Zweig gelöscht.

  1. Neuen Zweig mit Namen „feature/bezeichnung“ erstellen.
  2. Entwicklung auf dem neuen Zweig „feature/bezeichnung„.
  3. Develop-Zweig mit dem neuen Zweig „feature/bezeichnung“ zusammenführen, sobald die Aufgabe erledigt ist.
  4. Den neuen Zweig „feature/bezeichnung“ löschen.

release

Ist ein Stand auf dem „develop„-Zweig erreicht, der ausgeliefert werden kann, wird ein sterblicher „release„-Zweig aufgemacht (Ursprung ist „develop„-Zweig). Dieser hat den Präfix „release„. Dieser Zweig dient dem Testen des fertigen Standes, ohne die Entwicklung auf dem „develop„-Zweig zu beeinträchtigen. Wenn die Tests Fehler zum Vorschein bringen, werden diese im „release„-Zweig korrigiert, bis der Stand wirklich ausgeliefert werden kann. Dann wird dieser Stand mit „master„-Zweig zusammengeführt und ein neuer Tag auf dem „master„-Zweig erstellt. Danach wird der „develop„-Zweig mit dem „release„-Zweig zusammengeführt. Abschließend wird der sterbliche „release„-Zweig gelöscht.

  1. Neuen Zweig mit Namen „release/vVersionNummer“ erstellen.
  2. Tests und Bugfixing auf dem neuen Zweig „release/vVersionNummer“ durchführen.
  3. Nach allen Tests und Korrekturen den Master-Zweig mit dem neuen Zweig „release/vVersionNummer“ zusammenführen.
  4. Master-Zweig-Stand benennen (tagen).
  5. Develop-Zweig mit dem neuen Zweig „release/vVersionNummer“ zusammenführen.
  6. Den neuen Zweig „release/vVersionNummer“ löschen.

hotfix

Die ausgelieferten Versionen sind meistens trotzt vieler Tests nicht frei von Fehlern. In solchen Fällen wird aus dem „master„-Zweig ein neuer sterblicher „hotfix„-Zweig erstellt, um den Fehler zu korrigieren. Dieser Zweig hat das Präfix „hotfix“ und erfüllt nur eine einzige Aufgabe, den gefundenen Fehler der Version zu korrigieren. Durch den eigenen Zweig für Fehlerkorrektur wird der Entwicklungsfluss nicht beeinträchtigt. Sobald der Fehler (oder auch mehrere) korrigiert wurde, wird der „master„-Zweig mit dem „hotfix„-Zweig zusammengeführt und neu getagt (benannt). Die Fehlerkorrektur muss auch in den „develop„-Zweig. Aus diesem Grund wird auch der „develop„-Zweig mit dem „hotfix„-Zweig zusammengeführt. Abschließend wird der „hotfix„-Zweig gelöscht.

  1. Neuen Zweig mit Namen „hotfix/vVersionNummer“ erstellen.
  2. Fehlerkorrekturen auf dem neuen Zweig „hotfix/vVersionNummer“ durchführen und testen.
  3. Nach der erfolgreichen Korrektur der Fehler den Master-Zweig mit dem neuen Zweig „hotfix/vVersionNummer“ zusammenführen.
  4. Master-Zweig-Stand benennen (tagen).
  5. Develop-Zweig mit dem neuen Zweig „hotfix/vVersionNummer“ zusammenführen.
  6. Den neuen Zweig „hotfix/vVersionNummer“ löschen.

4.2. Pro

  • Arbeiten im Team ohne Beeinträchtigungen möglich, da Aufgaben in eigenen Zweigen erledigt werden.
  • Saubere Implementierung der Hotfixes für Release-Versionen ohne Beeinträchtigung der Entwicklung möglich.
  • Paralelles Weiterentwicklen der nächsten Version und vorbereiten (testen) der aktuellen durch Release-Zweige möglich.
  • Auslieferung von Hotfixes in sehr kurzer Zeit möglich, da keine Rücksicht auf den Entwicklungsstand genommen werden muss.

4.3. Kontra

  • Komplexere Handhabung als beide vorhergehenden Strategien.
  • Momentan wird nur von wenigen graphischen Tools (z.B.: SourceTree unter OS X) direkt unterstützt.
  • Erfordert Disziplin beim Entwickeln, da für jede Aufgabe ein neuer Zweig aufgemacht werden muss.
  • Nicht geeignet, wenn mehrere Release-Versionen über lange Zeiträume parallel gepflegt werden müssen.

5. Ressourcen

5.1. Bilder

5.3. Bücher

Erfahrungen mit Windows 7 auf einem Netbook (ASUS EeePC 1000H)

Nach über einem halben Jahr des Einsatzes von Windows 7 auf meinem EeePC kann ich nur eine positive Bilanz ziehen.

1. Installation

Vor der Windows 7 Installation sollte der ASUS Empfehlung nach, zuerst das aktuelle Update für BIOS installiert werden (momentan Version 2204).

Die Installation von Windows 7 auf einem Netbook gestaltet sich endlich sehr einfach und bedarf kein DVD-Laufwerk mehr, wie es bei XP oder Vista der Fall war. Microsoft liefert hierfür ein Tool namens „Windows 7 USB/DVD Download Tool„, mit dem eine ISO-Datei von Wndows 7 direkt auf ein USB-Stick transferiert und dieses bootbar gemacht wird. Das konnte ich auf dem damals noch installierten Windows XP auf dem Netbook ohne Weiteres durchführen. Das einzige Problem stellt sich wahrscheinlich für die meisten, das „Beschaffen“ eines ISO-Abbildes von Windows 7. Diejenigen, die einen Vertrag mit Microsoft haben (z.B. Action Pack), können die ISO direkt herunterladen. Wenn man Windows 7 bei Microsoft und einigen Partnern in der digitalen Version bestellt, bekommt man auch ein ISO-Abbild zu Download angeboten. Alle anderen müssen, wohl oder übel, auf einem Rechner mit DVD-Laufwerk eine ISO-Datei von der Original-Windows 7 DVD erstellen (z.B. mit Nero oder InfraRecorder unter Windows oder Burn unter MacOS X).

Um vom USB-Stick zu installieren, muss beim ASUS EeePC 1000H beim Start des Netbooks die „ESC“-Taste gedrückt werden. Dann erscheint ein Menü zur Auswahl des Boot-Laufwerkes (Festplatte, SD-Karte, falls eingesteckt, externes DVD-Laufwerk, falls angeschlossen und USB-Stick). Die weitere Windows 7 Installation verläuft, als ob man Windows 7 von der DVD installieren würde.

Nach der Installation wurden die komplette Hardware ,ohne zusätzliche Treiber, direkt erkannt und das Netbook war soforteinsatzbereit. ASUS liefert aber auch direkt Windows 7 Treiber.

2. Windows 7 Vorteile gegenüber Windows XP

2.1. Aufwachen

Windows 7 scheint im Alltag flotter zu arbeiten, als Windows XP auf demselben Gerät es tat. Das gilt insbesondere für den von mir oft eingesetzten Bereitschaftsmodus (Suspend to RAM). Das Netbook wacht in der Regel (es gibt nur selten Ausnahmen) in weniger als 5 Sekunden auf. Bis ich mich neu eingeloggt habe (1-2 Sekunden), ist auch das WLAN wieder da. Unter Windows XP musste ich zum Teil über 15 Sekunden nach dem Anmelden auf eine neue Verbindung zum WLAN warten.

In über 6 Monaten Einsatz ist das Gerät kein einziges Mal abgestürzt. Und das Gerät läuft oft über eine Woche ohne Herunterfahren (nur Bereitschaft, wenn dieser mal nicht benötigt wird).

2.2. Akku

Der Akku hält erfreulicherweise genauso lange/kurz, wie auch unter Windows XP. Mit WLAN und ausgeschalteten Bluetooth hält dieser bei ständigem im Internet surfen und Last.fm hören ca. 3,5 Stunden durch. Die theoretischen 7 Stunden hielt das Netbook auch unter Windows XP nie durch. Am Anfang waren es knapp 5,5 – 6 Stunden, dann pendelte sich der Akku aber auf ca. 3,5 – 4 Stunden.

2.3. Internet

Im Internet bin ich mit Firefox und Opera unterwegs. Es unterstützen aber mittlerweile alle Browser. Es geht um den Vollbild-Modus. Bei IE, Firefox, Opera, Chrome wechselt man zu und von diesem Modus durch Drücken der „F11“-Taste. Mittlerweile surfe ich nur in diesem Modus.

Bei Chrome und Opera muss man leider den Vollbild-Modus verlassen, um eine neue Adresse einzugeben. Bei Firefox und IE reicht es mit der Maus nach oben zu gehen. Dann erscheint die Adressleiste und man kann die neue Adresse eingeben.

3. Windows 7 Einschränkungen

3.1. Arbeitsspeicher

Den 1GB RAM merkt man bei Windows 7 eher schneller als unter Windows XP. Wenn man Firefox mit 3-4 Tabs startet (ca. 250MB verbrauch), dazu noch OpenOffice auf hat (ca. 150MB) und iTunes startet, ist Schluss mit lustig. RAM ist voll und es macht kein Spaß mehr mit dem Gerät zu arbeiten. Meine nächste Anschaffung werden wohl 2GB RAM für mein Netbook sein :-)

3.2. Auflösung

Eine weitere, ab und zu sehr hinderlicher, Einschränkung ist die Auflösung. Unter Windows XP konnte man die Auflösung auch höher drehen, als das Bildschirm es eigentlich könnte (1024×768). Das geht mit den ASUS Treibern leider nicht mehr. Man kann zwar auf 800×600 herunter schalten, aber nicht höher, als die native Auflösung des Netbooks. Bei Programmen, die eine Auflösung von mehr als 1024×600 verlangen gibt es dann nur zwei Auswege:

  1. Anschließen eines externen Bildschirms, das eine höhere Auflösung hat,
  2. oder Installation eines alternativen Grafiktreibers (findet man in einigen EeePC Foren).

Ich habe mich für die erste Variante entschieden, da ich erstens nicht so viele Programme habe, die das verlangen, und zweitens ich bereits einen externen Bildschirm habe, denn ich dafür einsetzen kann.

Als weitere Maßnahme habe ich die Startleiste recht angeordnet, sodass mir die 600 Pixel Höhe auch wirklich zur Verfügung stehen.

3.3. Langsames Aufwachen

Es passiert sehr selten, aber ab und zu schon, dass das Netbook über 30 Sekunden zum Aufwachen braucht. Dann ist dieser aber ganz normal weiter benutzbar. In den über 6 Monaten täglichen Einsatzes passierte es noch kein einziges Mal, dass das Netbook gar nicht mehr aufwachte oder mit einem Blue Screen sich verabschiedete.

Nur wenn man das RAM ausreizt und das Betriebssystem zum Cachen auf die Festplatte gezwungen wird, ist es ab und zu schneller den Rechner hart auszuschalten (langes Drücken auf den Ausschaltknopf) und neu zu starten, als zu warten, bis die notwendigen Befehle (Programme beenden und Neustarten) vom Betriebssystem umgesetzt werden. Mit der Zeit kennt man aber die Grenzen des 1GB sehr gut und vermeidet solche „Ausrutscher“.

3.4. Treiber

ASUS schein momentan noch Probleme mit zumindest einem Treiber zu haben. Nach der Installation von „ASUS Instant Key Utility“ wird bei mir beim Start von Windows immer die Meldung gezeigt, dass der Touchpad Treiber nicht gefunden werden kann. Es sind allerdings alle bei ASUS verfügbare (auch für den Touchpad) Treiber installiert. Entweder ist hier das Utility, oder der Treiber defekt. Und es ist kein Update in Sicht.

4. Fazit

Im Ganzen bin ich sehr mit Windows 7 auf meinem Netbook zufrieden. 2GB RAM sind zwar zu empfehlen, man kann aber auch mit 1GB RAM relativ gut damit arbeiten, wenn man ein paar Vorsichtsmaßnahmen trifft (nur wenige Programme parallel laufen lassen).

Wer eine freie Windows 7 Lizenz noch hat, würde ich zum Umstieg von Windows XP auf Windows 7 raten, besonders da die Installation mittlerweile ohne Probleme auch von einem USB-Stick klappt.

Mehrere gleichnamige Zertifikate unter Thunderbird nutzen

Zertifikatübersicht
Zertifikatübersicht

Heute bin ich mit einem Problem gestoßen. Ich habe mir für meine zwei Haupt-Email-Adressen Zertifikate bei trustcenter.de bestellt.  Naturgemäß lauten beide auf meinen Namen. Theoretisch sollte es damit auch keine Probleme geben, da beide ja auf unterschiedliche Email-Adressen ausgestellt sind.

Auf dem Mac unter Mail gab es auch keine Probleme. Beide Zertifikate wurden problemlos importiert und konnten zum Signieren und Verschlüsseln benutzt werden.

Problem

Zertifikatzuordnung
Zertifikatzuordnung

Auf dem EeePC bin ich vor Kurzem von Windows Live-Mail auf Thunderbird 3.0 umgestiegen. Der Import verlief auch ohne Probleme und es wurden beide Zertifikate in der Übersicht angezeigt. Das Problem taucht auf, wenn man versucht die Zertifikate den einzelnen Email-Adressen zuzuweisen. In der Drop-Down-Liste erscheint nur ein einziges Zertifikat statt der beiden importierten.

Einzeln importiert funktionieren diese problemlos. Zusammen importiert, wird nur ein Zertifikat angezeigt.

Nach langer Recherche konnte die Ursache in der Bildung der Drop-Down-Liste von Thunderbird festgestellt werden. Zur Bildung der Liste werden bei Thunderbird nur Vor- und Nachnahme benutzt (CN), aber nicht die erweiterten Felder des Zertifikates. Viele andere Zertifikathersteller schreiben in die CN noch weitere Daten, sodass das beschriebene Problem meines Wissens nur bei trustcenter.de auftritt. Die Auszeichnung, wie trustcenter.de dies tut, entsprich der Empfehlung des Zertifikatstandards.

Lösung

Allgeminer Name
Allgeminer Name

Um das Problem bei Thunderbird und trustcenter.de zu umschiffen, habe ich eins von meinen Zertifikaten gesperrt und ein neues beantragt. Dieses Mal aber in dem Feld Vorname nicht nur meinen Vornamen eingegeben, sondern „Herr …“.

Nach dem neuen Import hat Thunderbird nun beide Zertifikate richtig aufgelistet und ich konnte diese den jeweiligen Email-Adressen zuordnen.

Alternativer Name
Alternativer Name

Update von Windows XP auf SP3 unter Snow Leopard (Bootcamp 3.0)

Die Neuerung, die Snow Leopard in Verbindung mit Bootcamp mit sich bringt, ist dass man nun auf die OS X Laufwerke unter Windows lesend zugreifen kann. Dieses an sich sehr schönes Feature bringt aber zugleich auch Probleme bei einer Neuinstallation von Windows XP (< SP3). Wenn man versucht SP3 nach der Installation der Treiber zu installieren, sieht Windows auch die Mac-Partitionen, die richtigerweise vor der Windows-Partition sitzen. SP3 versucht aber auf die erste Partition einige Dateien zu schreiben. Diese ist aber Mac OS X Systempartition, auf die Windows nur Schreibzugriff hat. Die Installation bricht immer wieder ab.

Die Lösung liegt darin, das Feature, die Mac-Partitionen zu sehen, temporär auszuschalten. Dazu muss im Ordner:

c:\Windows\System32\Drivers

In diesem Ordner muss die Datei AppleMNT.sys umbenannt werden. Nach dem Neustrat von Windows, werden die Mac-Partitionen nicht mehr erkannt und man kann den SP3 wie gewohnt installieren. Nach der Installation kann die Datei AppleMNT wieder zurück umbenannt werden.

Die Problematik ist auch bei Apple Support gut erklärt.

Bootcam Installation mit mehr als 2 Partitionen

Nach dem Kauf eines Mac mini und deren Aufrüstung auf 4GB RAM und 500GB HDD (7200 U/min) stand nun die Frage, wie man am besten die lieb gewonnenen Strategiespiele auch unter dieser Maschine spielen soll. Der Grafikchip (nVidia GeForce 9400) ist dafür eigentlich völlig ausreichend. Den ersten Test machte ich mit Windows XP unter VMWare Fusion und Anno 1701. Das Ergebnis war leider nicht zufriedenstellend.

Die zweite Möglichkeit liegt bei Bootcamp. Den Assistenten gestartet, der meldet aber:

Das Startvolume kann weder partitioniert noch in einer Einzelpartition wiederhergestellt werden.
Für die Installation von Windows muss das Startvolume entweder ein als Mac OS-Extended (Journaled) formatiertes Einzelvolume oder bereits durch den Boot Camp-Assistenten partitioniert sein.“

Nach einiger Suche im Internet war die Ursache relativ schnell gefunden. Bootcamp funktioniert nur, wenn auf der Festplatte max. 2 Partitionen vorliegen (eine davon Windows Partition). Bei meiner Installation habe ich allerdings noch eine dritte Partition, auf der das User-Verzeichnis liegt. Somit war der Assistent nutzlos.

Weitere Recherchen ergaben dann 3 mögliche Vorgehensweisen:

  1. Benutzung von nur 2 Partitionen (Mac + Windows).
  2. Herumbasteln an der boot.ini, damit Windows von der richtigen Partition startet.
  3. Ein alternativer Bootmanager.

Da ich in Zukunft flexibel bleiben möchte (Parallelinstallation von weiteren Betriebssystemen – Windows 7, Ubuntu usw.), habe ich mich für die 3. Variante entschieden.

Nach einiger Suche bin ich auf den Bootloader rEFIt gestossen. Nach der einfachen Installation des rEFIt Bootloaders auf die Mac OS X Systempartition habe ich noch rEFIt aktiviert, damit dieser immer erscheint.

Dafür musste ich unter Terminal folgendes ausführen:

cd /efi/refit/
enable-always.sh

rEFIt BootmenüNach dem Anlegen der 3. Partition für Windows (mit Festplattendienstprogramm) startete ich die Windows-Installation von der CD. Nach dem ersten Neustrat während der Installation tauchte schon Windows als Startoption in rEFIt. Unter Windows wurde ganz normal dann alles installiert, incl. der Treiber von der Mac OS X DVD.

Das einzige Problem, dass bei der Installation von Windows XP bei mir auftrat, war die Installation von SP 3 mit den Treibern von Mac OS X 10.6 (Snow Leopard). Wie das funktioniert, beschreibe ich im nächsten Beitrag.

Auf der rEFIt Projekt-Homepage steht, dass es manchmal bei Mac OS X Updates zu Störungen kommen kann. Dann muss rEFIt einfach neu installiert werden. Beim Update von 10.6 auf 10.6.1 traten keine Komplikationen auf.

Testbericht: SanDisk Ultra Backup 32GB

Vor ein paar Wochen wurde in tecchannel.de nachgefragt, ob jemand einen 32 GB großen USB-Stick mit Backup Funktionen testen könnte. Ich habe mich da kurzerhand angemeldet und nach kurzer Zeit den USB-Stick auch zum Testen geliefert bekommen. Meinen Testbericht können Sie bei tecchannel.de nachlesen:

SanDisk Ulta Backup 32GB

Mittlerweile stehen auch Testberichte von 3 weiteren Testern zur Verfügung:

Erfahrungsbericht des SanDisk Ultra Backup 32GB als Festplattenersatz (von Legionen)

TecChannel Lesertest: SanDisk Ultra Backup 32 GByte (von Linuxgirl)

Lesertest 32 Gbyte SanDisk Ultra Backup USB-Stick (Test)

Erste Erfahrungen mit TYPOlight unter IIS und MySQL

TYPOlight mit XAMPP oder bei einem Shared Host Provider aufzusetzen, ist vergleichsweise einfach und unproblematisch.

Vor kurzen wurde mir aber eine Aufgabe gestellt, die nicht mehr so einfach zu lösen war. TYPOlight sollte auf einem Windows 2003 Server laufen, und möglichst mit Windows Bordmitteln. Das hieß nichts anderes, als dass CMS unter IIS 6.0 und MS SQL 2005 laufen sollte.

Die Verwendung der MS SQL Datenbank scheiterte nach mehreren Versuchen komplett. Da fehlt einfach noch die Erfahrung in der Community. Es ist zwar ein Abstraktionslayer für die MS Datenbank vorhanden, aber bis jetzt gibt es keine positiven Rückmeldungen, dass TYPOlight wirklich damit läuft, und vor allem, wie man dieses einrichtet. Vielleich finde ich noch in meiner Freizeit ein wenig Zeit und probiere es zum Laufen zu bekommen.

Als erstes Testsystem benutzte ich Windows XP mit IIS 5.0.  Grundsätzlich läuft TYPOlight auch unter IIS 5.0, allerdings mit mehr Einschränkungen, als unter IIS 6.0. Auf beiden Windowsumgebungen wurde PHP 5.3 und MySQL 5.0 verwendet (Version 5.1 hat einen defekten Windows Installer, der unter Server 2003 die Installation versagt).

Der einzige Unterschied zwischen IIS 5.0 und IIS 6.0, den ich feststellen konnte, war, dass es unter IIS 5.0 keine Suchmaschinenfreundliche URLs möglich sind. Man muss immer „Keine Seitenaliase verwenden“ aktivieren, damit die Seiten überhaupt aufgerufen werden können. Somit ergeben sich aber folgende URLs:
www.domain.de/index.php?id=123

Unter IIS 6.0 können suchmaschinenfreundliche URLs verwendet werden, so wie diese standardmäßig von TYPOlight generiert werden (ohne Zuhilfenahme von HTACCESS).
www.domain.de/index.php/alias.html

Weiterhin müssen für den TYPOlight Ordner (oder nur tl_files und tmp Ordner) die Rechte für den IIS-Benutzer (Vollzugriff) gesetzt werden, damit TYPOlight in diese Ordner auch schreiben kann. Wer die Dateien über die integrierte Verwaltung hoch laden will, wird hier auf mein anderes Eintrag verwiesen, damit die PHP-Temp-Einstellung richtig funktioniert.

Solange man MySQL als Datenbank einsetzt, spricht eigentlich nichts dagegen den IIS als Webserver zu nutzen. Microsoft ist ja immer mehr bemüht auch PHP direkt in Visual Studio und andere Produkte einzubinden, sodass eine bessere Zusammenarbeit zu erwarten ist. Für eine leichte Installation ist sowohl FastCGI als auch PHP 5.2 über den Microsoft Web-Installer verfügbar (www.microsoft.com/web). Die einzige Schwierigkeit, die noch bleibt, ist die Unterstützung von .htaccess Dateien, die man von Apache her kennt und die von vielen PHP-Projekten für die Generierung freundlicher URLs verwendet werden. Es gibt zwar schon ISAPI Erweiterungen die htaccess nachbilden, aber zumindest bei TYPOlight ist es noch nicht ausreichend, um 100% Funktionalität und Stabilität zu gewährleisten.