Bir çalışma alanı ile çalışma

Çalışma Alanları katmanı, tüm çözümler üzerinde kod analizi ve yeniden düzenleme yapmak için başlangıç noktasıdır. Bu katmanda Çalışma Alanı API'si, bir çözümdeki projeler hakkındaki tüm bilgileri tek bir nesne modelinde düzenlemenize yardımcı olur ve dosyaları ayrıştırmaya, seçenekleri yapılandırmaya veya projeler arası bağımlılıkları yönetmeye gerek kalmadan kaynak metin, söz dizimi ağaçları, anlam modelleri ve derlemeler gibi derleyici katmanı nesne modellerine doğrudan erişim sağlar.

IDE gibi konak ortamları, açık çözüme karşılık gelen bir çalışma alanı sağlar. Yalnızca bir çözüm dosyası yükleyerek bu modeli IDE dışında kullanmak da mümkündür.

Çalışma alanı

Çalışma alanı, çözümünüzün proje koleksiyonu olarak etkin bir temsilidir ve her biri bir belge koleksiyonuna sahiptir. Çalışma alanı genellikle kullanıcı özellikleri yazarken veya işledikçe sürekli değişen bir konak ortamına bağlıdır.

çözümün Workspace geçerli modeline erişim sağlar. Konak ortamında bir değişiklik olduğunda, çalışma alanı ilgili olayları tetikler ve Workspace.CurrentSolution özellik güncelleştirilir. Örneğin, kullanıcı kaynak belgelerden birine karşılık gelen bir metin düzenleyicisine yazdığınızda, çalışma alanı çözümün genel modelinin değiştiğini ve hangi belgenin değiştirildiğini belirten bir olay kullanır. Daha sonra yeni modeli doğruluk açısından analiz ederek, önem alanlarını vurgulayarak veya kod değişikliği önerisi yaparak bu değişikliklere tepki vekleyebilirsiniz.

Konak ortamıyla bağlantısı kesilmiş veya konak ortamı olmayan bir uygulamada kullanılan tek başına çalışma alanları da oluşturabilirsiniz.

Çözümler, projeler ve belgeler

Bir tuşa her basıldığında çalışma alanı değişebilir ancak çözümün modeliyle yalıtılmış olarak çalışabilirsiniz.

Çözüm, projelerin ve belgelerin sabit bir modelidir. Bu, modelin kilitlenmeden veya çoğaltılmadan paylaşılabilmesi anlamına gelir. özelliğinden Workspace.CurrentSolution bir çözüm örneği aldıktan sonra bu örnek hiçbir zaman değişmez. Ancak söz dizimi ağaçlarında ve derlemelerde olduğu gibi, mevcut çözümlere ve belirli değişikliklere göre yeni örnekler oluşturarak çözümleri değiştirebilirsiniz. Çalışma alanının değişikliklerinizi yansıtmasını sağlamak için, değiştirilen çözümü çalışma alanına açıkça uygulamanız gerekir.

Proje, genel sabit çözüm modelinin bir parçasıdır. Tüm kaynak kodu belgelerini, ayrıştırma ve derleme seçeneklerini ve hem derleme hem de projeden projeye başvuruları temsil eder. Projeden, proje bağımlılıklarını belirlemeye veya kaynak dosyaları ayrıştırmaya gerek kalmadan ilgili derlemeye erişebilirsiniz.

Belge aynı zamanda genel sabit çözüm modelinin bir parçasıdır. Belge, dosyanın metnine, söz dizimi ağacına ve anlam modeline erişebileceğiniz tek bir kaynak dosyayı temsil eder.

Aşağıdaki diyagram, Çalışma Alanının konak ortamı, araçları ve düzenlemelerin nasıl yapıldığını gösteren bir gösterimdir.

the relationships between different elements of a workspace containing projects and source files

Özet

Roslyn, kaynak kodunuz hakkında zengin bilgiler sağlayan ve C# ve Visual Basic dilleriyle tam uygunluk sağlayan bir dizi derleyici API'si ve Çalışma Alanı API'si sunar. .NET Derleyici Platformu SDK'sı, kod odaklı araçlar ve uygulamalar oluşturma engelini önemli ölçüde düşürür. Meta programlama, kod oluşturma ve dönüştürme, C# ve Visual Basic dillerinin etkileşimli kullanımı ve C# ile Visual Basic'in etki alanına özgü dillere eklenmesi gibi alanlarda yenilikler için birçok fırsat oluşturur.