Aracılığıyla paylaş


Etki Alanına Özgü Dil Tanımlama

Etki alanına özgü bir dil (DSL) tanımlamak için bir şablondan Visual Studio çözümü oluşturursunuz. Çözümün en önemli kısmı DslDefinition.dsl dosyasında depolanan DSL Tanımı diyagramıdır. DSL Tanımı, DSL'nin sınıflarını ve şekillerini tanımlar. Bu öğeleri değiştirip ekledikten sonra, DSL'yi daha ayrıntılı olarak özelleştirmek için program kodu ekleyebilirsiniz.

DLL'leri yeni kullanıyorsanız, DSL Araçları Laboratuvarı'nda çalışmanızı öneririz. Bu sitede bulabilirsiniz: Görselleştirme ve Modelleme SDK'sı

Şablon Çözümü Seçme

DSL tanımlamak için aşağıdaki bileşenleri yüklemiş olmanız gerekir:

  • Visual Studio
  • Visual Studio uzantısı geliştirme iş yükü (Visual Studio SDK'sını içerir)
  • Modelleme SDK'sı (Visual Studio'da tek bir bileşen olarak yükleyin)

Not

Metin Şablonu Dönüştürme bileşeni, Visual Studio uzantısı geliştirme iş yükünün bir parçası olarak otomatik olarak yüklenir. Ayrıca Visual Studio Yükleyicisi Tek tek bileşenler sekmesinden SDK'lar, kitaplıklar ve çerçeveler kategorisinin altından da yükleyebilirsiniz. Tek tek bileşenler sekmesinden Modelleme SDK'sı bileşenini yükleyin.

Etki alanına özgü yeni bir dil oluşturmak için, Etki Alanına Özgü Dil proje şablonunu kullanarak yeni bir Visual Studio çözümü oluşturursunuz.

DSL çözümü oluşturmak için

  1. Yeni bir Etki Alanına Özgü Dil projesi oluşturun.

    Etki Alanına Özgü Dil Sihirbazı açılır ve şablon DSL çözümlerinin listesini görüntüler.

  2. Bir açıklama görmek için her şablona tıklayın. Oluşturmak istediğinize en çok benzeyen çözümü seçin.

    Her DSL şablonu temel bir çalışan DSL tanımlar. Bu DSL'yi kendi gereksinimlerinize uyacak şekilde düzenleyebilirsiniz.

    Daha fazla bilgi için her örneğe tıklayın.

    • Kulvarları olan bir DSL oluşturmak için Görev Akışı'na tıklayın. Kulvarlar diyagramın dikey veya yatay bölümleridir.

    • Bağlantı noktaları olan bir DSL oluşturmak için Bileşen Modelleri'ni seçin. Bağlantı noktaları, daha büyük bir şeklin kenarındaki küçük şekillerdir.

    • Bölme şekillerine sahip bir DSL tanımlamak için Sınıf Diyagramları'na tıklayın. Bölme şekilleri öğe listeleri içerir.

    • Diğer durumlarda veya emin değilseniz En Düşük Dil'i seçin.

    • Windows Forms veya WPF yüzeyinde görüntülenen bir DSL oluşturmak için En Az WinForm Tasarımcısı'nı veya Minimal WPF Tasarımcısı'nı seçin. Düzenleyiciyi tanımlamak için kod yazmanız gerekir. Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

      Windows Forms Tabanlı Etki Alanına Özgü Dil Oluşturma

      WPF Tabanlı Etki Alanına Özgü Dil Oluşturma

  3. Uygun sihirbaz sayfasına DSL'niz için bir dosya adı uzantısı girin. Bu, DSL'nizin örneklerini içeren dosyaların kullanacağı uzantıdır.

    • Bilgisayarınızdaki veya DSL'yi yüklemek istediğiniz herhangi bir bilgisayarda herhangi bir uygulamayla ilişkilendirilmemiş bir dosya adı uzantısı seçin. Örneğin, docx ve htm kabul edilemez dosya adı uzantıları olabilir.

    • Girdiğiniz uzantı DSL olarak kullanılıyorsa sihirbaz sizi uyarır. Farklı bir dosya adı uzantısı kullanmayı göz önünde bulundurun. Eski deneysel tasarımcıları temizlemek için Visual Studio SDK Deneysel örneğini de sıfırlayabilirsiniz. Windows Başlat menüsünde Visual Studio'yu sıfırla yazın ve ardından Visual Studio sürümünüzle eşleşen Microsoft Visual Studio Deneysel Örneğini Sıfırla komutunu çalıştırın.

  4. Diğer sayfalardaki ayarları değiştirebilir veya varsayılan değerleri bırakabilirsiniz.

  5. Finish (Son) düğmesine tıklayın.

    Sihirbaz, iki veya üç proje içeren bir çözüm oluşturur ve DSL tanımından kod oluşturur.

    Kullanıcı arabirimi artık aşağıdaki resme benzer.

    dsl tasarımcısı

    Bu çözüm, etki alanına özgü bir dili tanımlar. Daha fazla bilgi için bkz . Etki Alanına Özgü Dil Araçları Kullanıcı Arabirimine Genel Bakış.

Çözümü Test Edin

Şablon çözümü, olduğu gibi değiştirebileceğiniz veya kullanabileceğiniz çalışan bir DSL sağlar.

Çözümü test etmek için F5 veya CTRL+F5 tuşlarına basın. Visual Studio'nun yeni bir örneği deneysel modda açılır.

Visual Studio'nun yeni örneğinde, Çözüm Gezgini Örnek dosyasını açın. Araç kutusuyla diyagram olarak açılır.

En Az Dil şablonundan oluşturduğunuz bir çözümü çalıştırırsanız, deneysel Visual Studio'nuz aşağıdaki örneğe benzer:

Visual Studio'da etki alanına özgü dil örnek ağacı

Araçlarla denemeler yapın. Öğeleri oluşturun ve bağlayın.

Visual Studio'nun deneysel örneğini kapatın.

Not

DSL'yi değiştirdiğinizde, şekilleri artık Örnek test dosyasında göremezsiniz. Ancak, yeni öğeler oluşturabilirsiniz.

Şablon DSL'sini değiştirme

Şablon DSL tanımında etki alanı sınıflarının ve şekil sınıflarının bir kısmını veya tümünü yeniden adlandırın ve saklayın. Yeni sınıf adlarınız, boşluk veya noktalama işaretleri olmadan geçerli CLR adları olmalıdır.

