Wprowadzenie

W oczekiwaniu na premierę .NET 5 sprawdzimy jakie nowe funkcjonalności zostały wprowadzone do naszego środowiska programistycznego. Mają one na celu poprawę naszej produktywności oraz automatyzację niektórych czynności, które wykonywaliśmy krok po kroku. Poznamy również kilka skrótów klawiszowych oraz poprawimy wydajność naszego środowiska.

Lista opisanych funkcjonalności znajduje się poniżej. Jeżeli nie chcesz czytać całego wpisu możesz przechodzić do interesujących Cie sekcji klikając w poniższe odnośniki:

  1. Czyszczenie kodu
  2. Szybsze ładowanie projektu
  3. Wyszukiwanie w oknie 'Watch'
  4. Śledzenie aktywnych plików w Solution Explorer
  5. Automatyczne śledzenie aktywnych plików
  6. Rozszerzony schowek
  7. Kasowanie i sortowanie przestrzeni nazw
  8. Przechodzenie do kodu z debuggerem
  9. Kod wielokrotnego użytku
  10. Uruchamianie aplikacji webowej w wielu przeglądarkach
  11. Pionowe zaznaczanie kodu
  12. Zwijanie kodu

1. Czyszczenie kodu

W środowisku Visual Studio 2019 możemy ustawić preferowany styl pisanego kodu dla poszczególnych projektów przy wykorzystaniu pliku .editorconfig. W tym celu należy wygenerować plik dla danego projektu przechodząc przez Tools -> Options -> Text Editor -> możemy wskazać C# lub VS -> Code Style -> General -> i wykorzystać dostępny przycisk Generate .editorconfig file from settings. Plik ten możemy uzupełnić samodzielnie lub wykorzystać dostępny generator. W powyżym kroku wygenerowaliśmy plik dla danego projektu bazując na ustawieniach domyślnych.

Jeżeli jednak nie mamy potrzeby generowania ustawień per-projekt możemy dokonać zmian w powyższej zakładce a wprowadzone wymagania będą zaaplikowane do każdego projektu, który będzie otwarty w naszym środowisku.

Ustawienia te są o tyle ciekawe, że w przypadku C# możemy zaaplikować je automatycznie korzystając z funkcjonalności czyszczenia kodu, tj. Code Cleanup. Samo ‘czyszczenie kodu’ jest mechanizmem wywoływanym na żądanie, które pozwala (po odpowiedniej konfiguracji) wprowadzić wymagane przez nas zmiany po kliknięciu jednego przycisku. W ramach mojej konfiguracji powinno dojść do następujących zmian w kodzie:

  • usunięcie niepotrzebnych using’ów;
  • sortowanie alfabetyczne używanych using’ów;
  • usunięcie zadeklarowanych ale nie używanych zmiennych;
Sprawdźmy jak wygląda to w praktyce. Interesuje nas malutka ikonka dostępna po otwarciu edytora dla danego pliku: Visual Studio 2019: code cleanup

A tak wygląda porównanie kodu – po lewej stronie kod przed wywołaniem ‘czyszczenia kodu’ a po prawej efekt działania tego mechanizmu: Visual Studio 2019: rezultat czyszczenia kodu

2. Szybsze ładowanie projektu

Jeżeli chcemy zaoszczedzić kilka chwil na procesie ładowania projektu musimy odznaczyć właściwość: "Restore Solution Explorer project hierachy state on solution load". Wyłączenie tej właściwości spowoduje, że nasz projekt po otwarciu pozostanie zwinięty w eksploatorze solucji. Równoczenie możemy odznaczyć kolejną właściwość, tj. "Reopen documents on solution load" – tym razem zostanie uruchomiona czysta instancja Visual Studio. Mówiąc w skrócie: nie zostaną otwarte pliki, które mieliśmy otwarte przed poprzednim zamknięciem środowiska. To już oczywiście kwestia preferencji. Dostęp do powyższych właściwości jest możliwy po przejściu przez: Tools -> Options -> Project and Solutions: Visual Studio 2019: szybsze ładowanie projektu

3. Wyszukiwanie w oknie ‘Watch’

