Author Archives: Antonio Liccardi

Incoming Changes Indicator in Codelens–TFS 2013.2

Più di una settimana fa è stato rilasciato il secondo update per Visual Studio e Team Foundation Server.

In questa release ci sono un pò di novità su alcune feature già presenti nelle versioni precedenti e in particolare per TFS si tratta di una release “go live” visto che come riferito da Brian Harry, siamo alla versione RC per questo prodotto.

Alcune delle novità di questo update sono le seguenti:

  1. Work Item Tagging;
  2. Novità nella gestione del BackLog (PerfImprovements, Non-working days…);
  3. Personalizzazione dei Charts;
  4. Esportazione del test plan in HTML;
  5. Tags in Release Management;
  6. Implementazione di nuovi comandi nel supporto a Git.

L’elenco completo delle nuove features lo potete trovare qui nella KB: http://support.microsoft.com/kb/2927432

 

Una delle grandi novità per questo update è qualcosa legato al CodeLens e che si chiama “Incoming Changes Indicator”. Questa feature ci fornisce informazioni sulle modifiche effettuate sul codice fra i diversi branches del progetto. Questo da quindi la possibilità allo sviluppatore di identificare da quale branch deriva una modifica trovata sul codice.

Questo è un esempio di visualizzazione di questa funzionalità (tratta da MSDN):

Questo è invece l’elenco delle differenti icone che possono essere visualizzate nella prima colonna (MSDN):

image

Da questa finestra possiamo poi seguire diverse strade come (MSDN):

 

Vi ricordo il che il CodeLens è disponibile solo per la versione di Ultimate di Visual Studio e a seconda dell’infrastruttura di cui disponiamo, possiamo o no avere determinate funzionalità.

Non vi resta che scaricare l’update, se non lo avete già fatto e vedere come vi semplifica la vita Smile

Keep Calm and Use Visual Studio! Hot smile

Usare uno script Powershell come Post Build Event

Fino a poco fa mi è capitato di lavorare su un applicativo WPF che in base ai propri requisiti aveva la necessità di memorizzare le risorse grafiche e i file dei testi localizzati in una cartella diversa da quella di installazione.

In fase di sviluppo e testing però, avere una situazione del genere significa che dopo aver compilato occorre andare nella cartella Bin\Debug e copiare i file interessati nella cartella di destinazione (nel mio caso, una subfolder creata appositamente in %LocalAppData%).

Per tale motivo ho deciso di automatizzare la procedura utilizzando gli eventi di Post Build presenti nelle proprietà del progetto in Visual Studio 2013.

Ma partiamo con ordine. La prima cosa che ho creato è un semplice script Powershell che esegue le copie dei file interessati:

   1: param($ProjectDir)
   2: $TargertDir = $env:LOCALAPPDATA + "\Totem"
   3: $OrigineRisorse = $ProjectDir + "\Resources"
   4: $OrigineTemi = $ProjectDir + "\Themes"
   5: $DestRisorse = $TargertDir + "\Resources"
   6: $DestTemi = $TargertDir + "\Themes"
   7: $OrigineLang = $ProjectDir + "\Languages"
   8: $DestLang = $TargertDir + "\Languages"
   9:  
  10: Write-Output "Esecuzione azioni Post Build"
  11:  
  12: Write-Output "Pulizia delle cartelle nella destinazione in corso"
  13:  
  14: Remove-Item -Path $DestRisorse -Recurse -Force | where { Test-Path -Path $DestRisorse }
  15: Remove-Item -Path $DestTemi -Recurse -Force | where { Test-Path -Path $DestTemi }
  16: Remove-Item -Path $DestLang -Recurse -Force | where { Test-Path -Path $DestLang }
  17:  
  18: Write-Output "Avvio copia cartelle custom"
  19:  
  20: Move-Item -Path $OrigineRisorse -Destination $DestRisorse -Force
  21: Write-Output ($OrigineRisorse + " copiato in " + $DestRisorse)
  22:  
  23: Move-Item -Path $OrigineTemi -Destination $DestTemi -Force
  24: Write-Output ($OrigineTemi + " copiato in " + $DestTemi)
  25:  
  26: Move-Item -Path $OrigineLang -Destination $DestLang -Force
  27: Write-Output ($OrigineLang + " copiato in " + $DestLang)

