~~NOCACHE~~
~~REVEAL theme=simple&size=1024x800~~
====== ReSharper ======
{{zajecia:znd_2020_1:resharper_logo_300x300.png?200|}} \\
The most intelligent extension for Visual Studio\\
===== =====
* Strona produktu: \\ http://www.jetbrains.com/resharper/
* ReSharper, ReSharper++ \\ wtyczki do VS dla programistów .Net i C++
* ReSharper Ultimate
* [[http://www.jetbrains.com/resharper/documentation/index.jsp|Resharper Documentation]]
* [[http://www.jetbrains.com/resharper/download/|Download ReSharper]] \\ obecnie wersja 2020.1.3 (19 May 2020)
* [[http://www.jetbrains.com/resharper/buy/| Licensing & Pricing]]
* 30 dniowy darmowy trial
* darmowe wersje edukacyjne oraz dla projektów open source
===== Najważniejsze funkcje =====
* Analiza kodu w poszukiwaniu błędów w czasie rzeczywistym (ponad 2.2k reguł)
* sugestie naprawy i wykrywanie złych praktyk
* Quick Fix
* automatyczne czyszczenie kodu
* Usprawnienia nawigacji pomiędzy plikami, deklaracjami, zmiennymi
* Zaawansowany refactoring
* Generowanie kodu, szablony, możliwość definiowania własnych
* Operacje zależne od kontekstu
===== =====
* Inteligentniejszy InteliSense
* Wsparcie dla wielu języków i technologii C#, VB.NET, JavaScript, TypeScript, CSS, HTML, XML, XAML
* Ułatwienia dla testowania jednostkowego
* Inspekcje obiektów a nawet dostęp do zewnętrznych źródeł i dekompilacja plików
* Analiza i wizualizacja zależności w projekcie
* [[https://www.jetbrains.com/resharper/compare/resharper-vs-visual-studio/|ReSharper 2020.1 vs Visual Studio 2019]]
===== Jakie korzyści? =====
Oszczędność czasu implementacji -> mniejsze koszty projektu
{{zajecia:znd_2014_1:benefits_costs.png?800|}}
===== ReSharper w VS =====
* Zmieniona kolorystyka składni i wyróżnień kodu
* Menu kontekstowe (prawy klawisz myszy)
* Menu główne z wszystkimi funkcjami
* Nowe okna **Resharper -> Windows**
* Bogate możliwości konfiguracji: \\ **Resharper -> Options**
* Skróty klawiszowe - różne schematy
* Podmieniony InteliSense (//smart code completion//)
* Rozszerzenia do ReSharpera
* {{https://www.jetbrains.com/resharper/documentation/comparisonMatrix_R10_vs2015.html|ReSharper 10 vs. Visual Studio 2015}}
===== Rzut okiem na menu =====
* wszystkie operacje dostępne w menu **ReSharper**
{{zajecia:znd_2020_1:resharper_menu.png?300|}}
''Cover'', ''Profile'' - dostępne po zainstalowaniu ''dotCover'' i ''dotTrace''
===== Nowe okna w VS =====
**Resharper -> Windows**
{{zajecia:znd_2020_1:resharper_windows.png?450|}}
===== Inspekcja kodu =====
{{zajecia:znd_2020_1:code_analysis_sample.png?800}}
===== Alt + Enter =====
| ''Alt + Enter'' \\ szybka naprawa \\ // Quick Fix// \\ menu kontekstowe, \\ dostępne akcje zależą od \\ pozycji kursora w kodzie | {{zajecia:znd_2020_1:actions_list_2.png?400}} |
| jeżeli brakuje akcji \\ to zacznij pisać jej nazwę | {{ zajecia:znd_2020_1:navigate_to_action.png?400 }} |
===== Skróty klawiszowe =====
* ReSharper nadpisuje domyślne skróty klawiszowe, lecz robi to uprzejmie, przy pierwszym użyciu prosi o wybór domyślnej akcji
* Warto wybrać ustawienia proponowane domyślnie
{{http://blog.excastle.com/images/resharper/ReSharperShortcutConflict.png?400}}
===== =====
{{zajecia:znd_2020_1:resharper_keyboard_scheme.png?600}}
{{https://www.jetbrains.com/resharper/docs/ReSharper_DefaultKeymap_IDEAscheme.pdf|ReSharper Default Keymap: ReSharper 2.x / IntelliJ IDEA scheme}} \\
{{https://www.jetbrains.com/resharper/docs/ReSharper_DefaultKeymap_VSscheme.pdf|ReSharper Default Keymap: Visual Studio scheme}} \\
[[http://blog.excastle.com/2007/02/04/full-list-of-keystrokes-changed-by-resharper-251/|Lista podmienionych skrótów]] Joe White, Resharper 2.5.1
===== Refactoring =====
| ''Ctrl + Shift + R'' \\ kontekstowy refactoring | {{:zajecia:znd_2020_1:refactor_menu.png?300|}} |
* Przenoszenie elementów między klasami, plikami
* Zmiany nazw zmiennych, metod, plików
* Ekstrakcja metod, pól, własności, interfejsów
* Deklarowanie brakujących zmiennych, metod, klas
* Przekształcanie wyrażeń, ujednolicanie stylu, ...
===== Generowanie kodu =====
| ''Alt + Insert'' \\ generowanie brakujących \\ elementów klas | {{zajecia:znd_2020_1:code_generation_menu.png?130|}} |
| Szablony kodów, \\ Ctrl + J \\ np.: ''prop + Tab'' | {{zajecia:znd_2020_1:templates_asrt_before.png?200|}} |
* Automatyczne domykanie nawiasów, uzupełnianie składni, otaczanie fragmentów kodu
===== Nawigacja i wyszukiwanie =====
| ''Ctrl + N'' | znajdź wszystko \\ klasę, zmienną, plik, \\ akronimy ABC, meta-znaki ''*'', ''+'' |
| ''Alt + F7'' | znajdź wystąpienia |
* filtrowanie/grupowanie/zapis wyników
{{zajecia:znd_2014_1:find_usages.png?500|}}
===== =====
| ''Alt + '' //strzałka w górę/dół// | przechodzenie między metodami |
| ''Ctrl + Shift + G'' \\ nawiguj do ... | {{zajecia:znd_2020_1:navigate_from_here.png?400}} |
| ''Ctrl + click'' \\ idź do deklaracji | {{zajecia:znd_2020_1:go_to_declaration_ctrl.png?400}} |
===== Podmieniony IntelliSense ====
{{zajecia:znd_2020_1:first_steps_completion.png?800}}
* podpowiedzi w czasie pisania \\ ''Ctrl + Space'' \\ ''Ctrl + Shift + Enter'' - automatyczne dopełnianie kodu
===== =====
* ''Ctrl + Shift + Space'' - //smart completion//, \\ bardziej inteligentne podpowiedzi bazujące na spodziewanym typie wyrażenia
* ''Ctrl + Alt + Space'' - uzupełnienie ze wszystkich przestrzeni nazw, \\ brakujące przestrzenie zostaną automatycznie dodane
* podpowiedzi drugiego stopnia \\ (przy powtórnym wciśnięciu)
===== Wiele innych =====
* Bogate możliwości konfiguracji
* Szablony kodu
* Badanie architektury, grafy zależności
* Usprawnienia budowania i debugowania aplikacji
* Testy jednostkowe, środowisko uruchomieniowe, raportowanie wyników
* Wsparcie dla XAML (uzupełnianie składni, nawigacji, itd.)
* Rozszerzenia do rozszerzenia
* [[https://www.jetbrains.com/resharper/features/|Przegląd funkcji ReSharper]]
===== Więcej informacji =====
* Strona produktu: http://www.jetbrains.com/resharper/
* [[http://www.jetbrains.com/resharper/documentation/index.jsp|Resharper Documentation]]
* [[http://blog.excastle.com/2007/01/31/blog-event-the-31-days-of-resharper/| The 31 Days of ReSharper]] by Joe White
* [[resharper_skroty|Najwazniejsze skróty]]
* [[resharper_analiza|Analiza kodu w ReSharper]]