Aracılığıyla paylaş


Katman Diyagramları ile Kodu Doğrulama

Kodun tasarımıyla çakışmamasını sağlamak için kodunuzu Visual Studio Ultimate ve Visual Studio Premium'da katman diyagramıyla doğrulayın.Bu, şu konularda size yardımcı olabilir:

  • Kodunuzdaki ve katman diyagramındaki bağımlılıklar arasında çakışmaları bulun.

  • Önerilen değişiklikler tarafından etkilenebilecek bağımlılıkları bulun.

    Örneğin, olası mimari değişiklikleri göstermek için katman diyagramını düzenleyebilir ve ardından etkilenen bağımlılıkları görmek için kodu doğrulayabilirsiniz.

  • Kodu yeniden düzenleyin veya kodu farklı bir tasarıma geçirin.

    Kodu farklı bir mimariye taşıdığınız zaman iş gerektiren kodu veya bağımlılıkları bulun.

Visual Studio'daki açık bir katman diyagramından veya komut isteminden kodu el ile doğrulayabilirsiniz.Ayrıca yerel yapıları veya Team Foundation Yapısı'nı çalıştırırken kodu otomatik olarak doğrulayabilirsiniz.Bakın kanal 9 Video: tasarım ve katman diyagramları kullanma Mimarinizi geçerli.

Önemli notÖnemli

Team Foundation Yapısı ile katman doğrulaması çalıştırmak istiyorsanız, yapı sunucunuza Visual Studio Ultimate'ı yüklemeniz gerekir.

Gereksinimler

  • Visual Studio Ultimate veya Visual Studio Premium

  • Kodu Team Foundation Yapısı ile otomatik olarak doğrulamak için Team Foundation Yapısı'nda Visual Studio Ultimate

  • Katman diyagramına sahip bir modelleme projesi olan çözüm.Bu katman diyagramı, doğrulamak istediğiniz Visual C# .NET veya Visual Basic .NET projelerindeki yapılara bağlı olmalıdır.Bakın Koddan katman diyagramları oluşturma.

  • Bir öğenin doğrulamayı destekleyip desteklemediğini görme

  • Diğer .NET derlemelerini ve projelerini doğrulama için dahil etme

  • Kodu el ile doğrulama

  • Kodu otomatik olarak doğrulama

  • Katman doğrulama sorunlarını giderme

  • Katman doğrulama hatalarını anlama ve çözme

Bir öğenin doğrulamayı destekleyip desteklemediğini görme

Web siteleri, Office belgelerini, düz metin dosyaları ve birden çok uygulama arasında paylaşılır projeleri dosyalarında Katmanları bağlayabilirsiniz ancak doğrulama işlemi bunları içermez.Doğrulama hataları, aralarında hiçbir bağımlılığın görünmediği ayrı katmanlara bağlanmış projelere veya derlemelere olan başvurular için görünmez.Kod bu başvuruları kullanmazsa böyle başvurular bağımlılık olarak düşünülmez.

  1. Katman diyagramı üzerinde bir veya daha fazla katmanı seçin, seçiminizi sağ tıklatın ve ardından bağlantıları görüntüleme.

  2. İçindeki Katman Gezgini, bakmak doğrulamayı destekler sütun.Değer false ise, öğe doğrulamayı desteklemez.

Diğer .NET derlemelerini ve projelerini doğrulama için dahil etme

Öğeleri için katman diyagramı sürükleyin, karşılık gelen .NET derlemeleri veya projeleri başvurularını otomatik olarak eklenir Katman başvuruları modelleme projesi klasöründe.Bu klasör, doğrulama sırasında analiz edilen derlemeler ve projeler için başvurular içerir.Ayrıca, diğer .NET derlemelerini ve projeleri katman diyagramına el ile sürüklemeden doğrulama için ekleyebilirsiniz.

  1. İçindeki Çözüm Gezgini, modelleme projesine sağ tıklayın veya Katman başvuruları klasörü ve sonra Başvuru Ekle.

  2. İçindeki Başvuru Ekle iletişim kutusunda, derlemeleri veya projeleri seçin ve ardından Tamam.

