Korzystanie z obszaru roboczego
Warstwa Obszary robocze to punkt wyjścia do wykonywania analizy kodu i refaktoryzacji w ramach całych rozwiązań. W ramach tej warstwy interfejs API obszaru roboczego ułatwia organizowanie wszystkich informacji o projektach w rozwiązaniu w ramach pojedynczego modelu obiektów, oferując bezpośredni dostęp do modeli obiektów warstwy kompilatora, takich jak tekst źródłowy, drzewa składni, modele semantyczne i kompilacje bez konieczności analizowania plików, konfigurowania opcji lub zarządzania zależnościami między projektami.
Środowiska hostów, takie jak środowisko IDE, udostępniają obszar roboczy odpowiadający otwartemu rozwiązaniu. Można również użyć tego modelu poza środowiskiem IDE, po prostu ładując plik rozwiązania.
Obszar roboczy
Obszar roboczy to aktywna reprezentacja rozwiązania jako kolekcja projektów z kolekcją dokumentów. Obszar roboczy jest zazwyczaj powiązany ze środowiskiem hosta, które stale zmienia się jako typ użytkownika lub manipuluje właściwościami.
Zapewnia Workspace dostęp do bieżącego modelu rozwiązania. Gdy wystąpi zmiana w środowisku hosta, obszar roboczy uruchamia odpowiednie zdarzenia, a właściwość zostanie zaktualizowana Workspace.CurrentSolution . Na przykład gdy użytkownik wpisze w edytorze tekstów odpowiadający jednemu z dokumentów źródłowych, obszar roboczy używa zdarzenia, aby zasygnalizować, że ogólny model rozwiązania uległ zmianie i który dokument został zmodyfikowany. Następnie możesz zareagować na te zmiany, analizując nowy model pod kątem poprawności, wyróżniając obszary istotności lub wprowadzając sugestię zmiany kodu.
Można również tworzyć autonomiczne obszary robocze, które są odłączone od środowiska hosta lub używane w aplikacji, która nie ma środowiska hosta.
Rozwiązania, projekty i dokumenty
Mimo że obszar roboczy może się zmieniać za każdym razem, gdy naciśnięty jest klawisz, możesz pracować z modelem rozwiązania w izolacji.
Rozwiązanie to niezmienny model projektów i dokumentów. Oznacza to, że model może być udostępniany bez blokowania lub duplikowania. Po uzyskaniu wystąpienia rozwiązania z Workspace.CurrentSolution właściwości to wystąpienie nigdy się nie zmieni. Jednak podobnie jak w przypadku drzew składni i kompilacji, można modyfikować rozwiązania, tworząc nowe wystąpienia na podstawie istniejących rozwiązań i określonych zmian. Aby obszar roboczy odzwierciedlał zmiany, należy jawnie zastosować zmienione rozwiązanie z powrotem do obszaru roboczego.
Projekt jest częścią ogólnego niezmiennego modelu rozwiązania. Reprezentuje wszystkie dokumenty kodu źródłowego, opcje analizy i kompilacji oraz odwołania zarówno do zestawu, jak i projektu. Z poziomu projektu można uzyskać dostęp do odpowiedniej kompilacji bez konieczności określania zależności projektu lub analizowania dowolnych plików źródłowych.
Dokument jest również częścią ogólnego niezmiennego modelu rozwiązania. Dokument reprezentuje pojedynczy plik źródłowy, z którego można uzyskać dostęp do tekstu pliku, drzewa składni i modelu semantycznego.
Poniższy diagram przedstawia sposób, w jaki obszar roboczy odnosi się do środowiska hosta, narzędzi i sposobu programowania zmian.
Podsumowanie
Roslyn udostępnia zestaw interfejsów API kompilatora i interfejsów API obszarów roboczych, który udostępnia zaawansowane informacje o kodzie źródłowym i ma pełną wierność językom C# i Visual Basic. Zestaw SDK platformy kompilatora .NET znacznie obniża barierę wejścia w tworzenie narzędzi i aplikacji skoncentrowanych na kodzie. Tworzy wiele możliwości innowacji w takich obszarach, jak metaprogramowania, generowanie kodu i transformacja, interaktywne używanie języków C# i Visual Basic oraz osadzanie języków C# i Visual Basic w językach specyficznych dla domeny.