Aracılığıyla paylaş


Katman Diyagramları ile Kodu Doğrulama

Kodun tasarımıyla çakışma yoksa emin olmak için katman diyagramları Visual Studio Ultimate ve Visual Studio Premium ile kodu doğrulayabilirsiniz. Bu size yardımcı olabilir:

  • Katman diyagramı üzerinde bağımlılıkları kodunuza ve bağımlılıkları arasındaki ç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 sonra etkilenen bağımlılıkları görmek için kodu doğrulayabilirsiniz.

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

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

Visual Studio'da açık katman diyagramından el ile veya bir komut isteminden kodu doğrulayabilirsiniz. Ayrıca otomatik olarak yerel yapıların veya Team Foundation Yapısı çalışırken kodu doğrulamak. Bkz: Kanal 9 Video: Tasarım ve katman diyagramları kullanarak mimarinizi geçerli.

Gereksinimler

  • Visual Studio Ultimate veya Visual Studio Premium

  • Bir modelleme projesi ile katman diyagramına sahip bir çözüm. Bu katman diyagramı doğrulamak istediğiniz Visual C# .NET veya Visual Basic .NET projelerinde yapılara bağlı olması gerekir. Bkz: Koddan Katman Diyagramları Oluşturma

Bunun için

  • Bir öğeyi doğrulamayı destekleyip desteklemediğini görmek

  • Diğer .NET derlemeleri ve projeleri için doğrulama

  • Kodu el ile doğrulama

  • Kodu otomatik olarak doğrulama

  • Katman doğrulama sorunlarını giderme

  • Anlamak ve katman doğrulama hatalarını çözümleme

Bir öğeyi doğrulamayı destekleyip desteklemediğini görmek

  1. Katman diyagramında bir veya daha fazla katmanı seçin, seçiminize sağ tıklayın ve ardından Bağlantıları görüntüleme.

  2. Katman Gezgini'nde Doğrulamayı Destekler sütununa bakın. Değer false ise, öğe doğrulamayı desteklemez.

Web siteleri, Office belgelerini bağlayabilirsiniz ve Katmanlar, ancak doğrulama işlemi için düz metin dosyaları dahil edilmeyecektir. Doğrulama hataları, projeleri veya katmanları arasında hiç bağımlılığı görünmediği ayrı katmanlara bağlı derlemeler başvuruları için görünmez. Eğer kod bu başvuruları kullanmazsa böyle başvurular bağımlılık olarak düşünülmez.

Diğer .NET derlemeleri ve projeleri için doğrulama

Öğeleri katman diyagramına sürüklediğinizde, karşılık gelen .NET derlemeleri veya projeleri başvuru için otomatik olarak eklenen Katman başvuruları modelleme projesi klasöründe. Bu klasör, derlemeler ve doğrulama sırasında çözümlenen projelere başvurular içerir. Diğer .NET derlemeleri ve projeleri doğrulama için katman diyagramına sürükleyerek olmadan el ile ekleyebilirsiniz.

  1. İçinde Çözüm Gezgini, modelleme projesine sağ tıklayın veya Katman başvuruları klasörü tıklatın ve sonra Add Reference.

  2. Başvuru Ekle iletişim kutusunda derlemeleri veya projeleri seçin ve sonra Tamam'a tıklayın.

Kodu el ile doğrulama

Çözüm öğeleri bağlantılı bir açık katman diyagramı varsa, çalıştırma doğrulama diyagramı kısayol komutunu. Komut isteminden çalıştırmak için de kullanılabilir msbuild komutunu /p:ValidateArchitecture özel özelliğini ayarlamak True. Kodda değişiklik yaptıkça, örneğin, katman doğrulamayı düzenli olarak gerçekleştirmek böylece bağımlılık Çakışmaları erken yakalamak.

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

  1. Diyagram yüzeyini sağ tıklayın ve sonra Mimariyi Doğrula'ya tıklayın.

    Not

    Varsayılan olarak, doğrulama işleminde diyagramın olması için katman diyagramı (.layerdiagram) dosyasındaki Yapı Eylemi özelliği Doğrula'ya ayarlanır.

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

  2. Her hatanın kaynağını görüntülemek için Hata Listesi penceresindeki hataya çift tıklayın.

    Not

    Visual Studio hatanın kaynağı yerine bağımlılık grafiği gösterebilir.Bu, ya kodun katman diyagramı tarafından belirlenmeyen derlemesinde bağımlılığı varsa yada kodun katman diyagramı tarafından belirlenen bağımlılığı eksik ise 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 bkz. Bağımlılık Grafiklerinde Kod Bağımlılıklarını Görselleştirme.

  3. Hataları yönetmek için bkz: Doğrulama Hatalarını Yönet.