Kodu el ile doğrulama

Çözüm öğeleri için bağlı bir açık katman diyagramı varsa, çalıştırabilirsiniz doğrulama diyagram kısayol komutu.Komut istemini çalıştırmak için kullanabilirsiniz msbuild komutunu /p:ValidateArchitecture özel özellik kümesine True.Örneğin, kodda değişiklik yaparken bağımlılık çakışmalarını önceden yakalayabilmek için düzenli olarak katman doğrulama gerçekleştirin.

Kodu açık bir katman diyagramından doğrulamak için

  1. Diyagram yüzeyi sağ tıklatın ve ardından Mimariyi Doğrula.

    [!NOT]

    Varsayılan olarak, Yapı eylemi özelliği için katman diyagramı (.layerdiagram) dosyasındaki Doğrula böylece diyagram doğrulama işleminde eklenir.

    Hata listesi penceresi oluşan hataları bildirir.Doğrulama hataları hakkında daha fazla bilgi için anlayın ve çözüm katman doğrulama hatalarını.

  2. Her hatanın kaynağını görüntülemek için hatayı çift tıklatın hata listesi pencere.

    [!NOT]

    Visual Studio hatanın kaynağı yerine bir bağımlılık grafiği gösterebilir.Bu, kodun katman diyagramı tarafından belirlenmeyen derlemesinde bağımlılığı varsa ya da kodun katman diyagramı tarafından belirlenen bağımlılığı eksikse ortaya çıkar.Bağımlılığın olup olmaması gerektiğine karar vermek için bağımlılık grafiğini veya kodu gözden geçirin.Bağımlılık grafikleri hakkında daha fazla bilgi için Kodunuzdaki bağımlılıkları bağımlılık grafikleri ile eşleme.

  3. Hataları yönetmek için bkz doğrulama hatalarını yönetme.

Kodu komut isteminde doğrulamak için

  1. Açık Visual Studio komut istemi.

  2. Aşağıdakilerden birini seçin:

    • Bir çözümde belirli modelleme projesine karşı kodu doğrulamak için Çalıştır MSBuild aşağıdaki özel özellikler ile.

      msbuild <FilePath+ModelProjectFileName>.modelproj /p:ValidateArchitecture=true
      

      - veya -

      Modelleme içeren klasörü bulun ve çalıştırın proje dosyası (.modelproj) ve katman diyagramı MSBuild aşağıdaki özel özellikler ile:

      msbuild /p:ValidateArchitecture=true 
      
    • Çözümde tüm modelleme projelerine karşı kodu doğrulamak için Çalıştır MSBuild aşağıdaki özel özellikler ile:

      msbuild <FilePath+SolutionName>.sln /p:ValidateArchitecture=true 
      

      - veya -

      Katman diyagramı içeren bir modelleme projesi içeren, ve ardından çalıştırın Çözüm klasörü bulun MSBuild aşağıdaki özel özellikler ile:

      msbuild /p:ValidateArchitecture=true
      

    Oluşan hatalar listelenecektir.Hakkında daha fazla bilgi için MSBuild, bakın MSBuild ve MSBuild Görevi.

Doğrulama hataları hakkında daha fazla bilgi için anlayın ve çözüm katman doğrulama hatalarını.

Doğrulama hatalarını yönetme

Geliştirme işlemi sırasında, doğrulama esnasında bildirilen çakışmaların bazılarını gizlemek isteyebilirsiniz.Örneğin, zaten çözdüğünüz veya özel senaryonuzla ilgili olmayan hataları gizlemek isteyebilirsiniz.Bir hata bastırmak olduğunda, bir iş öğesi oturum açmak için iyi bir uygulamadır Team Foundation.

Doğrulama hatası için bir öğesi oluşturmak üzere

  • İçinde hata listesi penceresinde hata sağ tıklatın, üzerine çalışma öğesi oluştur, ve ardından oluşturmak istediğiniz iş öğesi türü'ı tıklatın.

Doğrulama hataları yönetmek için bu görevi kullanın hata listesi penceresi:

Amaç

Aşağıdaki adımları uygulayın