Bu sınıfları tutmak özellikle yararlıdır:

  • Kök sınıf, DSL Tanımı diyagramının sol üst kısmında, Sınıflar ve İlişkiler altında görünür. Dsl'den farklı bir adla yeniden adlandırın. Örneğin, MusicLibrary adlı bir DSL'nin Music adlı bir kök sınıfı olabilir.

  • Diyagram sınıfı, DSL Tanımı diyagramının sağ alt kısmında, Diyagram Öğeleri sütununda görüntülenir. Görmek için sağa kaydırmanız gerekebilir. Genellikle YourDslDiyagramı olarak adlandırılır.

  • Görev Akışı şablonunu kullandıysanız ve kulvarlarla diyagramlar oluşturmak istiyorsanız Actor etki alanı sınıfını ve ActorSwimlane şeklini koruyun ve yeniden adlandırın.

    Gereksinimlerinize uyacak şekilde diğer sınıfları silin veya yeniden adlandırın.

DSL Tanımlama Desenleri

Bir kerede bir veya iki özellik ekleyerek veya ayarlayarak DSL geliştirmenizi öneririz. Bir özellik ekleyin, DSL'yi çalıştırın ve test edin ve ardından bir veya iki özellik daha ekleyin. DSL'nizin tipik bir özelliği şu olabilir:

  • Etki alanı sınıfı, öğeyi modele bağlayan ekleme ilişkisi, diyagramda o sınıfın öğelerini görüntülemek için gereken şekil ve kullanıcıların öğe oluşturmasına olanak tanıyan öğe aracı.

  • Bir etki alanı sınıfının etki alanı özellikleri ve bunları bir şekilde görüntüleyen dekoratörler.

  • Bir başvuru ilişkisi ve bunu diyagramda görüntüleyen bağlayıcı ve kullanıcıların bağlantı oluşturmasına olanak tanıyan bağlayıcı aracı.

  • Doğrulama kısıtlaması veya menü komutu gibi program kodu gerektiren özelleştirme.

    Aşağıdaki bölümlerde, en kullanışlı DSL özellikleri türlerinin nasıl yapıldığı açıklanmaktadır. DSL'nin oluşturulabileceği başka birçok desen vardır, ancak bunlar en sık kullanılan desenlerdir.

Not

Bir özellik ekledikten sonra DSL'nizi derlemeden ve çalıştırmadan önce Çözüm Gezgini araç çubuğundaki Tüm Şablonları Dönüştür'e tıklamayı unutmayın.

Aşağıdaki şekilde, bu konuda örnek olarak kullanılan DSL'nin sınıflar ve ilişkiler bölümü gösterilmektedir.

Ekleme ve Başvuru ilişkileri

Sonraki şekilde bu DSL'nin örnek modeli verilmiştir:

Oluşturulan DSL'nin örnek modeli

Not

"Model", kullanıcıların oluşturduğu DSL örneğinizi ifade eder ve genellikle diyagram olarak görüntülenir. Bu konu başlığında hem DSL Tanımı diyagramı hem de DSL'niz kullanıldığında görüntülenen model diyagramları açıklanmaktadır.

Etki Alanı Sınıflarını Tanımlama

Etki Alanı Sınıfları DSL'nizin kavramlarını temsil ediyor. Örnekler model öğeleridir. Örneğin bir MusicLibrary DSL'de Album ve Song adlı Etki Alanı Sınıflarınız olabilir.

Etki alanı sınıfı oluşturmak için Adlandırılmış Etki Alanı Sınıfı aracından diyagrama sürükleyebilir ve sonra sınıfı yeniden adlandırabilirsiniz.

Daha fazla bilgi için bkz . Etki Alanı Sınıflarının Özellikleri.

Her Etki Alanı Sınıfı için Ekleme İlişkisi Oluşturma

Kök sınıf dışındaki her etki alanı sınıfı en az bir ekleme ilişkisinin hedefi olmalıdır veya ekleme ilişkisinin hedefi olan bir sınıftan devralmalıdır.

Modelde, her model öğesi ilişkileri eklemenin tek bir ağacındaki bir düğümdür. Ekleme ilişkisinin kaynağı ve hedefi genellikle üst ve alt öğe olarak adlandırılır.

Bir etki alanı sınıfı için üst öğe seçimi, öğelerinin yaşam sürelerinin diğer öğelere nasıl bağlı olmasını istediğinize bağlıdır. Bir ağacın düğümü silinirse, alt ağacı da genellikle silinir. Bu nedenle, bağımsız varoluşu olan öğenin sınıfları doğrudan kök sınıfın altına eklenir.

Genellikle, bir öğeyi başka bir öğenin içinde görüntülerseniz, sahip ilişkisini belirtmek istersiniz. Bu durumda, en uygun üst sınıf kapsayıcının sınıfıdır. Özel durum, kapsayıcının içinde gördüğünüz öğenin aslında bağımsız bir öğeye başvuru bağlantısı olmasıdır. Bu durumda kapsayıcı silindiğinde başvuru silinir ancak hedef silinmez.

Bu konu başlığında açıklanan DSL tanımı desenlerinde, kapsayıcı silindiğinde kapsayıcı içinde görüntülenen öğelerin silineceğini varsayacağız. Daha karmaşık düzenler mümkündür ve kurallar tanımlanarak gerçekleştirilebilir.

Öğe nasıl görüntülenir? Parent (embedding) sınıfı DSL Çözüm Şablonu örneği
Diyagramdaki şekil.

Kulvar.
DSL'nin kök sınıfı. Minimal Dil.

Görev Akışı: Aktör sınıfı.
Kulvar şeklinde. Kulvar olarak görüntülenen öğelerin etki alanı sınıfı. Görev Akışı: Görev sınıfı.
Listedeki öğe, kapsayıcı silinirse öğenin silindiği şekildedir.

Şeklin kenarındaki bağlantı noktası.
Kapsayıcı şekline eşlenen etki alanı sınıfı. Sınıf diyagramı: Öznitelik sınıfı.

Bileşen diyagramı: Bağlantı noktası sınıfı.
Listedeki öğe, kapsayıcı silinirse silinmez. DSL'nin kök sınıfı.

Listede başvuru bağlantıları görüntülenir.
Doğrudan görüntülenmez. Bölümü oluşturan sınıfı.

Müzik Kitaplığı örneğinde Albümler, Şarkı başlıklarının listelendiği dikdörtgenler olarak görüntülenir. Bu nedenle Albüm'ün ebeveyni Müzik kök sınıfı, Song'un da ebeveyni Albüm'dür.

Aynı anda bir etki alanı sınıfı ve onun eklemesini oluşturmak için, İlişki Ekleme aracına tıklayın, sonra üst sınıfa tıklayın ve sonra diyagramın boş bir bölümüne tıklayın.

Genellikle ekleme ilişkisinin adını ve rollerini ayarlamak gerekmez, çünkü sınıf adlarını otomatik olarak izlerler.

Daha fazla bilgi için bkz . Etki Alanı İlişkilerinin Özellikleri ve Etki Alanı Rollerinin Özellikleri.

Not

Ekleme, devralma ile aynı değildir. Ekleme ilişkisindeki çocuklar, özellikleri ebeveynlerinden devralmaz.

Her Etki Alanı Sınıfına Etki Alanı Özellikleri Ekleme

Etki alanı özellikleri değerleri depolar. Örnekler şunlardır: Ad, Başlık, Yayın Tarihi.

Sınıfta Etki Alanı Özellikleri'ne tıklayın, ENTER tuşuna basın ve ardından bir özelliğin adını yazın. Etki alanı özelliğinin varsayılan türü String'dir. Türü değiştirmek istiyorsanız, etki alanı özelliğini seçin ve Özellikler penceresinde Tür'ünü ayarlayın. İstediğiniz tür açılan listede yoksa bkz . Özellik Türleri Ekleme.

Bir Öğe Adı özelliği ayarlayın. Dil gezginindeki öğeleri tanımlamak için kullanılabilecek bir etki alanı özelliği seçin. Örneğin, Song etki alanı sınıfında Başlık etki alanı özelliğini seçebilirsiniz. Özellikler penceresinde, Öğe Adı true olarak ayarlayın.

Türetilmiş Etki Alanı Sınıfları Oluşturma

Bir etki alanı sınıfının özelliklerini ve ilişkilerini devralan değişkenlere sahip olmasını istiyorsanız, ondan türetilen sınıflar oluşturun. Örneğin, Albüm WMA ve MP3 türetilmiş sınıflara sahip olabilir.

Etki Alanı Sınıfı aracını kullanarak türetilmiş sınıfı oluşturun.

Devralma aracına tıklayın, türetilen sınıfa tıklayın ve ardından temel sınıfa tıklayın.

Temel sınıfın Devralma Değiştiricisi'ni soyut olacak şekilde ayarlamayı göz önünde bulundurun. Temel sınıfın örneklerine ihtiyacınız olabileceğini düşünüyorsanız, bunun yerine onlar için ayrı bir türetilmiş sınıf oluşturmayı göz önünde bulundurun.

Türetilmiş sınıflar, temel sınıflarının özelliklerini ve rollerini devralır.

DSL Tanım Diyagramını Düzenleme

İlişki eklediğinizde, bazı sınıflarınız birden fazla yerde görünür. Görünüm sayısını azaltmak ve diyagramı genişletmek için, bir ilişkinin hedef sınıfına sağ tıklayın ve ardından Ağacı Buraya Getir'e tıklayın. Ters etki için, bir ilişkinin hedef sınıfına sağ tıklayın ve Ağacı Böl'e tıklayın. Bu menü komutlarını görmüyorsanız yalnızca etki alanı sınıfının seçili olduğundan emin olun.

Etki alanı sınıflarını ve şekil sınıflarını taşımak için CTRL+Yukarı ve CTRL+Aşağı tuşlarını kullanın.

Etki alanı sınıflarını test edin

Yeni Etki Alanı Sınıflarını test etmek için
  1. DSL tasarımcısı kodunu oluşturmak için Çözüm Gezgini araç çubuğundaKi Tüm Şablonları Dönüştür'e tıklayın. Bu adımı otomatikleştirebilirsiniz. Daha fazla bilgi için bkz . Tüm Şablonları Dönüştürmeyi Otomatikleştirme.

  2. DSL'yi derleyin ve çalıştırın. Deneysel modda yeni bir Visual Studio örneği çalıştırmak için F5 veya CTRL+F5 tuşlarına basın. Visual Studio'nun deneysel örneğinde DSL'nizin dosya adı uzantısına sahip bir dosya açın veya oluşturun.

  3. Gezgin'i açın. Diyagramın yanında dil gezgini penceresi bulunur ve bu pencere genellikle YourLanguage Explorer olarak adlandırılır. Bu pencereyi görmüyorsanız, Çözüm Gezgini altındaki bir sekmede olabilir. Bulamıyorsanız, Görünüm menüsünde Diğer Windows'un üzerine gelin ve Ardından Dil Gezgininiz'e tıklayın.

    Gezgininiz modelin ağaç görünümünü sunar.

  4. Yeni öğeler oluşturun. Üstteki kök düğüme sağ tıklayın ve ardından YeniSınıfınızı Ekle'ye tıklayın.

    Dil Gezgini'nde sınıfınızın yeni bir örneği görüntülenir.

  5. Yeni örnekler oluşturduğunuzda her örneğin farklı bir ada sahip olduğunu doğrulayın. Bu yalnızca bir etki alanı özelliğinde öğe adı bayrağını ayarladıysanız oluşur.

  6. Etki alanı özelliklerini inceleyin. Sınıfınızın bir örneği seçiliyken, Özellikler penceresi inceleyin. Bu etki alanı sınıfında tanımladığınız etki alanı özelliklerini göstermelidir.

  7. Dosyayı kaydedin, kapatın ve yeniden açın. Oluşturduğunuz tüm örnekler, düğümleri genişlettikten sonra gezginde görünür olmalıdır.

Diyagramda Şekil Tanımlama

Diyagramda dikdörtgen, üç nokta veya simge olarak görünen öğe sınıflarını tanımlayabilirsiniz.

