Aracılığıyla paylaş


Domain-Specific Dillerini Kullanmaya Başlama

Bu konuda, Visual Studio için Modelleme SDK'sı ile oluşturulan etki alanına özgü bir dili (DSL) tanımlama ve kullanma ile ilgili temel kavramlar açıklanmaktadır.

Uyarı

Metin Şablonu Dönüştürme SDK'sı ve Visual Studio Modelleme SDK'sı, Visual Studio'nun belirli özelliklerini yüklediğinizde otomatik olarak yüklenir. Diğer ayrıntılar için bu blog gönderisini inceleyin.

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ı

Domain-Specific Dili ile ne yapabilirsiniz?

Alanına özgü dil, belirli bir amaç için kullanılmak üzere tasarlanmış, genellikle grafiksel bir gösterimdir. Buna karşılık, UML gibi diller genel amaçlıdır. DSL'de model öğesi türlerini ve bunların ilişkilerini ve bunların ekranda nasıl sunulduğunu tanımlayabilirsiniz.

DSL tasarladığınızda, bunu Visual Studio Tümleştirme Uzantısı (VSIX) paketinin bir parçası olarak dağıtabilirsiniz. Kullanıcılar Visual Studio'da DSL ile çalışır:

Aile ağacı diyagramı, araç kutusu ve gezgin

Notasyon bir DSL'nin yalnızca bir parçasıdır. VSIX paketiniz, notasyonla birlikte, kullanıcıların modellerinden içerik düzenleme ve oluşturmada yardımcı olabilecekleri araçlar içerir.

DLL'lerin temel uygulamalarından biri program kodu, yapılandırma dosyaları ve diğer yapıtlar oluşturmaktır. Özellikle bir ürünün çeşitli varyantlarının oluşturulacağı büyük projelerde ve ürün hatlarında, DLL'lerden değişken yönlerinin birçoğunu oluşturmak, güvenilirlikte büyük bir artış ve gereksinimlere çok hızlı bir yanıt verebilir.

Bu genel bakışın geri kalanı, Visual Studio'da etki alanına özgü bir dil oluşturma ve kullanma ile ilgili temel işlemleri tanıtır.

Önkoşullar

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

Bileşen Link
Visual Studio http://go.microsoft.com/fwlink/?LinkId=185579
Visual Studio SDK'sı https://go.microsoft.com/fwlink/?linkid=2166172
Visual Studio için Modelleme SDK'sı

Uyarı

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. Bunu Visual Studio Yükleyicisi'nin 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.

DSL Çözümü Oluşturma

Etki alanına özgü yeni bir dil oluşturmak için, Domain-Specific Dili proje şablonunu kullanarak yeni bir Visual Studio çözümü oluşturursunuz.

  1. Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın.

  2. Proje türleri'nin altında Diğer Proje Türleri düğümünü genişletin ve Genişletilebilirlik'e tıklayın.

  3. Domain-Specific Dil Tasarımcısı'nı tıklatın.

    DSL iletişim kutusu oluştur

  4. Ad kutusuna FamilyTree yazın. Tamam'a tıklayın.

    Domain-Specific Dil Sihirbazı açılır ve şablon DSL çözümlerinin listesini görüntüler.

    Bir açıklama görmek için her şablona tıklayın,

    Şablonlar yararlı başlangıç noktalarıdır. Her biri, ihtiyaçlarınıza göre düzenleyebileceğiniz, tam işlevsel bir DSL sağlar. Normalde, oluşturmak istediğiniz şablona en yakın şablonu seçersiniz.

  5. Bu izlenecek yol için En Az Dil şablonunu seçin.

  6. 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şkilendirilmiş olmayan bir uzantı 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.

  7. Diğer sayfaları inceleyin ve son'a tıklayın.

    İki proje içeren bir çözüm oluşturulur. Dsl ve DslPackage olarak adlandırılırlar. DslDefinition.dsl adlı bir diyagram dosyası açılır.

    Uyarı

    İki projedeki klasörlerde görebileceğiniz kodun çoğu DslDefinition.dsl dosyasından oluşturulur. Bu nedenle DSL'nizde yapılan değişikliklerin çoğu bu dosyada yapılır.

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. Domain-Specific Dil Araçları Kullanıcı Arabirimine Genel Bakış.

