dream-team: roslyn & visual studio extensions

Post on 26-Jan-2017

256 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

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

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

Click to edit Master subtitle style

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

Real World Example | Semantic Versioning

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deSEMANTISCHE VERSIONIERUNG

v1v2v3v4

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deSEMVER.ORG

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deVERFOLGEN VON API-ÄNDERUNGEN

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

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deVERFOLGEN 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

Click to edit Master subtitle style

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

02 | Visual Studio Extensibility

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

Click to edit Master subtitle style

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

Real World Example | Critical Code

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deCRITICAL CODE

Verwendung von kritischen Code visuell hervorheben

kritischen Code markieren z.B. mit Marker-Interface

oder Attributen

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deCRITICAL 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

Click to edit Master subtitle style

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

Real World Example | Alive

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

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

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deALIVE

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!

Click to edit Master subtitle style

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

Real World Example | Application Scripting

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deAPPLICATION 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

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deAPPLICATION SCRIPTING

Script erlaubt direkten Zugriff auf Anwendungsobjekte

es können aber auch eigene Objekte erzeugt werden

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deAPPLICATION 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

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deAPPLICATION 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

Click to edit Master subtitle style

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

Real World Example | Force Feedback Programming

Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deFORCE 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

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deFORCE FEEDBACK PROGRAMMING

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

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.deFORCE 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

Click to edit Master subtitle style

RobinSedlaczek

RobinSedlaczek.wordpress.comRobinSedlaczek@live.de

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

RobinSedlaczek.wordpress.comRobinSedlaczek

RobinSedlaczek@live.de

top related