Diyagramda şekil olarak görünen öğe sınıfını tanımlamak için

  1. Etki Alanı Sınıflarını Tanımlama bölümündeaçıklandığı gibi bir etki alanı sınıfı tanımlayın ve test edin.

    • sınıfının üst öğesi kök sınıf olmalıdır. Başka bir ifadeyle, kök sınıf ile yeni etki alanı sınıfı arasında bir ekleme ilişkisi olmalıdır.

    • Diyagramınızda kulvarlar varsa, üst öğe bir kulvarla eşlenen etki alanı sınıfı olabilir. Bu yordama devam etmeden önce bkz . Kulvarları olan bir DSL tanımlama.

  2. Model diyagramındaki öğeleri temsil etmek için bir şekil sınıfı ekleyin. Aşağıdaki araçlardan birini DSL Tanımı diyagramına sürükleyin:

    • Geometri Şekli bir dikdörtgen veya üç nokta sağlar.

    • Görüntü Şekli , sağladığınız bir görüntüyü görüntüler.

    • Bölme Şekli , bir veya daha fazla öğe listesi içeren bir dikdörtgendir.

      DSL Tanımı diyagramının sağ tarafında Şekiller ve Bağlayıcılar altında görünecek şekil sınıfını yeniden adlandırın.

  3. Görüntü şekli oluşturduysanız, bir resim tanımlayın.

    1. Herhangi bir boyutta bir görüntü dosyası oluşturun. BMP, JPEG, GIF ve EMF biçimleri desteklenir.

    2. Çözüm Gezgini dosyasını Dsl\Resources altındaki çözüme ekleyin.

    3. DSL Tanımı diyagramına dönün ve yeni görüntü şekli sınıfını seçin.

    4. Özellikler penceresi Görüntü özelliğine tıklayın.

    5. Resim Seç iletişim kutusunda, Dosya adı'nın altındaki açılan menüye tıklayın ve resmi seçin.

  4. Etki alanı özelliklerini görüntülemek için şekle metin dekoratörleri ekleyin.

    Model öğesinin adını veya başlığını görüntülemek için büyük olasılıkla en az bir metin dekoratörü gerekir.

    Şekil sınıfının üst bilgisine sağ tıklayın, Ekle'nin üzerine gelin ve Metin Dekoratörü'ne tıklayın. Dekoratörün adını ayarlayın ve Özellikler penceresi Konumu'nu ayarlayın.

  5. Diyagram Öğesi Eşlemesi ile her şekli görüntülemesi gereken etki alanı sınıfına bağlayın.

    Diyagram Öğesi Eşleme aracına tıklayın, sonra etki alanı sınıfına ve sonra şekil sınıfına tıklayın.

  6. Özellikleri metin dekoratörleriyle eşleyin.

    1. Etki alanı sınıfı ile diyagram öğesi eşlemesini temsil eden şekil sınıfı arasındaki gri çizgiyi seçin.

    2. DSL Ayrıntıları penceresinde Dekoratör Haritalar sekmesine tıklayın. DSL Ayrıntıları penceresini görmüyorsanız, Görünüm menüsünde Diğer Windows'un üzerine gelin ve DSL Ayrıntıları'na tıklayın. Sık sık tüm içeriğini görmek için bu pencerenin üst kısmının yükseltilmesi gerekir.

    3. Dekoratör adını seçin. Özellik görüntüle'nin altında, etki alanı sınıfının bir özelliğinin adını seçin. Bunu her dekoratör için yineleyin.

      İlgili bir öğenin özelliğini görüntülemek istiyorsanız, Özelliği görüntülemek için yol'un altındaki açılan ağaç gezginine tıklayın.

    4. Her dekoratör adının yanında bir onay işareti göründüğüne emin olun.

      Şekil Eşlemeleri ve DSL Ayrıntıları penceresi

  7. Etki alanı sınıfının öğelerini oluşturmak için bir araç kutusu öğesi yapın.

    1. DSL Gezgini'nde Düzenleyici düğümünü ve tüm alt düğümlerini genişletin.

    2. DSL'nizle aynı ada sahip Araç Kutusu Sekmeleri'nin altındaki düğüme sağ tıklayın, örneğin MusicLibrary. Öğe Ekle Aracı'nı tıklatın.

      Not

      Araçlar düğümüne sağ tıklarsanız Öğe Ekleme Aracı'nı görmezsiniz. Bunun yerine, üstündeki düğüme tıklayın.

    3. Yeni öğe aracının seçili olduğu Özellikler penceresi, Sınıf'ı yakın zamanda eklediğiniz etki alanı sınıfına ayarlayın.

    4. Resim Yazısı ve Araç İpucu'nu ayarlayın.

    5. Araç Kutusu Simgesi'ni araç kutusunda görünecek bir simge olarak ayarlayın. Bunu yeni bir simgeye veya başka bir araç için zaten kullanılan bir simgeye ayarlayabilirsiniz.

      Yeni bir simge oluşturmak için Çözüm Gezgini Dsl\Resources'ı açın. Mevcut öğe aracı BMP dosyalarından birini kopyalayıp yapıştırın. Yapıştırılan kopyayı yeniden adlandırın ve düzenlemek için çift tıklayın.

      DSL Tanımı diyagramına dönün, aracı seçin ve Özellikler penceresi Araç Kutusu Simgesi'nde [...] öğesine tıklayın. Bit Eşlem Seç iletişim kutusunda, açılan menüden .BMP dosyanızı seçin.

    Daha fazla bilgi için bkz. Geometri Şekillerinin Özellikleri ve Görüntü Şekillerinin Özellikleri.

Şekilleri Test Etmek için

  1. DSL tasarımcısı kodunu oluşturmak için Çözüm Gezgini araç çubuğundaKi Tüm Şablonları Dönüştür'e tıklayın.

  2. DSL'yi derleyin ve çalıştırın. Deneysel modda yeni bir Visual Studio örneği çalıştırmak için F5 veya CTRL+F5 tuşlarına basın. Visual Studio'nun deneysel örneğinde DSL'nizin dosya adı uzantısına sahip bir dosya açın veya oluşturun.

  3. Araç kutusunda öğe araçlarının göründüğünü doğrulayın.

  4. Bir araçtan model diyagramına sürükleyerek şekiller oluşturun.

  5. Her metin dekoratörün göründüğünü ve şunları doğrulayın:

    1. Etki alanı özelliğinde Kullanıcı Arabirimi Salt Okunur bayrağını ayarlamadığınız sürece düzenleyebilirsiniz.

    2. özelliği Özellikler penceresi veya dekoratörde düzenlediğinizde, diğer görünüm güncelleştirilir.

    Bir şekli ilk test ettikten sonra bazı özelliklerini ayarlamak ve daha gelişmiş özellikler eklemek isteyebilirsiniz. Daha fazla bilgi için bkz . Etki Alanına Özgü Dili Özelleştirme ve Genişletme.

Başvuru İlişkilerini Tanımlama

Herhangi bir kaynak etki alanı sınıfı ile herhangi bir hedef etki alanı sınıfı arasında bir başvuru ilişkisi tanımlayabilirsiniz. Başvuru ilişkileri genellikle diyagramda şekiller arasındaki çizgiler olan bağlayıcılar olarak görüntülenir.

Örneğin, müzik Albümleri ve Sanatçılar diyagramınızda şekil olarak görüntüleniyorsa, Sanatçıları üzerinde çalıştıkları Albümlere bağlayan ArtistsAppearedOnAlbums adlı bir ilişki tanımlayabilirsiniz. Şekildeki örneklere bakın.

Oluşturulan DSL'nin örnek modeli

Başvuru ilişkileri aynı türdeki öğeleri de bağlayabilir. Örneğin, bir aile ağacını temsil eden BIR DSL'de, ebeveynler ve çocukları arasındaki ilişki, Kişi ile Kişi arasında bir başvuru ilişkisidir.

Başvuru İlişkisi Tanımlama

Başvuru İlişkisi aracına tıklayın, sonra ilişkinin kaynak etki alanı sınıfına ve ardından hedef etki alanı sınıfına tıklayın. Hedef sınıf, kaynak sınıfla aynı olabilir.

Her ilişkinin, ilişki kutusunun her tarafındaki çizgiyle temsil edilen iki rolü vardır. Her rolü seçebilir ve Özellikler penceresi özelliklerini ayarlayabilirsiniz.

Rolleri yeniden adlandırmayı göz önünde bulundurun. Örneğin, Kişi ve Kişi arasındaki bir ilişkide, varsayılan adları Ebeveynler ve Çocuklar, Yönetici ve AltLar, Öğretmen ve Öğrenci vb. olarak değiştirmek isteyebilirsiniz.

Gerekirse her rolün çarpımlarını ayarlayın. Her Kişinin en fazla bir Yöneticiye sahip olmasını istiyorsanız, diyagramdaki Yönetici etiketinin altında görünen çokluğu 0..1 olarak ayarlayın.

İlişkiye etki alanı özellikleri ekleyin. Şekilde, Sanatçı-Albüm ilişkisi rol özelliğine sahiptir.

Aynı model öğesi çifti arasında aynı sınıfın birden fazla bağlantısı varsa, ilişkinin Yinelemelere İzin Verir özelliğini ayarlayın. Örneğin, bir Öğretmenin aynı Öğrenciye birden fazla Konu öğretmesine izin vekleyebilirsiniz.

Bağlayıcılar için şekil eşlemeleri

Daha fazla bilgi için bkz . Etki Alanı İlişkilerinin Özellikleri ve Etki Alanı Rollerinin Özellikleri.

İlişkiyi Görüntülemek için Bağlayıcı Tanımlama

Bağlayıcı, model diyagramında iki şekil arasında bir çizgi görüntüler.

Bağlayıcı aracını DSL tanım diyagramına sürükleyin.

Bağlayıcıda etiketleri görüntülemek istiyorsanız metin dekoratörleri ekleyin. Konumlarını ayarlayın. Kullanıcının metin dekoratörünü taşımasına izin vermek için, Onun Taşınabilir özelliğini ayarlayın.

Bağlayıcıyı başvuru ilişkisine bağlamak için Diyagram Öğesi Eşleme aracını kullanın.

Diyagram öğesi haritası seçili durumdayken DSL Ayrıntıları penceresini açın ve Dekoratör Haritalar sekmesini açın.

Her Bir Dekoratör'e tıklayın ve Display özelliğini doğru etki alanı özelliğine ayarlayın.

Dekoratörler listesindeki her öğenin yanında bir onay işareti göründüğünden emin olun.

Bağlantı Oluşturucu Aracı Tanımlama

DSL Gezgini penceresinde Düzenleyici düğümünü ve tüm alt düğümlerini genişletin.

DSL'nizle aynı ada sahip düğüme sağ tıklayın ve ardından Yeni Bağlantı Aracı Ekle'ye tıklayın.

Yeni araç seçiliyken Özellikler penceresi:

  • Resim Yazısı ve Araç İpucu'nu ayarlayın.

  • Bağlantı Oluşturucusu'na tıklayın ve yeni ilişki için uygun oluşturucuyu seçin.

  • Araç Kutusu Simgesi'ni araç kutusunda görünmesini istediğiniz simge olarak ayarlayın. Bunu yeni bir simgeye veya başka bir araç için zaten kullanılan bir simgeye ayarlayabilirsiniz.

    Yeni bir simge oluşturmak için Çözüm Gezgini Dsl\Resources'ı açın. Mevcut öğe aracı BMP dosyalarından birini kopyalayıp yapıştırın. Yapıştırılan kopyayı yeniden adlandırın ve düzenlemek için çift tıklayın.

    DSL Tanımı diyagramına dönün, aracı seçin ve Özellikler penceresi Araç Kutusu Simgesi'nde [...] öğesine tıklayın. Bit Eşlem Seç iletişim kutusunda, açılan menüden .BMP dosyanızı seçin.

Başvuru İlişkisini ve Bağlayıcıyı Test Etmek için
  1. DSL tasarımcısı kodunu oluşturmak için Çözüm Gezgini araç çubuğundaKi Tüm Şablonları Dönüştür'e tıklayın.

  2. DSL'yi derleyin ve çalıştırın. Deneysel modda yeni bir Visual Studio örneği çalıştırmak için F5 veya CTRL+F5 tuşlarına basın. Visual Studio'nun deneysel örneğinde DSL'nizin dosya adı uzantısına sahip bir dosya açın veya oluşturun.

  3. Bağlantı aracının araç kutusunda göründüğünü doğrulayın.

  4. Bir araçtan model diyagramına sürükleyerek şekiller oluşturun.

  5. Şekiller arasında bağlantılar oluşturun. Bağlayıcı aracına tıklayın, şekle tıklayın ve sonra başka bir şekle tıklayın.

  6. Uygunsuz sınıflar arasında bağlantı oluşturamadığınızı doğrulayın. Örneğin, ilişkiniz Albümler ve Sanatçılar arasındaysa, Sanatçıları Sanatçılar'a bağlayamayacağınızı doğrulayın.

  7. Çarpımların doğru olduğunu doğrulayın. Örneğin, bir Kişiyi birden fazla yöneticiye bağlayamadığınızı doğrulayın.

  8. Her metin dekoratörün göründüğünü ve şunları doğrulayın:

    1. Etki alanı özelliğinde Kullanıcı Arabirimi Salt Okunur bayrağını ayarlamadığınız sürece düzenleyebilirsiniz.

    2. özelliği Özellikler penceresi veya dekoratörde düzenlediğinizde, diğer görünüm güncelleştirilir.

    Bağlayıcıyı ilk test ettikten sonra bazı özelliklerini ayarlamak ve daha gelişmiş özellikler eklemek isteyebilirsiniz. Daha fazla bilgi için bkz . Etki Alanına Özgü Dili Özelleştirme ve Genişletme.

Liste İçeren Şekilleri Tanımlama: Bölme Şekilleri

Bölme şekli bir veya daha fazla öğe listesi içerir. Örneğin, bir Müzik Kitaplığı DSL'sinde, müzik Albümlerini temsil etmek için bölme şekilleri kullanabilirsiniz. Her albümde Şarkılar listesi bulunur.

Bölme Şekli

DSL tanımında bu etkiyi elde etmenin en basit yönteminde kapsayıcı için bir etki alanı sınıfı ve her liste için bir etki alanı sınıfı tanımlarsınız. Kapsayıcı sınıfı, bölme şekline eşlenir.

Şekil haritası

Daha fazla bilgi için bkz . Bölme Şekillerinin Özellikleri.

Bölme Şekli tanımlamak için

  1. Kapsayıcı etki alanı sınıfını oluşturun. İlişki Ekleme aracına tıklayın, modelin kök sınıfına tıklayın ve ardından DSL tanım diyagramının boş bir bölümüne tıklayın. Bu, örnek şekilde Album adlı etki alanı sınıfını oluşturur.

    Alternatif olarak, kapsayıcıyı kök sınıfına eklemek yerine kulvarla eşlenmiş bir etki alanı sınıfına ekleyebilirsiniz.

    Sınıfına Ad gibi bir etki alanı özelliği ekleyin ve Özellikler penceresi Öğesi Adı bayrağını ayarlayın.

  2. Liste öğesi etki alanı sınıfını oluşturun. İlişki Ekleme aracına tıklayın, kapsayıcı sınıfına (Albüm) tıklayın ve sonra diyagramın boş bir bölümüne tıklayın. Bu, örnek şekilde Song adlı etki alanı sınıfını oluşturur.

    Sınıfa Title gibi bir etki alanı özelliği ekleyin ve Sınıf Adı bayrağını ayarlayın.

    Diğer etki alanı özelliklerini ekleyin.

    Görüntülemek istediğiniz her liste için başka bir liste öğesi etki alanı sınıfı ekleyin.

  3. Listedeki çeşitli öğe türlerini karıştırmak için, liste sınıfından devralan sınıflar oluşturun. Devralma Değiştiricisini ayarlayarak liste sınıfını soyut hale getirin.

    Örneğin, klasik müziğin sanatçı yerine besteciye göre sıralanmasını istiyorsanız, Song, ClassicalSong ve NonClassicalSong olmak üzere iki alt sınıfı oluşturabilirsiniz.

  4. Bölme şeklini oluşturun. Bölme Şekli aracından DSL tanım diyagramına sürükleyin.

    Bir metin dekoratörü ekleyin ve adını ayarlayın.

    Bir bölme ekleyin ve adını ayarlayın.

  5. Kullanıcının liste bölmelerini gizlemesine izin vermek için bölme şekli sınıfına sağ tıklayın, Ekle'nin üzerine gelin ve Dekoratörü Genişlet/Daralt'a tıklayın. Özellikler penceresi dekoratörün konumunu ayarlayın.

  6. Diyagram Öğesi Eşleme aracına tıklayın, kapsayıcı etki alanı sınıfına tıklayın ve sonra bölme şekline tıklayın.

  7. Etki alanı sınıfı ile şekil arasındaki diyagram öğesi eşleme bağlantısını seçin. DSL Ayrıntıları penceresinde:

    1. Dekoratörler sekmesine tıklayın. Dekoratörün adına tıklayın ve ardından Görüntüleme Özelliği'nin altında uygun öğeyi seçin. Dekoratör adının yanında bir onay işareti göründüğünden emin olun.

    2. Bölme Haritaları sekmesine tıklayın.

      Bölmenin adına tıklayın.

      Görüntülenen öğeler koleksiyon yolu altında liste öğesi sınıfına (Song) gidin. Gezgin aracını kullanmak için açılan oka tıklayın.

      Görüntüleme Özelliği'nin altında, listede görüntülenmesi gereken özelliği seçin. Örnekte bu Başlık'tır.

Not

Dekoratör Haritası ve Bölme haritası alanlarındaki Yol alanlarını kullanarak, etki alanı sınıfları ile bölme şekli arasında daha karmaşık ilişkiler oluşturabilirsiniz.

Şekil oluşturmaya yönelik bir araç tanımlamak için

  1. Etki alanı sınıfının öğelerini oluşturmak için bir araç kutusu öğesi yapın.

  2. DSL Gezgini'nde Düzenleyici düğümünü ve tüm alt düğümlerini genişletin.

  3. DSL'nizle aynı ada sahip Araç Kutusu Sekmeleri'nin altındaki düğüme sağ tıklayın, örneğin MusicLibrary. Öğe Ekle Aracı'nı tıklatın.

    Not

    Araçlar düğümüne sağ tıklarsanız Öğe Ekleme Aracı'nı görmezsiniz. Bunun yerine, üstündeki düğüme tıklayın.

  4. Yeni öğe aracının seçili olduğu Özellikler penceresi, Sınıf'ı yakın zamanda eklediğiniz etki alanı sınıfına ayarlayın.

  5. Resim Yazısı ve Araç İpucu'nu ayarlayın.

  6. Araç Kutusu Simgesi'ni araç kutusunda görünecek bir simge olarak ayarlayın. Bunu yeni bir simgeye veya başka bir araç için zaten kullanılan bir simgeye ayarlayabilirsiniz.

    Yeni bir simge oluşturmak için Çözüm Gezgini Dsl\Resources'ı açın. Dosyaları .BMP mevcut öğe araçlarından birini kopyalayıp yapıştırın. Yapıştırılan kopyayı yeniden adlandırın ve düzenlemek için çift tıklayın.

    DSL Tanımı diyagramına dönün, aracı seçin ve Özellikler penceresi Araç Kutusu Simgesi'nde [...] öğesine tıklayın. Bit Eşlem Seç iletişim kutusunda, açılan menüden BMP dosyanızı seçin.

Bölme şeklini test etmek için

  1. DSL tasarımcısı kodunu oluşturmak için Çözüm Gezgini araç çubuğundaKi Tüm Şablonları Dönüştür'e tıklayın.

  2. DSL'yi derleyin ve çalıştırın. Deneysel modda yeni bir Visual Studio örneği çalıştırmak için F5 veya CTRL+F5 tuşlarına basın. Visual Studio'nun deneysel örneğinde DSL'nizin dosya adı uzantısına sahip bir dosya açın veya oluşturun.

  3. Aracın araç kutusunda göründüğünü doğrulayın.

  4. Aracı model diyagramına sürükleyin. Bir şekil oluşturulur.

    öğesinin adının göründüğünü ve otomatik olarak varsayılan değere ayarlandığını doğrulayın.

  5. Yeni şeklin üst bilgisine sağ tıklayın ve ardından Liste Öğenizi Ekle'ye tıklayın. Örnekte komutu Şarkı Ekle'dir.

    Listede bir öğenin göründüğünü ve yeni bir ada sahip olduğunu doğrulayın.

  6. Liste öğelerinden birine tıklayın ve Özellikler penceresi inceleyin. Liste öğelerinin özelliklerini görmeniz gerekir.

  7. Explorer dilini açın. kapsayıcı düğümlerini liste öğesi düğümleriyle görebildiğinizi doğrulayın.

    DSL'nin oluşturulan gezgini

    Bir bölme şeklini ilk test ettikten sonra bazı özelliklerini ayarlamak ve daha gelişmiş özellikler eklemek isteyebilirsiniz. Daha fazla bilgi için bkz . Etki Alanına Özgü Dili Özelleştirme ve Genişletme.

Genellikle, bir bölmede görüntülediğiniz bir öğe, bölme şekliyle temsil edilen öğenin alt öğesidir. Ancak bazen, başvuru ilişkisiyle bağlantılı bir öğeyi görüntülemek istersiniz.

Örneğin, AlbumShape'e Albüme bağlı Sanatçıların listesini görüntüleyen ikinci bir bölme ekleyebiliriz.

Bu durumda bölmede başvuruda bulunan öğe yerine bağlantı görüntülenmelidir. Bunun nedeni, kullanıcı bölmedeki öğeyi seçip tuşuna bastığında DELETEbağlantının silinmesini istemenizdir, başvuruda bulunılan öğeyi değil.

