Öğretici: Öğe şablonu oluşturma

.NET ile proje, dosya ve hatta kaynak oluşturan şablonlar oluşturabilir ve dağıtabilirsiniz. Bu öğretici, komutuyla kullanmak üzere şablon oluşturma, yükleme ve kaldırmayı öğreten serinin ilk dotnet new bölümü.

Serinin bu bölümünde şunları yapmayı öğrenirsiniz:

  • Öğe şablonu için sınıf oluşturma
  • Şablon yapılandırma klasörünü ve dosyasını oluşturma
  • Dosya yolundan şablon yükleme
  • Öğe şablonunu test etmek
  • Öğe şablonunu kaldırma

Önkoşullar

  • .NET 5.0 SDK veya sonraki bir sürümü.

  • Dotnet new için özel şablonlar başvuru makalesine bakın.

    Başvuru makalesinde şablonlarla ilgili temel bilgiler ve bunların nasıl bir araya geldikleri açıklanmıştır. Bu bilgilerin bazıları burada yinelenmiş olur.

  • Bir terminal açın ve working\templates klasörüne gidin.

Gerekli klasörleri oluşturma

Bu seri, şablon kaynağınızı içeren bir "çalışma klasörü" ve şablonlarınızı test etmek için kullanılan bir "test klasörü" kullanır. Çalışma klasörü ve test klasörü aynı üst klasör altında yer alalır.

İlk olarak üst klasörü oluşturun; ad önemli değildir. Ardından, working adlı bir alt klasör oluşturun. Çalışma klasörünün içinde templates adlı bir alt klasör oluşturun.

Ardından, test adlı üst klasörün altında bir klasör oluşturun. Klasör yapısı aşağıdaki gibi görünür.

parent_folder
├───test
└───working
    └───templates

Öğe şablonu oluşturma

Öğe şablonu, bir veya daha fazla dosya içeren belirli bir şablon t t öğesidir. Bu tür şablonlar, yapılandırma, kod veya çözüm dosyası gibi bir şey oluşturmak istediğiniz zaman kullanışlıdır. Bu örnekte, dize türüne bir uzantı yöntemi ekleyen bir sınıf oluştursanız iyi olur.

Terminalde working\templates klasörüne gidin ve extensions adlı yeni bir alt klasör oluşturun. klasörünü girin.

working
└───templates
    └───extensions

CommonExtensions.cs adlı yeni bir dosya oluşturun ve dosyayı sık kullanılan metin düzenleyiciniz ile açın. Bu sınıf, bir dizenin içeriğini Reverse tersine çeviren adlı bir uzantı yöntemi sağlar. Aşağıdaki kodu yapıştırın ve dosyayı kaydedin:

using System;

namespace System
{
    public static class StringExtensions
    {
        public static string Reverse(this string value)
        {
            var tempArray = value.ToCharArray();
            Array.Reverse(tempArray);
            return new string(tempArray);
        }
    }
}

Şablonun içeriğini oluşturduğunuza göre şablonun kök klasöründe şablon config dosyasını oluşturmanız gerekir.

Şablon yapılandırması oluşturma

Şablonlar, şablon kökünde var olan özel bir klasör ve yapılandırma dosyası tarafından tanınır. Bu öğreticide şablon klasörünüz working\templates\extensions konumunda bulunur.

Bir şablon sanız, şablon klasöründeki tüm dosya ve klasörler özel yapılandırma klasörü dışında şablonun bir parçası olarak dahil edilir. Bu yapılandırma klasörü .template.config.

İlk olarak , .template.configadlı yeni bir alt klasör oluşturun ve girin. Ardından template.json adlı yeni bir dosya oluşturun. Klasör yapınız şu şekilde görünür:

working
└───templates
    └───extensions
        └───.template.config
                template.json

Sık kullanılan metin düzenleyiciniz ile template.json'u açın ve aşağıdaki JSON kodunu yapıştırın ve kaydedin.

{
  "$schema": "http://json.schemastore.org/template",
  "author": "Me",
  "classifications": [ "Common", "Code" ],
  "identity": "ExampleTemplate.StringExtensions",
  "name": "Example templates: string extensions",
  "shortName": "stringext",
  "tags": {
    "language": "C#",
    "type": "item"
  }
}

