Technische Details der Änderungen mit Version 3.6

Mit der Version 3.6 erfolgte ein grundlegender interner Umbau verschiedener Komponenten. Ziel ist die Unterstützung für Mehrsprachigkeit und die durchgängige Verwendung von Unicode in allen beteiligten Komponenten.

In diesem Artikel sind nicht alle Änderungen/Neuigkeiten in dieser Version erfasst, bitte konsultieren Sie für alle Details die Hinweise zur veröffentlichten Version (diese erhalten Sie wie üblich mit der Update-Mail).

Alle im Folgenden genannten Änderungen betreffen nur die serverseitige Installation. Auf den Clientrechnern sind keine Änderungen/Anpassungen erforderlich.

Wichtiger Hinweis: Nach einem Update auf Version 3.6 ist eine Rückumstellung auf eine Vorversion nur manuell möglich. In diesem Falle ist auch das Zurückspielen einer (zuvor selbst zu erstellenden) Sicherungskopie der cardo Systemdatenbank erforderlich.

Binärkomponenten

Sämtliche .Net Assemblies setzen das .Net4 Framework voraus (bisher wurde Version 2 verwendet). Die Webseiteneinstellung (web.config) sowie die Webserver Konfiguration selber müssen neu konfiguriert werden. (Stichwort aspnet_regiis.exe aus %WINDIR%\Microsoft.NET\Framework\v4.0.30319\)

Wichtiger Hinweis: Das entsprechend aktuelle .NET4 Framework ist Voraussetzung zur Installation. Das Einspielen des Framework muss z. B. über das Windows-Update vor dem cardo-Update erfolgen.
Hinweis: Das Anpassen der web.config wird durch den Updater vorgenommen (auf den meisten Systemen auch die Webserverkonfiguration).

Dienste

Der Mapserver Iwan und der für den Export V4 verwendete iGeoServer liegen aktuell in Version 6 vor. Der Speicherort der beteiligten Dateien wurde von „Prog“ in den Unterordner „net4“ verschoben.

Der Name der ausführbaren Datei für Iwan wurde von iwan30.exe in iwan.exe geändert.

Der Dienstname wurde von IwanMapserver30 zu IwanMapserver geändert (jeweils ergänzt um den Konfigurationsnamen, i.d.R. lautet der volle Dienstname nun IwanMapserverCardo3).

Nicht geändert wurden die COM Komponenten (geoCom), geotools (geotools.exe) und der Exportserver für Version V3 (IDUJobserver und ModuleExportserver.idumod).

Der Mapserver Iwan verwendet per Default eine UTF-16 Kodierung für alle textbasierten Ausgaben. Zusätzlich wird der http Header Accept-Charset ausgewertet (z.Z. beschränkt auf UTF8, UTF16). Alle cardo API Funktionen an den Mapserver in klassischem ASP werden mit UTF8 beantwortet, in der .Net Welt wird UTF16 verwendet. Alle Skriptdateien (iws, ipalx, ilf) können in Latin1, UTF16 oder UTF8 vorliegen. Aus cardo heraus generierte Dateien werden jetzt immer in der Kodierung UTF8 abgespeichert.

Hinweis: Alle genannten Änderungen werden durch den Updater automatisch vorgenommen.

Integrierte Komponenten von Drittanbietern

Oracle

Der Zugriff auf Oracle Daten erfolgt jetzt mit dem Instant-Client in Version 11.2.0.1, die benötigten Dateien werden im Installationspfad von Iwan/iGeoServer automatisch mit installiert. Evtl. ist das Erstellen der Umgebungsvariablen TNS_ADMIN* notwendig, weitere Hinweise dazu sind der Oracle Dokumentation zu entnehmen.

Es muss unbedingt darauf geachtet werden, dass es zu keiner Mischung der DLL‘s verschiedener Clientversionen innerhalb des Prozesses kommt, vor allem seien hierbei Datenquellen beachtet, die auf ODBC basieren. Die Definition der Datenquelle muss so angepasst werden, dass auch hier der ODBC Treiber der Version 11 zum Einsatz kommt.

*Die Umgebungsvariable TNS_ADMIN muss als globale Systemvariable gesetzt werden. Anzugeben ist hier der Pfadname zu dem Ordner, in dem die Datei "tnsnames.ora" zu finden ist. Nach dem Ändern ist ein Neustart der Dienste IwanMapserver und, sofern vorhanden, IDU.iGeoserver nötig.

Hinweis: Der Oracle ODBC Client wird als Setup mit installiert, die Installation erfolgt durch Ausführen der Datei "oracle_odbc_install.exe" im Prog\net4 Ordner.
Bsp. (Ausführung in der Eingabeaufforderung):
cd /d D:\cardoSystem\Prog\net4
oracle_odbc_install.exe

Der Name des ODBC Treibers lautet dann "Oracle in instantclient_11_2".
Hinweis: Die Aussagen bzgl. der Oracle Client Version treffen nur für den Mapserver Iwan und den iGeoServer zu.
Alle .NET Zugriffe via ODP werden vorläufig weiterhin die bestehende Installation 10.x verwenden. In einer der folgenden Versionen wird es auch hier eine Umstellung geben, die die Migration betrifft, aber auch viele Drittanwendungen, so dass wir aus Kompatibilitätsgründen vorerst darauf verzichtet haben.

PostgreSQL

Für den Zugriff auf PostgreSQL Datenquellen sind keine Änderungen der Komponenten betroffen. Allerdings wird jetzt immer als Client-Encoding UTF8 eingestellt. Die Angaben bei der Ebenendefinition werden ignoriert.