Bununla birlikte, başvuruda bulunan öğenin adının bölmede görünmesini sağlayabilirsiniz.

Aşağıdaki yordamda, bu bölümün önceki bölümlerinde açıklandığı gibi etki alanı sınıfını, başvuru ilişkisini, bölme şeklini ve diyagram öğesi eşlemesini oluşturduğunuz varsayılır.

  1. Bölme şekline bir bölme ekleyin. DSL Tanımı diyagramında, bölme şekli sınıfına sağ tıklayın, Ekle'nin üzerine gelin ve bölme'ye tıklayın.

  2. Hedef öğesi yerine bağlantıya gitmek için Görüntülenen öğeler koleksiyon yolunu ayarlayın. Açılan menüye tıklayın ve hedef yerine başvuru ilişkisini seçmek için ağaç görünümünü kullanın. Örnekte ilişki ArtistAppearedOnAlbums şeklindedir.

  3. Hedef öğe bağlantısından gitmek için Yolu Görüntüleme Özelliği olarak ayarlayın. Örnekte bu Sanatçı'dır.

  4. Display Özelliği'ni hedef öğenin uygun özelliğine ayarlayın, örneğin Ad.

  5. Tüm Şablonları Dönüştürün, DSL'yi derleyip çalıştırın ve bir test modeli açın.

  6. Model diyagramında uygun şekil sınıflarını oluşturun, adlarını ayarlayın ve aralarında bir bağlantı oluşturun. Bölme şeklinde, bağlantılı öğelerin adları görünmelidir.

  7. Bölme şeklindeki bağlantıyı veya öğeyi seçin. Hem bağlantı hem de öğe kaybolmalıdır.

Başka bir Şeklin Sınırında Bağlantı Noktaları Tanımlama

Bağlantı noktası, başka bir şeklin sınırında bulunan bir şekildir.

Bağlantı noktaları, kullanıcının bağlayıcı çizebileceği başka bir şekilde sabit bir bağlantı noktası sağlamak için de kullanılabilir. Bu durumda, bağlantı noktası şeklini saydam hale getirebilirsiniz.

Bağlantı noktalarını kullanan bir örneği görmek için, yeni bir DSL çözümü oluştururken Bileşen Diyagramı şablonunu seçin. Bu örnek, bağlantı noktalarını tanımlarken göz önünde bulundurabileceğiniz ana noktaları gösterir:

  • bağlantı noktalarının Componentkapsayıcısını temsil eden bir etki alanı sınıfı vardır.

  • Bağlantı noktalarını temsil eden bir etki alanı sınıfı vardır. Örnekte, bu şeklindedir ComponentPort.

  • Kapsayıcı etki alanı sınıfından bağlantı noktası etki alanı sınıfına bir ekleme ilişkisi vardır. Daha fazla bilgi için bkz . Etki Alanı Sınıflarını Tanımlama.

  • Aynı kapsayıcıda farklı bağlantı noktası türlerinin karıştırılmasını istiyorsanız, bağlantı noktası etki alanı sınıfının alt sınıflarını oluşturabilirsiniz. Örnekte ve InPort OutPort öğesinden ComponentPortdevralın.

  • Kapsayıcı etki alanı sınıfı herhangi bir şekil türüne eşlenebilir. Örnekte, şeklindedir ComponentShape. Daha fazla bilgi için bkz . Şekil Tanımlama.

  • Bağlantı noktası etki alanı sınıfları bağlantı noktası şekillerine eşlenir. Türetilmiş sınıfları ayrı bağlantı noktası şekli sınıflarına eşleyebilir veya temel sınıfı bir bağlantı noktası şekil sınıfıyla eşleyebilirsiniz.

    Diğer açılardan, bağlantı noktası şekilleri Şekilleri Tanımlama bölümünde açıklandığı gibi davranır.

    Daha fazla bilgi için bkz . Bağlantı Noktası Şekillerinin Özellikleri.

Kulvarları olan bir DSL tanımlama

Kulvarlar, diyagramın yatay veya dikey bölümü. Her kulvar bir model öğesine karşılık gelir. DSL tanımınız kulvar öğeleri için bir etki alanı sınıfı gerektirir.

Kulvarlarla DSL oluşturmanın en iyi yolu yeni bir DSL çözümü oluşturmak ve Görev Akışı çözümü şablonunu seçmektir. DSL Tanımı'nda Actor sınıfı, kulvarla eşlenen etki alanı sınıfıdır. Bunu ve diğer sınıfları projenize uyacak şekilde yeniden adlandırın.

Kulvar içinde şekil olarak görüntülenecek bir sınıf eklemek için kulvar sınıfı ile yeni sınıfınız arasında bir Ekleme İlişkisi oluşturun. Kullanıcılar öğeleri bir kulvardan diğerine sürükleyebilir, ancak her öğe her zaman belirli bir kulvar içinde olur. Görev Akışı çözüm şablonunda FlowElement, kulvar sınıfının alt öğesidir.

Kulvarlardan bağımsız olarak şekil olarak görüntülenecek bir sınıf eklemek için kök sınıfınızla yeni sınıfınız arasında bir Ekleme İlişkisi oluşturun. Kullanıcılar bu şekilleri, kulvarların sınırları boyunca ve kulvarların dışında da dahil olmak üzere diyagram üzerinde herhangi bir yere yerleştirebilecektir. Görev Akışı çözüm şablonunda Açıklama, kök sınıfın alt öğesidir.

Daha fazla bilgi için bkz . Kulvarların Özellikleri.

Özellik Türleri Ekleme

Etki Alanı Sabit Listeleri ve Değişmez Değerler

Etki alanı numaralandırması, birkaç değişmez değer içeren bir türdür.

Etki alanı numaralandırması eklemek için DSL Gezgini'nde modelin köküne sağ tıklayın ve ardından Yeni Etki Alanı Numaralandırması Ekle'ye tıklayın. öğesi DSL Gezgini'nde Etki Alanı Türleri düğümü altında görünür. Bu öğe diyagramda görünmez.

Numaralandırma sabit değerlerini etki alanı sabit listesine eklemek için DSL Gezgini'nde etki alanı sabit listesine sağ tıklayın ve ardından Yeni Sabit Listesi Sabit Değeri Ekle'ye tıklayın.

Varsayılan olarak, numaralandırma türüne sahip bir özellik bir kerede numaralandırmanın yalnızca bir değerine ayarlanabilir. Kullanıcıların ve programcıların herhangi bir değer bileşimini (bir "bit alanı") ayarlayabilmesini istiyorsanız, Numaralandırma'nın IsFlags özelliğini ayarlayın.

Dış Türler

Bir etki alanı özelliğinin türünü ayarladığınızda, tür açılan listesinde istediğiniz türü bulamazsanız, bir dış tür ekleyebilirsiniz. Örneğin, listeye System.Drawing.Color türünü ekleyebilirsiniz.