Komut isteminde kodu doğrulamak için

  1. Visual Studio komut istemini açın.

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

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

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

      - veya -

      Modelleme projesi (.modelproj) dosyasını ve katman diyagramını içeren klasöre göz atın ve sonra MSBuild'i aşağıdaki özel özellikler ile çalıştırın.

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

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

      - veya -

      İçinde katman diyagramının olduğu modelleme projesini kapsaması gereken çözüm klasörüne göz atın ve sonra MSBuild'i aşağıdaki özel özellikler ile çalıştırın.

      msbuild /p:ValidateArchitecture=true 
      

    Oluşan hatalar listelenecektir. MSBuild hakkında daha fazla bilgi edinmek için bkz. MSBuild and MSBuild görevi.

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

Dd409395.collapse_all(tr-tr,VS.110).gifDoğrulama hatalarını yönetme

Geliştirme işlemi sırasında, doğrulama esnasında bildirilen çakışmaların bazılarını bastırmak isteyebilirsiniz. Örneğin, zaten belirlediğiniz veya özel senaryonuzla ilgili olmayan hataları bastırmak isteyebilirsiniz. Hatayı bastırdığınızda Team Foundation'deki çalışması öğesini kaydetmek iyi bir uygulamadır.

Doğrulama hatasından dolayı çalışma öğesi oluşturmak için

  • Hata Listesi penceresinde hataya sağ tıklayın, Çalışma Öğesi Oluştur'un üzerine gelin ve sonra oluşturmak istediğiniz çalışma öğesinin türüne tıklayın.

Hata Listesi penceresindeki doğrulama hatalarını yönetmek için bu görevleri kullanın:

Bunun için

Aşağıdaki adımları izleyin

Doğrulama sırasındaki seçili hataları bastırın

Bir veya birden çok seçili hataya sağ tıklayın, Manage Validation Errors (Doğrulama Hatalarını Yönet)'in üzerine gelin ve sonra Suppress Errors (Hataları Bastır)'a tıklayın.

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

Bastırılmış hatalar, ilgili katman diyagramı dosyası için .bastırmalar dosyasında izlenir.

Seçili hataları bastırmayı durdurun.

Seçili bastırılmış hata veya hatalara sağ tıklayın,Manage Validation Errors (Doğrulama Hatalarını Yönet)'in üzerine gelin ve sonra Stop Suppressing Errors (Hataları Bastırmayı Durdur)'a tıklayın.

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

Hata Listesi penceresindeki tüm bastırılmış hataları geri yükleyin.

Hata Listesi penceresindeki herhangi bir yere sağ tıklayın, Manage Validation Errors (Doğrulama Hatalarını Yönet)'in üzerine gelin ve sonra Show All Suppressed Errors (Tüm Bastırılmış Hataları Göster)'e tıklayın.

Tüm bastırılmış hataları Hata Listesi penceresinden gizleyin.

Hata Listesi penceresindeki herhangi bir yere sağ tıklayın, Manage Validation Errors (Doğrulama Hatalarını Yönet)'in üzerine gelin ve sonra Hide All Suppressed Errors (Tüm Bastırılmış Hataları Gizle)'ye tıklayın.

Kodu otomatik olarak doğrulama

Yerel yapıyı çalıştırdığınız her zaman katman doğrulamasını gerçekleştirebilir. Team Foundation Yapı Takımınızın kullandığı ile geçişli, belirtebileceğiniz özel bir MSBuild görev ve doğrulama hataları toplamak için yapı raporlarını kullanın oluşturarak iadeler, katman doğrulama gerçekleştirebilirsiniz. Geçişli iade yapılarının oluşturmak için bkz: Değişiklikleri doğrulamak üzere Gated onay oluşturma işlemini tanımla.

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 sonra aşağıdaki özellikleri ekleyin:
<ValidateArchitecture>true</ValidateArchitecture>

- veya -

  1. Çözüm Gezgini'nde, katman diyagramı veya diyagramları içeren modelleme projesine sağ tıklayın ve sonra Özellikler'e tıklayın.

  2. Özellikler penceresinde modelleme projesinin Mimariyi Doğrulama özelliğini True'ya ayarlayın.

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

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

  4. Özellikler penceresinde diyagramın Yapı Eylemi özelliğinin Doğrula'ya ayarlı olduğundan emin olun.

    Bu, doğrulama işleminde katman diyagramı içerir.

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. Takım Gezgini'nde yapı tanımına çift tıklayın ve sonra İşlem'i tıklatın.

  2. Yapı işlemi parametreleri altında Derleme'yi genişletin ve MSBuild Değişkenleri parametresinde aşağıdakileri yazın:

    /p:ValidateArchitecture = true

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

Katman doğrulama sorunlarını giderme

Aşağıdaki tablo katman doğrulama sorunları ve bunların çözümünü açıklanı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 bkz: anlayın ve katman doğrulama hatalarını çözümleme.

Öğe

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ı, özgün katman diyagramları ile aynı başvuruları içerir.

  1. Modelleme projesine yeni bir katman diyagramı ekleyin.

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

Anlama ve katman doğrulama hatalarını giderme

Kodu katman diyagramıyla karşılaştırarak doğrulama zaman kodu tasarım ile çakışan doğrulama hataları oluşur. Örneğin, aşağıdaki koşullar doğrulama hatalarının oluşmasına neden:

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

  • Sınıf gibi bir yapı başka bir sınıfı mimariyle çakışacak şekilde kullanır. 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üncelleyin. Bu görevi yinelemeli bir şekilde gerçekleştirebilirsiniz.

Aşağıdaki bölümde bu hataları kullanılır, bu hatalar anlamını açıklar ve onları çözmek veya yönetmek için yapabileceklerinizi öneren sözdizimini açıklar.

Sözdizimi

Tanımlama

ArtifactN( ArtifactTypeN)

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

ArtifactTypeN, Sınıf veya Yöntem gibi ArtifactN türüdür, örneğin:

MySolution.MyProject.MyClass.MyMethod(Method)

NamespaceNameN

Bir isim uzayının adı.

LayerNameN

Katman diyagramındaki katmanın adı.

DependencyType

Artifact1 ve Artifact2 arasındaki bağımlılık ilişkisinin türü. Örneğin, Artifact1'in, Artifact2 ile Calls (Çağrılar) ilişkisi vardır.

Sözdizimi hatası

Hata açıklaması

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

   Layers: LayerName1, LayerName2 | Dependencies: DependencyType

LayerName1'de Artifact1'in, LayerName2'deki Artifact2 üzerinde bağımlılığı olmamalıdır çünkü LayerName1'in LayerName2 üzerinde doğrudan bir bağımlılığı yoktur.

AV1001: Geçersiz Ad Alanı: Artifact

   Layer: LayerName | Required Namespace: NamespaceName1 | Current Namespace: NamespaceName2

LayerName, ilişkilendirilmiş yapılarının NamespaceName1'e ait olmasını gerektirir. Artifact, NamespaceName1'de değildir NamespaceName2'dedir.

AV1002: Yasaklanmış Ad Alanına Bağlı: Artifact1(ArtifactType1) | Artifact2(ArtifactType2)

   Layer: LayerName | Forbidden Namespace: NamespaceName | Dependencies: DependencyType

LayerName, ilişkilendirilmiş yapılarının NamespaceName'e bağlı olmamasını gerektirir. Artifact1, Artifact2'ye bağlı değildir çünkü Artifact2 NamespaceName içindedir.

AV1003: Yasak Ad Alanı İçinde: Artifact(ArtifactType)

   Layer: LayerName | Forbidden Namespace: NamespaceName

LayerName, ilişkilendirilmiş yapılarının NamespaceName1'e ait olmamasını gerektirir. Artifact, NamespaceName'e aittir.

AV3001: Eksik Bağlantı: "LayerName" katmanı bulunamayan "Artifact'' öğesine bağlanır. Bütürnleştirilmiş kod başvurusu eksik mi?

LayerName, bulunamayan bir yapıya bağlanır. Örneğin, sınıfa olan bir bağlantı kayıp olabilir çünkü modelleme projesi, sınıfın içerdiği bütünleştirilmiş koda olan başvuruyu kaybeder.

AV9001: Mimari çözümleme dahili hata buldu. Sonuçlar tamamlanmamış olabilir. Daha fazla bilgi için bkz. ayrıntılı yapı olay günlüğü veya çıktı penceresi.

Yapı olay günlüğü veya çıktı penceresinde daha fazla ayrıntı için bkz.

Ayrıca bkz.

Kavramlar

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