Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bağımlılık diyagramları neden kullanılır?
Kodun tasarımıyla çakışmadığından emin olmak için Visual Studio'da bağımlılık diyagramlarıyla kodunuzu doğrulayın. Bu size yardımcı olabilir:
Kodunuzdaki bağımlılıklar ile bağımlılık diyagramındaki bağımlılıklar arasındaki çakışmaları bulun.
Önerilen değişikliklerden etkilenecek bağımlılıkları bulun.
Örneğin, bağımlılık diyagramını düzenleyerek olası mimari değişikliklerini gösterebilir ve ardından etkilenen bağımlılıkları görmek için kodu doğrulayabilirsiniz.
Kodu yeniden düzenleme veya farklı bir tasarıma geçirme.
Kodu farklı bir mimariye taşıdığınızda çalışması gereken kodu veya bağımlılıkları bulun.
Gereksinimler
Visual Studio
.NET Core projesi için bağımlılık diyagramı oluşturmak için Visual Studio 2019 sürüm 16.2 veya sonraki bir sürümüne sahip olmanız gerekir.
Bağımlılık diyagramına sahip modelleme projesine sahip bir çözüm. Bu bağımlılık diyagramı, doğrulamak istediğiniz C# veya Visual Basic projelerindeki yapıtlara bağlanmalıdır. Bkz. Kodunuzdan bağımlılık diyagramları oluşturma.
Hangi Visual Studio sürümlerinin bu özelliği desteklediğini görmek için bkz. Mimari ve modelleme araçları için sürüm desteği.
Visual Studio'daki açık bağımlılık diyagramından veya komut isteminden kodu el ile doğrulayabilirsiniz. Ayrıca yerel derlemeleri veya Azure Pipelines derlemelerini çalıştırırken kodu otomatik olarak doğrulayabilirsiniz.
Önemli
Team Foundation Server 'ı (TFS) kullanarak katman doğrulaması çalıştırmak istiyorsanız, derleme sunucunuza aynı Visual Studio sürümünü de yüklemeniz gerekir.
Canlı bağımlılık doğrulaması
Bağımlılık doğrulaması gerçek zamanlı olarak gerçekleşir ve hatalar hemen Hata Listesi'nde gösterilir.
C# ve Visual Basic için canlı doğrulama desteklenir.
Canlı bağımlılık doğrulamasını kullanırken tam çözüm analizini etkinleştirmek için Hata Listesi'nde görüntülenen altın çubuktan seçenekler ayarlarını açın.
- Çözümünüzdeki tüm mimari sorunları görmek istemiyorsanız altın çubuğu kalıcı olarak kapatabilirsiniz.
- Tam çözüm analizini etkinleştirmezseniz analiz yalnızca düzenlenmekte olan dosyalar için yapılır.
Canlı doğrulamayı etkinleştirmek için projeleri yükseltirken, dönüştürme işleminin ilerleme durumunu gösteren bir iletişim kutusu görüntülenir.
Bir projeyi canlı bağımlılık doğrulaması için güncelleştirirken, NuGet paketinin sürümü tüm projeler için aynı olacak şekilde yükseltilir ve kullanımdaki en yüksek sürümdür.
Yeni bağımlılık doğrulama projesi eklemek bir proje güncelleştirmesini tetikler.
Öğenin doğrulamayı desteklenip desteklemediğini görme
Birden çok uygulama arasında paylaşılan projelerdeki web sitelerine, Office belgelerine, düz metin dosyalarına ve dosyalara katmanları bağlayabilirsiniz, ancak doğrulama işlemi bunları içermez. Bu katmanlar arasında hiçbir bağımlılık görünmediğinde, ayrı katmanlara bağlı projelere veya derlemelere yapılan başvurularda doğrulama hataları görünmez. Kod bu başvuruları kullanmadığı sürece bu tür başvurular bağımlılık olarak kabul edilmez.
Bağımlılık diyagramında bir veya daha fazla katman seçin, seçiminize sağ tıklayın ve ardından Bağlantıları Görüntüle'ye tıklayın.
Katman Gezgini'ndeDoğrulamayı Destekler sütununa bakın. Değer false ise, öğe doğrulamayı desteklemez.
Doğrulama için diğer .NET derlemelerini ve projelerini dahil edin
Öğeleri bağımlılık diyagramına sürüklediğinizde, ilgili .NET derlemelerine veya projelerine başvurular modelleme projesindeki Katman Başvuruları klasörüne otomatik olarak eklenir. Bu klasör, doğrulama sırasında analiz edilen derlemelere ve projelere başvurular içerir. Doğrulama için diğer .NET derlemelerini ve projelerini bağımlılık diyagramına el ile sürüklemeden ekleyebilirsiniz.
Çözüm Gezgini'nde modelleme projesine veya Katman Başvuruları klasörüne sağ tıklayın ve ardından Başvuru Ekle'ye tıklayın.
Başvuru Ekle iletişim kutusunda derlemeleri veya projeleri seçin ve ardından Tamam'a tıklayın.
Kodu el ile doğrulama
Çözüm öğelerine bağlı açık bir bağımlılık diyagramınız varsa diyagramdan Kısayolu doğrula komutunu çalıştırabilirsiniz. Komut istemini, /p:ValidateArchitecture özel özelliği True olarak ayarlanmış şekilde msbuild komutunu çalıştırmak için de kullanabilirsiniz. Örneğin, kodda değişiklik yaparken, bağımlılık çakışmalarını erken yakalayabilmeniz için düzenli olarak katman doğrulaması gerçekleştirin.
Açık bağımlılık diyagramından kodu doğrulama
Diyagram yüzeyine sağ tıklayın ve ardından Mimariyi Doğrula'ya tıklayın.
Uyarı
Varsayılan olarak, bağımlılık diyagramı (.layerdiagram) dosyasındaki Derleme Eylemi özelliği Doğrula olarak ayarlanır, böylece diyagram doğrulama işlemine eklenir.
Hata Listesi penceresi, oluşan hataları bildirir. Doğrulama hataları hakkında daha fazla bilgi için bkz. Katman doğrulama sorunlarını giderme.
Her hatanın kaynağını görüntülemek için Hata Listesi penceresinde hataya çift tıklayın.
Uyarı
Visual Studio hatanın kaynağı yerine bir kod eşlemesi gösterebilir. Bu durum, kodun bağımlılık diyagramı tarafından belirtilmeyen bir derlemeye bağımlılığı olduğunda veya kodda bağımlılık diyagramı tarafından belirtilen bir bağımlılık eksik olduğunda oluşur. Bağımlılığın mevcut olup olmadığını belirlemek için kod eşlemesini veya kodu gözden geçirin. Kod eşlemeleri hakkında daha fazla bilgi için bkz. Çözümlerinizde bağımlılıkları eşleme.
Hataları yönetmek için bkz. Katman doğrulama hatalarını çözme.
Komut isteminde kodu doğrulama
Visual Studio komut istemini açın.
Aşağıdakilerden birini seçin:
Çözümdeki belirli bir modelleme projesine karşı kodu doğrulamak için MSBuild'i aşağıdaki özel özellik ile çalıştırın.
msbuild <FilePath+ModelProjectFileName>.modelproj /p:ValidateArchitecture=true-veya-
Modelleme projesi (.modelproj) dosyasını ve bağımlılık diyagramını içeren klasöre göz atın ve aşağıdaki özel özellik ile MSBuild'i çalıştırın:
msbuild /p:ValidateArchitecture=trueKodu çözümdeki tüm modelleme projelerine karşı doğrulamak için MSBuild'i aşağıdaki özel özellik ile çalıştırın:
msbuild <FilePath+SolutionName>.sln /p:ValidateArchitecture=true-veya-
Bağımlılık diyagramı içeren bir modelleme projesi içermesi gereken çözüm klasörüne göz atın ve aşağıdaki özel özellik ile MSBuild'i çalıştırın:
msbuild /p:ValidateArchitecture=trueOluşan hatalar listelenir. MSBuild hakkında daha fazla bilgi için bkz. MSBuild ve MSBuild Görevi.
Doğrulama hataları hakkında daha fazla bilgi için bkz. Katman doğrulama sorunlarını giderme.
Doğrulama hatalarını yönetme
Geliştirme işlemi sırasında, doğrulama sırasında bildirilen çakışmalardan bazılarını bastırmak isteyebilirsiniz. Örneğin, zaten ele almakta olduğunuz veya kendi senaryonuzla ilgili olmayan hataları engellemek isteyebilirsiniz. Bir hatayı bastırdığınızda, Team Foundation'da bir iş öğesini günlüğe kaydetmek iyi bir uygulamadır.
Uyarı
Bir iş öğesi oluşturmak veya bu öğeye bağlanmak için zaten TFS Kaynak Kodu Denetimi'ne (SCC) bağlı olmanız gerekir. Farklı bir TFS SCC'sine bağlantı açmaya çalışırsanız, Visual Studio geçerli çözümü otomatik olarak kapatır. Bir iş öğesi oluşturmaya veya bu öğeye bağlanmaya çalışmadan önce uygun SCC'ye zaten bağlı olduğunuzdan emin olun. Visual Studio'nun sonraki sürümlerinde, bir SCC'ye bağlı değilseniz menü komutları kullanılamaz.
Doğrulama hatası için iş öğesi oluşturma
- Hata Listesi penceresinde hataya sağ tıklayın, İş Öğesi Oluştur'un üzerine gelin ve oluşturmak istediğiniz iş öğesi türüne tıklayın.
Hata Listesi penceresinde doğrulama hatalarını yönetmek için şu görevleri kullanın:
| 'dan'e | Şu adımları izleyin |
|---|---|
| Doğrulama sırasında seçili hataları gizleme | Seçilen bir veya birden çok hataya sağ tıklayın, Doğrulama Hatalarını Yönet'in üzerine gelin ve Hataları Gizle'ye tıklayın. Gizlenen hatalar üstü çizili biçimlendirmeyle görüntülenir. Doğrulamayı bir sonraki sefer çalıştırdığınızda, bu hatalar görünmez. Gizlenen hatalar, ilgili bağımlılık diyagramı dosyası için bir .suppressions dosyasında izlenir. |
| Seçili hataları gizlemeyi durdurma | Seçili gizlenen hataya veya hatalara sağ tıklayın, Doğrulama Hatalarını Yönet'in üzerine gelin ve Hataları Gizlemeyi Durdur'a tıklayın. Seçilen gizlenen hatalar, doğrulamayı bir sonraki seferde çalıştırdığınızda görüntülenir. |
| Hata Listesi penceresindeki tüm gizlenen hataları geri yükleme | Hata Listesi penceresinde herhangi bir yere sağ tıklayın, Doğrulama Hatalarını Yönet'in üzerine gelin ve ardından Tüm Gizlenen Hataları Göster'e tıklayın. |
| Tüm gizlenen hataları Hata Listesi penceresinde gizle | Hata Listesi penceresinde herhangi bir yere sağ tıklayın, Doğrulama Hatalarını Yönet'in üzerine gelin ve ardından Tüm Gizlenen Hataları Gizle'ye tıklayın. |
Kodu otomatik olarak doğrulama
Yerel derlemeyi her çalıştırdığınızda katman doğrulama gerçekleştirebilirsiniz. Ekibiniz Azure DevOps kullanıyorsa, özel bir MSBuild görevi oluşturarak belirtebileceğiniz kontrollü kayıtlarla katman doğrulaması gerçekleştirebilir ve doğrulama hatalarını toplamak için derleme raporlarını kullanabilirsiniz. Denetimli check-in derlemeleri oluşturmak için TFVC denetimli check-in'e bakabilirsiniz.
Yerel derleme sırasında kodu otomatik olarak doğrulamak için
Modelleme projesi (.modelproj) dosyasını açmak için bir metin düzenleyicisi kullanın ve ardından aşağıdaki özelliği ekleyin:
<ValidateArchitecture>true</ValidateArchitecture>
- veya -
Çözüm Gezgini'nde, bağımlılık diyagramını veya diyagramları içeren modelleme projesine sağ tıklayın ve ardından Özellikler'e tıklayın.
Özellikler penceresinde modelleme projesinin Mimariyi Doğrula özelliğini True olarak ayarlayın.
Bu, doğrulama işlemindeki modelleme projesini içerir.
Çözüm Gezgini'nde, doğrulama için kullanmak istediğiniz bağımlılık diyagramı (.layerdiagram) dosyasına tıklayın.
Özellikler penceresinde, diyagramın Derleme Eylemi özelliğinin Doğrula olarak ayarlandığından emin olun.
Bu, doğrulama işlemindeki bağımlılık diyagramını içerir.
Hata Listesi penceresindeki hataları yönetmek için bkz. Katman doğrulama hatalarını çözme.
Katman doğrulama sorunlarını giderme
Aşağıdaki tabloda katman doğrulama sorunları ve bunların çözümü açıklanmaktadır. Bu sorunlar, kod ve tasarım arasındaki çakışmalardan kaynaklanan hatalardan farklıdır. Bu hatalar hakkında daha fazla bilgi için bkz. Katman doğrulama sorunlarını giderme.
| Issue | Olası Neden | Çözünürlük |
|---|---|---|
| Doğrulama hataları beklendiği gibi oluşmaz. | Doğrulama, Çözüm Gezgini'ndeki diğer bağımlılık diyagramlarından kopyalanan ve aynı modelleme projesindeki bağımlılık diyagramlarında çalışmaz. bu şekilde kopyalanan bağımlılık diyagramları, özgün bağımlılık diyagramıyla aynı başvuruları içerir. | Modelleme projesine yeni bir bağımlılık diyagramı ekleyin. Kaynak bağımlılık diyagramındaki öğeleri yeni diyagrama kopyalayın. |
Katman doğrulama hatalarını çözme
Bir bağımlılık diyagramında kodu doğruladığınızda, kod tasarımla çakıştığında doğrulama hatası meydana gelir. Örneğin, aşağıdaki koşullar doğrulama hatalarının oluşmasına neden olabilir:
Yapıt yanlış katmana atanmış. Bu durumda, yapıtı taşıyın.
Sınıf gibi bir öğe, mimarinizle çatışan bir şekilde başka bir sınıfı kullanır. Bu durumda, bağımlılığı kaldırmak için kodu yeniden düzenleme.
Bu hataları çözmek için doğrulama sırasında başka hata görünmeyene kadar kodu güncelleştirin. Bu görevi yinelemeli bir şekilde gerçekleştirebilirsiniz.
Aşağıdaki bölümde, bu hatalarda kullanılan söz dizimi açıklanır, bu hataların anlamı açıklanır ve bunları çözmek veya yönetmek için yapabileceklerinizi önerir.
| Sözdizimi | Açıklama |
|---|---|
| ArtifactN(ArtifactTypeN) |
ArtifactN , bağımlılık diyagramındaki bir katmanla ilişkili bir yapıttır. ArtifactTypeN, Sınıf veya Yöntem gibi ArtifactN türüdür, örneğin: MySolution.MyProject.MyClass.MyMethod(Metot) |
| NamespaceNameN | Ad alanının adı. |
| LayerNameN | Bağımlılık diyagramındaki bir katmanın adı. |
| DependencyType | Yapıt1 ile Artifact2 arasındaki bağımlılık ilişkisinin türü. Örneğin, Artifact1'in Artifact2 ile bir Çağrılar ilişkisi vardır. |
| Hata Söz Dizimi | Hata Açıklaması |
|---|---|
| DV0001: Geçersiz Bağımlılık | Katmana eşlenen bir kod öğesi (ad alanı, tür, üye) başka bir katmana eşlenen bir kod öğesine başvurduğunda ancak bu katmanları içeren bağımlılık doğrulama diyagramında bu katmanlar arasında bağımlılık oku olmadığında bu sorun bildirilir. Bu bir bağımlılık kısıtlaması ihlalidir. |
| DV1001: Geçersiz ad alanı adı | Bu sorun, "İzin Verilen Ad Alanı Adları" özelliğinin bu kod öğesinin tanımlandığı ad alanını içermeyen bir katmanla ilişkilendirilmiş bir kod öğesinde bildirilir. Bu bir adlandırma kısıtlaması ihlalidir. "İzin Verilen Ad Alanı Adları" ifadesinin, katman ile ilişkilendirilmiş kod öğelerinin tanımlanmasına izin verilen ad alanlarının noktalı virgülle ayrılmış bir listesi şeklinde olması gerektiğini unutmayın. |
| DV1002: Başvurulamayan ad alanına bağımlılık | Bu sorun, katmanla ilişkilendirilmiş bir kod öğesinin, katmanın "Başvurulamaz Ad Alanı" özelliğinde tanımlanan bir ad alanında tanımlı başka bir kod öğesine başvurmasından dolayı rapor edilir. Bu bir adlandırma kısıtlaması ihlalidir. "Başvurulamayacak Ad Alanları" özelliğinin, bu katmanla ilişkili kod öğelerinde başvurulmaması gereken ad alanlarının Noktalı virgülle ayrılmış listesi olarak tanımlandığını unutmayın. |
| DV1003: İzin verilmeyen ad alanı adı | Bu sorun, "İzin Verilmeyen Ad Alanı Adları" özelliğinin bu kod öğesinin tanımlandığı ad alanını içerdiği bir katmanla ilişkilendirilmiş bir kod öğesinde bildirilir. Bu bir adlandırma kısıtlaması ihlalidir. "İzin verilmeyen ad alanı adı" özelliğinin, bu Katmanla ilişkili kod öğelerinin tanımlanmaması gereken ad alanlarının Noktalı virgülle ayrılmış listesi olarak tanımlandığını unutmayın. |
| DV2001: Katman Diyagramı Mevcudiyeti | Bu sorun, bağımlılık diyagramı dosyası içermeyen ancak bağımlılık doğrulama çözümleyicilerine başvuran bir projede bildirilir. Bağımlılık Doğrulaması kullanılmadıysa, "Microsoft.DependencyValidation.Analyzers" öğesini doğrudan Çözüm Gezgini'nden kaldırabilir veya bu uyarıyı gizleyebilirsiniz. Bağımlılık diyagramı eklemek için bkz. Kodunuzdan bağımlılık diyagramları oluşturma. |
| DV2002: Eşlenmemiş Türler Tabanı | Bir kod öğesi herhangi bir katmana eşlenmediğinde bu sorun bildirilir. |
| DV3001: Eksik Bağlantı | Katman 'LayerName', 'Artifact' bağlantısına bağlı, ancak bu bağlantı bulunamıyor. Derleme başvurusu eksik mi? |
| DV9001: Mimari analiz iç hatalar buldu | Sonuçlar tamamlanmayabilir. Daha fazla bilgi için ayrıntılı derleme olay günlüğü veya çıkış penceresine bakın. |