sf softwareberatung applicationcreator demo für die.net user's group ka
TRANSCRIPT
![Page 1: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/1.jpg)
SF Softwareberatung ApplicationCreator
Demo für die .NET User's Group KA
![Page 2: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/2.jpg)
Agenda
Definition des Problems Was muss alles getan werden?
Der ApplicationCreator Abgrenzung der einzelnen Assemblies Beispiel-Code Snippets 2 Statements + Strukturdefinition reichen
Ergebnisse Datenbank, Rumpfanwendung, Stammdaten-
und Suchformulare, Migration von Altdaten Gelernte Lektionen Ausblick
![Page 3: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/3.jpg)
Definition des Problems
Immer noch viel zu viel manueller Aufwand für die Erstellung neuer datenbankgestützter Anwendungen Trotz Assistenten und Designern Noch mehr Aufwand, um „best
practices“ zu realisieren
![Page 4: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/4.jpg)
Was muss alles getan werden? (I)
Auf dem Datenbankserver: Datenbankstrukturen planen Tabellen anlegen Gültigkeitsregeln festlegen Stored Procedures schreiben Rollen definieren Zugriffsrechte implementieren Versionierung regeln
![Page 5: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/5.jpg)
Was muss alles getan werden? (II)
In der Anwendung: Code zum Zugriff auf Stored Procedures
schreiben Formulare entwerfen
Weit mehr als Steuerelemente ziehen und Datenbindung definieren!
Master-Detail-Detail… Suchmasken erstellen Menüs und das ganze Drumrum
![Page 6: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/6.jpg)
Was muss alles getan werden? (III)
Für Auswertungen: Stored Procedures schreiben… Dialoge für Selektionsmöglichkeiten
erstellen Berichte entwerfen Das alles zum Leben erwecken
![Page 7: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/7.jpg)
Das ist doof, fehlerträchtig und langweilig!
Wie wäre es mit:1. Datenbankstrukur definieren2. Hinweise für das Layout besonders
komplexer Formulare geben3. Pizza essen (oder besondere
Funktionalität implementieren)4. Fertig!
![Page 8: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/8.jpg)
Der ApplicationCreator
Eigentlich ein Satz von derzeit 5 Assemblies
Realisieren derzeit Windows-Datenverwaltungs-Anwendungen
Erweiterbar Andere DBs als SQL Server Andere Oberflächen als Windows (Web) Spezielle Feld- und Tabellentypen
![Page 9: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/9.jpg)
SFSoftwareberatung.Configuration
Ähnlich Microsoft CMAB Noch einfacher zu benutzen
Dafür fehlen noch ein paar Features Kann beliebige primitive oder
serialisierbare Datentypen speichern An beliebige Orte
Datenbank implementiert Unterscheidung zwischen
Maschinen- und Benutzer-Optionen
![Page 10: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/10.jpg)
SFSoftwareberatung.WinForms.StandardForms
Windows XP-Designs ShortcutGenerator vergibt
eindeutige Tastaturshortcuts Splash-Screens Info-Dialoge
![Page 11: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/11.jpg)
SFSoftwareberatung.WinForms.Controls
Alle möglichen Controls Navigation Verweis-Felder Panel mit Farbverlauf bei XP-Designs RepeatButton FullSelectLabel DBNumericUpDown (unterstützt DBNull und
XP-Designs) DB-taugliche RadioGroup u. a.
![Page 12: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/12.jpg)
SFSoftwareberatung.ApplicationCreator
Oberflächen-unabhängige Anwendungsautomatik Anwendungsdefinition
Datenbank Masken
Datenzugriff Versionierung der Datenbankstruktur Migration von Alt-Datenbeständen Rollen Migration von Altdaten
![Page 13: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/13.jpg)
SFSoftwareberatung.ApplicationCreator.WinForms
Windows-basierte Nutzung des ApplicationCreator ApplicationMainForm ControlCreators FindDialog MasterFormEditor Controls DataMigrationDialog
![Page 14: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/14.jpg)
Highlight: Die Anwendung
myApplicationCompleter = New ApplicationCompleter(GetApplicationDescription(),New SqlServer.SqlFactory(New AppConfigConnectionStringGetter),New ActiveDirectoryRoleMembershipChecker,Me, True)
myApplicationCompleter.InitializeApplication()
![Page 15: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/15.jpg)
Highlight: Die Datenbankstruktur
papier = .Tables.Add("Papier")With papier
.Fields.Add(New FieldTypes.StringField("Bezeichnung", False, 1, 50)).CreateIndex(True, True).SetRowdescribing()
.Fields.Add(New FieldTypes.BooleanField("IstLogoVorgedruckt", False, False)).FriendlyName = "enthält vorgedrucktes Logo"
With .AddEditView.Permissions.Grant(Leitung, Operations.Full).Grant(Benutzer, Operations.SelectFromAllTables)
End WithEnd With
![Page 16: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/16.jpg)
Highlight: Master-Detail-Detail…
schreibauftrag.AddMasterForm()formHint = New Hints.MasterFormLayoutHint(schreibauftrag.MasterForm)schreibauftrag.MasterForm.Hints.Add(formHint)
' Variante "Alles auf einmal sichtbar" 1:With formHint.MainPlace.AddVerticalSplitter
With .LeftPane.AddHorizontalSplitter.TopPane.AddForm(schreibauftrag.MasterForm).BottomPane.AddForm("Berechtigte Gruppen", _
schreibauftrag.MasterForm.DetailForms.Add(nutzung.ReferenceField(schreibauftrag)))End WithWith .RightPane.AddHorizontalSplitter
.TopPane.AddForm("Dokumente des Schreibauftrags", schreibauftrag.MasterForm.DetailForms.Add(refDokumentSchreibauftrag))
.BottomPane.AddForm("Elemente des oben angezeigten Dokuments",schreibauftrag.MasterForm.DetailForms(refDokumentSchreibauftrag).DetailForms.Add(refElementDokument))
End WithEnd With
![Page 17: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/17.jpg)
Ergebnis 1: Die Datenbank
![Page 18: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/18.jpg)
Highlights der Datenbank
Vollautomatisch erzeugt Abgesetztes T-SQL ist „schön“ formatiert
All Inclusive: SQL Server-Rollen Tabellen
mitsamt Gültigkeitsregeln, soweit abbildbar mit referentieller Integrität
Sichten (für Suchformulare) Prozeduren (für jeglichen anderen Zugriff) Zugriffsrechte für die Rollen
Niemals auf die Tabellen selbst
![Page 19: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/19.jpg)
Ergebnis 2: Die Rumpfanwendung
MDI-Formular Menüs automatisch erzeugt und
gefüllt Von der Anwendung ergänzbar Einschließlich Tastaturshortcuts
![Page 20: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/20.jpg)
Ergebnis 3: Stammdatenformulare
![Page 21: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/21.jpg)
Highlights der Stammdatenformulare
Vollautomatisch erzeugt Anbringen von Hints für besondere Wünsche
möglich Hints für Layout von Master-Detail-Formularen
Kacheln, Tabs Unterschiedliche Controls je nach Feldtyp
ComboBox, RadioGroup, ReferenceBox, FileName, Folder, …
Erweiterbar Unterschiedliche Formulare je nach Tabellentyp
Gruppenmitgliedschaften Tabellen mit definierter Datensatzreihenfolge
![Page 22: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/22.jpg)
Highlights der Stammdatenformulare
Komfortable Features Auto-Resizing, Position und Größe merken Tastaturshortcuts Gültigkeitsprüfungen mit freundlichen
Fehlermeldungen Klicken auf Label markiert gesamten Feldinhalt Sprung zu anderen Formularen bei
Referenzfeldern Suchmasken immer verfügbar
![Page 23: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/23.jpg)
Ergebnis 4: Suchformulare
![Page 24: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/24.jpg)
Highlights der Suchformulare
Vollautomatisch erzeugt Keine SQL Injection Attacks möglich Spezielle Definition der suchbaren und
anzuzeigenden Felder möglich Standardmäßig werden nicht mehr als
100 Treffer angezeigt Auch via Code supereinfach aufzurufen Auto-Resizing, Position und Größe
merken Tastaturshortcuts
![Page 25: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/25.jpg)
Ergebnis 5: Migration von Altdaten
![Page 26: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/26.jpg)
Highlights der Migration
Gut geeignet, um Daten von alten Programmversionen zu übernehmen
Auch wenn die Datenbankstrukturen nicht identisch sind
Transaktionssicher Allgemeine Basisklasse Spezielle Ableitung für MDB-Dateien
realisiert
![Page 27: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/27.jpg)
Gelernte Lektionen
Es ist viel Arbeit und manchmal hart, aber es geht und ist sehr spannend!
DataBinding ist gut, aber nicht trivial
Am meisten Zeit kosten Detailprobleme Schließlich soll das ganze stabil,
komfortabel, schnell und sicher sein
![Page 28: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/28.jpg)
Gelernte Lektionen: Data Binding
Eigene Controls wegen DBNull Können von vorhandenen erben Implementieren Schnittstelle mit Wert-Property
vom Typ Object Erzeugen Event
Name muss EigenschaftsnameChanged sein! Typ muss EventHandler sein Nur auslösen, wenn der Inhalt auf etwas
wirklich Anderes gesetzt wird! Absolut kritisch, damit Data Binding korrekt
funktioniert
![Page 29: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/29.jpg)
Gelernte Lektionen: Data Bindingund Gültigkeitsprüfungen
Beim Validieren im Fehlerfall keine Exceptions auslösen! Data Binding kommt komplett
durcheinander Entgegen der MSDN-Dokumentation!
Lieber RowError und Konsorten setzen und hinterher prüfen
Ansonsten droht Verzweiflung
![Page 30: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/30.jpg)
Gelernte Lektionen: Data Bindingund ComboBoxen
Geht alles, aber DBNull berücksichtigen ( die native
ComboBox ist nicht direkt verwendbar) Bei Refresh der Daten vorher gesetzten
Wert merken, hinterher wieder setzen Dabei keine Changed-Events auslösen!
![Page 31: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/31.jpg)
Ausblick: Was noch kommen soll (I)
In der Datenbank Rekursive Strukturen für Hierarchien Vertikale Zugriffsrechte
Personen haben nur Rechte auf bestimmte Datensätze einer Tabelle
Ohne Hintertüren! Vollautomatische Versionsaktualisierung
In der Rumpfanwendung Symbolleisten Schnellzugriff auf die häufig benutzen Befehle
selbstlernend
![Page 32: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/32.jpg)
Ausblick: Was noch kommen soll (II)
Formulare Weitere automatisch erzeugte Formulartypen
für bestimmte Tabellentypen Hierarchie-Tabellen Hier leichtere Erweiterbarkeit
Endlosformulare mit Steuerelementen (kein Grid)
Verfeinerte Layoutmöglichkeiten Automatisch erzeugte Extras/Optionen-Dialoge
Reporting ebenfalls weitgehend automatisch
![Page 33: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA](https://reader034.vdocuments.us/reader034/viewer/2022051413/55204d6249795902118b61e8/html5/thumbnails/33.jpg)
Ausblick: Was noch kommen soll (III)
Features Ausgabe nach Excel
einfach, mächtig, gut formatiert, mit Formeln für Summen usw.
Evtl. ApplicationCreator.WebForms ASP.NET Stammdatenverwaltung
basierend auf der selben Anwendungs-definition wie das Windows-Pendant
Grenzen nur durch die Phantasie