DSL çözümünün önemli parçaları

Yeni çözümün aşağıdaki yönlerine dikkat edin:

  • Dsl\DslDefinition.dsl Bu, DSL çözümü oluşturduğunuzda gördüğünüz dosyadır. Çözümdeki neredeyse tüm kod bu dosyadan oluşturulur ve DSL tanımında yaptığınız değişikliklerin çoğu burada yapılır. Daha fazla bilgi için bkz. DSL Tanım Diyagramı ile Çalışma.

  • Dsl projesi Bu proje, etki alanına özgü dili tanımlayan kodu içerir.

  • DslPackage projesi Bu proje, DSL örneklerinin Visual Studio'da açılmasını ve düzenlenmesini sağlayan kod içerir.

DSL'yi çalıştırma

DSL çözümünü oluşturduğunuz anda çalıştırabilirsiniz. Daha sonra DSL tanımını aşamalı olarak değiştirebilir ve her değişiklik sonrasında çözümü yeniden çalıştırabilirsiniz.

DSL ile deneme yapmak için

  1. Çözüm Gezgini araç çubuğunda Tüm Şablonları Dönüştür'e tıklayın. Bu işlem, kaynak kodun çoğunu DslDefinition.dsl'den yeniden oluşturur.

    Uyarı

    DslDefinition.dsl dosyasını her değiştirdiğinizde, çözümü yeniden oluşturmadan önce Tüm Şablonları Dönüştür'e tıklamanız gerekir. Bu adımı otomatikleştirebilirsiniz. Daha fazla bilgi için bkz. Tüm Şablonları Dönüştürmeyi Otomatikleştirme.

  2. F5 tuşuna basın veya Hata Ayıkla menüsünde Hata Ayıklamayı Başlat'a tıklayın.

    DSL derlenir ve Visual Studio'nun deneysel örneğine yüklenir.

    Visual Studio'nun deneysel bir örneği başlatılır. Deneysel örnek, ayarlarını, Visual Studio uzantılarının hata ayıklama amacıyla kaydedildiği kayıt defterinin ayrı bir alt ağacından alır. Visual Studio'nun normal örneklerinin orada kayıtlı uzantılara erişimi yoktur.

  3. Visual Studio'nun deneysel örneğinde Çözüm Gezgini'ndenTest adlı model dosyasını açın.

    - veya -

    Debug projesine sağ tıklayın, Ekle'nin üzerine gelin ve Öğe'ye tıklayın. Öğe Ekle iletişim kutusunda DSL'nizin dosya türünü seçin.

    Model dosyası boş diyagram olarak açılır.

    Araç kutusu açılır ve diyagram türüne uygun araçları görüntüler.

  4. Diyagramda şekil ve bağlayıcı oluşturmak için araçları kullanın.

    1. Şekil oluşturmak için Örnek Şekil aracından diyagrama sürükleyin.

    2. İki şekli bağlamak için Örnek Bağlayıcı aracına tıklayın, ilk şekle tıklayın ve ardından ikinci şekle tıklayın.

  5. Şekilleri değiştirmek için etiketlerine tıklayın.

Deneysel Visual Studio'nuz aşağıdaki örneğe benzer:

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

Modelin İçeriği

DSL örneği olan bir dosyanın içeriğine model adı verilir. Model, modelöğelerini ve öğeler arasındaki bağlantıları içerir. DSL tanımı, modelde ne tür model öğelerinin ve bağlantıların bulunabileceğini belirtir. Örneğin, En Az Dil şablonundan oluşturulan bir DSL'de bir model öğesi türü ve bir bağlantı türü vardır.

