Changelog (Entwicklung)

Hier finden Sie die in Arbeit befindlichen Änderungen, ggf. sind diese im Updater als "Getestete Vorabversion" mit enthalten. Für veröffentlichte Änderungen siehe Changelog (Release)

Aktuell ist die Version 4.0.8, diese wurde am 28.07.2018 veröffentlicht.

Letzer Stand der Betaversion ist 4.0.9.38963 vom 18.09.2018

September 2018

Launcher

  • Neu : Wir stellen ein Desktop-Tool, den cardo Launcher, zur Verfügung. Dieser kann vor allem im Zusammenhang mit dem Com-Handler und der mit dieser Version neuen Aktion "Programm starten" verwendet werden.

    Der aktuelle Installationssatus und der Zugang zum Setup ist in "Mein cardo" unter "cardo Launcher" zu finden. Launcher My Cardo

Datenbearbeitung / Filebrowser / GEdit

  • Neu: Die Aktion "Laden einer Ebene aus Datei" kann jetzt auch zum Laden von Shape-Dateien verwendet werden.

  • Neu: Es ist eine neue Aktion "Programm starten" in den Einstellungen der Sachdatentabelle vorhanden. Damit kann eine ausführbare Datei als Link generiert werden.

    Die Ausführung erfolgt ...

    • direkt via cardo Launcher (sofern installiert),
    • im IE, wenn die Sicherheitseinstellung "Initialize and script ActiveX controls not marked as safe for scripting." in der aktuellen Sicherheitszone zugelassen ist, direkt via Shell.Run,
    • in allen anderen Fällen wird eine Batch-Datei erstellt, die dann vom Benutzer ausgeführt werden muss.

    Es muss mindestens der Name der ausführbaren Datei übergeben werden, optional dann weitere Argumente, die aus den Spalten der Datenquelle bezogen werden können. Beachten Sie, dass die auszuführende Datei "lokal" aus Sicht des aufrufenden Browser-Fenster anzugeben ist.

  • Neu: Ein Neuer Dateneditor ist am Start. Mit dem neuen, mehr formularbasiertem, Ansatz ist das Bearbeiten deutlich nutzerfreundlicher. Zudem sind auch alle Tabellen im Datenbrowser damit auf einen Schlag bearbeitbar.

    Any Source Editor Init

  • Neu: Im Datenbrowser kann für Datenbanken jetzt eingestellt werden, ob auch Views mit angezeigt werden sollen.

  • Neu: Im Datenbrowser können Berechtigungen bei eingebundenen Datenbanken jetzt bis auf Tabellenebene vergeben werden, bisher nur auf Schema-Ebene.

    Des Weiteren wurden die Berechtigungen ...

    • Einstellungen ändern
    • Datensätze erstellen
    • Alle Datensätze bearbeiten
    • Alle Datensätze löschen
    • Eigene Datensätze bearbeiten
    • Eigene Datensätze löschen

    neu hinzugefügt.

    Das bisher bereits vorhandene Recht "Tabellen erstellen" schließt dabei alle "Datensätze XX Berechtigungen" mit ein.

    Db Browser

    Sie müssen einmal die Einstellungen Einstellungen im Datenbrowser neu speichern, um die Objekte auszulesen.

    Im Datenbrowser sind des Weiteren für Tabellen/Views neue Aktionen verfügbar:

    • Als Ebenen laden (wenn Geometriespalte vorhanden ist)
    • Daten bearbeiten
    • Einstellungen
    • Export
    • Sachdatenanzeigen inkl. Recherecheoption

    Die möglichen Aktionen sind im Kontextmenü des jeweiligen Eintrags zu finden.

    Db Browser Ctx

  • Neu: Bei der Option "In Datenbank importieren" des Datenbrowser kann jetzt eine Autowert Spalte beim Anlegen der Tabelle mit erzeugt werden. Der Spaltenname ist dabei cdoautoid. Z.Z. nicht für Oracle, die Spalte darf nicht bereits vorhanden sein.

  • Neu: In den cardo3 GEdit Ebeneneinstellungen befindet sich die neue Eigenschaft "Als "AnyDatasource" bearbeiten", damit werden die Editierebenen auch mit dem neuen Editor verwendet.

  • Neu: Die Systemvariable $WAREHOUSE_THESERVER wird jetzt mit ausgewertet.

