SmartPaster
pubblicato il 28/09/2006
Metà del codice che scrivo accede a dati residenti su tabelle SQL. Per ora evitiamo ogni considerazione sul fatto che bisognerebbe accedere ai dati tramite stored procedures (magari ne parleremo un'altra volta). Quasi sempre prima scrivo la query in Query Analyzer, la eseguo, la debuggo, eventualmente la raffino, infine la formatto (ebbene sì, cerco di renderla anche più leggibile) quindi una volta finito tutto ciò, con un bel copia/incolla riporto la query nei miei sorgenti.
Un classico esempio di query potrebbe essere:
SELECT Id, Descrizione, Numero, Data
FROM Tabella
WHERE Data >= '20061101'
AND Numero BETWEEN 1500 AND 300
Notate come il testo della query sia formattato per rendere più agevole la lettura anche da parte di un essere umano. Metà del mio debugging infatti consiste in: lancia l'applicazione in debug, piazza un bel breakpoint laddove viene eseguita la query sospetta (o vengono eseguite le query sospette), copia il testo delle query in Query Analyzer ed eseguilo; insomma il flusso è esattamente invertito: in sviluppo copio la query dal Query Analyzer a Visual Studio, in debug copio il testo della query da Visual Studio a Query Analyzer. Ed è in fase di debugging che trovo molto comodo leggere una query... leggibile (banale, lo so!)
Il classico copia/incolla però presenta delle limitazioni: copiando la query sopra riprodotta dal Query Analyzer in Visual Studio, l'editor marcherà ogni riga come zeppa di errori, e dal suo punto di vista ha perfettamente ragione. Ma quello che io sto copiando, non sono righe di istruzioni VB (o C#, per quel che conta), bensì stringhe.
In questo ci viene in soccorso SmartPaster, piccolo add-on che non fa altro che permetterci di inserire la stringa correntemente nella Clipbaord di Windows nei nostri sorgenti in forma di commento, Region, String oppure StringBuilder; ad esempio, scegliendo di copiare la query precedente come StringBuilder, otterremmo le seguenti righe:
sqlSelect.AppendFormat("SELECT Id, Descrizione, Numero, Data {0}", Environment.NewLine)
sqlSelect.AppendFormat("FROM Tabella{0}", Environment.NewLine)
sqlSelect.AppendFormat("WHERE Data = 20061101'{0}", Environment.NewLine)
sqlSelect.AppendFormat(" AND Numero BETWEEN 1500 AND 300 {0}", Environment.NewLine)
Comodo, no? Per ottenere il risultato è sufficiente portare il cursore nel punto del codice dove vogliamo aggiungere le stringhe, premere il tasto destro del mouse e secgliere la voce 'Paste As': si aprirà un sub-menu dal quale scegliere la modalità di copia. Nello stesso sub-menu possiamo selezionare la voce Configure per - indovinate un po'! - configurare l'utility, anche se sinceramente non ne ho mai sentito la necessità, benchè io usi quasi esclusivamente VisualBasic e il linguaggio predefinito di SmartPaster sia C#.
Sicuramente un piccolo must nella nostra cassetta degli atrezzi di programmazione.
Download: weblogs.asp.net/alex_papadimoulis/archive/2004/05/25/141400.aspx
Versione: 1.1
Prezzo: gratuito
