Skip to content

draptik/know-your-ide-visual-studio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Know your IDE - Visual Studio

Warum? Man verbringt 8h am Tag in der IDE! Es lohnt sich, ein paar Kniffe drauf zu haben.

Das A und O: Keyboard Shortcuts

Sowenig wie moeglich mit der Maus machen!

Kennt ihr das:

Kollege klickt auf "Datei", das Kontextmenue geht auf, dann wird auf "Speichern" geklickt...

Oder:

Text mit der Maus markieren, Rechtsklick, Kontextmenue geht auf, klicken auf "Kopieren", danach mit der Maus woanders hin klicken, wieder Rechtsklick, Kontextmenue "Einfuegen"...(das kann sogar ein Guttenberg besser)

Mir tut das innerlich weh.

Visual Studio: Basic Keyboard Shortcuts

  • Alt+Arrow Up/Down: Springt zur vorherigen/naechsten Methode
  • Ctrl+K Ctrl+C: markierten Text auskommentieren
  • Ctrl+K Ctrl+U: markierten Text einkommentieren
  • Ctrl+K Ctrl+S: "Surround": markierten Text mit zB try/catch "umrahmen"
  • Alt+SelectWithMouse oder Alt+Shift+Arrow: rectangle selection (aka column selection)
  • Ctrl+M Ctrl+O: Alles zuklappen ("Collapse to definition")
  • Ctrl+M Ctrl+M: Toggle Outlining Expansion

Visual Studio: Code Snippets/Templates

  • ctor
  • prop
  • propg
  • if
  • try
  • ...

Resharper: Power Keyboard Shortcuts

Der wichtigste Keyboard Shortcut ueberhaupt bei R#:

  • Alt+Enter: Kontextabhaengige Verbesserungen

R# Plugin: Presentation Assistant

Nicht nur nuetzlich fuer eine Demo, bei der es um Keyboard Shortcuts geht ;-) Hiermit erfaehrt man auch, wie das Kommando hinter dem Shortcut eigentlich heisst.

Konstruktor anlegen

  • Alt+Insert: Ctor erstellen

Navigation

  • Ctrl+T: Goto everything
  • Alt+ArrowDown/ArrowUp: Next member/previous member
  • Ctrl+[: Containing declaration
  • Ctrl+,: Recent files
  • Ctrl+Shift+,: Recent edits

Aufraeumen und Coding Conventions

  • Ctrl+E Ctrl+C: Code aufrauemen

Regeln sind zu finden unter:

Resharper -> Options -> Code Editing ...

Mehr dazu spaeter (EditorConfig)...

Refactoring: Ctrl+R ... (oder Ctrl+Shift+R)

  • Ctrl+R Ctrl+R: Rename
  • Ctrl+R Ctrl+M: Extract Method
  • Ctrl+R Ctrl+V: Extract Variable
  • Ctrl+R Ctrl+I: Inline variable
  • Ctrl+R Ctrl+O: Move
  • Ctrl+Shift+R: Oeffnet Submenue Refactor This:
    • Pull member up
    • Extract class
    • Extract interface
    • ...

Im Solution Explorer: Neue Klassen/Interfaces etc anlegen

  • Alt+Insert: Oeffnet Kontextmenue mit sinnvollen (!) Vorschlaegen

Unit Testing: Ctrl+U ...

  • Ctrl+U Ctrl+R: Unit Test ausfuehren
  • Ctrl+U Ctrl+D: Unit Test debuggen
  • Ctrl+U Ctrl+L: Alle Unit Test ausfuehren
  • ...

Eigene Templates anlegen

Resharper -> Tools -> Template Explorer: New Template

private $RETURN_TYPE$ $METHODNAME$($PARAMS$)
{
    $END$
}

Einstellungen ("Options"): Projekteinstellungen

  • persoenliche Einstellungen
  • Projekteinstellungen (kann mit in Git einchecken)
  • Systemeinstellungen
  • einfach mal schauen, was man anpassen kann

Auswahl duplizieren

  • Ctrl+D: Duplicate selection

Eigene Keyboard Shortcuts anlegen

Sollte man sparsam mit umgehen!

Folgende Shortcuts finde ich pers. nuetzlich:

  • Ctrl+W: Expand selection (Resharper.Resharper_ExtendSelection)

Bevor man eigene Keyboard Shortcuts anlegt, sollte man seine Einstellungen exportieren, damit man wieder zurueckrudern kann:

Tools -> Import and Export Settings -> Export selected environment settings -> Next.

Alles in der Baumansicht deaktivieren, dann nur bei Options -> Environment -> Keyboard Haeckchen setzen. Danach wieder auf Next und Datei speichern.

Git

  • Ich finde die Standardintegration in VS eher "mau". Ich nutze lediglich die Icons im Solution Explorer als schnellen Indicator fuer mich, ob sich an einer Datei/einem Ordner was geaendert hat.
  • VS2015: GitExtensions
  • VS2017: GitExtensions funktionieren noch nicht. Hier verwende ich einen Mix aus GitExtensions/TortoiseGit im Windows File Explorer und Kommandozeile.

NCrunch

Frage: Wer verwendet Unit Tests?

NCrunch ist ein automatischer Test Runner fuer VS.

Kurze Demo...

NCrunch ist schneller als dotCover!

Productivity Tools

  • Shrink empty lines
  • Solution error visualizer (erzeugt die Unterringelung im Solution Explorer)
  • "Squiggles" im Solution Explorer (Konfigurieren unter Tools -> Productivity Power Tools)

squiggles in solution explorer

Allg.: Wenn man keinen R# hat, findet man hier viele nuetzliche Features

FiraCode

Find ich ganz nett... https://github.com/tonsky/FiraCode

EditorConfig: Style Conventions

  • vor VS2017: via plugin
  • ab VS2017: default
    • ueberschreibt Tools -> Options -> Text Editor -> C# -> Code Style -> General.
  • v.a. dann interessant, wenn im Team verschiedene Editoren/IDEs im Einsatz sind. Wenn nur VS eingesetzt wird, finde ich die Konfiguration/Integration mit R# besser.
  • Ueberschneidungen mit
    • VS Settings
    • R# Settings
    • git Einstellung (zB LineBreaks)
    • SonarQube
    • ...

EditorConfig ist ein "kleinster gemeinsamer Nenner"

Mal in das Option Menue reinschaun

  • was kann man konfigurieren?
  • wenn man beim Pair/Mob-Programming ein cooles Feature findet: Nachfragen!

Alternativen zu Visual Studio?

  • JetBrains Rider
  • VS Code

Naechste Session?

Wollen wir sowas 1/Woche oder 1/Monat oefter machen?

(soll keine Konkurrenzveranstaltung zum MH-Freitag sein)

30-60min (waehrend der Mittagspause)

Ideen:

  • TDD-Katas
  • mehr zu xUnit und Mocking Frameworks
  • Xamarin Studio
  • Java Battle: Eclipse vs IntelliJ
  • ...

VS: Optionale Themen

Ordnerstruktur aendern

  • Aufbau von csproj Dateien
  • Funktion von AssemblyInfo.cs
  • Solution folder
  • Anpassen von sln Datei
  • R# verwenden, wo moeglich!
  • Verbesserungsvorschlaege?

Deployment/Build

  • Web.Config Transformation
  • App.Config Transformation
  • MSBuild (oder mal was Neues: CAKE/FAKE)

About

Know your IDE - Visual Studio

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages