Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "SF Softwareberatung ApplicationCreator Demo für die.NET User's Group KA."—  Präsentation transkript:

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

2 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

3 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

4 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

5 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

6 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

7 Das ist doof, fehlerträchtig und langweilig! Wie wäre es mit: 1. Datenbankstrukur definieren 2. Hinweise für das Layout besonders komplexer Formulare geben 3. Pizza essen (oder besondere Funktionalität implementieren) 4. Fertig!

8 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

9 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

10 SFSoftwareberatung.WinForms.StandardForms Windows XP-Designs ShortcutGenerator vergibt eindeutige Tastaturshortcuts Splash-Screens Info-Dialoge

11 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.

12 SFSoftwareberatung.ApplicationCreator Oberflächen-unabhängige Anwendungsautomatik Anwendungsdefinition Datenbank Masken Datenzugriff Versionierung der Datenbankstruktur Migration von Alt-Datenbeständen Rollen Migration von Altdaten

13 SFSoftwareberatung.ApplicationCreator.WinForms Windows-basierte Nutzung des ApplicationCreator ApplicationMainForm ControlCreators FindDialog MasterFormEditor Controls DataMigrationDialog

14 Highlight: Die Anwendung myApplicationCompleter = New ApplicationCompleter( GetApplicationDescription(), New SqlServer.SqlFactory(New AppConfigConnectionStringGetter), New ActiveDirectoryRoleMembershipChecker, Me, True) myApplicationCompleter.InitializeApplication()

15 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 With

16 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 With With.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 With

17 Ergebnis 1: Die Datenbank

18 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

19 Ergebnis 2: Die Rumpfanwendung MDI-Formular Menüs automatisch erzeugt und gefüllt Von der Anwendung ergänzbar Einschließlich Tastaturshortcuts

20 Ergebnis 3: Stammdatenformulare

21 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

22 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

23 Ergebnis 4: Suchformulare

24 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

25 Ergebnis 5: Migration von Altdaten

26 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

27 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

28 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

29 Gelernte Lektionen: Data Binding und 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

30 Gelernte Lektionen: Data Binding und 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!

31 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

32 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

33 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

34 Kontakt Stefan Falk Softwareberatung


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

Ähnliche Präsentationen


Google-Anzeigen