Allgemein - Namenskonventionen folgen .NET-Regeln, s. z. B. Cwalina, Abrams - Steuerelementnamen aber normalerweise Ungarische Notation, bis auf generierte z. B. in FormView-Steuerelementen - Keine Umlaute in Namen von DB-Objekten und in Namen, die im CSS auftauchen GUI - Kontrollkästchen und Listenfelder in ItemTemplate der FormViews auf Enabled=False setzen + Eval() statt Bind() verwenden - Parameter für Kontrollkästchen in InsertTemplate der FormViews ggfs. mit DefaultValue="False" erweitern - Für Listenfelder in Edit- und InsertTemplates der FormViews ggfs. 0-Item vorsehen + AppendDataBoundItems=True setzen - U. a. auch Namen von Foreign Keys hart-codiert, z. B. FK_Leistungsfeststellung_Leistungszeitraum, FK_Beschaeftigter_Organisationseinheit und FK_Beschaeftigter_Leistungsfeststellung DB-Design - Tabellennamen = Singular - Künstlicher Primärschlüssel = Id - Fremdschlüsselspalten = Tabellenname + Id - Booleans (bit) = Nicht null und Vorgabewert 0, sonst Probleme bei Datenbindung - Strings nvarchar(50) - Normalisiert, z. B. Status aber auch als Constraint möglich - aspnet_Xyz-Tabellen gehören zur ASP.NET 2.0 Standardlösung für die Benutzerverwaltung. Design nicht ändern! Keine Daten direkt manipulieren, VS-GUI oder SP benutzen - auch das nur, wenn man sich auskennt! - Verbindung Beschaeftigter.Id <-> Benutzer.Id über Beschaeftigter-Tabelle, BMAS-Admin braucht dort also UPDATE-Berechtigung. Verbindung über Profil geht leider nicht, weil beim Anlegen des Nutzers ja der Admin angemeldet ist. - Cascading Deletes für aspnet_Users eingeschaltet (Membership.DeleteUser() erzeugt sonst Fehler) - Keine Schemas eingesetzt, alles in dbo - Vorgehen für Benennung und Berechtigungsvergabe: Anmeldungen = Führungskraft, ... Rollen = LoB_Führungskraft, ... Benutzer = Führungskraft ... Berechtigungen auf Rollenebene. - Alte PersonalId? - Indizes fehlen noch - LaufbahnId in SP OptionaleBewertungskriterien hart-codiert - RAISERROR im Sinne von Asserts beginnen mit 'Fehler,' - Div. Entitäten (Grundaufgaben, Zielvereinbarung, ...) können zwar nur einmal pro Leistungsfeststellung existieren, trotzdem ist die Leistungsfeststellung Id aber dort wegen WurdeAngepasst und WurdeBeschwerdeBearbeitet nicht eindeutig. Annahmen: - Keine (optimistischen) Sperren nötig Fragen - Beschaeftigter.VerzichtAufSVHinzuziehung in Leistungsfeststellungstabelle, weil änderbar? - Beschaeftigter.EposId sinnvoll, um Beziehung zu Daten In EPOS nachvollziehbar zu machen? TODO: - Caching für Stammdaten-Datenquellen (Entgeltgruppe, Organisationseinheit, ...) nach initialer Eingabe einschalten