Tür eklemek için DSL Gezgini'nde modelin köküne sağ tıklayın ve ardından Yeni Dış Tür Ekle'ye tıklayın. Özellikler penceresi adı Color ve ad alanını System.Drawing olarak ayarlayın. Bu tür artık DSL Gezgini'nde Etki Alanı Türleri altında görünür. Bir etki alanı özelliğinin türünü her ayarladığınızda bunu seçebilirsiniz.

DSL'yi özelleştirme

Bu konuda açıklanan teknikleri kullanarak diyagram gösterimi, okunabilir XML formu ve kod ve diğer yapıtları oluşturmak için gereken temel araçlarla hızlı bir şekilde DSL oluşturabilirsiniz.

DSL tanımını genişletmenin iki yöntemi vardır:

  1. DSL Tanımının daha fazla özelliğini kullanarak DSL'de ince ayar yapın. Örneğin, birkaç bağlayıcı türü oluşturabilen tek bir bağlayıcı aracı oluşturabilir ve bir öğenin silinmesiyle ilgili öğelerin de silindiği kuralları denetleyebilirsiniz. Bu teknikler çoğunlukla DSL Tanımında değerler ayarlanarak elde edilir ve bazıları birkaç satır program kodu gerektirir.

    Daha fazla bilgi için bkz . Etki Alanına Özgü Dili Özelleştirme ve Genişletme.

  2. Daha gelişmiş efektler elde etmek için program kodunu kullanarak modelleme araçlarınızı genişletin. Örneğin, modeli değiştirebilecek menü komutları oluşturabilir ve iki veya daha fazla DLL'yi tümleştirebilen araçlar oluşturabilirsiniz. VMSDK, uzantılarınızı DSL Tanımından oluşturulan kodla tümleştirmeyi kolaylaştırmak için özel olarak tasarlanmıştır. Daha fazla bilgi için bkz . Etki Alanına Özgü Dili Özelleştirmek için Kod Yazma.

DSL Tanımını Değiştirme

DSL tanımında herhangi bir öğe oluşturduğunuzda, birçok varsayılan değer otomatik olarak ayarlanır. Bunlar ayarlandıktan sonra değiştirebilirsiniz. Bu, DSL'nin geliştirilmesini basitleştirirken güçlü özelleştirmelere de olanak sağlar.

Örneğin, bir şekli bir öğeyle eşlediğinizde, eşlemenin Üst Öğe Yolu otomatik olarak etki alanı sınıfının ekleme ilişkisine göre ayarlanır. Ancak, daha sonra ekleme ilişkisini değiştirirseniz, üst öğe yolu otomatik olarak değiştirilmez.

Bu nedenle DSL Tanımınızdaki bazı ilişkileri değiştirdiğinizde, tanımı kaydettiğinizde veya Tüm Şablonları Dönüştürdüğünüzde hataların bildirilmesi olağan dışı değildir. Bu hataların çoğunu düzeltmek kolaydır. Hatanın konumunu görmek için hata raporuna çift tıklayın.

Ayrıca bkz. Nasıl yapılır: Etki Alanına Özgü Bir Dilin Ad Alanını Değiştirme.

Sorun giderme

Aşağıdaki tabloda, DSL tasarlarken karşılaşılan en yaygın sorunlardan bazıları ve çözümlerine yönelik öneriler listelenmiştir. Görselleştirme Araçları Genişletilebilirlik Forumu'nda daha fazla öneri bulabilirsiniz.

Sorun Öneri
DSL Tanımı dosyasında yaptığım değişikliklerin hiçbir etkisi yok. Çözüm Gezgini üzerindeki araç çubuğunda Tüm Şablonları Dönüştür'e tıklayın ve ardından çözümü yeniden oluşturun.
Şekiller, özellik değeri yerine dekoratör adını gösterir. Dekoratör eşlemesini ayarlayın. DSL Tanımı diyagramında, etki alanı sınıfı ile şekil sınıfı arasındaki gri çizgi olan diyagram öğesi eşlemesine tıklayın.

DSL Ayrıntıları penceresini açın. Göremiyorsanız, Görünüm menüsünde Diğer Windows'un üzerine gelin ve DSL Ayrıntıları'na tıklayın.

Dekoratör Haritalar sekmesine tıklayın. Dekoratörün adını seçin. Yanındaki kutunun işaretli olduğundan emin olun. Özellik görüntüle'nin altında bir etki alanı özelliğinin adını seçin.

Daha fazla bilgi için bkz . Diyagramdaki Şekiller.
DSL Gezgini'nde koleksiyona ekleyemiyorum. Örneğin, Araçlar'a sağ tıkladığımda menüde "Araç Ekle" komutu yok.

DSL'imin gezgininde listeye öğe ekleyemiyorum.
Denediğiniz düğümün üzerindeki öğeye sağ tıklayın. Listeye eklemek istediğinizde, Ekle komutu liste düğümünde değil, sahibindedir.
Bir etki alanı sınıfı oluşturdum, ancak dil gezgininde örnek oluşturamıyorum. Kök dışındaki her etki alanı sınıfı, ekleme ilişkisinin hedefi olmalıdır.
DSL'imin gezgininde öğeler yalnızca kendi tür adlarıyla gösterilir. DSL Tanımı'nda sınıfın bir etki alanı özelliğini seçin ve Özellikler penceresi Is Öğesi Adı'nı true olarak ayarlayın.
DSL'im her zaman XML düzenleyicisinde açılır. Dosya okunurken oluşan bir hata nedeniyle bu durum oluşabilir. Ancak, bu hatayı düzeltdikten sonra bile düzenleyiciyi DSL tasarımcınız olacak şekilde açıkça sıfırlamanız gerekir.

Proje öğesine sağ tıklayın, Birlikte Aç'a tıklayın ve DilTasarımcınız (Varsayılan) öğesini seçin.
Derleme adlarını değiştirdikten sonra DSL'min araç kutusu görünmüyor. DslPackage\GeneratedCode\Package.tt'ı inceleyin ve güncelleştirin Daha fazla bilgi için bkz. Nasıl yapılır: Etki Alanına Özgü Bir Dilin Ad Alanını Değiştirme.
DSL'min araç kutusu görünmüyor, ancak derleme adını değiştirmedim.

Alternatif olarak, uzantının yüklenememesini bildiren bir ileti kutusu görüntülenir.
Deneysel örneği sıfırlayın ve çözümünüzü yeniden oluşturun.

1. Windows Başlat menüsü,Tüm Programlar'ın altında Visual Studio SDK'sını ve araçlar'ı genişletin ve ardından Microsoft Visual Studio Deneysel Örneğini Sıfırla'ya tıklayın.
2. Oluştur menüsünde Çözümü Yeniden Oluştur'a tıklayın.