Munkaterület kezelése
A Munkaterületek réteg a kiindulópont a kódelemzéshez és a teljes megoldások újrabontásához. Ezen a rétegen belül a Workspace API segít abban, hogy a megoldás projektjeivel kapcsolatos összes információt egyetlen objektummodellbe rendezhesse, így közvetlen hozzáférést biztosít a fordítóréteg objektummodelljeihez, például a forrásszöveghez, a szintaxisfákhoz, a szemantikai modellekhez és a fordításokhoz anélkül, hogy fájlokat kellene elemeznie, beállításokat konfigurálnia vagy projektközi függőségeket kezelnie.
A gazdagépkörnyezetek, például az IDE-k, biztosítják a nyitott megoldásnak megfelelő munkaterületet. Ezt a modellt az IDE-n kívül is használhatja, ha egyszerűen betölt egy megoldásfájlt.
Munkaterület
A munkaterület a megoldás aktív reprezentációja projektek gyűjteményeként, mindegyik dokumentumgyűjteménysel együtt. A munkaterületek általában egy gazdagépkörnyezethez vannak kötve, amely felhasználótípusként vagy tulajdonságok manipulálásaként folyamatosan változik.
Ez Workspace hozzáférést biztosít a megoldás aktuális modelljéhez. A gazdakörnyezet módosításakor a munkaterület a megfelelő eseményeket aktiválja, és a Workspace.CurrentSolution tulajdonság frissül. Ha például a felhasználó egy forrásdokumentumnak megfelelő szövegszerkesztőbe ír be, a munkaterület egy esemény használatával jelzi, hogy a megoldás általános modellje megváltozott, és melyik dokumentum módosult. Ezután reagálhat ezekre a változásokra az új modell helyességének elemzésével, a fontossági területek kiemelésével vagy egy kódmódosítási javaslattal.
Létrehozhat különálló munkaterületeket is, amelyek leválasztva vannak a gazdagépkörnyezetről, vagy olyan alkalmazásban használhatók, amelyek nem rendelkeznek gazdagépkörnyezettel.
Megoldások, projektek és dokumentumok
Bár a munkaterületek minden alkalommal megváltozhatnak, amikor lenyomnak egy kulcsot, a megoldás modelljével külön is dolgozhat.
A megoldás a projektek és dokumentumok nem módosítható modellje. Ez azt jelenti, hogy a modell zárolás vagy duplikáció nélkül is megosztható. Miután lekért egy megoldáspéldányt a tulajdonságból, az Workspace.CurrentSolution a példány soha nem fog megváltozni. A szintaxisfákhoz és fordításokhoz hasonlóan azonban úgy is módosíthatja a megoldásokat, hogy új példányokat hoz létre a meglévő megoldások és konkrét módosítások alapján. Ahhoz, hogy a munkaterület tükrözze a módosításokat, explicit módon vissza kell alkalmaznia a módosított megoldást a munkaterületre.
A projekt a teljes nem módosítható megoldásmodell része. Ez az összes forráskóddokumentumot, elemzési és fordítási lehetőséget, valamint a szerelvény- és projekt-projekthivatkozásokat egyaránt jelöli. Egy projektből anélkül érheti el a megfelelő fordítást, hogy meg kellene határoznia a projekt függőségeit, vagy elemeznie kellene a forrásfájlokat.
A dokumentumok a teljes nem módosítható megoldásmodell részét képezik. A dokumentum egyetlen forrásfájlt jelöl, amelyből elérheti a fájl szövegét, a szintaxisfát és a szemantikai modellt.
Az alábbi diagram azt mutatja be, hogyan kapcsolódik a munkaterület a gazdagépkörnyezethez, az eszközökhöz és a módosításokhoz.
Összegzés
A Roslyn számos fordító API-t és munkaterületi API-t tesz elérhetővé, amelyek részletes információkat nyújtanak a forráskódról, és teljes hűséggel rendelkezik a C# és a Visual Basic nyelvekkel. A .NET Fordítóplatform SDK jelentősen csökkenti a kódközpontú eszközök és alkalmazások létrehozásának akadályát. Számos lehetőséget teremt az innovációra olyan területeken, mint a metaprogramozás, a kódgenerálás és az átalakítás, a C# és a Visual Basic nyelvek interaktív használata, valamint a C# és a Visual Basic beágyazása tartományspecifikus nyelvekbe.