Geometriefunktionen

  • Neu: Anpassungen an der Geometrietoolbox (bzw. mehr der Editor):
    • die Geometrien werden beim Anzeigen als Kopie übergeben, damit gibt es keine unerwarteten Änderungen der Projektion (z.B. bei Geometrie-Info)
    • beim Start der Bearbeitung einer vorhandenen Geoemtrie wird auf den Ausschnitt gezoomt, wenn dieser außerhalb der aktuellen Karte war.
    • wenn das Feld "disabled" ist (also: nur Lese-Ansicht), dann sind die Aktionen Zoom und Anzeigen weiterhin aktiv
    • wenn beim interaktiven Bearbeiten der Geometrie die Karte geschlossen wurde, wird diese nicht mehr automatisch neu geöffnet

Breaking - Changes

  • Temp: Der Namespace für die Einstellungen wurde geändert. Damit vorhandene Spalteneinstellungen keine Fehler auslösen, müssen diese gespeicherten Angepasst werden:

    UPDATE 
        cdo4_settings
    SET settings_json = REPLACE(settings_json,
            'IduIT.cardo.Core.Environment.Content.LayerDataSettings.',
            'IduIT.cardo.Core.Environment.Content.AnyDataSettings.')
    WHERE 
            settings_type_name = 'IduIT.cardo.Core.Environment.Content.LayerDataSettings.LayerDataSettings'
    

    Bei der Veröffentlichung der 4.0.9 Version als Release wird der Updater diese Änderung dann automatisch mit durchführen.

Sonstiges

  • Neu: die Ladenanzeige in cardo (oberer Rand) wird jetzt mit einer Verzögerung von 1/2 Sekunde ausgelöst.

  • Neu: Das Click-Verhalten der Schaltflächen wurde geändert, wenn mit der Maus bei gehaltener linker Maustaste von der Schaltfläche heruntergefahren wird und dann die Maustaste gelöst wird, wird jetzt die Aktion nicht mehr ausgeführt.

  • Neu: Start/Stop der Webseite wird jetzt in der Tabelle cdo_instance_start_info festgehalten. Der cardo Monitor-Service kann dabei ein "Ping" auf das cardo4 vornehmen, damit die Webseite automatisch gestartet wird. Dieses Vorgehen ist vor allem für die (ebenfalls mit dieser Version neuen) Hintergrund-Tasks relevant.

    Die Option muss im Monitor explizit aktiviert werden, siehe Datei monitor.template.config im ICServer Ordner

  • Neu: In den Anwendungseinstellungen werden die nicht bearbeitbaren Felder jetzt ausgeblendet, bisher waren diese deaktiviert.

  • Change: Die Oberfläche im GeoSQL wurde etwas überarbeitet, so dass die Übersicht beim Auswählen und Ausführen vorbereiteter Abfragen übersichtlicher ist.

  • Unresolved: Mit dem Update auf Visual Studio 2017 15.8 kommt es beim Anlegen einer neuen Typscript-Datei zu zu einer unbehandelten Ausnahme "The supplied SnapshotPoint is on an incorrect snapshot" in Visual Studio. Verursacht wird dies durch die Entwickler-Extension von uns, das Problem liegt aber innerhalb von Visual Studio.

    Wir warten noch auf einen Bugfix in Visual Studio (aktuell: 15.8.4) , sonst müssen wir die Funktion deaktivieren (Vorbefüllung der TypeScript-Datei mit Namespace Deklaration etc.)

    Aktuell wird die Datei nicht mehr automatisch mit dem Inhalt befüllt, sondern dieser wird in die Zwischenablage eingefügt. Aus der Zwischenablage kann man dann unmittelbar das Gerüst der Script-Datei in die leere Datei einfügen (CTRL+V).

    Um diesen Workaround zu erhalten installieren Sie bitte eine aktuelle Version unserer Entwickler-Extension.

API

