visual studio 2019

in C#, Programmazione

Visual Studio 2019

Reading Time: 3 minutes

Da poco ho migrato tutti gli ambienti di sviluppo (a parte quelli per le applicazioni “legacy”, ahimè), Visual Studio 2019 si è dimostrato, ancora una volta, un ottimo strumento per lo sviluppo software. Nei precedenti post (Aspettando Visual Studio 2019Visual Studio 2019 Preview2) erano state analizzate alcune delle funzionalità presenti nelle varie versioni preview di Visual Studio, ma dopo il rilascio, ho finalmente installato la versione release. 

Nuova interfaccia utente

Rispetto alla versione 2017 i tempi di risposta e creazione applicazioni sono visibilmente migliorati. In fase di apertura, infatti, viene aperta una schermata di menu contenente il solo elenco dei progetti aperti recentemente e le funzionalità di gestione dei progetti: 

  • Clonazione di un repository (es. Github, Azure…) 
  • Apertura di una soluzione o di un progetto esistente
  • Apertura di una cartella locale
  • Creazione di un nuovo progetto

Evidentemente la visualizzazione di queste informazioni influenza positivamente i tempi di risposta in apertura. 

La schermata di creazione di progetti è stata completamente aggiornata, mantenendo il focus sullo sviluppo collaborativo tramite Git.  In particolare, la prima schermata in fase di creazione di un nuovo progetti, a differenza delle versioni precedenti, consente lo scaricamento diretto di repository Git, senza dover prima creare il progetto e utilizzare successivamente Team Explorer. Il tutto in ottica di migliorare lo sviluppo collaborativo in ambito Git/Github. 

Esistono sicuramente altre migliorie che sono state apportate all’IDE, anche se probabilmente hanno minore impatto e possono passare un pò inosservate:

  • la nuova icona ha un design più moderno
  • il tema “blu” ha subito qualche modifica al design
  • il menu superiore occupa meno spazio (per avere maggiore spazio a disposizione per lo sviluppo del codice
  • le  notifiche sono maggiormente integrate all’interno dell’area utente 

Intellicode

E’ un insieme di funzionalità aggiuntive , basate sull’intelligenza artificiale che assistono gli sviluppatori nella scrittura del codice. L’estensione consente di  risparmiare tempo nella scrittura impostando, all’inizio dell’elenco di completamento,  gli elementi che sono stati più utilizzati. Gli elementi “consigliati” da Intellicode sono basati su centinaia di progetti opensource di Github, ognuno con più di 100 stelle. 

Scrittura del codice “pulito”

La scrittura di codice “pulito” e facilmente mantenibile è un elemento fondamentale per lo sviluppo di applicazioni: fino a Visual Studio 2017 è sempre stato necessario affidarsi ad applicazioni di terze parti, come Resharper. A partire da Visual Studio 2019, Microsoft sta cercando di colmare questa lacuna. La nuova funzione di “pulizia del codice” è attivabile con una scorciatoia da tastiera ma anche tramite la “lampadina” visualizzata a fianco della linea di codice da ottimizzare. L’utente ha la possibilità di modificare il comportamento di numerose riscritture del codice: ad esempio, la dichiarazione del tipo può essere configurata come implicita (usando la varparola chiave) o esplicita (come, per esempio, List<string>). A mio avviso, la funzionalità di “pulizia codice” è sicuramente un passo avanti nell’integrazione di Visual Studio, ma non può ancora sostituire un programma esterno come Resharper

Funzioni di ricerca migliorate

Microsoft ha migliorato la funzionalità di ricerca in Visual Studio 2019 per semplificare la ricerca. Il più grande miglioramento è disponibile durante il debug, poiché ora l’IDE offre agli sviluppatori la possibilità di eseguire ricerche negli oggetti, in un massimo di 10 livelli di nidificazione.

Supporto .NET Core 3

Visual Studio 2019, promette di supportare direttamente .NET Core 3 appena verrà rilasciato. Secondo Microsoft, sarà effettivamente l’unica versione del popolare IDE a farlo.  Inoltre, in Visual Studio 2019, .NET Core 3 (e versioni successive) consentirà l’accesso a una nuova interessante funzionalità: è stato introdotto il supporto per l’impostazione dei punti di interruzione dei dati. In pratica, un punto di interruzione verrà eseguito solo quando la proprietà che si desidera ispezionare, come il conteggio di una raccolta, cambia.

Questa è una funzionalità che era disponibile solo per gli sviluppatori C ++ ed è accessibile facendo clic con il pulsante destro del mouse sulla proprietà.

DPI

Lo sviluppo di applicazioni con multi-monitor è eccezionali, perchè facilitano lo sviluppo di applicazioni, ma non sono esenti da problemi. Quando si combinano e abbinano impostazioni di ridimensionamento, o si supera la visualizzazione oltre il 100 %, ci si imbatte in quello che molti chiamano “problema del testo sfocato”. Il risultato è quello di ottenere un’ottima visualizzazione su un monitor e una visualizzazione degrata su un altro (spostando la finestra). Spesso questo problema può essere risolto impostando il ridimensionamento al 100%, che spesso rende la visualizzazione nitida su tutti i monitor. Il problema rimane, però, se vengono utilizzati monitor ad altra risoluzione.  Con Visual Studio 2019, Microsoft sta cercando di risolvere il problema, introducendo un’opzione per ottimizzare il rendering per questo particolare tipo di configurazioni. È una funzionalità che dipende dalla presenza sul sistema di  .NET Framework 4.8, altrimenti non sarà possibile abilitare questo tipo di funzionalità. Nella mia configurazione multi-monitor questa opzione necessita di ulteriore raffinamento, ma Microsoft stessa dichiara la funzione ancora “work in progress”. 

LiveShare

Questa funzionalità è stata trattata all’interno del post precedente

Conclusioni

Sicuramente se si ha la possibilità di farlo, il consiglio è quello di passare alla nuova versione di Visual Studio, soprattutto per familiarizzare con le nuove funzionalità. In termini di cambiamenti, non sono sicuramente drastici. L’obiettivo di Microsoft è stato quello di rendere l’IDE più moderno e al tempo stesso rendere il passaggio da versioni precedenti piuttosto semplice.