Version 4.1.2
Changelog (Release)
Hier finden Sie die Historie der Vorgängerversion. Die Änderungen der aktuellen Version finden Sie hier.
Diese Version wurde initial Juni 2020 veröffentlicht.
Bitte beachten Sie die folgenden Hinweise vor der Installation des Updates
Bisher wurde das .NET Framework in Version 4.6 verwendet. Jetzt haben wir auf die Version .NET Framework 4.8 aktualisiert.
Alle hier aufgeführten Hinweise treffen gleichermaßen für cardo3 und cardo4 zu.
Grund für die Anpassungen ist, dass einige externe Libs nicht mehr für die bisher verwendetet Versionen zur Verfügung stehen. Da das Update auf eine andere höhere Version den gleichen (allerdings geringen) Aufwand bedeutet, haben wir gleich auf die höchste (und wahrscheinlich letzte) .NET Version gewechselt.
Für Administratoren
- Wenn der Updater feststellt, dass diese Version nicht installiert ist, dann wird versucht den Webinstaller von https://go.microsoft.com/fwlink/?LinkId=2085155 herunterzuladen und zu installieren.
- Wahrscheinlich wird ein Neustart des Servers nach der Installation erforderlich (das .Net Setup meldet dies, wenn erforderlich). Planen Sie hier etwas mehr Zeit für das Update ein (ca. 20 Minuten Framework Download und Installation + Serverneustart, dann die übliche Update Dauer, ca. 5 Minuten).
Neu (16.06.2020): Aktualisierte Hinweise zum Windows Update Problem
Für Betreuer
- Stellen Sie vor dem Update sicher, dass ggf. selbst bzw. durch Dritte erstellte Komponenten auch auf .NET Framework 4.8 eingestellt sind. Siehe auch Für Entwickler ff. Dies betrifft bspw.:
- cardo4: Komponenten (Anwendungen, Suchprovider, ...)
- cardo3: cardo.Puzzle Kategorien
Für Entwickler
Sollten Sie in Ihren Assembly's als .NET TargetFramework eine Version < 4.8 angegeben haben, erhalten Sie Build Fehler über nicht vorhandenen Methoden etc. Das liegt daran, dass Sie keine Bibliotheken mit einer höheren Zielversion referenzieren können.
Ändern Sie die Einstellung "Zielframework" (Target Framework) in den Projekteinstellungen und erstellen Sie die Komponente neu. Mit Code-Anpassungen ist nicht zu rechnen, so dass der Vorgang nur wenige Minuten Zeit in Anspruch nimmt.
Fehlt das Zielframework in der Auswahlliste, kann bspw. hier das net48-developer-pack-offline-installer heruntergeladen werden.
Beachten Sie bitte für cardo4 Anwendungen / Komponenten auch die Hinweise zu TypeScript 3.9 Änderungen in dieser Version.
August 2020
Release 4.1.2.44461 (11.08.2020)
Fix: Im Druckdialog wurde der Fehler gefixt 'Ein Objektverweis wurde nicht auf eine Objektinstanz festgelegt.'.
Fix: Im Druckdialog wird jetzt bei Verwendung der OSM-Grundkarte der korrekte Ausschnitt bzw. Maßstab ermittelt.
Fix: Der ?-Knopf im Druckdialog führt nun wieder zur korrekten Hilfeseite.
Juli 2020
Release 4.1.2.44356 (23.07.2020)
Fix: Das Hoch- / Runter - Sortieren in der Ebenenliste an der Karte über das Kontextmenu funktioniert jetzt auch bei gefilterter Liste. In dem Zuge werden durch Maßstabsbeschränkungen aktuell nicht sichtbare Ebenen jetzt wieder angezeigt, aber mit grauem Titel.
Fix: Im Datenbrowser können neben *.tif - Dateien jetzt auch *.tiff - Dateien als Ebene bereitgestellt werden, sofern sie über eine Georeferenz (tfw) verfügen
Fix: Wurden via 'addUserLayersToMap' über den Cardo4ApplicationProxy Ebenen in die Karte eingefügt, so wurden diese nicht in den gewünschten Ordner einsortiert
Fix: Beim Überschreiben eines Sketch-Eintrags mit einer neuen Geometrie waren die Hilfslinien zur Digitalisierung nicht zu sehen.
Release 4.1.2.44168 (07.07.2020)
Fix: Es wurden einige Probleme behoben, die beim Übernehmen von, teils schon recht alten, Sketch-Zeichnungen aus cardo3 auftreten konnten (fehlender Bezugssystem-Code, Teilgeometrien mit weniger als 3 Stützpunkten, Handhabung von Multipolygonen).
Fix: Bei der Filter-Funktion im AnySourceEditor wurden keine Ergebnisse geliefert, wenn der Suchbegriff den Buchstaben 's' enthielt.
Juni 2020
4.1.2
cardo4 Launcher
Neu: der cardo4 Launcher liegt in Version 2 vor. Neu ist, dass intern eine eigene Websocketserver Implementierung zum Einsatz kommt und einige weitere Anpassungen, die das Tool in einer Terminalserver Umgebung nitzbar machen sollen.
Die Verwendung von cardo auf SSL Servern ist nur noch im Internet-Explorer deaktiviert. In anderen Browsern gilt diese Einschränkung nicht mehr.
In "Mein" cardo kann das Setup heruntergeladen werden. Zudem sind dort einige mehr Informationen und Testmöglichkeiten vorhanden.
AnySourceEditor
Neu: Es gibt jetzt eine Option zum Neuladen der Datenliste. Damit können neue Datensätze, die bspw. durch einen anderen Benutzer gleichzeitig hinzugefügt wurden, in die aktuelle Datenliste geladen werden.
Neu: Der Text-Filter durchsucht jetzt die Werte so, wie diese in der Anzeige sind. Bisher wurde der interne Wert verglichen (bspw. true / false bei Bool-Werten).
Fix: Wenn ein Datensatz neu geladen wird und dieser auf dem Server durch einen anderen Nutzer gelöscht war, trat ein Fehler auf.
Jetzt wird der Datensatz aus der Ansicht entfernt und der nächste Datensatz wird selektiert.
Neu: Es kann jetzt auch eine Text-Spalte als PK Wert definiert werden. In dem Fall muss aber auch "IsAutoWert" true angegeben sein und es muss sichergestellt sein, dass beim INSERT der Wert sinnvoll belegt ist (bspw. per Trigger).
Neu: Bei fehlerhaften Einstellungen kann der Einstellungseditor jetzt trotzdem gestartet werden.
Fix: Iwan7 Ebenen vom Typ SQLServer konnten nicht bearbeitet werden. Ein Fehler der Art * ...provider: Named Pipes Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden* trat auf.
Fix: Der Abruf der Details zu einem Datensatz mit der numerischen Id 0 endete mit Fehler Der Operator Equal für Spalte id erfordert Argument 0.
Koordinaten-Umrechner
- Neu: Wird aus der Karte eine Koordinate abgegriffen, deren Projektion nicht in der Liste der verfügbaren Projektionen enthalten ist, wird die Liste der Projektionen jetzt automatisch erweitert.
Karte
Neu: Bei der Zoom-Aktion mit Rechteck wird die Karte jetzt animiert dargestellt.
Fix: U.U. konnte es passieren, dass das Kontextmenü in der Karte nicht mehr geöffnet wurde (wenn beim Klicken mit der rechten Maustaste ein kleiner Versatz war).
Fix: Beim Herauszoomen durch Aufziehen eines Zoom-Rechtecks konnte ein Skriptfehler auftreten, wenn ein sehr kleiner Bereich gewählt wurde.
Fix: Beim Überfahren eines Innenrings im Geometrieeditor-Feld konnte ein Fehler der Art this.__vectorLayer is undefined auftreten, wenn die Geometrie nicht in der Karte angezeigt wurde.
Fix: Bei der Aktion "Letzten Stützpunkt löschen" trat bei Flächen ein Skriptfehler auf, wenn die Aktion mehrfach durchgeführt wurde.
Allgemein
Neu: Die Schriftgröße im MessageGrid wurde von 8 auf 10Pt erhöht.
Fix: Bei Übernahme von Geometrien trat u.U. "0 ist keine gültige EPSG" auf.
Fix: U.U. konnte es vorkommen, dass Fenster aus dem Desktop geschoben wurden. Jetzt werden die Fenster immer so angeordnet, dass die Steuerelemente des Fensters immer sichtbar sind. Das trifft auch bei geänderter Auflösung zu.
Sonstiges
Neu: in der Anwendungsverwaltung ist jetzt ein Suchfeld vorhanden, mit dem die Liste gefiltert werden kann.
Neu: Der cardo Updater ermittelt die Url für den Aufruf für das SQLUpdate (Webdienst Diagnostics.asmx) über den Abruf der IIS Einstellungen der Webseiten.
Jetzt wird die https Bindung gegenüber der http Bindung bevorzugt.
Bitte achten Sie auf die Meldung am Ende des Update-Vorgangs bzgl. des Erfolgs des Datenbank-Updates.
Neu: Geodatenexport (Export V4):
Beim Export aus dem Maptip kam manchmal der Fehler, dass die Geometrie nicht unterstützt wäre, bzw. wurde nur der Klickpunkt als winziger Kreis aus den getroffenen Geometrien exportiert. Hierbei wurden die Geometrien automatisch auf die Filtergeometrien verschnitten - was bei Punkt nicht möglich ist.
Bei aktiver Karte wurden bei aktivem Filter auf Kartenausschnitt/Selektion auch alle Geometrien auf diesen zugeschnitten.
Dieses Verhalten ist aus cardo3 bekannt, wirkt aber untypisch und unerwartet in cardo4. Es wurde daher für cardo4 eine weitere Spalte "Zuschneiden" eingeführt, mit welcher das gewünschte Verhalten gesteuert werden kann.
Standardmäßig ist diese Option ausgeschaltet.
Änderungen an Anwendungen
Wegekataster
Neu: Im Wegekataster ist es nun möglich die Routen der Wege über das Routing Modul zu erfassen. Im Puzzle Modul ist die Funktion "Streckenabschnitte per Karte zuweisen" integriert.
Damit muss der Bearbeiter nur noch Start und Endpunkt einer Strecke in der Karte auswählen. Der Routenverlauf wird anhand des Wegenetzes erstellt. Eine Anpassung des automatischen Routenverlaufs ist selbstverständlich möglich. Zusätzlich können im Wegekataster mehrere Teilrouten hinterlegt werden.
Anwendung Routing
- Neu: In der Routing Anwendung steht die Druckfunktion zur Verfügung. Dazu muss eine entsprechende Druckvorlage hinterlegt werden. Weitere Informationen dazu finden Sie wie gewohnt in unserer Onlinehilfe (Druckvorlagen) .
API
Server
Neu: Einige Verbesserung für die Dokumentation der Objekte für unserer Template-Engine:
Neue Attribute
IduIT.Core.Renderer.RendererRegistratorClassAttribute
,IduIT.Core.Renderer.ScribanDocMemberTypeOverrideAttribute
.Bessere Integration in unsere DevExtension (Aktualisierung erforderlich).
Automatisches Nachladen der Daten, wenn der Anwendungspool recycelt wurde.
Neu: Das
AjaxMethodAttribute
hat eine neue EigenschaftScriptTimeoutSeconds
Neu: Für Anwendungen die Hintergrundtasks definieren findet sich in den Task-Einstellungen ein neuer Parameter, mit der eine Wiederholung im Fehlerfall aktiviert werden kann.
Intern steht jetzt auch Hintergrund-Task der Zugriff auf (viele Methoden ...) der cardo4.Env zur Verfügung.
Fix: Wenn Anwendungen das Interface
IduIT.Core.Web.Handler.IGenericHandler
implementierten, wurde der Handler u.U. nicht mit aufgenommen. Ein Aufruf endete dann mit Statuscode 404.Hintergrund war, dass je nach Art des ersten Aufrufs die Instanz nicht erstellt werden konnte, da Bspw. Berechtigungen fehlten (vor allem bei Nicht-Windows Authentifizierung).
Intern werden die Anwendungsinstanzen für den Fall der Typ-Detection ohne Prüfung der Berechtigungen erstellt. Es wird nur noch die Konfiguration übergeben, aber keine benutzerbezogenen Aktionen.
Im Dashboard in cardo4 wird der Status der registrierten und der fehlerhaften Handler jetzt mit ausgegeben.
Für
InstanceActivatorFactory
wurde die Signatur der Methode TypeInstanceCreator geändert.Alt:
object TypeInstanceCreator(Type t, bool resultIsOnlyUsedForTypeDetection);
Neu:
object TypeInstanceCreator(Type t, TypeInstanceResultUsage resultUsage);
Neu: Neue Basisklasse
ApplicationAccessor<T>
, mit der sich Ajax-Klasse erstellen lassen, die ab und an evtl. doch Zugriff auf eine Anwendung haben müssen.[IduIT.Core.Web.Ajax.AjaxClass("IduIT.App.Costing.CostingApp.FeeRemote")] internal sealed class FeeSchemaReader : cardo.Core.Api.Applications.ApplicationAccessor<CostingApplication> { internal Auto.Products GetCatalog(string catalogId) { CatalogBaseFolder ??= App.Settings.CatalogBaseFolder(true); ... } }
In diesem Zusammenhang wurde auch das neue Attribut
AjaxIgnoreClass
eingeführt, um die Ableitung der Ajax-Klassen von der Basisklasse zu unterdrücken.Neu:
Cardo4.Env.Properties.ResolveVariables()
hat eine neue Überladene Version, wo ein IDictionary mit eigenen Variablen übergeben werden kann.Zudem werden hier keine sicherheitsrelevanten internen Variablen mehr ausgewertet.
Neu: Erweiterungen am Property-Model XSD Schema:
- Neu: Neues Element
TextComponent
als Spezialisierung vonComponent
. Bsp.:<Group title="Nummernbereich"> <Field name="PersonenNummernBereichMinValue" title="Von"> <Align>Left</Align> <LabelWidth>50</LabelWidth> </Field> <TextComponent> <Content> <![CDATA[<div><b>Wichtiger Hinweis:</b>: ...</div>]]> </Content> </TextComponent> </Group>
- Neu: Neues Element
Neu: Anwendungseinstellungen mit Datenbankverbindungen steht für die Validierung jetzt
ValidateAllDatabaseSettings
zur Verfügung. Hier ein Beispiel:CardoManagedApplicationSettingsUtil.ValidateAllDatabaseSettings(r,this, /* Schema muss angegeben sein, erstellen, wenn nicht vorhanden */ schemaBehavior: DbSchemaBehavior.MustSpecifyForPostgreSQL | DbSchemaBehavior.CreateIfNotExists, /* Neu: Weitere Prüfungen mit der Db */ withDb: (db) => { ... return true; }, /* Neu: Es muss PostgreSQL sein und dort mind. Version 10*/ minVersions: new[] { Tuple.Create(WellKnownDatabaseEngines.PostgreSqlServer, new Version(10, 0)) } );
Client
Fix: Bei der Darstellung von Vektor-Ebenen konnte es zu einem Absturz "RangeError: Maximum call stack size exceeded" bei
VectorLayerBase.getVerticesForBatchTransform
kommen, wenn es zu viele Stützpunkte gab.Fix: Die
Kiss.Ui.Tab.Page
scheiterte bei der Erstellung, wenn man in der Konfig explizit{ showClose: false }
angegeben hat.Neu: Update auf TypeScript 3.9 (bisher: 3.8)
Entwickeln Sie selber cardo Erweiterungen, sollten Sie auch auf diese TypeScript Version aktualisieren.
Ist die Umgebungsvariable IDU_TS_VERSION gesetzt, muss der Wert zu "3.9" geändert werden.
In der aktuellen TypeScript Version 3.9.2 ist unserer Meinung nach ein Bug enthalten.
Quickfix: C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.9\tsc.js Code in Zeile 13383 ersetzen durch: return module && !!(module.flags & 1024 /* GlobalAugmentation */);Es wurden zudem Anpassungen an der globalen tsconfig.base.json vorgenommen
Beachten Sie diese Hinweise besonders!
Neu sind folgende Einstellungen:
"experimentalDecorators": true, "module": "System", "composite":true, "declarationMap": true, "noEmitHelpers":true
module:System: Behebt den o.g. Fehler, der mit Version 3.9.2 kam, wenn dieser gefixt ist, werden wir wieder "none" einstellen.
noEmitHelpers:true: Wir binden jetzt die tslib.js mit ein
Sie sollten die eigenen tsconfig.json Einstellungen anpassen, um ggf. Konflikte zu vermeiden, wir empfehlen diese Einstellungen zu entfernen und nur die geerbten zu Verwenden.
Neu: Unsere Visual Studio Extension wurde für Visual Studio 2019 16.5 aktualisiert. Im Zuge der Anpassungen sollte auch die Anwendungs-Vorlage neu heruntergeladen werden. Beide Downloads finden Sie unter Downloads.
Neu:
Cardo4ApplicationProxy
wurde um einige neue Methoden erweitert:tryGetCurrentScale(): number | null
liefert den Maßstab der aktuellen KartesetRedlineToCurrentMap(geom: string): void
dient zum Setzen einer Geometry (string-Repräsentation) als FreihandgrafikcreateOrComparision(comparisions: IduIT.Core.Data.Filter.IComparison[]): IduIT.Core.Data.Filter.IComparison
erzeugt einen Vergleich aus den per OR verknüpften übergebenen EinzelvergleichenrefreshMap(): Promise.IPromise<void>
aktualisiert die Karte anhand der aktuellen LayerdatengrabPoint(infoText: string, handler: (obj: { cancel: boolean, gx: number, gy: number, srs: number }) => void, handlerScope: any): void
ermöglicht das Abgreifen eines Punktes von der Karte analog cardo3
Neu: Neues Feld
Kiss.Ui.Form.Field.MonacoEditorF2
. Hier wird der Editor in eine Komponente verpackt, die das Maximieren mittels F2 (und Schalter) ermöglicht.Kann auch serverseitig im PropertyModel Valuehandler mit der neuen Eigenschaft verwendet werden. Bsp.:
/// <summary> /// HTML für Kopfzeile 1. Seite /// </summary> [PropertyModelProperty(ValueHandlerType = typeof(Core.PropertyModel.ValueHandler.Default.MonacoValueHandler))] [Core.PropertyModel.ValueHandler.Default.MonacoConfig("html", true)] public String HeaderHtmlFirstPage { get; set; }
Neu:
Kiss.Ui.Container.Stack
hat jetzt einen zusätzlichen Konfigurationsparameter hideInsteadOfDetach. Damit kann festgelegt werden, dass die inaktiven Komponenten nicht aus dem DOM entfernt werden (wichtig z.B. für IFrames).Neu: Propertymodel:
- Neue statische Methode
Model.tryGetByNetTypeName(netTypeName)
- Neue statische Methode
Fix: Kiss.Data.Binding/PropertyModel: Bei komplexen Properties (Pass-By-Reference, also Objekte und Arrays) wurde das RecordChanged-Event nicht korrekt weitergegeben, weil beim Vergleich alter Wert: neuer Wert als "alter" Wert bereits das aktualisierte innere Objekt verwendet wurde, wodurch Änderungen nicht erkannt wurden.
Neu: Änderungen am Blocker und Unterstützungsklasse
Das Muster "Blocker anzeigen > Methoden ausführen > Blocker ausblenden" ist in vielen Anwendungen zu finden.
Neu showBlockerWhileAjaxIsRunning() für Component
Zur Vereinheitlichung verfügt die Basisklasse
Component
jetzt über die MethodeshowBlockerWhileAjaxIsRunning
, die die Argumente der Ajax-Methode typisiert weiterleitet (in C++ entspricht das in etwa dem "perfekt forwarding").Bsp.:
this.showBlockerWhileAjaxIsRunning({ overlayHtml: "Der Beleg wird abgeschlossen ..." }, MyRemote.AxMethode, axArg1, axArg2) .then(result => { });
Der Blocker wird erst nach einem Delay von 300 ms optisch aktiv (immer im Modus "Dunkel"). Geblockt wird, wenn nicht in der config anders übergeben, das Fenster in dem die Komponente sich befindet, oder die Komponente selber. Der Blocker wird dabei im target Element erstellt.
Des Weiteren wird oft ein Text im Blocker gewünscht
Neu: Konfiguration der Klasse Blocker wurde um
textCfg: ITextConfig
erweitert.Wird diese übergeben, dann wird der Blocker um ein Textelement erweitert. Über die, ebenfalls neue, Eigenschaft
textContent
kann der Text des Elementes gesteuert werden.Der Text wird über das evtl. "applyVisualModeDelay" mit gesteuert.
Neu: in den Anwendungseinstellungen ist eine Option zum Kopieren / Einfügen der Einstellungen als Rohdaten vorhanden.
Neu Die Einstellungsklasse für die PDF-Einstellungen (Ränder, Header etc.) verwendet jetzt einen Editor mit Syntax-Highlighting für die HTML-Datenfelder.
Neu In
MapComponent
(IduIT.cardo.Core.Applications.OpenLayers.Components) gibt es folgende neue Methoden zum Aufrufen des Druckdialogs:showPrintDialogForCurrentMap
,getPrintDialogDataForCurrentMap
,showPrintDialog
. Der MethodeshowPrintDialog
können optional Daten mitgegeben werden, die Eigenschaftswerte von Plugins befüllen. Auf diese Weise ist es möglich, aus einer Anwendung heraus Informationen auf einer entsprechend dafür bereitgestellten Druckvorlage mit auszugeben.mapCmp.getPrintDialogDataForCurrentMap() .then(mapData => { mapCmp.showPrintDialog( mapData, pluginData: [{ containerDisplayName: "IDU.App.Routing", pluginDotNetClassName: "IDU.cardo3.CoreModules.HqPrintNet.Plugins.Html.Html", propertyName: "Html", data: "<div>Datenübergabe an das HTML-Plugin</div>" }] ) })
3rd Party
- Update externer Bibliotheken:
- Open XML SDK 2.10.0 zu 2.10.1
- Scriban von 2.1.1 auf 2.1.2
- Markdig von 0.18.1 auf 0.20
- MimeKit.Net von 2.4.1 auf 2.6.0
- JQuery von 3.4 auf 3.5.1
Zuletzt geändert: 02.05.2024 16:25:23 (erstmals erstellt 08.09.2020)