Client
  • Neu: CoreModules.Mapping.DynamicLayerLoader.addDynamicLayerFromGeoFile wertet jetzt auch ".shp" (Laden von Shape-Dateien) und ".csv" aus.

  • Fix: IduIT.Core.Kiss.Ui.Responsive.TileContainer: Beim Resize des Container und der Kindelemente wird nun genauer geprüft, ob ein Neu-Rendern wirklich nötig ist. Dadurch ist die Performance deutlich besser, besonders im IE.

  • Fix: Der Resizing-Mechanismus an allen UI-Elementen wurde modifiziert um ein Funktionsaufrufe zu sparen und die Performance zu verbessern.

  • Fix: IduIT.Core.Kiss.Ui.Form.Field.Number: Spinner war standardmäßig deaktiviert, auch wenn das Feld "enabled" und nicht "readOnly" war.

  • Fix: IduIT.Core.Kiss.Ui.Form.Field.FlagsSelectBox: Zusätzlicher Parameter isNullable. Falls true wird in der Typ-Validierung der Null-Check übergangen. Wird vom PropertyModel automatisch gesetzt, falls Flags-Enums nullable sind.

  • Fix: IduIT.Core.Kiss.Lang.Enum.getLabel - bei Flag-Enums wurde bisher bei Mehrfachauswahl immer das Label für Wert 0 (= keine Auswahl) mit angezeigt, dieser 0-Wert wird jetzt in der Anzeige ignoriert.

  • Neu: Neue Auswahlliste für Flag-Enums IduIT.Core.Kiss.Ui.Form.Field.FlagsSelectBox, unterstützt Mehrfachauswahl, diese wird automatisch im PropertyModel verwendet, wenn das Feld vom Type Enum mit Flags ist.

    Wenn der Enum keinen Wert 0 definiert, wird automatisch ein TypeValidator angefügt, welcher sicherstellt, dass der Wert Clientseitig auf null geprüft wird. Null ist nicht zulässig, wenn "Nichts" auswählbar sein soll, muß im Enum ein 0-Wert definiert sein.

  • Neu: Neue Methode tryGetWindow für Kiss.Core.Ui.Component

  • Neu: Folgende Änderungen für die Anwendungserstellung:

    • Anwendungsklassen können in der statischen Methode canHandleWellKnownType jetzt auch ein Array von Optionen zurückgeben.

    • Die Startoptionen und auch die Untereinträge können in der neuen Eigenschaft staticHandler jeweils eine Methode angeben, die ohne eine Anwenungsoberfläche zu erstellen ausgeführt wird. Dabei wird trotzdem sichergestellt, dass die Anwendungskripte geladen werden.

      Bsp.:

      public static canHandleWellKnownType(wkt: WellKnownType.IWellKnownType): TcanHandleWellKnownTypeUnion
      {
          if (wkt instanceof WellKnownType.AnyDatasourceWellknownType)
          {
              let result: StartOptions.IWellKnownTypeStartOptions[] = [];
              if (wkt.isEditable)
              {
                  result.push({
                      useDefaultInstance: false,
                      label: "Daten bearbeiten",
                      priority: 1,
                  });
              }
              if (wkt.isEditable)
              {
                  result.push({
                      iconCls: Icons.FontAwesome.getIconCls('cogs'),
                      label: "Einstellungen",
                      priority: 1,
                      staticHandler: (wkt: WellKnownType.AnyDatasourceWellknownType) => CoreModules.AnyDatasourceEditor.showSettingsDialog(wkt)
                  });
              }
      
              return result.length > 0 ? result : false;
          }
          return false;
      }
      
  • Neu: Neuer Konfigurationsparameter textMode:Kiss.Ui.Core.ETextMode (Default: Kiss.Ui.Core.ETextMode.Text) an allen Buttons. Damit können jetzt auch Button-Labels und Menueinträge per HTML gesteuert werden (z.B. für Hoch-/Tiefstellung bei chemischen Formeln).

  • Neu: Neuer Konfigurationsparameter allowPin:boolean (Default: true) bei Kiss.Ui.Panel.Switchpanel.Switchpanel. Wenn explizit auf false gesetzt, wird der Anpin-Button ausgeblendet. Nützlich für einzelne Switchpanel, die man einfach nur auf- und zuklappen möchte.

  • Neu: Update auf TypeScript Version 3.0.1

  • Neu: Neuer Typ AnyDatasourceWellknownType der in Zukunft für alle verfügbaren Datenquellen Datenabruf / Änderungen erlaubt. Die Einstellungen für diesen Typ sind in den Spalteneinstellungen der Datenquelle hinterlegt.

  • Neu: Store / Changeset

    • neue Eigenschaft suspendChangeSetNotifications am IduIT.Core.Kiss.Data.Store<TData,TId>, damit kann verhindert werden, dass beim hinzufügen neuer Daten bei aktivem changeSet diese als neu erstellte Datensätze betrachtet werden.
  • Neu: der WellknownType TableData hat eine neue Eigenschaft isSubSet, damit kann erkannt werden, ob die Tabelle einen Auszug der zugrunde liegenden Quelle darstellt.

  • Neu: IduIT.cardo.Core.CoreModules.Mapping.Ui / Geometrie

    • wenn keine allowedTypeFamilies übergeben wurden, werden jetzt alle möglichen Typen angenommen, bisher kam ein Scriptfehler
    • die Geometrie wird in _fireChangeEvent nicht mehr als Kopie übergeben
    • der Valuehandler für Geometrien implementiert jetzt equals durch Vergleich der Inhalte der Geometrien
    • Neue statischen Methode Geometry.GeometryUtils.isEqual(g1,g2)
    • IduIT.Core.Mapping.MapComponent.setExtentToFeature beachtete jetzt die Crs des Features und transformiert entsprechend.
  • Neu: Einige neue Klassen:

    • IduIT.Core.Kiss.Ui.Core.DataRowNavigator stellt eine Hilfsklasse für die Verwendung mit Grids und Listen bereit.
    • IduIT.Core.Kiss.Core.DynamicCssLoader erlaubt Verwendung von Css Code als einbettbare Zeichenfolge
  • Neu: Neuer Konfigurationsparameter titleTextMode:Kiss.Ui.Core.ETextMode für die Klassen Panel und FormItem. Damit können jetzt auch Panel-Titles per HTML gesteuert werden (z.B. für Hoch-/Tiefstellung bei chemischen Formeln).

