Stò lavorando all'implementazione di uno User Control ASP.NET che permette al programmatore di realizzare la Visualizzazione/Inserimento/Modifica/Cancellazione di una singola tabella del Db con poche (~5) righe di codice.
Lo User Control è utile per implementare la gestione di tabelle prive di particolare logica di business (oltre a quella già espressa dai vincoli del Db) che trovo spesso numerose anche nelle applicazioni complesse in quanto sono di supporto alle entità più complesse.
Se qualcuno desidera provarlo e darmi il suo feedback (suggerimenti/bug) o è interessato a contribuire all'evoluzione dello User Control può Contattarmi direttamente.
_________________
DATA TABLE EDITOR
_________________
OBBIETTIVO
Ridurre i tempi di sviluppo per le applicazioni di gestione di tutte quelle entità (tabelle sul Db) elementari che sono prive di logica di business.
Queste entità sono tipicamente di supporto (in relazione) ad entità più complesse e articolate che hanno una propria logica di business e costituiscono parti centrali nel sistema informatico che si stà sviluppando.
Nella fase di progettazione, per queste entità elementari tipicamente un DataSet non tipizzato appare più che sufficiente o addirittura eccessivo.
DESCRIZIONE
E' uno User Control ASP.NET che mette a disposizione dell'utente le funzioni Vis/Ins/Mod/Can su qualsiasi tabella singola del Db attraverso una griglia editabile.
Funzioni di ricerca, stampa o altro sono escluse ma possono essere facilmente implementate esternamente.
FILOSOFIA
Ottenere il miglior rapporto possibile tra flessibilità di DataTableEditor (cioè il numero dei casi in cui può essere impiegato) e sforzo di realizzazione del DataTableEditor applicando questi valori:
- estrema semplicità nelle soluzioni tecniche impiegate e nel disegno applicato
- ampie possibilità di configurabilità ed estensibilità per gestire i casi non tratti automaticamente
- solida conscienza di ASP.NET (in paricolare della DataGrid), di ADO.NET e del modello relazionale
FUNZIONALITA' IMPLEMENTATE
- DataGrid con funzioni di Modifica, Eliminazione e Inserimento nuova riga
- Gestione di singola tabella di SqlServer
- con colonne identità/sequence
- con colonne di sola lettura (es. colonne ottenute da espressioni)
- con colonne NULLABLE o NOT NULL
- con colonne con valori di default (...)
- con colonne aventi i seguenti tipi di dato:
Boolean, Byte, SByte, Char, DateTime, Decimal, Double, Single,
Int16, UInt16, Int32, UInt32, Int64, UInt64, String
- Personalizzazione delle descrizioni in testata delle colonne
- Personalizzazione della formattazione e del allineamento delle colonne
- Personalizzazione della testata della pagina (titolo e sottotitolo)
- Visualizzazione/presentazione dei messaggi di errore all'utente
- Intercettazione, gestione e visualizzazione della messaggistica all'utente per gli errori
- In Visualizzazione
- Privilegi di lettura assenti
- In Cancellazione
- Errore di FK violata a causa di righe figlie esistenti (in assenza di CASCADE DELETE)
- Errore di concorrenza
- Privilegi di cancellazione assenti
- In Modifica
- Privilegi di modifica assenti
- Errore di PK violata
- Errore di UK violata
- Errore di FK violata a causa di riga padre inesistente
- Errore di FK violata a causa di righe figlie esistenti (in assenza di CASCADE UPDATE)
- Errore di concorrenza
- Errore di NOT NULL violato
- Controllo preventivo sulla lunghezza massima dei dati inseribili per colonne di tipo String/Char
- Errore di formato/dominio dei valori inseriti dall'utente
- In Inserimento
- Privilegi di modifica assenti
- Errore di PK violata
- Errore di UK violata
- Errore di FK violata a causa di righe figlie inesistenti
- Errore di concorrenza (risolto da gestione errore di PK violata)
- Errore di NOT NULL violato
- Controllo preventivo sulla lunghezza massima dei dati inseribili per colonne di tipo String/Char
- Errore di formato/dominio dei valori inseriti dall'utente
- Possibilità di personalizzazione (con funzione di callback esterna) della messaggistica per
l'utente nei casi di violazione di constraint non gestiti automaticamente: check constraint, trigger, etc.
- Gestione e visualizzazione di errori imprevisti all'utente
FUNZIONALITA' DA IMPLEMENTARE
- INDISPENSABILI
- IMPORTANTI
- Estensione con controlli aggiuntivi sui dati prima di un Ins/Mod/Canc e relativa
messaggistica all'utente.
- Personalizzazione dei controlli impiegati in Edit in base al tipo di colonna
- ComboBox per le FK
- DateTimePicker per colonne DateTime
- Checkbox per colonne Boolean
- altro ?
- ACCESSORIE
- Plug-In per la gestione di Tabelle da Db Oracle
- Personalizzazione (con funzione di callback esterna) della messaggistica per l'utente di
violazione degli errori già gestiti
- Personalizzazione con Template esterno della visualizzazione ed Edit della riga della DataGrid
- Ordinamento e paginazione