Skriptdateien

Die Skripten der Webanwendung, die auf „klassischem“ ASP basieren (alle Dateien im Ordner CoreWeb\IIS\ vom Typ asp, css, htm, html, js sowie alle Dateien im Order _Projekt_XXX\IISvirtualDir) wurden in der Kodierung UTF8 umgespeichert. Zudem werden alle Seitenantworten in der Kodierung 65001 (UTF8) ausgegeben (für die Konvertierung weiterer Dateien außerhalb der genannten Ordner kann auf Anfrage kostenfrei ein Kommandozeilentool von uns bezogen werden).

Alle Aufrufe der JavaScript Methode „escape“ wurden durch "encodeURIComponent“ ersetzt (escape ist nicht Unicode fähig).

Das Lesen von Textdateien mit dem Scripting.FileSystemObject macht Probleme, wenn die Datei ein BOM (Byte-Order-Mark) enthält. Alternativ kann der ADODB.Stream zum Lesen verwendet werden:

 var stream = Server.CreateObject("ADODB.Stream");
 stream.Charset = 'utf-8';
 stream.Open();
 stream.LoadFromFile(fullFileName);
 var result = stream.ReadText();

In cardo steht dazu jetzt die Methode JSReadTextFileContentIfExists zur Verfügung.

Hinweis: Der Updater konvertiert automatisch alle Dateien mit den genannten Erweiterungen im Ordner _Projekt_XXX\IISvirtualDir\ in die Kodierung UTF8.
Wichtiger Hinweis: Für ASP Seiten, die Inhalte für das Download-Behavior von Microsoft ausliefern, muss die Kodierung durch die Anweisung "Response.CodePage=1252" explizit gesetzt werden, das Download Behavior kommt nicht mit Unicode Daten klar.
Im Quelltext der Anwendung ist nach dem Tag "<IE:Download ..." zu suchen.

Einstellungen der Web/System Konfiguration

Beim Aufrufen der Url mit Standarddokument gibt es Probleme bei der Anmeldung, diese werden durch das .Net4 Feature "ExtensionlessUrls" hervorgerufen. Je nach Betriebssystem  müssen Anpassungen vorgenommen werden.

  • Windows Server 2003: Einfügen des Registrywertes EnableExtensionlessUrls im Pfad HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0 als DWORD mit dem Wert "0" einfügen (Hinweis: unter 64Bit Systemen im Pfad "SOFTWARE\Wow6432Node\").
  • Windows Server 2008: Entfernen des HTTP Handlers "ExtensionlessUrl-ISAPI-4.0_32bit" in der Web.config.
    <system.webServer>
        <handlers>
            <remove name="ExtensionlessUrl-ISAPI-4.0_32bit" />
            <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit"/>
        </handlers>
    </system.webServer>
 
Hinweis: Die genannten Einstellungen werden durch den cardo Updater automatisch vorgenommen.

Einstellungen in cardo

Für Unterstützung der Eingabe mehrsprachiger Konfigurationsanweisungen wurden einige Datenstrukturen angepasst.

Cardo.Map3

  • Die Maptip Beschreibung „Titelspalte“ konnte bisher Spaltennamen und Textliterale beinhalten. Dieses Verhalten wurde dahingehend geändert, dass ein neues Attribut „Formatanweisung“ hinzugefügt wurde. In dem Attribut „Titelspalte“ dürfen jetzt nur noch Spaltennamen enthalten sein, der Literalteil muss in „Formatanweisung“ eingefügt werden.

Cardo/cardoMap3

  • Einige Systemeinstellungen, die bisher nur als Text erfasst wurden, stehen nun in strukturierter Form zu Verfügung. Dazu gehören z. B. die HTML Texte für die Hilfetexte, Impressum usw. der cardoMap3 Einstellungen (im Laufe der nächsten Versionen werden alle Systemeinstellungen in dieses neue Format überführt).
Wichtiger Hinweis: Die o.g. Einstellungen können durch Aufruf der Url „http://IhrCardo/net3/c3/admin/Libtester.aspx?migrate=1“ in das neue Format überführt werden. Ein manuelles Anpassen ist damit nicht notwendig.
Alle Methoden sind so programmiert, dass der Aufruf ohne Gefahr auch mehrfach erfolgen kann.

Vorgehen des Updaters

An dieser Stelle eine Zusammenfassung der Schritte, die der Updater beim Wechsel auf die Version 3.6 automatisch durchführt.

  • Deinstallation des Dienstes IwanMapserver30Cardo3, Löschen der Datei iwan30.exe,
  • Deinstallation des Dienstes IDU.iGeoServer, Löschen der Datei iGeoServer.net.exe,
  • Neueinrichten des Dienstes IwanMapserverCardo3.
  • Neueinrichten des Dienstes IDU.iGeoServer.
  • Konvertieren aller asp, css, htm, html, js Dateien im Ordner _Projekt_XXX\IISVirtualDir in die Kodierung UTF8 (es wird eine Datei updater.utfinfo.txt im Projektordner angelegt, wenn diese vorhanden ist, wird die Konvertierung übersprungen).
  • Umschreiben der web.config im Ordner CoreWeb3\IIS\Net3 und evtl. im Order CardoMap\ (eine Sicherungskopie wird vorher angelegt).
  • Erstellen des Registry Wert EnableExtensionlessUrls mit Wert 0 (nur Windows 2003).
  • Integration der .Net4 Web-Komponenten (nur Windows 2003) in die cardo IIS Websites.

Weitere Hinweise zum Vorgehen beim erstmaligen Update finden Sie [hier].