[PDC 2003] C# cresce, Visual Studio lo segue...

Un po' perchè il post di Corrado mi "obbliga" moralmente a farlo, un po' perchè l'argomento è per me particolafrmente sentito, provo a raccontarvi quanto visto nella sessione inerente le novità di Visual Studio .NET attinenti a C#. Innanzitutto, una piccola premessa: come ormai anche i sassi sapranno, sono un alpha tester di Whidbey, ossia una di quelle persone (assieme a Corrado, Raffaele e Daniele) cui Microsoft chiede feedback e consigli sulle feature di questa release di VS. Dove sta la premessa? "Sta" nel fatto che alcune feature osservate qui a PDC sono nuove anche per me (l'ultima build alpha in mio possesso era quella di luglio), quindi per alcune feature dovrò "andare a memoria" e ricordare quanto visto in sessione: concedetemi, quindi, qualche imprecisione. Pronti? Via! Uno degli indiscutibili obbiettivi di Whidbey è l'incremento di produttività ("more money per hour" per citare Scott Guthrie, PM di ASP .NET), ed alcune caratteristiche lo fanno capire chiaramente: intellisense, indentazione del codice, syntax highlighting e correzioni (alla Word, per intenderci) "dappertutto" (sembra l'editor di VB!); uso massiccio di smart tag, con VS che "indovina" cosa volessimo fare e, soprattutto, keyword a "espansione". Cosa sono? Sono la possibilità di scrivere in mezzo al ns. codice qualcosa del genere:

stdusing

premere Invio e vedere questo "codice" espandersi così:

using System;
using System.Data;
using System.Text;

oppure scrivere:

class Fake
{
    svm
}

e vedere VS rimpiazzare il tutto con:

class Fake
{
    static void Main() {
    }
}

Il set delle keyword è, ovviamente, personalizzabile e definito nel "solito" file XML. Pensate non sia nulla di eccezionale? Avrei commesso follie per disporre prima di questa feature: ricordo quando, poco dopo il lanci di VS .NET 2002 ne parlai all'amico Francesco Albano dicendo che era una delle poche feature di Eclipse (AAARGH!!! L'ho detto! :-p) che mi mancavano...
Che ne direste poi di poter scrivere:

foreach(string miaStringa in

e vedere che VS vi piazza dopo la keyword in una bella listbox popup che contiene tutti i simboli validi nello scope corrente e il cui tipo implementa IEnumerable? Come se tutto ciò non bastasse, arriviamo ora al piatto forte: prego legare le mascelle al fine di evitare dolorose e spiacevoli slogature... :-)
Whidbey integra un poderoso modellatore (codename Whitehorse) nonchè delle strepitose funzionalità per il refactoring (chi mi conosce sa quanto questo tema mi sia caro). In poche parole, non ci sono più scuse per non fare design (e non dite che non vi avevo avvisati con largo anticipo!). Purtroppo, non sono tutte rose e fiori: se infatti è vero che i tool di refactoring siano davvero ammirevoli, lo stesso non si può dire di Whitehorse, nonostante la feature list nutritissima. Immaginate quanto sia bello disporre di un modellatore integrato nello IDE, totalmente 2-way, capace di riflettere nel codice i cambiamenti del modello, e viceversa. Dove sta la magagna? Semplicemente, il formalismo utilizzato non è UML (ridatemi gli access modifier accanto al nome del membro dell'interfaccia!). Una "lacuna" che, nonostante condivida alcune potenziali ragioni di fondo (es: UML non permette di modellare in maniera non ambigua un diagramma di classi basato sul framework), ancora non riesco a digerire... Mettiamola così: avrei preferito una "estensione" ad UML, piuttosto che una "ridefinizione" from scratch di un formalismo. Però, diciamocelo, di fronte a tanto splendore anche questo diventa tollerabile... o no? :-)

posted @ mercoledì 29 ottobre 2003 06:20

Print

Comments on this entry:

No comments posted yet.

Your comment:



 (will not be displayed)


 
 
 
Please add 8 and 5 and type the answer here:
 

Live Comment Preview:

 
«dicembre»
domlunmarmergiovensab
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678