Da notare è la prima riga di codice, param($ProjectDir), che non fa altro che recuperare un parametro passato in input allo script, e come si evince dal nome del parametro, si tratta della cartella dove risiede il nostro progetto. Dove aver impostato un po’ di path, viene effettuata una pulizia delle cartelle di destinazione e poi la copia dei file aggiornati dalla cartella Bin alla cartella di destinazione. Una volta terminato lo script, l’ho salvato nella cartella dell’intera soluzione del progetto, e visto che mi trovavo, l’ho aggiunto alla soluzione stessa, in una cartella specifica in modo da avere anche lo script sotto TFS per il versionamento Smile.

image

Per richiamare questo script subito dopo aver compilato il progetto, possiamo utilizzare gli eventi di PostBuild. Li possiamo localizzare cliccando con il pulsante destro sul nome del progetto, poi “Proprietà”, e poi “Build Events”.

image

Da qui, selezioniamo il pulsante “Edit Post-build” e richiamiamo il nostro script Powershell con il seguente comando

image

Come notate, ho semplicemente richiamato l’eseguibile di Powershell e ho passato in input il file dello script e 1 argomento. In questo caso ho fatto uso delle macro (che potete trovare cliccando sul pulsante ‘Macros’), per recuperare le informazioni relative alla directory della soluzione e del progetto. E’ importante fare attenzione agli spazi nella costruzione di questi comandi, che potrebbero portare a comportamenti inaspettati e difficili da individuare. Sempre sulla pagina degli eventi ho lasciato selezionata l’esecuzione dello script solo quando la compilazione va a buon fine (On successful build).

Adesso ogni volta che compilate, in automatico le cartelle scelte saranno copiate all’interno della cartella di destinazione. Se volete verificare ogni passaggio eseguito dallo script, potete aggiungere un po’ di Write-Output allo script e osservare l’Output Window in Visual Studio.

 

Keep Calm and Use Visual Studio! Hot smile

Bing Code Search per C#

Avete mai cercato Bing dentro Bing? Beh di sicuro non succede quello che capita ad un famoso gruppo di ragazzi napolitani, conosciuti come i “The Jackal”, che vengono inghiottiti da Google e si perdono letteralmente nell’etere internettiano.

Ma se invece pensiamo ad un Bing dentro Visual Studio? Quali potrebbero essere i benefici? La risposta l’hanno trovata per noi in Microsoft Research dove hanno pensato bene di creare una estensione (al momento solo per VS2013) chiamata “Bing Code Search for C#”, scaricabile da qui:  http://visualstudiogallery.msdn.microsoft.com/a1166718-a2d9-4a48-a5fd-504ff4ad1b65

Tramite questa estensione possiamo incrementare la nostra produttività cercando direttamente nell’IDE, invece che attraverso l’uso di un browser esterno e di un motore di ricerca, porzioni di codice che ci servono per completare le nostre applicazioni. Il tutto integrato all’interno del nostro IDE con l’uso dell’intellisense. Tutto questo è stato reso possibile tramite un accordo tra Microsoft, StackOVerflow, DotNetPearls, e CSharp411, siti da cui i risultati vengono recuperati. Per ogni risultato viene verificata la compatibilità con la tipologia di progetto con cui stiamo lavorando attaverso un processo dietro le quinte che usa Roslyn il codice viene adattato per essere inserito nel nostro progetto.

L’utilizzo è semplicissimo. Dopo aver installato l’estensione, basta che nel nostro progetto apriamo il menù dell’intellisense (CTRL+Spazio) e selezioniamo la voce “How Do I