DSL tanımı, modelin diyagramda nasıl görüneceğini belirtebilir. Çeşitli şekil ve bağlayıcı stilleri arasından seçim yapabilirsiniz. Bazı şekillerin diğer şekillerin içinde görünmesini belirtebilirsiniz.

Modeli düzenlerken Gezgin görünümünde bir modeli ağaç olarak görüntüleyebilirsiniz. Diyagrama şekil eklediğinizde model öğeleri de gezginde görünür. Diyagram olmasa bile gezgin kullanılabilir.

Visual Studio'nun hata ayıklama örneğinde Gezgin'i göremiyorsanız, Görünüm menüsünde Diğer Windows'un üzerine gelin ve Dil Gezgininiz'e<tıklayın>.

DSL'nizin API'si

DSL'niz, DSL örneği olan modelleri okumanızı ve güncelleştirmenizi sağlayan bir API oluşturur. API'nin bir uygulaması, bir modelden metin dosyaları oluşturmaktır. Daha fazla bilgi için bkz. T4 Metin Şablonlarını kullanarak Tasarım Zamanı Kod Oluşturma.

Hata ayıklama çözümünde ".tt" uzantısına sahip şablon dosyalarını açın. Bu örnekler modellerden nasıl metin oluşturabileceğinizi gösterir ve DSL'nizin API'sini test etmenizi sağlar. Örneklerden biri Visual Basic'te, diğeri Visual C# dilinde yazılmıştır.

Her şablon dosyasının altında, oluşturduğu dosya bulunur. Çözüm Gezgini'nde şablon dosyasını genişletin ve oluşturulan dosyayı açın.

Şablon dosyası, modeldeki tüm öğeleri listeleyen kısa bir kod kesimi içerir.

Oluşturulan dosya sonucu içerir.

Bir model dosyasını değiştirdiğinizde, dosyaları yeniden oluşturduktan sonra oluşturulan dosyalarda ilgili değişiklikleri görürsünüz.

Model dosyasını değiştirdikten sonra metin dosyalarını yeniden oluşturmak için

  1. Visual Studio'nun deneysel örneğinde model dosyasını kaydedin.

  2. Her .tt dosyasındaki dosya adı parametresinin denemeler için kullandığınız model dosyasına başvurduğundan emin olun. .tt dosyasını kaydedin.

  3. Çözüm Gezgini araç çubuğunda Tüm Şablonları Dönüştür'e tıklayın.

    - veya -

    Yeniden oluşturmak istediğiniz şablonlara sağ tıklayın ve ardından Özel Aracı Çalıştır'a tıklayın.

Projeye istediğiniz sayıda metin şablonu dosyası ekleyebilirsiniz. Her şablon bir sonuç dosyası oluşturur.

Uyarı

DSL tanımını değiştirdiğinizde, siz güncelleştirmediğiniz sürece örnek metin şablonu kodu çalışmaz.

Daha fazla bilgi için bkz. Domain-Specific Dilinden Kod Oluşturma ve Domain-Specific Dilini Özelleştirmek için Kod Yazma.

DSL'yi özelleştirme

DSL tanımını değiştirmek istediğinizde, deneysel örneği kapatın ve ana Visual Studio örneğindeki tanımı güncelleştirin.

Uyarı

DSL tanımını değiştirdikten sonra, önceki sürümleri kullanarak oluşturduğunuz test modellerindeki bilgileri kaybedebilirsiniz. Örneğin, hata ayıklama çözümü, bazı şekilleri ve bağlayıcıları içeren Örnek adlı bir dosya içerir. DSL tanımınızı geliştirmeye başladıktan sonra görünür olmazlar ve dosyayı kaydettiğinizde kaybolurlar.

DSL'nize çok çeşitli uzantılar yapabilirsiniz. Aşağıdaki örnekler size olasılıklar ile ilgili bir izlenim verir.

Her değişiklikten sonra DSL tanımını kaydedin, Çözüm Gezgini'ndeTüm Şablonları Dönüştür'e tıklayın ve ardından F5 tuşuna basarak değiştirilen DSL'yi deneyin.

Türleri ve Araçları Yeniden Adlandırma

Mevcut etki alanı sınıflarını ve ilişkilerini yeniden adlandırın. Örneğin, Minimum Dil şablonundan oluşturulan dsl tanımından başlayarak, DSL'nin aile ağaçlarını temsil etmelerini sağlamak için aşağıdaki yeniden adlandırma işlemlerini gerçekleştirebilirsiniz.

Etki alanı sınıflarını, ilişkilerini ve araçlarını yeniden adlandırmak için

  1. DslDefinition diyagramında ExampleModel'iFamilyTreeModel, ExampleElement'iPerson, Targets to Parents ve Sources to Children olarak yeniden adlandırın. Değiştirmek için her etikete tıklayabilirsiniz.

    DSL Tanımı diyagramı - aile ağacı modeli

  2. Öğeyi ve bağlayıcı araçlarını yeniden adlandırın.

    1. Çözüm Gezgini'nin altındaki sekmeye tıklayarak DSL Gezgini penceresini açın. Göremiyorsanız, Görünüm menüsünde Diğer Windows'un üzerine gelin ve DSL Gezgini'ne tıklayın. DSL Gezgini yalnızca DSL Tanımı diyagramı etkin pencere olduğunda görünür.

    2. Özellikler penceresini açın ve DSL Gezgini'ni ve Özellikleri aynı anda görebilecek şekilde konumlandırın.

    3. DSL Gezgini'nde Düzenleyici, Araç Kutusu Sekmeleri, <DSL'niz> ve ardından Araçlar'ı genişletin.

    4. ExampleElement'e tıklayın. Bu, öğe oluşturmak için kullanılan araç kutusu öğesidir.

    5. Özellikler penceresinde Name özelliğini Kişi olarak değiştirin.

      Caption özelliğinin de değiştiğine dikkat edin.

    6. Aynı şekilde , ExampleConnector aracının adını ParentLink olarak değiştirin. Name özelliğinin bir kopyası olmaması için Caption özelliğini değiştirin. Örneğin, Ana Bağlantı girin.

  3. DSL'yi yeniden oluşturun.

    1. DSL Tanım dosyasını kaydedin.

    2. Çözüm Gezgini araç çubuğunda Tüm Şablonları Dönüştür'e tıklayın

    3. F5 tuşuna basın. Visual Studio'nun deneysel örneği görünene kadar bekleyin.

  4. Visual Studio'nun deneysel örneğindeki Hata Ayıklama çözümünde bir test modeli dosyası açın. Öğeleri araç kutusundan üzerine sürükleyin. Araç başlıklarının ve DSL Gezgini'ndeki tür adlarının değiştiğini fark edin.

  5. Model dosyasını kaydedin.

  6. Bir .tt dosyası açın ve eski tür ve özellik adlarının oluşumlarını yeni adlarla değiştirin.

  7. .tt dosyasında belirtilen dosya adının test modelinizi belirttiğinden emin olun.

  8. .tt dosyasını kaydedin. .tt dosyasında kodu çalıştırmanın sonucunu görmek için oluşturulan dosyayı açın. Doğru olduğunu doğrulayın.

Sınıflara Etki Alanı Özellikleri Ekleme

Etki alanı sınıfına, örneğin bir Kişinin doğum ve ölüm yıllarını temsil eden özellikler ekleyin.

Diyagramda yeni özelliklerin görünür olmasını sağlamak için model öğesini görüntüleyen şekle dekoratörler eklemeniz gerekir. Ayrıca özellikleri dekoratörlerle eşlemeniz gerekir.

Özellik eklemek ve bunları görüntülemek için
  1. Özellikleri ekleyin.

    1. DSL Tanımı diyagramında Kişi etki alanı sınıfına sağ tıklayın, Ekle'nin üzerine gelin ve Etki Alanı Özelliği'ne tıklayın.

    2. Doğum ve Ölüm gibi yeni özellik adlarının listesini yazın. Her birinden sonra Enter tuşuna basın.

  2. Şekildeki özellikleri görüntüleyecek dekoratörler ekleyin.

    1. Kişi etki alanı sınıfından diyagramın diğer tarafına uzanan gri çizgiyi izleyin. Bu bir diyagram öğesi haritasıdır. Etki alanı sınıfını bir şekil sınıfına bağlar.

    2. Bu şekil sınıfına sağ tıklayın, Ekle'nin üzerine gelin ve Metin Dekoratörü'ne tıklayın.

    3. BirthDecorator ve DeathDecorator gibi adlara sahip iki dekoratör ekleyin.

    4. Yeni dekoratörleri seçin ve Özellikler penceresinde Konum alanını ayarlayın. Bu, şekil üzerinde etki alanı özellik değerinin nerede görüntüleneceğini belirler. Örneğin, InnerBottomLeft ve InnerBottomRight'ı ayarlayın.

      Bölme şekli tanımı

  3. Dekoratörleri özelliklere eşleyin.

    1. DSL Ayrıntıları penceresini açın. Genellikle Çıkış penceresinin yanındaki bir sekmede bulunur. 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.

    2. DSL tanımı diyagramında , Kişi etki alanı sınıfını şekil sınıfına bağlayan çizgiye tıklayın.

    3. DSL Ayrıntıları'nda, Dekoratör Haritalar sekmesinde eşlenmemiş bir dekoratör üzerindeki işaret kutusunu işaretleyin. Görüntüleme Özelliği'nde, eşlenmek istediğiniz etki alanı özelliğini seçin. Örneğin, BirthDecorator öğesini Doğum olarak eşleyin.

  4. DSL'yi kaydedin, Tüm Şablonları Dönüştür'e tıklayın ve F5 tuşuna basın.

  5. Örnek model diyagramında, artık seçtiğiniz konumlara tıklayıp bunlara değer yazabildiğinizi doğrulayın. Ayrıca, bir Kişi şekli seçtiğinizde Özellikler penceresinde yeni Doğum ve Ölüm özellikleri görüntülenir.

  6. .tt dosyasında, her bir kişinin özelliklerini alan kod ekleyebilirsiniz.

    Aile ağacı diyagramı, araç kutusu ve gezgin

Yeni Sınıflar Tanımla

Bir modele etki alanı sınıfları ve ilişkileri ekleyebilirsiniz. Örneğin, kasabaları temsil eden yeni bir sınıf ve bir şehirde yaşayan bir kişiyi temsil eden yeni bir ilişki oluşturabilirsiniz.

Model diyagramında farklı türleri ayırt etmek için etki alanı sınıflarını farklı şekil türlerine veya farklı geometri ve renklere sahip şekillere eşleyebilirsiniz.

Yeni etki alanı sınıfı eklemek ve görüntülemek için
  1. Bir etki alanı sınıfı ekleyin ve bunu model kökünün alt öğesi yapın.

    1. DSL Tanımı diyagramında İlişki Ekleme aracına tıklayın, FamilyTreeModel kök sınıfına tıklayın ve sonra diyagramın boş bir bölümüne tıklayın.

      FamilyTreeModel'e bir ekleme ilişkisiyle bağlı olan yeni bir etki alanı sınıfı görüntülenir.

      Adını ayarlayın, örneğin Şehir.

      Uyarı

      Modelin kökü dışındaki her etki alanı sınıfı en az bir ekleme ilişkisinin hedefi olmalıdır veya ekleme işleminin hedefi olan bir sınıftan devralmalıdır. Bu nedenle, İlişki Katıştırma aracını kullanarak bir etki alanı sınıfı oluşturmak sık sık kullanışlıdır.

    2. Yeni sınıfa ad gibi bir etki alanı özelliği ekleyin.

  2. Kişi ve Kasaba arasında bir referans ilişkisi ekleyin.

    1. Referans İlişkisi aracına tıklayın, ardından Kişi'ye ve Şehir'e tıklayın.

      DSL tanım parçası: aile ağacı kökü

      Uyarı

      Başvuru ilişkileri, model ağacının bir bölümünden diğerine çapraz başvuruları temsil eder.

  3. Model diyagramlarında kasabaları temsil eden bir şekil ekleyin.

    1. Geometri Şeklini araç kutusundan diyagrama sürükleyin ve örneğin TownShape olarak yeniden adlandırın.

    2. Özellikler penceresinde, yeni şeklin Dolgu Rengi ve Geometri gibi Görünüm alanlarını ayarlayın.

    3. Şehrin adını görüntülemek için bir Dekoratör ekleyin ve NameDecorator olarak yeniden adlandırın. Position özelliğini ayarlayın.

  4. Town etki alanı sınıfını TownShape ile eşleyin.

    1. Diyagram Öğesi Eşleme aracına tıklayın, ardından Town etki alanı sınıfına ve ardından TownShape şekil sınıfına tıklayın.

    2. DSL Ayrıntıları penceresinin Harita bağlayıcısı seçiliyken Dekoratör Haritalar sekmesinde NameDecorator'ı işaretleyin ve Görüntüleme Özelliği'ni Ad olarak ayarlayın.

  5. Kişi ve Kasabalar arasındaki ilişkiyi görüntülemek için bir bağlayıcı oluşturun.

    1. Bağlayıcıyı araç kutusundan diyagrama sürükleyin. Yeniden adlandırın ve görünüm özelliklerini ayarlayın.

    2. Yeni bağlayıcıyı Kişi ve Kasaba arasındaki ilişkiye bağlamak için Diyagram Öğesi Eşleme aracını kullanın.

      Şekil haritası eklenmiş Aile Ağacı tanımı

  6. Yeni bir Şehir oluşturmak için bir öğe aracı oluşturun.

    1. DSL Gezgini'ndeDüzenleyici'yi ve ardından Araç Kutusu Sekmeleri'ni genişletin.

    2. DSL'nize< sağ tıklayın> ve ardından Yeni Öğe Ekle Aracı'nı tıklatın.

    3. Yeni aracın Name özelliğini ayarlayın ve Class özelliğini Town olarak ayarlayın.

    4. Araç Kutusu Simgesi özelliğini ayarlayın. [...] öğesine tıklayın ve Dosya adı alanında bir simge dosyası seçin.

  7. Şehirler ve kişiler arasında bağlantı oluşturmak için bir bağlayıcı aracı oluşturun.

    1. DSL'nize< sağ tıklayın> ve ardından Yeni Bağlayıcı Aracı Ekle'ye tıklayın.

    2. Yeni aracın Name özelliğini ayarlayın.

    3. ConnectionBuilder özelliğinde, Person-Town ilişkisinin adını içeren oluşturucuyu seçin.

    4. Araç Kutusu Simgesi'ni ayarlayın.

  8. DSL Tanımını kaydedin, Tüm Şablonları Dönüştür'e tıklayın ve F5 tuşuna basın.

  9. Visual Studio'nun deneysel örneğinde bir test modeli dosyası açın. Şehirler ve kişiler arasında şehirler ve bağlantılar oluşturmak için yeni araçları kullanın. Yalnızca doğru öğe türleri arasında bağlantı oluşturabileceğinize dikkat edin.

  10. Her kişinin yaşadığı kasabayı listeleyen kod oluşturun. Metin şablonları, bu tür kodları çalıştırabileceğiniz yerlerden biridir. Örneğin, Hata Ayıklama çözümündeki mevcut Sample.tt dosyasını aşağıdaki kodu içerebilecek şekilde değiştirebilirsiniz:

    <#@ template inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation" debug="true" #>
    <#@ output extension=".txt" #>
    <#@ FamilyTree processor="FamilyTreeDirectiveProcessor" requires="fileName='Sample.ftree'" #>
    
    <#
      foreach (Person person in this.FamilyTreeModel.People)
      {
    #>
        <#= person.Name #><#if (person.Town != null) {#> of <#= person.Town.Name #> <#}#>
    
    <#
          foreach (Person child in person.Children)
      {
    #>
                <#= child.Name #>
    <#
      }
      }
    #>
    
    

    *.tt dosyasını kaydettiğinizde, kişi ve ikametgahlarının listesini içeren bir yan kuruluş dosyası oluşturulur. Daha fazla bilgi için bkz. Domain-Specific Dilinden Kod Oluşturma.

Doğrulama ve Komutlar

Doğrulama kısıtlamaları ekleyerek bu DSL'i daha da geliştirebilirsiniz. Bu kısıtlamalar, modelin doğru durumda olduğundan emin olmak için tanımlayabileceğiniz yöntemlerdir. Örneğin, bir çocuğun doğum tarihinin ebeveynlerinin doğum tarihinden daha geç olduğundan emin olmak için bir kısıtlama tanımlayabilirsiniz. DSL kullanıcısı kısıtlamaların herhangi birini bozan bir modeli kaydetmeye çalışırsa doğrulama özelliği bir uyarı görüntüler. Daha fazla bilgi için bkz . Domain-Specific Dilinde Doğrulama.

Kullanıcının çağırabileceği menü komutlarını da tanımlayabilirsiniz. Komutlar modeli değiştirebilir. Ayrıca Visual Studio'daki diğer modellerle ve dış kaynaklarla da etkileşimde bulunabilirler. Daha fazla bilgi için bkz . Nasıl yapılır: Standart Menü Komutunu Değiştirme.

DSL'yi dağıtma

Diğer kullanıcıların etki alanına özgü dili kullanmasına izin vermek için bir Visual Studio Uzantısı (VSIX) dosyası dağıtırsınız. Bu, DSL çözümünü oluştururken oluşturulur.

Çözümünüzün bin klasöründe .vsix dosyasını bulun. Yüklemek istediğiniz bilgisayara kopyalayın. Bu bilgisayarda VSIX dosyasına çift tıklayın. DSL, bu bilgisayardaki tüm Visual Studio örneklerinde kullanılabilir.

Visual Studio'nun deneysel örneğini kullanmak zorunda olmaması için DSL'yi kendi bilgisayarınıza yüklemek için aynı yordamı kullanabilirsiniz.

Daha fazla bilgi için bkz. Domain-Specific Dil Çözümlerini Dağıtma.

Eski Deneysel DSL'leri kaldırma

Artık istemediğiniz deneysel DLL'ler oluşturduysanız Visual Studio Deneysel örneğini sıfırlayarak bunları bilgisayarınızdan kaldırabilirsiniz.

Bu, tüm deneysel DLL'leri ve diğer deneysel Visual Studio uzantılarını bilgisayarınızdan kaldırır. Bunlar, hata ayıklama modunda yürütülen uzantılardır.

Bu yordam, VSIX dosyası yürütülerek tamamen yüklenmiş DCL'leri veya diğer Visual Studio uzantılarını kaldırmaz.

Visual Studio Deneysel örneğini sıfırlamak için

  1. 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.

  2. Hala kullanmak istediğiniz tüm deneysel DLL'leri veya diğer deneysel Visual Studio uzantılarını yeniden oluşturun.