Okno ‘Watch’ jest znane każdemu z nas. Pozwala na zaawansowany sposób badania zmiennej czy interesującego nas wyrażenia. Najprostszy sposób dodania zmiennej do obserwacji to uruchomienie projektu, ustawienie tzw. punktu debuggowania, kliknięcie prawym przyciskiem myszy na daną zmienną i wybranie Add Watch. Możemy również te kroki wykonać manualnie i dodać interesujące nas wyrażenie do okna.

Nowością w Visual Studio 2019 jest możliwość wyszukiwania zmiennych w tym oknie, która pozwala nam szybko zidentyfikować interesujący nas parameter. Spójrzcie poniżej: Visual Studio 2019: wyszukiwanie w oknie Watch

4. Śledzenie aktywnych plików w Solution Explorer

Ta opcja jest niezwykle przydatna w trakcie pracy nad dużymi i złożonymi projektami. Czasami ciężko jest znaleźć aktywny plik nad którym pracujesz w Solution Explorerze. Trzeba przewinać całą zawartość, aby do niego dotrzeć.

W celu zaoszczędzenia czasu związanego z poszukiwaniem pliku w nowej wersji środowiska została wprowadzona specjalna opcja, tj. Sync with Active Document. Spójrzcie jak wygląda to w praktyce:

5. Automatyczne śledzenie aktywnych plików

Kiedy dowiedziałem się, że jest możliwość automatycznego śledzenia aktywnych plików w Visual Studio 2019 od razu wykorzystałem tę funkcjonalność. Nigdy nie była mi szczególnie potrzebna – wszystko zmieniło się wraz z pracą w środowisku Visual Studio Code, gdzie edytowane pliki *.html czy *.js od razu zostały zaznaczne w drzewie projektu.

W Visual Studio 2019 musimy dokonać włączenia opcji Track Active Item in Solution Explorer dostępnej po przejściu przez poniższe elementy: Tools -> Options -> Project and Solutions -> General: Visual Studio 2019: automatyczne śledzenie aktywnych plików

6. Rozszerzony schowek

Jest to dla mnie swojego rodzaju odkrycie w Visual Studio 2019 ponieważ zawsze myślałem, że schowek może posiadać w pamięci jedynie ostanią skopiowaną lub wyciętą wartość. W przypadku Cycle Clipboard Ring w pamięci możne znajdować się do 15 elementów.

Dostęp jest możliwy z poziomu menu nawigacji, tj. Edit -> Show Clipboard History lub przez skrót klawiszowy Crtl+Shift+V.

Uważam, że jest to rozwiązanie niezwykle przydatne (o którego istnieniu naprawdę nie widziałem). Wyobraźcie sobie sytuację w której musicie dokonać kopii kilku kluczowych linii kodu (znajdującego się w różnych miejscach) i umieścić w jakiejś innej klasie. Dotychczas dokonywałem kopiowania i wklejania poszczególnych linii – teraz można dokonać kopii interesujących nas fragmentów kodu a potem w prosty sposób (za jednym zamachem) dokonać modyfikacji w innej klasie. Spójrzcie jak to rozwiązanie wygląda w praktyce:

7. Kasowanie i sortowanie przestrzeni nazw

W trakcie pracy na nowym projektem warto trzymać się ustalonych standardów. Usunięcie nieużywanych przestrzeni nazw czy układanie ich we właściwej kolejności jest teraz niezwykle łatwe w przypadku Visual Studio. Jedną z takich wytycznych jest ustawianie dyrektyw systemowych na górze.

Zanim jednak przejdziemy do wspomnianej wytycznej dokonamy szybkiego sortowania oraz usunięcia nieużywanych dyrektyw. Założmy, że definicja przestrzeni nazw w naszym wypadku przedstawia się następująco: Visual Studio 2019: przestrzenie nazw W edytorze klikamy prawym przyciskiem myszy i wybieramy z menu kontekstowego: Remove and Sort Usings. Efek tej operacji przedstawia się następująco: Visual Studio 2019: sortowanie przestrzeni nazw