Doğrulama sırasında seçili hataları gizleme

Bir veya birden çok seçili hataya sağ tıklatın, üzerine Doğrulama Hatalarını Yönet, ve ardından bastırmak hataları.

Gizlenen hatalar üstü çizili biçimde görünür.Doğrulamayı daha sonra çalıştırdığınızda bu hatalar görünmez.

Gizlenen hatalar, ilgili katman diyagramı dosyası için .gizlenenler dosyasında izlenir.

Seçili hataların gizlenmesini durdurma

Seçilen gizlenmiş hata veya hataları sağ tıklatın, üzerine Doğrulama Hatalarını Yönet, ve ardından bastırmak hataları Durdur.

Doğrulamayı daha sonra çalıştırdığınızda seçili gizlenen hatalar görünecektir.

Tüm gizlenmiş hatalar geri hata listesi penceresi

Herhangi bir yeri sağ tıklatın, hata listesi penceresinde noktasına Doğrulama Hatalarını Yönet, ve ardından tüm gizlenen hatalarını göster.

Tüm gizlenmiş hataları gizleyin hata listesi penceresi

Herhangi bir yeri sağ tıklatın, hata listesi penceresinde noktasına Doğrulama Hatalarını Yönet, ve ardından tüm gizlenen Hataları Gizle.

Kodu otomatik olarak doğrulama

Her yerel bir yapı çalıştırışınızda katman doğrulama gerçekleştirebilirsiniz.Takımınız Team Foundation Yapısı kullanıyorsa, geçişli bir özel MSBuild görev ve doğrulama hatalarını toplamak için kullanım yapı raporlarını oluşturarak belirtebileceğiniz iadeler, sahip katman doğrulamasını gerçekleştirebilir. Geçitli iade yapılar oluşturmak için bkz Değişiklikleri doğrulamak için geçitli iade etme yapı işlemini kullanma.

Kodu yerel yapı sırasında otomatik olarak doğrulamak için

  • Modelleme projesi (.modelproj) dosyası açmak için metin düzenleyicisi kullanın ve ardından aşağıdaki özelliği ekleyin:
<ValidateArchitecture>true</ValidateArchitecture>

- veya -

  1. İçindeki Çözüm Gezgini, katman diyagramı veya diyagramları içeren modelleme projeyi sağ tıklatın ve ardından özellikleri.

  2. İçindeki özellikleri penceresindeki ayarlayın modelleme projesinin Mimariyi Doğrula özelliğini True.

    Bu, doğrulama işlemi içinde modelleme projesini içerir.

  3. İçindeki Çözüm Gezgini, doğrulama için kullanmak istediğiniz katman diyagramı (.layerdiagram) dosyasına tıklayın.

  4. İçindeki özellikleri penceresinde emin olun diyagramın Yapı eylemi özelliği doğrulama.

    Buna, doğrulama işlemindeki katman diyagramı dahildir.

Hata Listesi penceresinde hataları yönetmek için bkz Doğrulama Hatalarını Yönet.

Team Foundation Yapısı sırasında otomatik olarak kodu doğrulamak için

  1. İçindeki Takım Gezgini, yapı tanımını çift tıklatın ve ardından işlemi.

  2. Altında Yapı işlemi parametreleri, genişletme derleme, ve aşağıdakileri yazın MSBuild bağımsız değişkenleri parametresi:

    /p:ValidateArchitecture=true

Doğrulama hataları hakkında daha fazla bilgi için anlayın ve çözüm katman doğrulama hatalarını.Hakkında daha fazla bilgi için Team Foundation Yapısı, bakın:

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ışmalarla sonuçlanan hatalardan ayrılır.Bu hataları hakkında daha fazla bilgi için anlayın ve çözüm katman doğrulama hatalarını.

Sorun

Olası Neden

Çözüm

Doğrulama hataları beklendiği gibi gerçekleşmez.

