Negli ultimi tempi mi sono messo a provare qualche tool di terze parti per migliorare la produttività con SQL Server Management Studio.Alcuni giorni fa ho provato SSMSBoost. In passato ho già illustrato le potenzialità di SSMSToolsPack e SQLPrompt, che già da tempo utilizzo, ma in questo post vorrei focalizzare l'attenzione sulle feature che SSMSBoost aggiunge al nostro SSMS. Parlerò delle seguenti aree:
- Funzionalità di user experience
- Gestione connections
- Ricerche
- Estensione dei menu
- Comandi nelle griglie
Funzionalità di user experience
message stack
Ogni messaggio è mostrato in alto a destra su di uno stack temporizzato (che tende a scomparire) e colorato (in base alla severità di quanto appare).
Shortcuts (force override)
Con questa funzionalità è possibile fare override dei propri collegamenti (hotkeys) con un pannello di configurazione integrato nel plugin.
Gestione connessioni
Preferred connection
Con questa funzionalità si possono selezionare le connessioni ed impostarle come preferite all'avvio. Ogni connessione ha un property grid come il seguente:
In aggiunta, tramite tasto destro, è possibile selezionare "preferred connection". Le connessioni preferite vengono salvate in una lista configurabile tramite i setting.
Set as active connection
Clickando il tasto destro su un database e selezionando "set as active connection" viene cambiato il contesto di connessione corrente. La query window cambia connessione lasciando invariato il testo in essa contenuto. Questa funzionalità, usata insieme alla preferred connection, risulta veramente utile e migliora la velocità di cambio database/server.
Alert tip
Con questa funzionalità è possibile far comparire un alert colorato (più o meno d'impatto) che aiuti lo sviluppatore comunicandogli un messaggio custom (vedi "ATTENZIONE, siamo in produzione!!" )
Ricerche
La funzionalità di ricerca consente l'utilizzo di wildcards per cercare solo nella lista degli oggetti sql server (non nella definizione). Tuttavia c'è un buon punto di forza.. la ricerca può essere fatta cross database, selezionando quali e quanti database considerare. Una volta selezionato un oggetto, è possibile creare anche lo statement di CREATE.
I due più grossi difetti sono però, a mio avviso:
- si può fare solo CREATE (perchè non ALTER?)
- nessuna ricerca nelle definizioni dei moduli (stored procedure, funzioni, ecc)
Menu estesi
Locate object
Premendo "Locate Object" il focus viene impostato sull'oggetto all'interno della cartella logica del database (ad esempio nella cartella stored procedures, o functions) sull'object explorer. Si tratta di una funzionalità molto simile alla "Locate On Solution Explorer" in Visual Studio di JetBrains ReSharper.
Script as
Questo è forse la più importante funzionalità fornita. Si tratta di un "go to definition", una cosa veramente utile per chi è abituato ad avere strumenti di sviluppo (codice) comodi. E questo strumento consente di aprire il nostro oggetto (si parla di programmabilità) in ALTER oppure in CREATE (ed in questo caso anche le tabelle e le viste sono supportate).
go to BEGIN/END
Simpatica funzionalità per navigare tra i livelli innestati di begin end.. Anche se è sempre meglio ridurre le nidificazioni, cercando invece di modulare
Comandi nelle griglie
Visualizers
Molto interessante. Consente di mostrare un campo binario nel suo vero contenuto.
Find in Results Grid
Questa è altrettanto importante e produttiva. La ricerca nella griglia (senza dover scrivere la select giusta eh ):
Supporta anche la griglia multipla e consente anche la ricerca row by row o su colonne. Supporta i wildcards, purtroppo non le regular expression.
Script templates
Con questa funzionalità è possibile creare template utilizzabili come formato partendo da un sottoinsieme di dati in una griglia di risultati.
C# Enum è stato creato da me (veramente comodo) e ne parleremo in un post futuro.. Un template che mi risparmia tanto tempo.. Vi lascio immaginare come per ora
INSERT INTO EXEC sp o WHERE IN sono altrettanto importanti, il primo per fare già la tabella che conterrà l'EXEC di una sp, il secondo per fare già un filtro basato su una selezione.
Conclusioni
Sono veramente convinto che migliorare il nostro Management Studio sia veramente utile se si vuole aumentare la produttività. Ogni add-in che ho installato sul mio SSMS è utile per una cosa particolare. Per ora, come dicevo all'inizio del post, sto utilizzando i seguenti tool di terze parti:
SSMSToolsPack (by Mladen Pradjc)
- regions - rende molto comoda la lettura del codice e consente una buona distinzione delle aree in cui esso si vuole separare
- history and session management - con questa è possibile ripristinare una sessione precedente ogni volta che si avvia SSMS
- debug sections - si tratta di aree che, in base all'esecuzione che si decide (DEBUG o RELEASE) vengono ignorate reciprocamente per dare spazio a punti di "log" o di controllo
- execution plan analyzer - consente di analizzare il piano in maniera più approfondita, con tanti suggerimenti utili
SQL Prompt (di Red-Gate)
- format SQL and coding style - a mio avviso uno dei formatter di codice migliori in circolazione
- tab coloring (experimental) - consente la colorazione dei tab. Molto più "leggerino" di SSMSToolsPack, ma è quello che mi basta. Tuttavia, consiglio SSMSToolsPack per avere più controllo e più personalizzazioni.
- point to synonyms (experimental) - estensione dell'intellisense ai synonyms.
- enhanced intellisense - a mio avviso l'intellisense migliore esistente al momento (alias di Join automatici, match per nome campo, intellisense velocissimo e autocomplete con prossimità di stringa)
E ho scoperto infine, SSMSBoost
- gestione connessioni
- locate object
- go to definition
- template scripter
- visualizers
- gestione delle griglie
Stay Tuned!