In questa lezione esaminiamo alcune importanti novità introdotte nell'intellisense, funzionalità senza la quale ogni sviluppatore è "perduto".
La prima importante novità sta nel fatto che intellisense non ragiona più con la logica "inizia per" ma con la logica "contiene". Per questa ragione, se stiamo lavorando con un oggetto SqlConnection e ci ricordiamo che esiste una proprietà che regola il Timeout, basta iniziare a scrivere Tim e subito ci viene presentata la proprietà che stiamo cercando, anche se in realtà si chiama ConnectionTimeout.
Figura 11. Il suggerimento mostra i metodi/proprietà che contengono il testo digitato
L'intellisense è ora in grado di interpretare alcune 'sigle' mentre digitiamo, grazie alla convenzione del casing, per il quale le parole composte vengono scritte senza spazi ma con il primo carattere maiuscolo (PascalCase, caso particolare di CamelCase). L'IDE si serve delle iniziali (lettere maiuscole) delle classi per suggerirci come completare le nostre espressioni.
Ad esempio, sempre per l'oggetto SqlConnection, poniamo il caso di ricordare che esiste qualche metodo che permette di interagire con il LifetimeService, potremmo digitare in maiuscolo LS ed ottenere questo risultato:
Figura 12. Intellisense avanzato, riconoscimento del casing
L'intellisense, sapendo che le iniziali di ogni parola che compone un membro di classe è maiuscola, quando digitiamo LS cerca un membro composto da due o più parole di cui due iniziano per L ed S.
Vediamo cosa accade se tentiamo di utilizzare una classe chiamata MyNewClass che attualmente non esiste nel progetto:
Figura 13. Consume first intellisense
L'intellisense ce la propone come se fosse in realtà già stata dichiarata. Al termine della digitazione, nel menu contestuale si può scegliere di generare la nuova classe, d'altra parte se questo è quello che il programmatore ha digitato, probabilmente è quello che vuole.
Figura 14. Creare al volo la classe
mnc.", l'intellisense ci propone gli unici metodi attualmente disponibili per la classe, quelli ereditati da System.Object. Premendo CTRL+ALT+SPACE, però, l'intellisense presenta una interfaccia leggermente differente, in cui la prima opzione lista quello che si sta digitando.
Figura 15. Consume-first intellisense
Ora l'intellisense è in Consume-first mode, per cui presuppone che tutto quello che digitiamo sia corretto, anche se non esiste ancora. Questa feature è di aiuto ad esempio nel Test Driven Developement. Possiamo infatti digitare una chiamata ad un metodo inesistente e poi, grazie allo stesso menu contestuale, far generare a Visual Studio uno stub valido nella classe.
mnc.MyNewMethod(12, "pippo");
...
internal void MyNewMethod(int p, string p_2)
{
throw new NotImplementedException();
}
Tutti i metodi autogenerati lanciano una eccezione perché debbono poi essere completati.
LINQ e la trappola della 'deferred execution'Una "trappola" in cui si può incappare utilizzando il risultato di... |
C#, le Custom Type ConversionConversioni personalizzate tra classi, creare metodi particolari per... |
Introduzione a Entity FrameworkIl framework ORM messo a disposizione da .NET |
Repeater: visualizzare un feed RSSUtilizzare il controllo XMLDataSource e sfruttare il metodo XPath()... |
Repeater, il server control "semplice"Cos'è e come funziona il controllo Repeater |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Guida Visual Studio 2010L'ambiente di sviluppo di riferimento per sviluppare applicazioni su... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |