Kod eşlemeleriyle bağımlılıkları eşleme

Bu makalede kod eşlemeleri ile kodunuz genelinde bağımlılıkları görselleştirmeyi öğreneceksiniz.

Kod eşlemeleri nedir?

Visual Studio'da kod eşlemeleri, program kodunuzun dosyaları ve kod satırlarını okumadan nasıl bir araya topduğunu daha hızlı görmenize yardımcı olur. Bu haritalarla, kodunuzda yapısı ve bağımlılıkları, güncelleştirme ve önerilen değişikliklerin maliyetini tahmin etme dahil olmak üzere kuruluşu ve ilişkileri görebilirsiniz.

View dependencies with code maps in Visual Studio

Kod için bağımlılıkları şu dillerde eşleyebilirsiniz:

  • Çözümde veya derlemelerde (.dll veya .exe) Visual C# veya Visual Basic

  • Visual C++ projelerinde, üst bilgi dosyalarında (.h veya ) veya ikili dosyalarda yerel veya yönetilen C veya #includeC++ kodu

  • Microsoft Dynamics AX için .NET modüllerinden yapılan X++ projeleri ve derlemeleri

Not

C# veya Visual Basic dışındaki projelerde, kod eşlemesi başlatmak veya var olan bir kod eşlemesine öğe eklemek için daha az seçenek vardır. Örneğin, bir C++ projesinin metin düzenleyicisinde bir nesneye sağ tıklayıp bir kod eşlemesine ekleyemezsiniz. Ancak Çözüm Gezgini, Sınıf Görünümü ve Nesne Tarayıcısı'ndan tek tek kod öğelerini veya dosyalarını sürükleyip bırakabilirsiniz.

Önkoşullar

Visual Studio'da kod eşlemesi oluşturmak için önce Kod Eşlemesi ve Canlı Bağımlılık Doğrulama bileşenlerini yükleyin

Kod eşlemeleri oluşturmak ve düzenlemek için Visual Studio Enterprise sürümü gerekir. Ancak Visual Studio Community ve Professional sürümlerinde Enterprise sürümünde oluşturulan diyagramları açabilirsiniz ancak düzenleyemezsiniz.

Not

Visual Studio Enterprise'da oluşturulan haritaları Visual Studio Professional kullanan diğer kişilerle paylaşmadan önce, haritadaki tüm öğelerin (gizli öğeler, genişletilmiş gruplar ve gruplar arası bağlantılar gibi) görünür olduğundan emin olun.

Kod haritası ekleme

Boş bir kod eşlemesi oluşturup derleme başvuruları, dosyalar ve klasörler gibi öğeleri bu haritaya sürükleyebilir veya çözümünüzün tamamı veya bir bölümü için bir kod eşlemesi oluşturabilirsiniz.

Boş bir kod eşlemesi eklemek için:

  1. Çözüm Gezgini'da üst düzey çözüm düğümünüzün kısayol menüsünü açın. Yeni Öğe Ekle'yi>seçin.

  2. Yeni Öğe Ekle iletişim kutusundaki Yüklü altında Genel kategorisini seçin.

  3. Yönlendirilmiş Grafik Belgesi(.dgml) şablonunu ve ardından Ekle'yi seçin.

    İpucu

    Bu şablon alfabetik olarak görünmeyebilir, bu nedenle görmüyorsanız şablon listesinin en altına kadar aşağı kaydırın.

    Çözümünüzün Çözüm Öğeleri klasöründe boş bir harita görüntülenir.

Benzer şekilde, Mimari>Yeni Kod Haritası veya Dosya>Yeni Dosya'yı seçerek çözümünüze eklemeden yeni>bir kod eşleme dosyası oluşturabilirsiniz.

Daha fazla bilgi edinin:

Çözümünüz için kod haritası oluşturma

Çözümünüzdeki tüm bağımlılıkları görmek için:

  1. Menü çubuğunda Çözüm için Mimari>Kod Eşlemesi Oluştur'u seçin. Kodunuzu son oluşturduğunuzdan bu yana değişmemişse, bunun yerine Derlemeden Çözüm için Mimari>Kod Haritası Oluştur'a seçebilirsiniz.

    Generate a code map command

    Aralarındaki en üst düzey derlemeleri ve toplu bağlantıları gösteren bir harita oluşturulur. Toplama bağlantısı ne kadar genişse, o kadar fazla bağımlılık temsil eder.

  2. Proje türü simgelerinin (Test, Web ve Telefon Project gibi), kod öğelerinin (Sınıflar, Yöntemler ve Özellikler gibi) ve ilişki türlerinin (Devralma Kaynak, Uygulama ve Çağrılar gibi) listesini göstermek veya gizlemek için kod eşlemesi araç çubuğundaki Gösterge düğmesini kullanın.

    Top-level dependency graph of assemblies

    Bu örnek çözüm Çözüm Klasörleri (Testler ve Bileşenler), Test Projeleri, Web Projeleri ve derlemeler içerir. Varsayılan olarak, tüm kapsama ilişkileri gruplar olarak görünür ve bunu genişletip daraltabilirsiniz. Dışlar grubu, platform bağımlılıkları dahil olmak üzere çözümünüzün dışındaki her şeyi içerir. Dış derlemeler yalnızca kullanılan öğeleri gösterir. Sistem temel türleri, dağınıklığı azaltmak için varsayılan olarak haritada gizlenir.

  3. Haritanın detayına gitmek için projeleri ve derlemeleri temsil eden grupları genişletin. CTRL+A tuşlarına basarak tüm düğümleri seçip ardından kısayol menüsünden Gruplandır, Genişlet'i seçerek her şeyi genişletebilirsiniz.

    Expanding all groups in a code map

  4. Ancak, bu büyük bir çözüm için yararlı olmayabilir. Aslında, karmaşık çözümler için bellek sınırlamaları tüm grupları genişletmenizi engelleyebilir. Bunun yerine, tek bir düğümün içini görmek için genişletin. Fare işaretçinizi düğümün üzerine getirin ve göründüğünde köşeli çift ayraç (aşağı ok) öğesine tıklayın.

    Expanding a node in a code map

    İsterseniz, öğeyi seçip artı tuşuna (+ ) basarak da klavyeyi kullanabilirsiniz. Daha derin kod düzeylerini keşfetmek için ad alanları, türler ve üyeler için aynı işlemi yapın.

    İpucu

    Fare, klavye ve dokunma kullanarak kod haritalarıyla çalışma hakkında daha fazla ayrıntı için bkz . Kod haritalarına göz atma ve yeniden düzenleme.

  5. Haritayı basitleştirmek ve tek tek parçalara odaklanmak için kod haritası araç çubuğunda Filtreler'i seçin ve yalnızca ilgilendiğiniz düğüm ve bağlantı türlerini seçin. Örneğin, tüm Çözüm Klasörü ve Derleme kapsayıcılarını gizleyebilirsiniz.

    Simplify the map by filtering containers

    Ayrıca, temel alınan çözüm kodunu etkilemeden tek tek grupları ve öğeleri haritadan gizleyerek veya kaldırarak haritayı basitleştirebilirsiniz.

  6. Öğeler arasındaki ilişkileri görmek için bunları haritada seçin. Bağlantıların renkleri, Gösterge bölmesinde gösterildiği gibi ilişki türlerini gösterir.

    View dependencies across your solutions

    Bu örnekte mor bağlantılar çağrılar, noktalı bağlantılar başvurular ve açık mavi bağlantılar ise alan erişimidir. Yeşil bağlantılar devralma olabilir veya birden fazla ilişki türünü (veya kategoriyi) gösteren toplu bağlantılar olabilir.

    İpucu

    Yeşil bir bağlantı görürseniz, bu yalnızca bir devralma ilişkisi olduğu anlamına gelmez. Yöntem çağrıları da olabilir, ancak bunlar devralma ilişkisi tarafından gizlenir. Belirli bağlantı türlerini görmek için Filtreler bölmesindeki onay kutularını kullanarak ilgilenmediğiniz türleri gizleyin.

  7. Bir öğe veya bağlantı hakkında daha fazla bilgi edinmek için, araç ipucu görünene kadar işaretçiyi üzerine taşıyın. Bu, bir kod öğesinin veya bağlantının temsil ettiği kategorilerin ayrıntılarını gösterir.

    Show the categories of a relationship

  8. Toplama bağlantısıyla temsil edilen öğeleri ve bağımlılıkları incelemek için önce bağlantıyı seçin ve ardından kısayol menüsünü açın. Katkıda Bulunan Bağlantıları Göster'i (veya Yeni Kod Haritasında Katkıda Bulunan Bağlantıları Göster)'i seçin. Bu işlem, bağlantının her iki ucundaki grupları genişletir ve yalnızca bağlantıya katılan öğeleri ve bağımlılıkları gösterir.

  9. Haritanın belirli bölümlerine odaklanmak için ilgilenmediğiniz öğeleri kaldırmaya devam edebilirsiniz. Örneğin, sınıf ve üye görünümünde detaya gitmek için Filtreler bölmesindeki tüm ad alanı düğümlerini filtrelemeniz yeterlidir.

    Drilling down to class and member level

  10. Karmaşık bir çözüm haritasına odaklanmanın bir diğer yolu da mevcut bir haritadan seçilen öğeleri içeren yeni bir harita oluşturmaktır. Odaklanmak istediğiniz öğeleri seçerken Ctrl tuşunu basılı tutun, kısayol menüsünü açın ve Seçimden Yeni Grafik'i seçin.

    Show selected items on a new code map

  11. İçeren bağlam yeni haritaya taşınır. Filtreler bölmesini kullanarak görmek istemediğiniz Çözüm Klasörleri'ni ve diğer kapsayıcıları gizleyin.

    Filter the containers to simplify the view

  12. İlişkileri görüntülemek için grupları genişletin ve haritadaki öğeleri seçin.

    Select items to view the relationships

Ayrıca bkz:

Bağımlılıkları görüntüleme

Bekleyen değişiklikleri olan bazı dosyalarda gerçekleştirmek için bir kod gözden geçirmeniz olduğunu varsayalım. Bu değişikliklerdeki bağımlılıkları görmek için bu dosyalardan bir kod eşlemesi oluşturabilirsiniz.

Show specific dependencies on a code map

  1. Çözüm Gezgini eşlemek istediğiniz projeleri, derleme başvurularını, klasörleri, dosyaları, türleri veya üyeleri seçin.

    Select the items you want to map

  2. Çözüm Gezgini araç çubuğunda Kod HaritasındaCreate New Graph From Selected Nodes Button Göster'i seçin. Alternatif olarak, bir veya bir öğe grubunun kısayol menüsünü açın ve Kod Eşlemesinde Göster'i seçin.

    Ayrıca öğeleri Çözüm Gezgini, Sınıf Görünümü veya Nesne Tarayıcısı'ndan yeni veya mevcut bir kod haritasına sürükleyebilirsiniz. Öğelerinizin üst hiyerarşisini eklemek için, öğeleri sürüklerken Ctrl tuşunu basılı tutun veya varsayılan eylemi belirtmek için kod eşlemesi araç çubuğundaki Üst Öğeleri Ekle düğmesini kullanın. Derleme dosyalarını Windows Gezgini gibi Visual Studio dışından da sürükleyebilirsiniz.

    Not

    Windows Telefon veya Microsoft Store gibi birden çok uygulama arasında paylaşılan bir projeden öğeler eklediğinizde, bu öğeler o anda etkin olan uygulama projesiyle haritada görünür. Bağlamı başka bir uygulama projesi olarak değiştirirseniz ve paylaşılan projeden daha fazla öğe eklerseniz, bu öğeler yeni etkin olan uygulama projesiyle görünür. Eşleme üzerinde bir öğeyle gerçekleştirdiğiniz işlemler, yalnızca aynı bağlamı paylaşılan öğeler için geçerlidir.

  3. Harita, seçili öğeleri içeren derlemeleri içinde gösterir.

    Selected items shown as groups on the map

  4. Öğeleri keşfetmek için genişletin. Fare işaretçisini öğenin üzerine getirin, ardından göründüğünde köşeli çift ayraç (aşağı ok) simgesine tıklayın.

    Expand a node in a code map

    Tüm öğeleri genişletmek için, Ctrl+A kullanarak öğeleri seçin, ardından haritanın kısayol menüsünü açın ve Grup>Genişlet'i seçin. Ancak, tüm grupların genişletilmesi kullanılamayan bir harita veya bellek sorunları oluşturuyorsa bu seçenek kullanılamaz.

  5. İlgilendiğiniz öğeleri sınıfa ve gerekirse üye düzeyine kadar genişletmeye devam edin.

    Expand groups to class and member level

    Kodda yer alan ancak haritada görünmeyen üyeleri görmek için, grubun sol üst köşesindeki Alt Öğeleri Yeniden Oluştur simgesineRefetch Children Icontıklayın.

  6. Haritadaki öğelerle ilgili daha fazla öğe görmek için birini seçin ve kod haritası araç çubuğunda İlişkilileri Göster'i seçin, ardından haritaya eklenecek ilgili öğelerin türünü seçin. Alternatif olarak, bir veya daha fazla öğe seçin, kısayol menüsünü açın ve ardından haritaya eklenecek ilgili öğelerin türü için Göster seçeneğini belirleyin. Örneğin:

    Derleme için şunları seçin:

    Seçenek Açıklama
    Derlemeleri Göster Bu Başvurular Bu derlemenin başvurduğu derlemeleri ekleyin. Dış derlemeler Dışlar grubunda görünür.
    Buna Başvuran Derlemeleri Göster Çözümde bu derlemeye başvuran derlemeleri ekleyin.

    Bir ad alanı için, görünür değilse, İçeren Derlemeyi Göster'i seçin.

    Sınıf veya arabirim için şunları seçin:

    Seçenek Açıklama
    Temel Türleri Göster Bir sınıf için taban sınıfı ve uygulanan arabirimleri ekleyin.

    Bir arabirim için temel arabirimleri ekleyin.
    Türetilmiş Türleri Göster Bir sınıf için türetilmiş sınıfları ekleyin.

    Bir arabirim için türetilmiş arabirimleri ve uygulama sınıflarını veya yapılarını ekleyin.
    Bu Başvuruların Türlerini Göster Tüm sınıfları ve bu sınıfın kullandığı üyeleri ekleyin.
    Buna Başvuran Türleri Göster Tüm sınıfları ve bu sınıfı kullanan üyelerini ekleyin.
    İçeren Ad Alanını Göster Üst ad alanını ekleyin.
    İçeren Ad Alanı ve Derlemeyi Göster Üst kapsayıcı hiyerarşisini ekleyin.
    Tüm Temel Türleri Göster Yinelemeli olarak taban sınıf veya arabirim hiyerarşisi ekleyin.
    Türetilmiş Tüm Türleri Göster Bir sınıf için tüm türetilmiş sınıfları yinelemeli olarak ekleyin.

    Bir arabirim için türetilmiş tüm arabirimleri ve uygulama sınıflarını veya yapılarını yinelemeli olarak ekleyin.

    Bir yöntem için şunları seçin:

    Seçenek Açıklama
    Bu Çağrıların Yöntemlerini Göster Bu yöntemin çağırdığı yöntemleri ekleyin.
    Bu Başvuruların Alanlarını Göster Bu yöntemin başvurduğu alanları ekleyin.
    İçeren Türü Göster Üst türü ekleyin.
    İçeren Türü, Ad Alanını ve Derlemeyi Göster Üst kapsayıcı hiyerarşisini ekleyin.
    Geçersiz Kılınan Yöntemleri Göster Diğer yöntemleri geçersiz kılan veya bir arabirimin yöntemini uygulayan bir yöntem için geçersiz kılınan taban sınıflardaki tüm soyut ya da sanal yöntemleri ve varsa arabirimin uygulanan yöntemini ekleyin.

    Bir alan veya özellik için şunları seçin:

    Seçenek Açıklama
    İçeren Türü Göster Üst türü ekleyin.
    İçeren Türü, Ad Alanını ve Derlemeyi Göster Üst kapsayıcı hiyerarşisini ekleyin.

    Show methods called by this member

  7. Harita ilişkileri gösterir. Bu örnekte, eşleme yöntemi tarafından Find çağrılan yöntemleri ve çözümdeki veya harici konumlarını gösterir.

    Show specific dependencies on a code map

  8. Haritayı basitleştirmek ve tek tek parçalara odaklanmak için kod haritası araç çubuğunda Filtreler'i seçin ve yalnızca ilgilendiğiniz düğüm ve bağlantı türlerini seçin. Örneğin, Çözüm Klasörleri, Derlemeler ve Ad Alanları'nın görüntülenmesini kapatın.

    Use the Filter pane to simplify the display