dream-team: roslyn & visual studio extensions

25
Dream-Team: Roslyn & Visual Studio Extensions Robin Sedlaczek | CTO Fairmas GmbH | .NET User Group Berlin RobinSedlaczek RobinSedlaczek.wordpress.com [email protected]

Upload: robin-sedlaczek

Post on 26-Jan-2017

256 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Dream-Team: Roslyn & Visual Studio Extensions

Dream-Team:Roslyn & Visual Studio Extensions Robin Sedlaczek | CTO Fairmas GmbH | .NET User Group Berlin

RobinSedlaczek

[email protected]

Page 2: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected]

CTO der Fairmas GmbH in Berlin Community Leader DNUG Berlin Blogger / .NET Code Geek Sprecher MSDN Moderator Freier Autor (Entwickler.de, Heise, DotNetPro, Informatik aktuell) Open Source (SharpGL, Roslyn, FxCopAnalyzers)

Robin Sedlaczek

RobinSedlaczek

[email protected]

Page 3: Dream-Team: Roslyn & Visual Studio Extensions

Click to edit Master subtitle style

RobinSedlaczek

[email protected]

Real World Example | Semantic Versioning

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

Page 4: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] VERSIONIERUNG

v1v2v3v4

Page 5: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected]

Page 6: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] VON API-ÄNDERUNGEN

öffentliche APIs in separater Datei API-Änderungen durch Compiler prüfen lassen API-Änderung nicht in Definition Kompilierfehler Code-Fix hilft

Page 7: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] VON API-ÄNDERUNGEN

Nutzen Änderungen und Erweiterungen von APIs werden durch Compiler und Tooling kontrolliert Dokumentation von API-Änderungen out-of-the-box Prozesssicherheit, da Prozess automatisch ist API-Liste kann im Review verwendet werden Inkompatible API-Änderungen können sofort erkannt werden Versionsvergleiche von Code-Dateien nicht mehr nötig

Visual Studio Extension Roslyn.Diagnostics.Analyzers Analyzer und Code-Fix via NuGet verfügbar:

https://www.nuget.org/packages/Microsoft.Net.RoslynDiagnostics/ (Microsoft.Net.RoslynDiagnostics) Quellcode ist Open Source auf GitHub: https://github.com/dotnet/roslyn-analyzers

Page 8: Dream-Team: Roslyn & Visual Studio Extensions

Click to edit Master subtitle style

RobinSedlaczek

[email protected]

02 | Visual Studio Extensibility

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

Page 9: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected]

Page 10: Dream-Team: Roslyn & Visual Studio Extensions

Click to edit Master subtitle style

RobinSedlaczek

[email protected]

Real World Example | Critical Code

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

Page 11: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] CODE

Verwendung von kritischen Code visuell hervorheben

kritischen Code markieren z.B. mit Marker-Interface

oder Attributen

Page 12: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] CODE

Nutzen Kritischer Code und seine Anwendung wird sichtbar Entwickler wird sensibilisiert im Umgang mit kritischen Code,

Fehler und falscher Umgang können so reduziert werden In Code-Reviews kann gezielt kritischer Code unter die Lupe genommen werden, ohne diesen lange zu

suchen

Visual Studio Extension WaveDev.SensitiveCodeMarker von Robin Sedlaczek Quellcode ist Open Source auf GitHub:

https://github.com/robinsedlaczek/WaveDev.SensitiveCodeMarker Demoprojekt auf GitHub: https://github.com/robinsedlaczek/WaveDev.RoomsReservationSystemDemo

Page 13: Dream-Team: Roslyn & Visual Studio Extensions

Click to edit Master subtitle style

RobinSedlaczek

[email protected]

Real World Example | Alive

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

Page 14: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected]

Funktionsausführung direkt im Code-Editor Eingabe von Funktionsparametern via Popup Ergebnis und lokale Zustände werden direkt angezeigt direkt Anpassung lokaler Parameter möglich

ALIVE

Page 15: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected]

Nutzen Code-Ausführung ohne Anwendungsstart und Debugger Laufzeitverhalten von Code kann im Code-Editor direkt durchgespielt und analysiert werden Kontextwechsel zwischen Kodieren und Programmausführung fällt weg Ohne Kontextwechsel kann der Entwickler konzentrierter am Code arbeiten Ursache und Wirkung rücken dichter zusammen Direktes Feedback: Auswirkungen des Codes sind direkt am Entstehungsort sichtbar – im Editor Steigerung der Effizienz Reduktion von Entwicklungszeiten