Server

  • Neu: In cardo4 werden jetzt Hintergrund-Tasks unterstützt. Dies kann für Anwendungen implementiert werden. Die Integration ist in verschiedenen Stellen sichbar, bswp. im Dashboard und bei der Verwaltungsseite der Anwendungen.

  • Neu: Server-zu-Server Methodenaufrufe, die einen besonders effizienten Transport eines DataReaders implementieren.

    Die Daten werden dabei durchgängig via Streaming übertragen, so dass auch sehr umfangreiche Datenmengen möglich sind. Natürlich auch mit Geometriedaten und Objekten ...

    Die Schnittstelle ist noch in Arbeit, Änderungen an der API sind noch möglich (und auch wahrscheinlich).

    //Empfänger-Seite (Anwendungsklasse ist eine cardo Anwendung):
    
    [IduIT.Core.Web.S2SX.S2SXClassAttributeAttribute]
    partial class CardoSampleApp
    {
        [IduIT.Core.Web.S2SX.S2SXMethodAttributeAttribute()]
        public String SxRecieveData(IduIT.GeoLib.Net.Data.IDataReader data, String sampleValue)
        {
            return sampleValue + sampleValue;
        }
    }
    
    //Sender:
    //..sample Code, nur Auszug
    var response = Core.Web.S2SX.S2SXProcessor.Invoke(_endpoint,
      _cred, true,
      typeof(CardoSampleApp).GetMethod("SxRecieveData"),
      args,
      reader,
      Dsl);
    //
    
  • Neu: PropertyModelClassAttribute wurde um DefaultLabelWidth, DefaultFieldWidth und DefaultAlign erweitert.

  • Fix: Auswertung von List<Complex> wurde als String dargestellt, statt als Liste komplexer Untertypen.

  • Neu: Neues Attribut IduIT.cardo.Core.CoreModules.Settings.SettingsTypeNameAttribute, damit kann der Schlüssel für Einstellungen (siehe Tabelle cdo4_settings) festgelegt werden, bisher ist es immer der Type.FullName.

  • Neu: Neue Extension für Exceptions, GetExceptionMessage() gibt dabei für TypeInitializationException und TargetInvocationException die InnerException mit aus. Ist auch im Ajax Exceptions-Serializer eingebaut.

  • Neu: der Generator c# => TypeScript erstellt für reine Interface-Typen jetzt auch die geerbten Schnittstellentypen als TypeScript Interfaces.

  • Neu: Neue Klassen:

    • IduIT.Core.DisposableDictionary (vor allem für die Verwendung mit Cardo4.Env.RegisterDisposeableOnce)
    • IduIT.cardo.Core.Api.Applications.Exceptions.ApplicationConfigurationException Ausnahmen für fehlerhafte Anwendungskonfiguration

Zuletzt geändert: 18.09.2018 11:02:21 (erstmals erstellt 17.09.2018)