Nye features i Visual Studio 2015


Visual Studio 2015 er landet og der er mange nye features både til selve IDE’en og til C#, VB, F# og C++. Jeg vil fokusere på et par features, som gør mig mere produktiv.
Med .NET Compiler Platform, tidligere kaldet Project Roslyn, er det blevet meget nemmere at lave kodeanalyse til C# og VB. Tænk i funktionalitet a la Resharper/CodeRush, dog en del stærkere og mindre ressourcetungt. Ud fra kodeanalysen kan der også laves kode fixes eller refactoring.
Det kan være en simpel analyzer, der kontrollerer for manglende defensiv kode.
 
Denne kode fix kommer frem via de nye light bulbs og viser et preview af resultatet. Hvis der er flere mulige løsninger, vil de også vises.

Du kan lave dine egne analyzers og refactoringer til at overholde kodestandarder. Det kunne for eksempel være, at lokale variabler skulle have et underscore foran fx _myVariable. Du kan selv styre om overtrædelse medføre en warning eller en compiler error. MSDN Magazine artikel og .NET Compiler Platform dokumentationen er gode udgangspunkter, hvis du skal lave dine egne analyzers og refactoringer.

Hvis du ikke vil udvikle dem selv, er der allerede er en del open source-pakker til Visual Studio 2015. De kan enten installeres som Visual Studio 2015 extensions eller på projekt niveau som NuGet pakker.

Den mest omfangsrige .NET Compiler Platform Analyzer-pakke hedder Refactoring Essentials med ca. 200 forskellige analyzers, refactorings og fixes. Den har bl.a. en analyzer og et fix til at simplificere ternary if til en null coalese.

 
En anden god pakke med analyzers er CSharp Essentials, som kun fokuserer på C#, men de nye features i C# 6 bl.a. String Interpolation
 
Der er også Code Cracker, som indeholder simple analyzers, der fx kontrollerer, om koden indeholder empty catch blocks eller om et disposable objekt bliver disposed.
Til udvikling af Windows 10 apps (Universal Windows Platfrom) er der Platform Specific Analyzer pakken, der advarer og hjælper til at lave platform agnostisk kode.

 
Hvis du kender til andre gode analyzer pakker, så del dem ved at skrive en kommentar.

PerfTips

PerfTips viser, hvor lang tid et statement, en metode eller flere linjer kode tager at eksekvere. Eksekveringstiden vises fra et breakpoint til et andet breakpoint eller den eksekverede linje der steppes over under debugging.

CodeLense

CodeLens fandtes i Visual Studio 2013, men kun i Ultimate edition. Nu er CodeLens tilgængelig i Professional og Enterprise edition – dvs. alle andre end Community edition.
 
Med CodeLens kan du hurtigt se, om det seneste check-in/commit fik en unit test til at fejle på build serveren.
 
Eller hvem der sidst har ændret en metode samt tilhørende workitem.
CodeLens er fuldt understøttet til VB og C#, om du bruger Visual Studio Online, TFS og Git eller TFSC. For C++, JavaScript og SQL virker CodeLens funktionalitet kun på fil-niveau.

Custom Windows Layouts

Alt efter om min laptop er tilsluttet eksterne skærme eller ej, er opsætningen i Visual Studio forskellig. Fx vil jeg gerne have stacktrace og output vinduerne på venstre skærm, kode editoren i midten og browser til højre. I tidligere versioner af Visual Studio har jeg hver gang jeg skiftede fra en til flere skærme selv skulle tilpasse Visual Studio. Det kan jeg nu gøre meget nemmere med Visual Studio 2015.

Debug Lambda expressions

Enhver der har prøvet at debugge et LINQ eller Lambda udtryk er stødt ind i “Expression cannot contain lambda expressions”. Det har resulteret i en masse Debug.WriteLine eller Console.WriteLine for at gennemskue komplekse udryk. Med Visual Studio 2015 er det nu muligt at debug både LINQ og Lambdas.

Andet

Listen over nye features I Visual Studio 2015 er lang - for lang til at gennemgå her. Jeg vil dog gerne fremhæve de nye diagnostics and performance tools og en ny extension, der synkronisere dine Visual Studio extensions på tværs af installationer.
Skip to main content