Visual Studio Extension ALIVE von Code Connect (http://blog.comealive.io/Three-Months-of-Alive/) CodeConnect gehört nun zu Microsoft (http://blog.comealive.io/Code-Connect-Joins-Microsoft/) Extension ist momentan leider nicht über die Visual Studio Gallery verfügbar!

Page 16: Dream-Team: Roslyn & Visual Studio Extensions

Click to edit Master subtitle style

RobinSedlaczek

[email protected]

Real World Example | Application Scripting

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

Page 17: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] SCRIPTING

eigene Anwendung Script-fähig machen C# als Script-Sprache verwenden Roslyn bietet dafür die C# Scripting API

Fallbeispiel ModelR Kollaboratives 3D Modelling Tool Client-Server-Anwendung (basierend auf SignalR) Integriertes Scripting mit der C# Scripting API Script-Editor mit Syntax Highlighting Ausgabe von Kompilierfehlern Live Script Execution beim Tippen

Page 18: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] SCRIPTING

Script erlaubt direkten Zugriff auf Anwendungsobjekte

es können aber auch eigene Objekte erzeugt werden

Page 19: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] SCRIPTING

Nutzen für Benutzer Flexibilität – Anwendung kann in sich erweitert werden, ohne Neukompilierung durch den Benutzer Erweiterbarkeit – Anwendung kann von allen Benutzer beliebig erweitert werden Effektivität – komplexe wiederkehrende Prozesse können vom Benutzer automatisiert werden Anpassbarkeit – ein Nutzer kann sich die Anwendung nach seinen Vorstellungen/Vorgaben anpassen

Nutzen für Entwickler Beliebige APIs können dem Scripting zur Verfügung gestellt werden APIs sind dann zur Anwendungslaufzeit verfügbar und können dort ausprobiert werden Kontextwechsel zwischen Kodieren und Programmausführung fällt weg Code kann dort geschrieben werden, wo er seine Auswirkung hat Direktes Feedback der Auswirkungen sichtbar Steigerung der Effizienz Reduktion von Entwicklungskosten

Page 20: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] SCRIPTING

Fallbeispiel ModelR WaveDev.ModelR von Robin Sedlaczek Quellcode ist Open Source auf GitHub: https://github.com/robinsedlaczek/ModelR Clonen, Kompilieren, Ausführen: WaveDev.ModelR.Server zuerst starten, danach WaveDev.ModelR 4 vordefinierte ModelR-Benutzer: Robin (PW: robin), Sarah (PW: sarah), Jan (PW: jan), Sebastian (PW:

sebastian) Script-Kontext über globale Eigenschaft „ModelR“ bereitgestellt Über den Script-Kontext kann auf die Anwendungsobjekte zugegriffen werden (Users, SceneObjects) Neue Objekte werden aus Script ausgelesen und automatisch in die Szene übernommen

Page 21: Dream-Team: Roslyn & Visual Studio Extensions

Click to edit Master subtitle style

RobinSedlaczek

[email protected]

Real World Example | Force Feedback Programming

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

Page 22: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] FEEDBACK PROGRAMMING

Force Feedback Programming soll helfen, sauberen (Clean) Code zu schreiben Sauberkeit muss zuerst sichtbar gemacht werden Anwendung von Metriken (z.B. Anzahl Zeilen von Methoden) Ergebnisse werden direkt im Code visualisiert Entwickler erhält damit direktes Feedback zur Code-Qualität

Page 23: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] FEEDBACK PROGRAMMING

Wer nicht hören will, muss fühlen! Es wird anstrengend, wenn man versucht, unsauberen Code noch zu erweitern…

Page 24: Dream-Team: Roslyn & Visual Studio Extensions

RobinSedlaczek

[email protected] FEEDBACK PROGRAMMING

Nutzen Unterstützung bei dem Vorhaben, Clean Code zu schreiben Direktes Feedback zur Code-Qualität – genau dort, wo der Code entsteht (in-time, in-place) Entwickler werden gezwungen darüber nachzudenken, was sauberer Code ist Erschwertes Tippen zwingt den Entwickler, mehr sauberen Code zu schreiben Trainingswerkzeug für Einsteiger, Auszubildende und Junior-Entwickler Sauberer Code erhöht die Wartbarkeit und Erweiterbarkeit Steigerung der Entwicklereffizienz Reduktion von Entwicklungskosten

Visual Studio Extension Force Feedback Programming von Ralf Westphal und Robin Sedlaczek Quellcode ist Open Source auf GitHub: https://github.com/robinsedlaczek/ForceFeedbackProgramming Extension via Visual Studio Gallery verfügbar:

https://visualstudiogallery.msdn.microsoft.com/d909888c-fdf0-492c-bfd9-6596e56530a8

Page 25: Dream-Team: Roslyn & Visual Studio Extensions

Click to edit Master subtitle style

RobinSedlaczek

[email protected]

Dream-Team: Roslyn & Visual Studio Extensions„Nun seid Ihr dran!“

RobinSedlaczek.wordpress.comRobinSedlaczek

[email protected]