Dyrektywy systemowe powinny znajdować się na pierwszym miejscu. Jeżeli checie przestrzegać tego standardu kodowania warto wykorzystać opcję: Place ‘System’ directives first when sorting usings, która dostępna jest tutaj: Tools -> Options -> Text Editor -> C# -> Advanced: Visual Studio 2019: dyrektywy systemowe

Ponowne wywołanie sortowania przestrzeni nazw skutkuje poniższym efektem: Visual Studio 2019: sortowanie systemowych przestrzeni nazw

8. Przechodzenie do kodu z debuggerem

Bardzo efektywnym sposobem debuggowania jest bezpośrednie przejście do miejsca wskazanego przez kursor. Dzięki zastosowaniu takiego podejścia unikamy przechodzenia krok po kroku do miejsca, które nas tak naprawdę interesuje. Wybranie opcji Run to Cursor pozwoli nam na automatyczne uruchomienie debuggera i zatrzymanie w interesującej nas linii.

Spójrzmy jak wygląda to w praktyce: Visual Studio 2019: Run to Cursor

9. Kod wielokrotnego użytku

Visual Studio wspiera ciekawą funkcjonalność, która pozwala na umieszczenie fragmentów kodu w Toolboxie. Wystarczy wybrać fragment kodu i przeciągnać go do zakładki ogólne (General).

Funkcja ta jest niezwykle przydatna kiedy potrzebujemy kilku danych fragmentów kodu w innych miejscach. Zamiast przewijania dokumentu w celu poszukiwania interesującego nas fragmentu, kopiowania kodu z bieżącego pliku i wklejania go w docelowym miejscu możemy skorzystać z tego mechanizmu i daną zawartość mieć ciągle pod ręką.

Interesuje nas zakładka General. Fragmenty kodu zaznaczamy i przeciągamy w puste miejsce. Spójrzmy jak wygląda to w praktyce:

10. Uruchamianie aplikacji webowej w wielu przeglądarkach

W trakcie tworzenia aplikacji webowych i ich testowania zwykle posługujemy się swoją ulubioną przeglądarką w celu sprawdzenia poprawności działania naszej implementacji. Niestety, jako twórcy witryn intrnetownych powinniśmy sprawdzić jej działanie we wszystkich głównych przeglądarkach. Jako pracownik wielkiej korporacji mam często wymagania dotyczące wsparcia starszych produków w IE8 - w dzisiejszych czasach to jest prawdziwy koszmar.

Wracając do nowoczesnych aplikacji internetowych. Visual Stuio 2019 pozwala na jednoczesne uruchomienie aplikacji w wielu przeglądarkach. W tym celu musimy wykorzystać opcję konfiguracji Browse With. W oknie dialogowym zobaczymy listę dostępnych przeglądarek z których wskazujemy te, które nas interesują.

Otwarcie okna dialogowe możliwe jest z poziomu: Visual Studio 2019: przeglądarki aplikacji webowej A samo okno konfiguracji prezentuje się w poniższy sposób: Visual Studio 2019: przeglądarki aplikacji webowej

11. Pionowe zaznaczanie kodu

Ta funkcjonalność nie jest żadną nowością ale warto mieć świadomość o jej istnieniu. Jeżeli jesteście fanami skrótów klawiszowych, nie lubiecie używać myszki, pionowe zaznaczanie kodu może być niezwykle pomocne w Waszej pracy. Wystarczy ustawić kursor w odpowiednim miejscu a następnie zaznaczać kolejne linie trzymając wciśnięty alt oraz shift. Spójrzmy jak wygląda to w praktyce:

12. Zwijanie kodu

Również nie jest to nowa funkcjonalność ale niezwykle przydatna w pracy nad bardzo obszernymi klasami. Kiedy nasz kod zaczyna liczyć setki czy tysiące linii kodu a my stosujemy opisy funkcjonalności czy regiony będzie nam dużo łatwiej odnaleźć się w kodzie po powrocie następnego dnia. Kombinacja klawiszy Crtl + M + O pozwala na zwinięcie całego naszego kodu: Przeciwieństwem dla powyższego skrótu klawiszowego jest Crtl + M + L, który pozwala na rozwinięcie całego kodu.