SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

34
SF Softwareberatung ApplicationCreator Demo für die .NET User's Group KA

Transcript of SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

Page 1: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Ergebnis 1: Die Datenbank

Page 18: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

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.

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.

Ergebnis 3: Stammdatenformulare

Page 21: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

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.

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.

Ergebnis 4: Suchformulare

Page 24: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

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.

Ergebnis 5: Migration von Altdaten

Page 26: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

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.

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.

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.

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.

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.

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.

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.

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

Page 34: SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA.

Kontakt

Stefan Falk Softwareberatung [email protected]