image

Da qui basta digitare le parole relative alla funzionalità da implementare e ci compaiono un insieme di risultati già pronti all’uso

image

Come vedete al momento la mia ricerca, “Connect to SQL Server”, ha prodotto 4 risultati ed il primo è stato recuperato dal noto sito Stack Overflow.

Al momento le ricerche possono essere effettuate solo in lingua inglese. Visto che è una estensione appena uscita, di sicuro non conterrà tutte le porzioni di codice che possono tornarci utili, ma, anche grazie ai numerosi feedback positivi, con il passare del tempo la codebase sarà sempre più ampia.

Se vi interessa tutta la storia dietro la nascita di questo progetto,http://blogs.technet.com/b/inside_microsoft_research/archive/2014/02/17/bing-code-search-makes-developers-more-productive.aspx

Se invece siete interessati ai “The Jackal” vi lascio qui il link al primo episodio di “lost in google”: http://youtu.be/Jul_dB_wZes

 

Keep Calm and Use Visual Studio! Hot smile

CodeLens: navigare nel proprio codice in modo semplice!

CodeLens è una nuova feature di Visual Studio 2013 che consente di migliorare il proprio lavoro attraverso l’integrazione nel nostro codice di una “LinkBar” associata ad ogni definizione di classe o di elementi interni ad una classe (proprietà e metodi).

Tale barra può contenere:

  • Riferimenti ai punti in cui la classe o il metodo è usato (con la possibilità di aprire un popup di anteprima)
  • Storico del codice, associato ai changeset creati su TFS, work items e review
  • Unit tests

Vediamo in dettaglio le singole feature.

Referenze

E’ possibile visualizzare sopra ogni metodo o proprietà il numero di occorrenze in cui lo/a stesso/a è stato usato/a, con la possibilità attraverso un popup di identificare i punti precisi nel codice dove le stesse si trovano. Da qui è anche possibile cliccare sulle voci  visualizzate (doppio click) e andare nel punto di utilizzo. E’ anche possibile richiamare tramite questo popup la funzionalità CodeMap (di cui parleremo in un prossimo articolo).

image

Storico del codice

E’ una feature che consente di visualizzare da chi sono state apportate le modifiche al codice accedendo all’intera history dei changeset

CodeLens - More changesets on server than locally

