Kompilatory tworzą szczegółowy model kodu aplikacji, ponieważ weryfikują składnię i semantyka tego kodu. Używają tego modelu do tworzenia wykonywalnych danych wyjściowych z kodu źródłowego. Zestaw SDK .NET Compiler Platform zapewnia dostęp do tego modelu. Coraz częściej polegamy na zintegrowanych funkcjach środowiska projektowego (IDE), takich jak IntelliSense, refaktoryzacja, inteligentna zmiana nazwy, "Znajdź wszystkie odwołania" i "Przejdź do definicji", aby zwiększyć produktywność. Korzystamy z narzędzi do analizy kodu, aby poprawić jakość kodu i generatory kodu, aby ułatwić tworzenie aplikacji. Ponieważ te narzędzia stają się inteligentniejsze, potrzebują dostępu do coraz większej liczby modeli tworzonych tylko przez kompilatory podczas przetwarzania kodu aplikacji. Jest to podstawowa misja interfejsów API Roslyn: otwieranie nieprzezroczystych pól i umożliwienie narzędziom i użytkownikom końcowym udostępniania wielu kompilatorów informacji o naszym kodzie.
Zamiast nieprzezroczystego kodu źródłowego i translatorów kodu obiektowego, kompilatory stają się platformami za pośrednictwem roslyn: interfejsy API, których można używać do zadań związanych z kodem w narzędziach i aplikacjach.
Pojęcia dotyczące zestawu SDK .NET Compiler Platform
Zestaw SDK .NET Compiler Platform znacznie obniża barierę wejścia do tworzenia narzędzi i aplikacji ukierunkowanych na kod. Stwarza wiele możliwości innowacji w obszarach takich jak metaprogramowania, generowanie kodu i transformacja, interaktywne korzystanie z języków C# i Visual Basic oraz osadzanie języka C# i Visual Basic w językach specyficznych dla domeny.
Zestaw SDK .NET Compiler Platform umożliwia tworzenie analizatorów i poprawek kodu, które pozwalają znaleźć i poprawić błędy kodowania. Analizatory rozumieją składnię (strukturę kodu) i semantyka w celu wykrywania praktyk, które należy poprawić. Poprawki kodu zawierają co najmniej jedną sugerowaną poprawkę do rozwiązywania błędów kodowania znalezionych przez analizatory lub diagnostykę kompilatora. Zazwyczaj analizator i skojarzone poprawki kodu są pakowane razem w jednym projekcie.
Analizatory i poprawki kodu używają analizy statycznej do zrozumienia kodu. Nie uruchamiają kodu ani nie zapewniają innych korzyści z testowania. Mogą one jednak wskazywać rozwiązania, które często prowadzą do usterek, niewymierzonego kodu lub standardowego naruszenia wytycznych.
Oprócz analizatorów i poprawek kodu zestaw SDK .NET Compiler Platform umożliwia również tworzenie refaktoryzacji kodu.
Udostępnia również jeden zestaw interfejsów API, które umożliwiają analizowanie i zrozumienie kodu w języku C# lub Visual Basic bazie kodu. Ponieważ można użyć tej pojedynczej bazy kodu, można łatwiej pisać analizatory i poprawki kodu, korzystając z interfejsów API analizy składniowej i semantycznej udostępnianej przez zestaw SDK .NET Compiler Platform. Zwolnione z dużego zadania replikowania analizy wykonywanej przez kompilator można skoncentrować się na bardziej skoncentrowanym zadaniu znajdowania i naprawiania typowych błędów kodowania dla projektu lub biblioteki.
Mniejsza korzyść polega na tym, że analizatory i poprawki kodu są mniejsze i używają znacznie mniejszej ilości pamięci podczas ładowania w Visual Studio niż gdyby napisali własną bazę kodu, aby zrozumieć kod w projekcie. Korzystając z tych samych klas używanych przez kompilator i Visual Studio, możesz utworzyć własne narzędzia do analizy statycznej. Oznacza to, że twój zespół może używać analizatorów i poprawek kodu bez zauważalnego wpływu na wydajność środowiska IDE.
Istnieją trzy główne scenariusze pisania analizatorów i poprawek kodu:
Wiele zespołów ma standardy kodowania wymuszane za pośrednictwem przeglądów kodu z innymi członkami zespołu. Analizatory i poprawki kodu mogą zwiększyć wydajność tego procesu. Przeglądy kodu są wykonywane, gdy deweloper dzieli swoją pracę z innymi osobami w zespole. Deweloper zainwestował cały czas potrzebny do ukończenia nowej funkcji przed uzyskaniem komentarzy. Tygodnie mogą iść dalej, podczas gdy deweloper wzmacnia nawyki, które nie są zgodne z praktykami zespołu.
Analizatory działają jako deweloper pisze kod. Deweloper otrzymuje natychmiastową opinię, która zachęca do natychmiastowego przesyłania wskazówek. Deweloper tworzy nawyki dotyczące pisania zgodnego kodu zaraz po rozpoczęciu tworzenia prototypów. Gdy funkcja jest gotowa do przejrzenia przez ludzi, wszystkie standardowe wskazówki zostały wymuszone.
Teams może tworzyć analizatory i poprawki kodu, które szukają najbardziej typowych rozwiązań naruszających praktyki kodowania zespołowego. Można je zainstalować na maszynie każdego dewelopera, aby wymusić standardy.
Porada
Przed utworzeniem własnego analizatora zapoznaj się z wbudowanymi. Aby uzyskać więcej informacji, zobacz Reguły stylu kodu.
Zapewnianie wskazówek dotyczących pakietów bibliotek
Istnieje wiele bibliotek dostępnych dla deweloperów platformy .NET na NuGet.
Niektóre z nich pochodzą z firmy Microsoft, niektóre z firm innych firm, a inne od członków społeczności i wolontariuszy. Te biblioteki uzyskują więcej akceptacji i wyższe przeglądy, gdy deweloperzy mogą odnieść sukces z tymi bibliotekami.
Oprócz udostępniania dokumentacji można udostępniać analizatory i poprawki kodu, które umożliwiają znajdowanie i poprawianie typowych błędów użycia biblioteki. Te natychmiastowe poprawki pomogą deweloperom szybciej odnieść sukces.
Analizatory pakietów i poprawki kodu można pakować za pomocą biblioteki w NuGet. W tym scenariuszu każdy deweloper, który instaluje pakiet NuGet, zainstaluje również pakiet analizatora. Wszyscy deweloperzy korzystający z biblioteki natychmiast otrzymają wskazówki od zespołu w postaci natychmiastowej opinii na temat błędów i sugerowanych poprawek.
Zapewnianie ogólnych wskazówek
Społeczność deweloperów platformy .NET odkryła wzorce, które działają dobrze i których najlepiej unikać. Kilku członków społeczności stworzyło analizatory, które wymuszają te zalecane wzorce. Jak dowiemy się więcej, zawsze jest miejsce na nowe pomysły.
Te analizatory można przekazać do witryny Visual Studio Marketplace i pobrać przez deweloperów przy użyciu Visual Studio. Nowicjuszy z języka i platformy szybko uczą się akceptowanych praktyk i stają się produktywni wcześniej w swojej podróży na platformie .NET. W miarę ich stosowania społeczność przyjmuje te praktyki.
Następne kroki
Zestaw SDK .NET Compiler Platform zawiera najnowsze modele obiektów języka na potrzeby generowania, analizy i refaktoryzacji kodu. Ta sekcja zawiera omówienie koncepcyjne zestawu SDK .NET Compiler Platform. Więcej szczegółowych informacji można znaleźć w sekcjach przewodników Szybki start, przykładów i samouczków.
Więcej informacji na temat pojęć można znaleźć w zestawie SDK .NET Compiler Platform w następujących pięciu tematach:
Aby rozpocząć pracę, musisz zainstalować zestaw SDK .NET Compiler Platform:
Instrukcje dotyczące instalacji — Instalator programu Visual Studio
Istnieją dwa różne sposoby znajdowania zestawu SDK .NET Compiler Platform w Instalator programu Visual Studio:
Instalowanie przy użyciu widoku Instalator programu Visual Studio — obciążenia
Zestaw SDK .NET Compiler Platform nie jest automatycznie wybierany w ramach obciążenia programistycznego rozszerzenia Visual Studio. Musisz wybrać go jako składnik opcjonalny.
Otwórz węzeł programowania rozszerzenia Visual Studio w drzewie podsumowania.
Zaznacz pole wyboru dla zestawu SDK .NET Compiler Platform. Znajdziesz go ostatnio w obszarze składników opcjonalnych.
Opcjonalnie chcesz również , aby edytor DGML wyświetlał wykresy w wizualizatorze:
Otwórz węzeł Poszczególne składniki w drzewie podsumowania.
Zaznacz pole wyboru edytora DGML
Instalowanie przy użyciu karty Instalator programu Visual Studio — poszczególne składniki
Uruchamianie Instalator programu Visual Studio
Wybierz pozycję Modyfikuj
Wybieranie karty Poszczególne składniki
Zaznacz pole wyboru dla zestawu SDK .NET Compiler Platform. Znajduje się on u góry w sekcji Kompilatory, narzędzia kompilacji i środowiska uruchomieniowe .
Opcjonalnie chcesz również , aby edytor DGML wyświetlał wykresy w wizualizatorze:
Zaznacz pole wyboru edytora DGML. Znajdziesz go w sekcji Narzędzia kodu .
To omówienie zawiera podstawowe informacje potrzebne do efektywnej pracy z zestawem SDK kompilatora platformy .NET. Poznasz warstwy interfejsu API, główne typy i ogólny model obiektów.
Funkcja generatorów źródłowych została dodana na platformie .NET 5. Umożliwiają one wykonywanie interesujących czynności, takich jak generowanie dodatkowych plików źródłowych, które zostaną dodane do kompilacji.W tym filmie Kathleen rozmawia z JaredEm Parsonsem, aby dowiedzieć się, jakie generatory źródeł są w stanie.[01:15] — Co to są generatory źródeł?[05:24] — Pokaz: generator kodu w czasie rzeczywistym dla klas[10:54] — Pokaz: generowanie elementu INotifyPropertyChanged[13:16] — Jak dowiedzieć się więce