Bu yapılandırma dosyası, şablonunuz için tüm ayarları içerir. ve gibi temel ayarları görebilir, name ancak olarak ayarlanmış bir değer de shortName tags/type item vardır. Bu, şablonlarınızı bir öğe şablonu olarak kategorilere ayırıyor. Oluşturmakta olduğu şablon türüyle ilgili bir kısıtlama yoktur. ve değerleri, kullanıcıların aray çalıştıkları şablon türünü kolayca filtreleyene kadar item project .NET tarafından önerilen ortak adlardır.

Öğe, classifications çalıştırarak şablon listesi alasanız dotnet new gördüğünüz etiketler sütununu temsil eder. Kullanıcılar sınıflandırma etiketlerine göre de arama yapılmasını sağlar. tags.json dosyasındaki özelliğini * etiketler listesiyle classifications karıştırmayın. Bunlar ne yazık ki benzer şekilde adlandırılmış iki farklı şeydir. template.json dosyasının tam şeması JSON Şema Deposu'nda bulunur. template.json dosyası hakkında daha fazla bilgi için bkz. dotnet templating wiki.

Geçerli bir .template.config/template.json dosyasına sahip olduğunuza göre şablonunuz yüklenmeye hazırdır. Terminalde extensions klasörüne gidin ve geçerli klasörde bulunan şablonu yüklemek için aşağıdaki komutu çalıştırın:

  • Windows:dotnet new --install .\
  • Linux veya macOS üzerinde:dotnet new --install ./

Bu komut, yüklü olan şablonların listesinin çıkışını oluşturur ve sizinkileri de içerir.

The following template packages will be installed:
   <root path>\working\templates\extensions

Success: <root path>\working\templates\extensions installed the following templates:
Templates                                         Short Name               Language          Tags
--------------------------------------------      -------------------      ------------      ----------------------
Example templates: string extensions              stringext                [C#]              Common/Code

Öğe şablonunu test etmek

Artık bir öğe şablonunu yüklemiş olduğunuza göre test edebilirsiniz. test/ klasörüne gidin ve ile yeni bir konsol uygulaması dotnet new console oluşturun. Bu, komutuyla kolayca test etmek için çalışan bir proje dotnet run üretir.

dotnet new console

Aşağıdakine benzer bir çıkış elde olur.

The template "Console Application" was created successfully.

Processing post-creation actions...
Running 'dotnet restore' on C:\test\test.csproj...
  Restore completed in 54.82 ms for C:\test\test.csproj.

Restore succeeded.

Projeyi ile çalıştırın.

dotnet run

Aşağıdaki çıkışı alırsiniz.

Hello World!

Ardından, dotnet new stringext şablonundan CommonExtensions.cs'yi oluşturmak için çalıştırın.

dotnet new stringext

Aşağıdaki çıkışı alırsiniz.

The template "Example templates: string extensions" was created successfully.

Program.cs'deki kodu değiştirerek "Hello World" dizeyi şablon tarafından sağlanan uzantı yöntemiyle tersine çevirebilirsiniz.

Console.WriteLine("Hello World!".Reverse());

Programı yeniden çalıştırın ve sonucun tersine çevril olduğunu görüyorsunuz.

dotnet run

Aşağıdaki çıkışı alırsiniz.

!dlroW olleH

Tebrikler! .NET ile bir öğe şablonu oluşturduk ve dağıttık. Bu öğretici serisinin bir sonraki bölümü için hazırlık olarak, oluşturduğunuz şablonu kaldırmanız gerekir. Test klasöründeki tüm dosyaları da silebilirsiniz. Bu, bu öğreticinin bir sonraki ana bölümü için hazır olan temiz bir durum elde etmeye devam etmene neden olur.

Şablonu kaldırma

Terminalde extensions klasörüne gidin ve geçerli klasörde bulunan şablonu kaldırmak için aşağıdaki komutu çalıştırın:

  • Windows:dotnet new --uninstall .\
  • Linux veya macOS üzerinde:dotnet new --uninstall ./

Bu komut, kaldırdığınız şablonların bir listesinin çıkışını oluşturur ve sizinkileri de içerir.

Success: <root path>\working\templates\extensions was uninstalled.

Herhangi bir zamanda, her şablon paketi için kaldırmak üzere komutu dahil olmak üzere yüklü şablon dotnet new --uninstall paketlerinin listesini görmek için kullanabilirsiniz.

Sonraki adımlar

Bu öğreticide bir öğe şablonu oluşturdun. Proje şablonu oluşturma hakkında bilgi edinmek için bu öğretici serisine devam edin.