[fonte: http://msdn.microsoft.com/en-us/library/vstudio/dn269218(v=vs.120).aspx]

E’ anche possibile visualizzare I bug associati, I work items e le review. Da qui, inoltre, tramite l’uso di Lync, è possbile mettersi in contatto con gli sviluppatori.

CodeLens - Contact your team

[fonte: http://msdn.microsoft.com/en-us/library/vstudio/dn269218(v=vs.120).aspx]

Unit Test

E’ possibile attraverso CodeLens visualizzare i test ed eseguirli direttamente dal popup che appare:

CodeLens - Choose test status in code editor

[fonte: http://msdn.microsoft.com/en-us/library/vstudio/dn269218(v=vs.120).aspx]

E’ inoltre possibile verificare il motivo per cui un test non è andato a buon fine:

CodeLens - See unit test result

[fonte: http://msdn.microsoft.com/en-us/library/vstudio/dn269218(v=vs.120).aspx]

 

CodeLens è attualmente supportato solo per la versione di Visual Studio Ultimate 2013 e richiede per alcune funzionalità come l’integrazione dei work items la presenza di TFS 2013. Per le funzionalià di comunicazione richiede invece Lync 2013, Lync Basic 2013 o Lync 2010.

In sostanza, CodeLens == Produttività!

 

Enjoy it! Smile

Spike Solutions in Team Foundation Server 2013

Spesso nello sviluppo di un software è necessario effettuare l’upgrade di componenti o framework presenti nella propria soluzione, fase che è poi seguita da compilazione e testing dell’applicativo per identificare eventuali problemi di natura tecnica o funzionale. Naturalmente queste operazioni vengono eseguite sulla macchina locale, prima di condividerle sulla main con gli altri sviluppatori.

image

[fonte: http://www.extremeprogramming.org/rules/spike.html]

Poniamo ad esempio, che vogliamo aggiornare la versione di Entity Framework nel nostro progetto, ma vogliamo essere sicuri di non andare incontro a qualche breaking change. Se l’aggiornamento ha esiti positivi, possiamo promuovere il codice alla nostra linea principale. Nell’eventualità che queste modifiche non vadano a buon fine, in genere il codice viene eliminato.

Questa operazione viene definita come Spike, termine coniato in Extreme Programming.

Lo spike in genere si usa nei seguenti casi:

  • Codice per testare nuovi framework o tecnologie;
  • Codice per isolare e testare bugs che si sono verificati in un framework o una libreria;
  • Codice one-time shot, come nei casi di importazione massiva di dati da effettuare un’unica volta;

Poiché l’intero processo si basa sul testare o ritestare il proprio applicativo,gli spike sposano benissimo la metodologia Test Driven Development, perché in questo modo, dopo aver aggiornato il proprio progetto o è possibile creare un pò di unit test per le user story, oppure rieseguire l’insieme di unit test già presenti per verificare eventuali problematiche.

In Team Foundation Server non esiste alcuna funzionalità che prende il nome di spike, anche se però esiste qualcosa che si avvicina al concetto di base: la Shelveset.

La Shelveset è un’area che può essere utilizzata per diversi motivi:

  • Interruzione momentanea del lavoro;
  • Condivisione del proprio work in progress con un altro membro del team;
  • Code review;
  • Build e automazione prima del check-in;
  • Backup.

Per creare una Shelveset in Team Foundation Server basta selezionare la voce Shelve all’interno della sezione Pending Changes nel Team Explorer. E’ sufficiente dare un nome ed un eventuale commento.

image

Una importante scelta che occorre fare in questa fase è selezionare o no la voce “Preserve Pending Changes Locally”. Tramite questa opzione possiamo scegliere se lasciare le modifiche nel nostro workspace (selezionata) oppure rimuoverle se ad esempio dobbiamo lavorare sugli stessi file a cui abbiamo apportato delle modifiche.

Se abbiamo necessità di condividere queste modifiche con un altro utente, possiamo utilizzare nel menù Actions della stessa sezione del Team Explorer la voce “Find Shelveset”. Da qui possiamo filtrare tramite il nome utente e cercare la Shelveset di nostro interesse.

image

Poiché in TFS 2013 è stato aggiunto il supporto a Git, pare opportuna la domanda su come gestire le spike con questo DVCS. In sostanza, se usiamo Git come repository, purtroppo non abbiamo la voce Shelve, ma il meccanismo che possiamo usare per gli spike sono i branches. Quindi quello che facciamo nel momento in cui abbiamo il nostro spike, è creare un nuovo branch in fase di commit:

image

Dopo aver pubblicato il branch, abbiamo la possibilità di continuare a lavorare e di dare la possibilità anche ai nostri colleghi di poter lavorare direttamente dal branch.

Più un generale, l’uso dei branches può essere applicato anche se si usa il TFVC. Questo facilità sicuramente la possibilità di creare e condividere ai colleghi il proprio codice che si sta testando, per poi promuoverlo alla linea principale attraverso il meccanismo di merging (occhio come sempre ai permessi che hanno gli utenti sul branching e merging). In genere si può adottare una organizzazione delle cartelle di questo tipo:

  • MioProgetto
    • dev (folder)
      • feature1 (branch)
      • feature2 (branch)
      • feature3 (branch)
    • main (branch)
    • blackOps (folder)
      • EF6 (branch)
      • NHibernate (branch)
      • ELibLogging (branch)
    • releases (folder)
      • V1 (branch)
      • V1 HotFix (branch)
      • V1 SP1 (branch)

In questo caso ho usato come nome della cartella BlackOps, ma qualsiasi altro nome come Spike va benissimo.

 

Enjoy it! Smile

Usare la VM di Visual Studio su Azure

Tra le diverse novità introdotte in questo ultimo periodo su Windows Azure c’è la virtual machine di Visual Studio. Questa VM, ha al suo interno una versione di Visual Studio già installata. Purtroppo però questa feature è attaualmente disponibile solo per i possessori di una sottoscrizione MSDN di tipo Ultimate.

Una volta entrati nel proprio account su Windows Azure, occorre selezionare l’hub delle macchine virtuali e scegliere la creazione di una macchina virtuale presente in galleria. Da qui si può selezionare la sezione “Visual Studio”, come nella seguente figura.

E’ possibile scegliere diverse edizioni di Visual Studio (Professional, Premium e Ultimate), e una volta selezionata l’edizione si può procedere nella configurazione della virtual machine valorizzando campi come il nome, il size (ovvero la tipologia di istanza della VM come ad esempio small, large, etc), lo username per il login e una password.

I vari size per la VM da poter selezionare sono quelli visualizzati nella seguente figura:

Naturalmente, in base al size selezionato i costi mensili di utilizzo variano.

Dopo è possibile selezionare il cloud service associato alla VM, che ci darà la possibilità di dichiarare un DNS name per poter accedere alla nostra VM. E’ anche possibile specificare in questa schermata la locazione del server ospitante (è consigliato selezionare la località più vicina alla nostra posizione per ridurre i costi di banda), lo storage account e un availability set (se abbiamo necessità di bilanciamento)

Infine dobbiamo specificare gli eventuali endpoint che ci sono necessari per lavorare, come quello per la connessione remota in rdp, amministrazione remota tramite powershell, siti web hostati su IIS, FTP, etc etc

Finito il wizard, comincia la fase di provisioning della macchina virtuale. Questa operazione viene in genere completata in una 10 di minuti.

Una volta completato il processo di provisioning della macchina virtuale, è possibile clliccare sul pulsante “Connect” che ci lascia scaricare un file con estensione .rdp per la connessione remota. Tramite questo file, possiamo accedere direttamente alla nostra istanza di Visual Studio sul cloud e cominciare a lavorare.

Come noterete dalla seguente figura, il sistema operativo utilizzato per la macchina virtuale è Windows Server 2012. Abbiamo inoltre a disposizione diversi strumenti già installati per lo sviluppo (Sharepoint, Office, Windows Azure SDK, LightSwitch), ma anche SQL Server 2012 Developer Edition.

Un buon consiglio è quello di spegnere la macchina virtuale nel momento in cui non la usate, di modo da tenere bassi i costi. La possibilità di avere Visual Studio sul cloud (IMHO) apre una marea di scenari. Considerate ad esempio che andate in vacanza per qualche giorno e vi chiamano dall’ufficio per avere delle delucidazioni su una porzione di codice che avete scritto voi e che ha generato un bug in produzione… vi basta un tablet per accedere a VS sul cloud e aprire il codice. Oppure un altro scenario potrebbe essere la necessità di maggiore potenza e memoria in fase di integration test durante lo sviluppo.

Enjoy it!

Evento Lancio di Visual Studio

Martedì scorso sono stato invitato in Microsoft per l’evento di lancio di Visual Studio 2013. Tante le novità e gli argomenti nuovi mostrati da approfondire. L’evento si è svolto in streaming con circa 2000 persone connesse per conoscere (IMHO) il miglior IDE di sviluppo di sempre. L’agenda è stata la seguente:

  • Keynote: lo sviluppo software in un mondo di device e servizi
    Marco Agnoli, Marketing Manager DPE
    Gabriele Castellani – Technical Evangelist Manager
  • Sviluppare applicazioni Web e Cloud con Visual Studio 2013 e Windows Azure
    Eva Gjeci – Technical Evangelist
    Pietro Brambati – Technical Evangelist
  • Sviluppare Modern Windows App
    Pietro Brambati – Technical Evangelist
  • Le novità dell’ALM con Visual Studio 2013 e Team Foundation Server 2013
    Giancarlo Sudano – Visual Studio e ALM Technical Solution Professional

Di sicuro tra i vari annunci delle novità quelle che mi hanno interessato di più sono quelle legate all’ALM quali Release Management e Application Insight. Avremo sicuramente modo di parlarne su GLV (come Matteo ha già fatto qui).

Vi lascio con queste immagini e come chicca una mini-intervista con Giancarlo Sudano sul Visual Studio Online.

 

WP_20131119_010WP_20131119_003

WP_20131119_013WP_20131119_016WP_20131119_017WP_20131119_020WP_20131119_021WP_20131119_023

 

[Devo ammettere che da giornalista autodidatta ho molta strada da fare… però in fondo se fossi un giornalista di sicuro non scriverei codice fino alle 3 di notte… (ripensandoci… ehm… no credo che cambierei lavoro da giornalista a programmatore e lo farei comunque Sorriso)]

Novità di Windows Azure per Visual Studio

La release del Windows Azure SDK 2.2 porta con sé molte novità, alcune legate in maniera particolare all’integrazione con Visual Studio. Vediamo in dettaglio quali sono.

1. Visual Studio 2013 Support

Questo è il primo SDK rilasciato dal team di Azure che ha il pieno supporto a Visual Studio 2013 RTM. Questo SDK può anche lavorare in parallelo con altri SDK installati, visto che supportano diverse release di VS come nella seguente tabella:

 

2. Integrated Windows Azure Sign-In support within Visual Studio

E’ stata integrata la possibilità di gestire direttamente dal Visual Studio i servizi su Azure, evitando in questo modo la (noiosa) gestione dei certificati. E’ possibile accedere alla propria sottoscrizione direttamente dal Server Explorer e gestire completamente servizi e accountSleep:

clip_image002clip_image008

3. Remote Debugging Cloud Services with Visual Studio

Da oggi è possibile abilitare il debug remoto per i servizi cloud su Windows Azure. Per usarlo occorre selezionare come Build Configuration la voce Debug nelle Common Setting nella finestra di pubblicazione del servizio e abilitare poi il debug remoto per tutti i ruoli nella finestra delle impostazioni avanzate.

image

Basta poi andare in debug come se stessimo testando qualcosa sulla nostra macchina collegandosi al servizio direttamente dal Server Explorer facendo click con il pulsante destro sul servizio cloud e selezionando “Attach Debugger”.

A breve sarà disponibile anche il Remote Debugging per i WebSites Sorriso.

 

4. Firewall Management support within Visual Studio for SQL Databases

Di base,  i database SQL su Azure sono protetti da firewall. A partire da questo SDK è possibile configurare direttamente dalla finestra del Server Explorer le regole del firewall (“Add Firewall Rule” nelle proprietà del menù contestuale) impostando un ip su cui abilitare la connessione e permettere il collegamento.

clip_image001

5. Visual Studio 2013 RTM VM Images for MSDN Subscribers

Per chi ha la sottoscrizione MSDN, ha a disposizione anche le macchine virtuali su Windows Azure per Visual Studio (wh-whaaaaat!). Inutile dire gli scenari che si aprono. Vi rimando ad un post di Scott Hanselman su come usare queste VM direttamente in desktop remoto direttamente da un Surface2: http://www.hanselman.com/blog/UsingASurface2RTARMToGetActualWorkDoneRemoteDesktopVisualStudioAzure.aspx

image

 

6. Windows Azure Management Libraries for .NET

Il concetto di base è automazione. Attraverso queste librerie è possibile automatizzare task come la creazioni di macchine virtuali utilizzando linguaggi .Net come C#. Queste librerie integrano in se le chiamate ai servizi REST per eseguire i task. Ecco una lista di features presenti in questa release:

image

7. Updated Windows Azure PowerShell Cmdlets and ScriptCenter

Nuovo aggiornamento anche per le CmdLets di Powershell con una grande news: lo Script Center. Questo non è altro che un repository di script già pronti da riutilizzare per i propri task Sorriso.

 

Come avete potuto assaggiare in questo post, sono tante le news che sono presenti in questa release dell’SDK. Come sempre migliore integrazione, facilità d’uso, e meno grattacapi A bocca aperta.

 

Enjoy it!

Modificare la foto del profilo in Visual Studio

I passi per modificare la foto del proprio Visual Studio Profile sono pochi e semplici.

Da Visual Studio andate sul vostro nome in alto a destra, si apre il popup, cliccate su “Account Settings”

image

Da qui si apre il popup in Visual Studio collegato al proprio profilo. Selezionate “Visual Studio Profile”

image

Cliccate su “Visual Studio Profile”, si apre il browser con il vostro profilo online di Visual Studio, cliccate su “Edit Information” e poi “Edit Image”. That’s it!

 

 

Enjoy it!

What’s new in VS 2013–Enhanced Scrollbar

Visual Studio 2013 introduce finalmente una scrollbar intelligente. Come capita per molte feature, anche questa è stata importata in VS a partire dai Productivity Power Tools. Vediamo nel dettaglio quali sono le sue caratteristiche.

Come si può vedere dalla figura sottostante l’usuale barra si arricchisce di colori che associano alle righe del codice determinate situazioni (quadratini colorati o annotation). Ecco l’elenco dei colori e il loro significato:

  • rosso: errore nel codice;
  • porpora: presenza di un breakpoint;
  • grigio scuro: segnalibro;
  • arancione: posizione degli elementi trovati con una ricerca;
  • verde: variabile definita e mai creata.

Tutte queste informazioni sono disposte sotto forma di quadratini nel lato destro della scrollbar (o al centro a seconda del tipo o della presenza di più di un quadratino sulla stessa riga) e inoltre vi è anche una linea che indica la posizione del caret (il cursore per intenderci Sorriso).

2013-09-19 23_04_51-Clipboard

Queste informazioni non vanno confuse con la lunga linea verde che è visualizzata nella figura precedente e che corrisponde alla Track Changes (introdotta in VS 2010). Questa rappresenta eventuali discrepanze tra il file che stiamo visualizzando e quello salvato sul disco. Infatti non appena effettuiamo una modifica al codice notiamo come questa barra assuma il colore giallo nei punti della modifica

 

image

Queste informazioni sono visualizzabili anche nel lato sinistro della pagina aperta:

image

E’ anche possibile abilitare la funzionalità di “map mode” che consente di trasformare la scrollbar in una barra che contiene in miniatura il codice della tab corrente. Questa barra mostra come per la precedente visualizzazione i quadratini per le varie situazioni come illustrato nella seguente figura:

image

Come si evince dalla figura, viene mostrato un tooltip di preview per capire dove spostarsi all’interno del codice senza dover lasciare la riga che si sta editando.

Per gestire la scrollbar o per abilitare la visualizzazione della map mode possiamo cliccare sul pulsante destro sulla scrollbar (anche in map mode) e cliccare poi su “Scrollbar Option”. Dalla finestra che compare (figura sottostante) possiamo sia scegliere quali quadratini (annotation nella figura) poter visualizzare, che scegliere la tipologia di visualizzazione da mostrare (bar mode o map mode). E’ possibile inoltre abilitare o disabilitare il tooltip di anteprima (“Show Preview Tooltip”) e impostare la dimensione della barra in map mode (Off, Narrow, Medium, Wide). Da notare che se impostata ad “Off”, non viene visualizzato il codice in miniatura, ma continuano a comparire le annotation e il tooltip di anteprima.

image

Tutto questo aggiunge a Visual Studio usabilità e produttività!

 

Enjoy it!