Neuheiten Framework Studio 4.3
Informationen zu aktuellen Versionen und korrigierten Fehlern finden Sie in den Release-Informationen.
Statisches Caching an Components (Static Cache)
Framework Studio wurde um einen statischen Caching-Mechanismus erweitert. Wird dieser für eine geeignete Component aktiviert, so können Daten statt von der Datenbank aus diesem Cache geladen werden. Dadurch sind erhebliche Performance-Vorteile möglich.
Details sind im Kapitel Statisches Caching beschrieben.
Umstellung auf PropertyChanged
Die Framework Studio Components implementieren jetzt das Standard-Interface INotifyPropertyChanged.
Details sind im Kapitel PropertyChanged beschrieben.
Ggf. sind Anpassungen im eigenen Code notwendig. Bitte beachten sie dazu die Hinweise für die Umstellung.
In diesem Zuge sind einige weitere Änderungen vorgenommen worden:
Die Methoden GetProperty, SetProperty, GetPropertyMdt und die Eigenschaft ComponentProperties wurde an (I)DevFrameworkBaseObject verschoben. Damit können jetzt auch direkt an der Collection definierte Properties verarbeitet werden.
Mit der neuen Methode IsComponentProperty kann man prüfen, ob es sich um ein vom Entwickler angelegtes Property handelt.
Das Databinding in den Forms wurde komplett neu entwickelt. Das bringt unter anderem die folgenden Vorteile:
Deutlich weniger Code und deutlich kleinere Assemblies (ca. -30%)
Bei der Änderung von Werten wird für die Aktualisierung der Control-Inhalte am Ende des Requests jeder Wert nur einmal neu gelesen. Das gilt auch, wenn ein Property im Laufe des Requests mehrfach geändert wurde. Im Einzelfall kann das eine signifikante Steigerung der Performance bedeuten.
Verhaltens-Änderung bei der SelectedRowsCollection
Die an einem Grid gebundene Objekt-Collection und SelectedRowsCollection haben in der Vergangenheit eng zusammengearbeitet. Werden Records aus der Collection gelöscht oder eine neue Collection zugewiesen, dann werden aus der SelectedRowsCollection unmittelbar die entsprechenden Einträge entfernt. Das war möglich weil jede Änderung sofort vom Data-Binding übernommen wurde. Der neue asynchrone Ansatz im Data-Binding verhindert dies erst einmal.
Damit bestehende Logik, die heute diesen Mechanismus voraussetzt, weiterhin funktioniert, wurde er im neuen Data-Binding nachgebaut - allerdings mit einer kleinen Einschränkung:
Warning
Weist man im Form eine neue Objekt-Hierarchie zu, die ihrerseits die Objekt-Collection für das Grid beinhaltet, dann wird die SelectedRowsCollection nicht automatisch geleert. Das muss in diesem Fall manuell durchgeführt werden.
Deprecated Eigenschaft LabelOfControl
Die Unterstützung für die Control-Eigenschaft LabelOfControl, die teilweise noch im Hintergrund gezogen hat, wurde entfernt. Siehe LabelOfControl Cleanup.
Intellisense mit Roslyn
Das Intellisense im Code-Editor wurde komplett überarbeitet. Es setzt jetzt mit "Roslyn" auf dieselbe Technologie auf wie das Intellisene von Visual Studio.
Folgende Features werden jetzt unterstützt (Auszug):
- Lambda-Expressions (Linq)
- Generische Typen
- var schlüsselwort
- Überladene Methoden werden korrekt aufgelöst
- GoTo Definition für Form-Controls
- uvm ...
Im Code-Editor werden Compile-Error und Warnings während dem Tippen direkt im Code markiert. Die Details des Errors werden in einem Tooltip angezeigt.
Export von Tabellen Beschreibungen
Im HTML-Export der Dokumentation gibt es eine neue Option Export DB-Tables. Diese integriert die Beschreibungen aller Datenbank-Tabellen.
Beim Export über die FSConsole kann das über den Parameter \ExportDBTables
gesteuert werden.
Im PBE kann dieser Export automatisiert werden.
Menü Änderung beim Anlegen von Properties und Methods
Beim Anlegen neuer Methoden in Forms oder Components wird nun in den Menüs abgefragt, ob diese als Public Method oder Protected Method angelegt werden sollen.
Ferner gilt diese Regelung auch für Properties in Forms. Bei den Properties in den Components kann zwischen einer, wie bisher standermäßgen Public Property und einer Membervariable unterschieden werden. Eine Membervariable wird automatisch als Protected angelegt.
Weitere Neuerungen
Beim Export des Wörterbuches kann man die direkten Verwendungen der einzelnen MLKeys als Kommentar exportieren. Dazu gibt es im Export-Dialog eine neue Checkbox Include usings.
Copy&Paste ist kompatibel bis einschließlich Framework Studio 3.11. Mit älteren Versionen von Framework Studio können per Copy&Paste keine Element-Informationen mehr ausgetauscht werden.
In der Registerkarte Set Method kann bei Component Properties vom Typ Individual die generierte Prüfung auf den Getter der Checkbox Check before set unterbunden werden. Eine Prüfung findet standardmäßig statt, weshalb die Checkbox per default gesetzt ist.
Die Registerkarte Description bei den Components wurde in General umbenannt. Ab der neuen Version befindet sich hier eine zusätzliche Checkbox Autogenerate Membervariable. Diese Checkbox wird ausschließlich bei Individual und Individual (readonly) Properties angezeigt und generiert sowohl eine Membervariable als auch ein Depends On Property, sobald sie gesetzt wird. In die Registerkarte General wurden ferner die Textfelder Display MinLength, Display MaxLength, Display MinLines und Display MaxLines und die Comboboxen Mapping und Drag Source verschoben. Des Weiteren können Sie wie gewohnt im Textfeld Description eine Beschreibung hinzufügen.
Mit der Taste F1 kann im PropertyGrid für ein selektiertes Property, für welches eine Definition vorliegt, die Dokumentation geöffnet werden.