Resharper: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Zur Navigation springen Zur Suche springen
(→‎Konfiguration: Hinweis auf Code Issue Filter)
Markierung: 2017-Quelltext-Bearbeitung
(41 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Stub}}
{{UEA|Dietsch|Fehlende Sektionen müssen noch ausgefüllt werden.}}
{{UEA|Dietsch|Fehlende Sektionen müssen noch ausgefüllt werden.}}
== Was ist Resharper? ==  
== Was ist Resharper? ==  
{{BA|Dietsch|Hier einfach kurz sowas in Richtung a) hilft beim Einhalten von Formatierungs- und Benennungsregeln ([[Coding Conventions]]) und gibt Hilfestellungen für bessere Ausnutzung der Programmiersprache und b) hilft beim Refactoring von Code}}
[[Resharper|ReSharper]] ist eine von  von [http://www.jetbrains.com/ JetBrains] entwickelte Erweiterung für Microsoft [[Visual Studio]] für die Sprachen {{CSharp}} oder Visual Basic .NET.  
Der ReSharper ist eine von  von JetBrains entwickelte Erweiterung für Microsoft Visual Studio für die Sprachen C# oder Visual Basic .NET. Durch Installation wird der ReSharper in die Entwicklungsumgebung integriert, sodass dort zusätzliche Features zuf Verfügung stehen.
 
Er sorgt dafür dass Coding Conventions durchgesetzt werden. Diese sind frei konfigurierbar, Verletzungen können als Hinweis, Warnung oder Fehler angezeigt werden. Diese können in einer Benutzerdatei definiert werden. Die Benutzerdatei wird für das SoPra weiter unten bereitgestellt. Fehler und Hinweise können mit dem ReSharper bequem durchnavigiert und automatisiert beseitigt werden.
Die wichtigsten Features von [[Resharper]] sind:
Der ReSharper bietet ausserdem weitreichende Tools um die Qualität des Programkodes zu analysieren. Ebenso markiert er schon im Quelltext on-the-fly Fehler oder verdächtige Abschnitte, wie zum Beispiel ungenutzte Felder oder unerreichbare Stellen. Für sehr viele Arten von Fehlern, Warnungen oder Unschönheiten bietet er ausserdem automatische Korrekturmöglichkeiten an, so dass lästige Arbeiten, wie zum Beispiel das Hinzufügen von Using-Direktiven, die sonst von Hand gemacht werden müssen durch einen Klick automatisch vorgenommen werden.
* Die Einhaltung von [[Coding Conventions]] werden automatisch und Client-seitig überprüft. [[Coding Conventions]] sind in [[Resharper]] frei konfigurierbar, Verletzungen können als Hinweis, Warnung oder Fehler angezeigt werden. Im Softwarepraktikum stellen wir eine Konfigurationsdatei bereit (zur Installation siehe Abschnitt [[#Konfiguration|Konfiguration]], die einheitliche [[Coding Conventions]] für alle Gruppen definiert.  
Weiterhin bietet er Features für das Refacturing, mit denen man zum Beispiel Methoden extrahieren oder in der Vererbungshierarchie verschieben kann. Es können auch ganze Code-Bausteine oder Fragmente erzeugt werden. Ebenso wird das IntelliSense und die Codevervollständigung um viele Funktionen erweitert.
* Verschiedene Werkzeuge zur statischen Analyse des Programcodes. Dafür markiert [[Resharper]] schon im Quelltext on-the-fly Fehler oder potentielle Fehlerquellen, wie z.B. ungenutzte Felder oder unerreichbare Pfade. Für sehr viele Arten von Fehlern, Warnungen oder Unschönheiten bietet er außerdem automatische Korrekturmöglichkeiten an, so dass lästige Arbeiten, wie zum Beispiel das Hinzufügen von Using-Direktiven, automatisch vorgenommen werden können.
* Verschiedene Arten von Refactoring, wie z.B. Methoden extrahieren oder Methoden in der Vererbungshierarchie verschieben. Es können auch ganze Code-Bausteine oder Fragmente erzeugt werden.  
* Zusätzlich erweitert [[Resharper]] bereits vorhandene Werkzeuge von [[Visual Studio]], wie z.B. IntelliSense und die Codevervollständigung, um viele Funktionen.


== Setup ==  
== Setup ==  
Zeile 12: Zeile 13:
Um ReSharper auf Ihrem Computer zu installieren gehen Sie wie folgt vor:
Um ReSharper auf Ihrem Computer zu installieren gehen Sie wie folgt vor:
# Sie müssen [[Visual Studio]] bereits installiert und einmal gestartet haben.
# Sie müssen [[Visual Studio]] bereits installiert und einmal gestartet haben.
# Laden Sie die [http://www.jetbrains.com/resharper/download/index.html Resharper] 30-Tage Demo für Visual Studio herunter (Version 6.x.x).
# Laden Sie die [http://www.jetbrains.com/resharper/download/index.html Resharper] 30-Tage Demo für Visual Studio herunter.
# Folgen Sie den Installationsanweisungen des Programs.
# Folgen Sie den Installationsanweisungen des Programs.
# Starten Sie Visual Studio. Beim Start wird nach einem Benutzernamen und einem Lizenzschlüssel gefragt, den Sie zu Beginn des Praktikums (nach der Gruppeneinteilung) per Mail erhalten haben. Tragen Sie diese Daten hier ein.
# Starten Sie Visual Studio. Beim Start wird nach einem Benutzernamen und einem Lizenzschlüssel gefragt. Sie können eine individuelle Lizenz mit einer E-Mail Adresse der Universität (...@informatik.uni-freiburg.de) [https://www.jetbrains.com/student/ bei Jetbrains erhalten]. Tragen Sie diese Daten hier ein. Wenn Sie ReSharper im Pool verwenden, müssen Sie dort ebenfalls Ihre Lizenz eintragen. Die Einstellungen werden in Ihren Nutzerdaten gespeichert, sodass andere Benutzer des Poolrechners keinen Zugriff auf Ihre Lizenzdaten haben.
# Eventuell werden Sie auch nach einem Keyboard-Shortcut-Schema gefragt. Wir empfehlen Ihnen, das Visual Studio Preset zu behalten.  
# Eventuell werden Sie auch nach einem Keyboard-Shortcut-Schema gefragt. Wir empfehlen Ihnen, das Visual Studio Preset zu behalten.


=== Konfiguration ===  
=== Konfiguration ===  
[[Datei:Resharper Auto detect naming conventions..png|mini|Diese Einstellung muss deaktiviert werden. Sonst versucht Resharper anhand von existierendem Code Naming-Conventions  abzuleiten. |alternativtext=|494x494px]]
[[Datei:Visual Studio Code Issue Anzeige Einstellungen.png|mini|Bei C# sollten alle Haken gesetzt sein, damit die Resharper Fehler im Code Issue Log auch angezeigt werden.]]
Nach der Installation müssen Sie noch die für das Softwarepraktikum notwendigen Einstellungen installieren. Dazu gehen Sie wie folgt vor:  
Nach der Installation müssen Sie noch die für das Softwarepraktikum notwendigen Einstellungen installieren. Dazu gehen Sie wie folgt vor:  
# In Ihrem Repository finden Sie die Datei <tt>/trunk/doc/Softwarepraktikum.DotSettings</tt>. Falls Sie gerade keinen Zugriff auf Ihr Repository haben, können Sie diese Datei auch hier herunterladen: [[Datei:Sopra-Resharper.zip]]. In diesem Fall müssen Sie die das .zip noch an einen Ort Ihrer Wahl entpacken.
# Dateien auch hier herunterladen: [[Datei:Sopra-Resharper.zip]], [[Datei:Sopra-Resharper-final.zip]]. In diesem Fall müssen Sie die .zips noch an einen Ort Ihrer Wahl entpacken.
# Öffen Sie in [[Visual Studio]] das Menü <tt>ReSharper -> Manage Options...</tt>.
# Öffen Sie in [[Visual Studio]] das Menü <tt>ReSharper -> Manage Options...</tt>.
# Klicken Sie rechts auf das Item <tt>This Computer</tt> und wählen Sie <tt>Add Layer->Open Settings File...</tt>.
# Klicken Sie rechts auf das Item <tt>This Computer</tt> und wählen Sie <tt>Add Layer->Open Settings File...</tt>.
# Wählen Sie die Datei <tt>Softwarepraktikum.DotSettings</tt> aus. Diese sollte nun als Eintrag "Softwarepraktikum" vorhanden sein.
# Wählen Sie die Datei <tt>Softwarepraktikum.DotSettings</tt>, bzw. <tt>Softwarepraktikum-final.DotSettings</tt> aus. Diese sollte nun als Eintrag "Softwarepraktikum" vorhanden sein.
# '''Achtung:''' Zur finalen Abgabe werden einige Regeln, die zuvor nur als "Hinweis" gewertet wurden, nun als "Warning" gewertet. Die Einstellungen sind also etwas strenger. Stellen Sie sicher, dass Sie zur finalen Abgabe Ihres Programms die <tt>Softwarepraktikum-final.DotSettings</tt> zur Überprüfung der Einhaltung der ReSharper-Regeln verwenden. Sie können natürlich auch bereits während des Verlaufs des Softwarepraktikums diese Regeln verwenden, um den Arbeitsaufwand zur Beseitigung der neuen Warnings am Ende des Softwarepraktikums zu reduzieren.
# Stellen Sie sicher, dass unter "Options" -> "Code Editing" -> "C#" -> Naming Style" die Option "Use auto-detect rules" deaktiviert ist.
# Stellen Sie sicher, dass unter "Options" -> "Code Editing" -> "General Formatter Style" die Option "Auto-detect indent size and style" deaktiviert ist.
# Stellen Sie sicher, dass im Fenster "Code Issues" unter "Filter" -> "Issues to show" -> "C#" -> Alle Haken gesetzt sind (siehe Bild).


== Verwendung ==
==Verwendung==
{{BA|Dietsch|Einmal ein Eintrag mit Screenshots zu den "Resharper->Inspect->Code Issues in Solution" und wie man die interpretiert (also Hint, Suggestion, Warning, Error) (vlt. auch mit den Zeichen am Rand). Mittlerweile ist die Solution-Wide Analysis auch Teil der Einstellungen die wir ihnen direkt geben, musst dazu also nichts sagen}}
{{BA|Dietsch|Einmal ein Eintrag mit Screenshots zu den "Resharper->Inspect->Code Issues in Solution" und wie man die interpretiert (also Hint, Suggestion, Warning, Error) (vlt. auch mit den Zeichen am Rand). Mittlerweile ist die Solution-Wide Analysis auch Teil der Einstellungen die wir ihnen direkt geben, musst dazu also nichts sagen}}
{{BA|Dietsch|Einmal ein Eintrag zum Refactoring mit Resharper, so Richtung "auf symbol klicken, im Kontextmenü schauen" und dann mal sehen obs eine schöne Übersicht auf der Resharper Seite gibt oder kurz die (wichtigsten) Möglichkeiten beschreiben}}
{{BA|Dietsch|Einmal ein Eintrag zum Refactoring mit Resharper, so Richtung "auf symbol klicken, im Kontextmenü schauen" und dann mal sehen obs eine schöne Übersicht auf der Resharper Seite gibt oder kurz die (wichtigsten) Möglichkeiten beschreiben}}
{{BA|Dietsch|Und einmal einen Eintrag zum Kontextmenü "Inspect", da gibts 5 Einträge abhängig vom Symbol, die mal kurz beschreiben.}}
{{BA|Dietsch|Und einmal einen Eintrag zum Kontextmenü "Inspect", da gibts 5 Einträge abhängig vom Symbol, die mal kurz beschreiben.}}


== Nützliche Informationen ==  
===Hints, Suggestions, Warnings und Errors in Solution===
* [http://www.jetbrains.com/resharper/webhelp/Introduction__Index.html Online Hilfe]
{{RefImg|FensterReSharper.png|500px|1|Anzeige der Nachrichten am horizontalen Scrollbalken (grüner Pfeil) und Kontextmenüsymbol für Optionen zu einer Nachricht (lila Pfeil).}}
* [http://www.jetbrains.com/resharper/webhelp/Reference__Keyboard_Shortcuts.html Standard Keyboard Shortcuts]
 
 
[[Resharper]] analysiert die gesamte Solution und zeigt basierend auf sehr vielen Regeln diverse Nachrichten an, die verschiedene Schwachstellen des Codes aufzeigen sollen. Diese Nachrichten werden in 4 verschiedene Klassen eingeteilt, nämlich Hints, Suggestions, Warnings und Errors. Der Benutzer kann in [[Visual Studio]] die Nachrichten auf zwei Arten einsehen:
*Durch ein spezielles Fenster, dass durch das Menü <tt>ReSharper -> Inspect -> Code Issues in Solution</tt> erreicht werden kann.
*Durch kleine Striche direkt nebem dem horizontalen Scollbalken (siehe {{LinkImg|1|Abbildung 1}}) in einem der Code-Editor-Fenster. Die Farbe der Striche gibt dabei die Art der jeweiligen Nachricht an.
 
Wenn auf einen Eintrag in dem Fenster bzw. auf einen der Striche geklickt wird, springt der Cursor automatisch an die entsprechende Stelle im Code und auf der linken Seite erscheint ein kleines Kontextmenüsymbol (siehe {{LinkImg|1|Abbildung 1}}), das durch einen weiteren Klick Optionen zur Behandlung des aktuellen Problems anbietet. Dieses Symbol erscheint auch, wenn man den Cursor manuell auf eine Programmstelle setzt, für die [[Resharper]] Nachrichten hat.
 
<br clear="all">
===Kontextmenü "Refactoring"===
{{RefImg|ReSharperRefactor.png|500px|1|Kontextmenu "Refactoring".}}
Klickt man im Programmtext auf ein Symbol, wie etwas eine Variable mit der rechten Maustaste erscheint ein Kontextmenü, in dem sich unter anderem der Punkt Refactor befindet. Darunter finden sich mehrere Optionen:
*'''Refactor this...''' zeig alle Möglichkeiten an.
*'''Inline''' Wenn man eine Variable ausgewählt hat kann man sie inlinen
*'''Rename''' Variablen können hiermit Solutionweit umbenannt werden
*'''Extract Method''' Wenn man einen Programm-Block auswählt, kann man diesen in eine Methode extrahieren
*'''Push/Pull members Up/Dpwn''' Hiermit können Methoden in der Vererbungshierarchie verschoben werden
Es gibt weitere Möglichkeiten, insbesondere unter dem Punkt "Convert", kann man ausgewählten Quelltext in verschiedener Art verändern.
<br clear="all">
 
=== Kontextmenü "Inspect"===
{{RefImg|ReSharperInspect.png|500px|1|Kontextmenu "Inspect".}}
Ausserdem gibt es in dem Kontextmenu, das man erhält, wenn man auf ein Programmsymbol rechtklickt die Möglichkeit zur Analyse:
*'''Inspect This...''' Zeigt alle möglichen Optionen an
*'''Type Hierarchy''' Zeigt die Hierarchie innerhalb der Vererbung
*'''Outgoing Calls''' Zeigt, welche Methoden von hier aus aufgerufen werden
*'''Incoming Calls''' Zeigt, an welchen anderen Stellen diese Methode aufgerufen wird
*'''Value Origin''' Zeigt auf, wo der Wert einer Variablen zugewiesen wurde
*'''Value Destination''' Zeigt wo der Wert der Variablen verbraucht wird
 
<br clear="all">


==Nützliche Informationen==
*[http://www.jetbrains.com/resharper/webhelp/Introduction__Index.html Online Hilfe]
*[http://www.jetbrains.com/resharper/webhelp/Reference__Keyboard_Shortcuts.html Standard Keyboard Shortcuts]


[[Kategorie:Tools]]
[[Kategorie:Tools]]

Version vom 16. November 2020, 10:12 Uhr


Was ist Resharper?

ReSharper ist eine von von JetBrains entwickelte Erweiterung für Microsoft Visual Studio für die Sprachen C# oder Visual Basic .NET.

Die wichtigsten Features von Resharper sind:

  • Die Einhaltung von Coding Conventions werden automatisch und Client-seitig überprüft. Coding Conventions sind in Resharper frei konfigurierbar, Verletzungen können als Hinweis, Warnung oder Fehler angezeigt werden. Im Softwarepraktikum stellen wir eine Konfigurationsdatei bereit (zur Installation siehe Abschnitt Konfiguration, die einheitliche Coding Conventions für alle Gruppen definiert.
  • Verschiedene Werkzeuge zur statischen Analyse des Programcodes. Dafür markiert Resharper schon im Quelltext on-the-fly Fehler oder potentielle Fehlerquellen, wie z.B. ungenutzte Felder oder unerreichbare Pfade. Für sehr viele Arten von Fehlern, Warnungen oder Unschönheiten bietet er außerdem automatische Korrekturmöglichkeiten an, so dass lästige Arbeiten, wie zum Beispiel das Hinzufügen von Using-Direktiven, automatisch vorgenommen werden können.
  • Verschiedene Arten von Refactoring, wie z.B. Methoden extrahieren oder Methoden in der Vererbungshierarchie verschieben. Es können auch ganze Code-Bausteine oder Fragmente erzeugt werden.
  • Zusätzlich erweitert Resharper bereits vorhandene Werkzeuge von Visual Studio, wie z.B. IntelliSense und die Codevervollständigung, um viele Funktionen.

Setup

Installation

Um ReSharper auf Ihrem Computer zu installieren gehen Sie wie folgt vor:

  1. Sie müssen Visual Studio bereits installiert und einmal gestartet haben.
  2. Laden Sie die Resharper 30-Tage Demo für Visual Studio herunter.
  3. Folgen Sie den Installationsanweisungen des Programs.
  4. Starten Sie Visual Studio. Beim Start wird nach einem Benutzernamen und einem Lizenzschlüssel gefragt. Sie können eine individuelle Lizenz mit einer E-Mail Adresse der Universität (...@informatik.uni-freiburg.de) bei Jetbrains erhalten. Tragen Sie diese Daten hier ein. Wenn Sie ReSharper im Pool verwenden, müssen Sie dort ebenfalls Ihre Lizenz eintragen. Die Einstellungen werden in Ihren Nutzerdaten gespeichert, sodass andere Benutzer des Poolrechners keinen Zugriff auf Ihre Lizenzdaten haben.
  5. Eventuell werden Sie auch nach einem Keyboard-Shortcut-Schema gefragt. Wir empfehlen Ihnen, das Visual Studio Preset zu behalten.

Konfiguration

Diese Einstellung muss deaktiviert werden. Sonst versucht Resharper anhand von existierendem Code Naming-Conventions abzuleiten.
Bei C# sollten alle Haken gesetzt sein, damit die Resharper Fehler im Code Issue Log auch angezeigt werden.

Nach der Installation müssen Sie noch die für das Softwarepraktikum notwendigen Einstellungen installieren. Dazu gehen Sie wie folgt vor:

  1. Dateien auch hier herunterladen: Datei:Sopra-Resharper.zip, Datei:Sopra-Resharper-final.zip. In diesem Fall müssen Sie die .zips noch an einen Ort Ihrer Wahl entpacken.
  2. Öffen Sie in Visual Studio das Menü ReSharper -> Manage Options....
  3. Klicken Sie rechts auf das Item This Computer und wählen Sie Add Layer->Open Settings File....
  4. Wählen Sie die Datei Softwarepraktikum.DotSettings, bzw. Softwarepraktikum-final.DotSettings aus. Diese sollte nun als Eintrag "Softwarepraktikum" vorhanden sein.
  5. Achtung: Zur finalen Abgabe werden einige Regeln, die zuvor nur als "Hinweis" gewertet wurden, nun als "Warning" gewertet. Die Einstellungen sind also etwas strenger. Stellen Sie sicher, dass Sie zur finalen Abgabe Ihres Programms die Softwarepraktikum-final.DotSettings zur Überprüfung der Einhaltung der ReSharper-Regeln verwenden. Sie können natürlich auch bereits während des Verlaufs des Softwarepraktikums diese Regeln verwenden, um den Arbeitsaufwand zur Beseitigung der neuen Warnings am Ende des Softwarepraktikums zu reduzieren.
  6. Stellen Sie sicher, dass unter "Options" -> "Code Editing" -> "C#" -> Naming Style" die Option "Use auto-detect rules" deaktiviert ist.
  7. Stellen Sie sicher, dass unter "Options" -> "Code Editing" -> "General Formatter Style" die Option "Auto-detect indent size and style" deaktiviert ist.
  8. Stellen Sie sicher, dass im Fenster "Code Issues" unter "Filter" -> "Issues to show" -> "C#" -> Alle Haken gesetzt sind (siehe Bild).

Verwendung

Hints, Suggestions, Warnings und Errors in Solution

Abbildung 1: Anzeige der Nachrichten am horizontalen Scrollbalken (grüner Pfeil) und Kontextmenüsymbol für Optionen zu einer Nachricht (lila Pfeil).


Resharper analysiert die gesamte Solution und zeigt basierend auf sehr vielen Regeln diverse Nachrichten an, die verschiedene Schwachstellen des Codes aufzeigen sollen. Diese Nachrichten werden in 4 verschiedene Klassen eingeteilt, nämlich Hints, Suggestions, Warnings und Errors. Der Benutzer kann in Visual Studio die Nachrichten auf zwei Arten einsehen:

  • Durch ein spezielles Fenster, dass durch das Menü ReSharper -> Inspect -> Code Issues in Solution erreicht werden kann.
  • Durch kleine Striche direkt nebem dem horizontalen Scollbalken (siehe Abbildung 1) in einem der Code-Editor-Fenster. Die Farbe der Striche gibt dabei die Art der jeweiligen Nachricht an.

Wenn auf einen Eintrag in dem Fenster bzw. auf einen der Striche geklickt wird, springt der Cursor automatisch an die entsprechende Stelle im Code und auf der linken Seite erscheint ein kleines Kontextmenüsymbol (siehe Abbildung 1), das durch einen weiteren Klick Optionen zur Behandlung des aktuellen Problems anbietet. Dieses Symbol erscheint auch, wenn man den Cursor manuell auf eine Programmstelle setzt, für die Resharper Nachrichten hat.


Kontextmenü "Refactoring"

Abbildung 1: Kontextmenu "Refactoring".

Klickt man im Programmtext auf ein Symbol, wie etwas eine Variable mit der rechten Maustaste erscheint ein Kontextmenü, in dem sich unter anderem der Punkt Refactor befindet. Darunter finden sich mehrere Optionen:

  • Refactor this... zeig alle Möglichkeiten an.
  • Inline Wenn man eine Variable ausgewählt hat kann man sie inlinen
  • Rename Variablen können hiermit Solutionweit umbenannt werden
  • Extract Method Wenn man einen Programm-Block auswählt, kann man diesen in eine Methode extrahieren
  • Push/Pull members Up/Dpwn Hiermit können Methoden in der Vererbungshierarchie verschoben werden

Es gibt weitere Möglichkeiten, insbesondere unter dem Punkt "Convert", kann man ausgewählten Quelltext in verschiedener Art verändern.

Kontextmenü "Inspect"

Abbildung 1: Kontextmenu "Inspect".

Ausserdem gibt es in dem Kontextmenu, das man erhält, wenn man auf ein Programmsymbol rechtklickt die Möglichkeit zur Analyse:

  • Inspect This... Zeigt alle möglichen Optionen an
  • Type Hierarchy Zeigt die Hierarchie innerhalb der Vererbung
  • Outgoing Calls Zeigt, welche Methoden von hier aus aufgerufen werden
  • Incoming Calls Zeigt, an welchen anderen Stellen diese Methode aufgerufen wird
  • Value Origin Zeigt auf, wo der Wert einer Variablen zugewiesen wurde
  • Value Destination Zeigt wo der Wert der Variablen verbraucht wird


Nützliche Informationen