Doğrulama Çözüm Gezgini'ndeki diğer katman diyagramlarından kopyalanmış ve aynı modelleme projesinde bulunan katman diyagramlarında işe yaramaz.Bu şekilde kopyalanan katman diyagramları, orijinal katman diyagramıyla aynı başvuruları içerir.

  1. Modelleme projesine yeni bir katman diyagramı ekleyin.

  2. Öğeleri kaynak katmanı diyagramından yeni diyagrama kopyalayın.

Katman Doğrulama Hatalarını Anlama ve Çözme

Kodu katman diyagramına karşı doğruladığınız zaman, kod tasarımla çakıştığında doğrulama hataları oluşur.Örneğin, aşağıdaki durumlar doğrulama hatalarının oluşmasına neden olabilir:

  • Yapı yanlış katmana atanmış.Bu durumda, yapıyı taşıyın.

  • Sınıf gibi bir yapı, başka bir sınıfı mimarinizle çakışacak şekilde kullanıyor.Bu durumda, bağımlılığı kaldırmak için kodu yeniden düzenleyin.

Bu hataları çözmek için doğrulama sırasında daha fazla 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özdizimi belirtilmekte, bu hataların anlamı açıklanmakta ve bunları çözmek veya yönetmek için yapabilecekleriniz önerilmektedir.

Sözdizimi

Açıklama

ArtifactN(ArtifactTypeN)

ArtifactN katman diyagramı üzerinde bir katman ile ilişkilendirilmiş bir yapıdır.

ArtifactTypeN türü ArtifactN, gibi bir sınıf veya yöntemi, örneğin:

MySolution.MyProject.MyClass.MyMethod(Method)

NamespaceNameN

Bir ad alanının adı.

LayerNameN

Katman diyagramındaki katmanın adı.

DependencyType

Bağımlılık arasındaki ilişki türü Artifact1 ve Artifact2.Örneğin, Artifact1 sahip bir çağrıları ile ilişki Artifact2.

Hata Sözdizimi

Hata Açıklaması

AV0001: Geçersiz bağımlılık: Artifact1(ArtifactType1)--> Artifact2(ArtifactType2)

Katmanlar: LayerName1, LayerName2 | Bağımlılıklar: DependencyType

Artifact1 içinde LayerName1 bir bağımlılık olmamalıdır Artifact2 içinde LayerName2 olduğundan LayerName1 doğrudan bağımlılık yok LayerName2.

AV1001: Geçersiz ad alanı: Yapı

Katman: LayerName | Gerekli ad alanı: NamespaceName1 | Geçerli ad: NamespaceName2

LayerName ilişkilendirilmiş yapılarının ait olmalıdır gerektirir NamespaceName1.Yapı yer NamespaceName2, değil NamespaceName1.

AV1002: Yasak Ad alanına bağlı: Artifact1(ArtifactType1) | Artifact2(ArtifactType2)

Katman: LayerName | Yasak Ad alanı: NamespaceName | Bağımlılıklar: DependencyType

LayerName ilişkilendirilmiş yapılarının üzerinde bağlı olmasını gerektirir NamespaceName.Artifact1 bağlı olamazlar Artifact2 olduğundan Artifact2 yer NamespaceName.

AV1003: Yasak Ad alanında: Yapı(ArtifactType)

Katman: LayerName | Yasak Ad alanı: NamespaceName

LayerName ilişkilendirilmiş yapılarının ait olamaz gerektirir NamespaceName.Yapı ait NamespaceName.

AV3001: eksik bağlantı: katman 'LayerName'bağlantılı'Yapı', bulunamıyor.Eksik bir derleme başvurunuz mu var?

LayerName bulunamıyor bir yapı bağlanır.Örneğin, sınıfla kurulan bir bağlantı kayıp olabilir; çünkü modelleme projesinde sınıfı içeren derlemeye yapılan bir başvuru yoktur.

AV9001: Mimari çözümleme iç hatalar buldu.Sonuçlar tamamlanmamış olabilir.Daha fazla bilgi için ayrıntılı yapı olay günlüğü veya çıkış penceresine bakın.

Daha fazla ayrıntı için yapı olay günlüğü veya çıkış penceresine bakın.

Ayrıca bkz.

Kavramlar

Geliştirme Sırasında Sisteminizi Doğrulama