Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET ile proje, dosya ve kaynak oluşturan şablonlar oluşturabilir ve dağıtabilirsiniz. Bu öğretici, komutuyla kullanmak üzere şablonları oluşturmayı, yüklemeyi ve kaldırmayı öğreten bir serinin dotnet new birinci bölümüdür.
Tamamlanmış şablonu .NET Örnekleri GitHub deposunda görüntüleyebilirsiniz.
Tavsiye
Öğe şablonları Visual Studio'nunYeni ÖğeEkle> iletişim kutusunda gösterilmez.
Serinin bu bölümünde şunların nasıl yapılacağını öğreneceksiniz:
- Öğe şablonu için bir sınıf oluşturun.
- Şablon yapılandırma klasörünü ve dosyasını oluşturun.
- Dosya yolundan şablon yükleyin.
- Öğe şablonunu test edin.
- Öğe şablonunu kaldırın.
Önkoşullar
.NET 9 veya sonraki bir sürüm.
Başvuru makalesinde şablonlar ve bunların nasıl bir araya getirdikleri hakkında temel bilgiler açıklanır. Bu bilgilerin bazıları burada tekrarlanır.
Bir terminal açın ve şablonları depolayıp test ettiğiniz bir klasöre gidin.
Gerekli klasörleri oluşturma
Bu seri, şablon kaynağınızın bulunduğu 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 olmalıdır.
İlk olarak, üst klasörü oluşturun; ad önemli değildir. Ardından working and test adlı iki alt klasör oluşturun. Çalışma klasörünün içinde content adlı bir alt klasör oluşturun.
Klasör yapısı aşağıdaki gibi görünmelidir.
parent_folder
├───test
└───working
└───content
Öğe şablonu oluşturma
Öğe şablonu, bir veya daha fazla dosya içeren belirli bir şablon türüdür. Bu tür şablonlar, zaten bir projeniz olduğunda ve yapılandırma dosyası veya kod dosyası gibi başka bir dosya oluşturmak istediğinizde kullanışlıdır. Bu örnekte, dize türüne bir uzantı yöntemi ekleyen bir sınıf oluşturursunuz.
Terminalinizde working\content klasörüne gidin ve extensions adlı yeni bir alt klasör oluşturun.
working
└───content
└───extensions
uzantılar klasörüne gidin ve StringExtensions.cs adlı yeni bir dosya oluşturun. Dosyayı bir metin düzenleyicisinde açın. Bu sınıf, bir dizenin içeriğini tersine çeviren adlı Reverse bir uzantı yöntemi sağlar. Aşağıdaki kodu yapıştırın ve dosyayı kaydedin:
namespace System;
public static class StringExtensions
{
public static string Reverse(this string value)
{
char[] tempArray = value.ToCharArray();
Array.Reverse(tempArray);
return new string(tempArray);
}
}
Şablonun içeriği tamamlandıysa şablon yapılandırmasını oluşturun.
Şablon yapılandırmasını oluşturma
Öğreticinin bu bölümünde şablon klasörünüz working\content\extensions konumundadır.
Şablon klasörünüzün kökünde özel bir klasör ve yapılandırma dosyası bulunduğundan şablonlar .NET tarafından tanınır.
İlk olarak, .template.configadlı yeni bir alt klasör oluşturun ve girin. Ardından template.jsonadlı yeni bir dosya oluşturun. Klasör yapınız şu şekilde görünmelidir:
working
└───content
└───extensions
└───.template.config
template.json
sık kullandığınız metin düzenleyicisiyle template.json 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"
},
"symbols": {
"ClassName":{
"type": "parameter",
"description": "The name of the code file and class.",
"datatype": "text",
"replaces": "StringExtensions",
"fileRename": "StringExtensions",
"defaultValue": "StringExtensions"
}
}
}
Bu yapılandırma dosyası, şablonunuzun tüm ayarlarını içerir. ve shortNamegibi name temel ayarları görebilirsiniz, ancak olarak ayarlanmış itembir tags/type değer de vardır. Bu, şablonunuzu "öğe" şablonu olarak kategorilere ayırır. Oluşturduğunuz şablon türüyle ilgili bir kısıtlama yoktur.
item ve project değerleri, kullanıcıların aradıkları şablon türünü kolayca filtreleyebilmeleri için .NET tarafından önerilen yaygın adlardır.
öğe, classifications çalıştırdığınızda dotnet new ve şablonların listesini aldığınızda gördüğünüz etiketler sütununu temsil eder. Kullanıcılar sınıflandırma etiketlerine göre de arama yapabilir.
template.json dosyasındaki özelliği etiketler listesiyle classifications karıştırmayıntags. Bunlar ne yazık ki aynı adlı iki farklı kavramdır.
template.json dosyasının tam şeması JSON Şema Deposu'nda bulunur ve template.jsonbaşvurusu bölümünde açıklanmıştır.
template.json dosyası hakkında daha fazla bilgi için dotnet templating wiki'sine bakın.
symbols Bu JSON nesnesinin bölümü, şablonda kullanılabilecek parametreleri tanımlamak için kullanılır. Bu durumda, tanımlanmış bir parametre vardır: ClassName. Tanımlanan parametre aşağıdaki ayarları içerir:
-
type- Bu zorunlu bir ayardır ve olarak ayarlanmalıdırparameter. -
description- Şablon yardımında yazdırılan parametrenin açıklaması. -
datatype- Parametre kullanıldığında parametre değerinin veri türü. -
replaces- Tüm şablon dosyalarında parametresinin değeriyle değiştirilmesi gereken bir metin değeri belirtir. -
fileRename- benzer şekildereplaces, tüm şablon dosyalarının adlarında parametresinin değeriyle değiştirilen bir metin değeri belirtir. -
defaultValue- Parametre kullanıcı tarafından belirtilmediğinde bu parametrenin varsayılan değeri.
Şablon kullanıldığında, kullanıcı parametresi için ClassName bir değer sağlayabilir ve bu değer tüm oluşumlarının StringExtensionsyerini alır. Bir değer sağlanmazsa, defaultValue kullanılır. Bu şablon için iki yineleme StringExtensionsvardır: dosya StringExtensions.cs ve StringExtensions sınıfı.
defaultValue parametresi olduğundanStringExtensions, şablon kullanılırken parametre belirtilmezse dosya adı ve sınıf adı değişmeden kalır. Örneğin dotnet new stringext -ClassName MyExts, bir değer belirtildiğinde, dosya MyExts.cs yeniden adlandırılır ve sınıf MyExts olarak yeniden adlandırılır.
Bir şablon için hangi parametrelerin kullanılabilir olduğunu görmek için parametresini -? şablon adıyla kullanın:
dotnet new stringext -?
Bu, aşağıdaki çıkışı üretir:
Example templates: string extensions (C#)
Author: Me
Usage:
dotnet new stringext [options] [template options]
Options:
-n, --name <name> The name for the output being created. If no name is specified, the name of the output directory is used.
-o, --output <output> Location to place the generated output.
--dry-run Displays a summary of what would happen if the given command line were run if it would result in a template creation.
--force Forces content to be generated even if it would change existing files.
--no-update-check Disables checking for the template package updates when instantiating a template.
--project <project> The project that should be used for context evaluation.
-lang, --language <C#> Specifies the template language to instantiate.
--type <item> Specifies the template type to instantiate.
Template options:
-C, --ClassName <ClassName> The name of the code file and class.
Type: text
Default: StringExtensions
Artık geçerli bir .template.config/template.json dosyanız olduğuna göre, şablonunuz yüklenmeye hazırdır. Terminalinizde uzantılar klasörüne gidin ve geçerli klasörde bulunan şablonu yüklemek için aşağıdaki komutu çalıştırın:
-
Windows'da:
dotnet new install .\ -
Linux veya macOS'ta:
dotnet new install ./
Bu komut, sizinkileri de içermesi gereken yüklü şablonların listesini oluşturur.
The following template packages will be installed:
<root path>\working\content\extensions
Success: <root path>\working\content\extensions installed the following templates:
Templates Short Name Language Tags
-------------------------------------------- ------------------- ------------ ----------------------
Example templates: string extensions stringext [C#] Common/Code
Öğe şablonunu test edin
Artık yüklü bir öğe şablonunuz olduğuna göre, bunu test edin.
Test klasörüne gidin.
komutuyla
dotnet runkolayca test edebilirsiniz çalışan bir proje oluşturan iledotnet new consoleyeni bir konsol uygulaması oluşturun.dotnet new consoleAşağıdakine benzer bir çıkış elde edersiniz.
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.Aşağıdaki komutu kullanarak projeyi çalıştırın.
dotnet runAşağıdaki çıkışı alırsınız.
Hello, World!StringExtensions.cs dosyasını şablondan oluşturmak için komutunu çalıştırın
dotnet new stringext.dotnet new stringextAşağıdaki çıkışı alırsınız.
The template "Example templates: string extensions" was created successfully.dizesini şablon tarafından sağlanan uzantı yöntemiyle ters çevirmek
"Hello, World!"için Program.cs kodunu değiştirin.Console.WriteLine("Hello, World!".Reverse());Programı yeniden çalıştırın ve sonucun ters çevrildiğini görün.
dotnet runAşağıdaki çıkışı alırsınız.
!dlroW ,olleH
Tebrikler! .NET ile bir öğe şablonu oluşturdunuz ve dağıttınız. Bu öğretici serisinin sonraki bölümüne hazırlanırken, oluşturduğunuz şablonu kaldırın. Test klasöründeki tüm dosya ve klasörleri de sildiğinizden emin olun. Böylece, bu öğretici serisinin bir sonraki bölümüne hazır bir temiz duruma geri dönersiniz.
Şablonu kaldırma
Terminalinizde uzantılar klasörüne gidin ve geçerli klasörde bulunan şablonları kaldırmak için aşağıdaki komutu çalıştırın:
-
Windows'da:
dotnet new uninstall .\ -
Linux veya macOS'ta:
dotnet new uninstall ./
Bu komut, kaldırılan şablonların bir listesini oluşturur ve bu liste sizinkileri de içerir.
Success: <root path>\working\content\extensions was uninstalled.
İstediğiniz zaman, her şablon paketi için kaldırma komutunun da dahil olduğu yüklü şablon paketlerinin listesini görmek için kullanabilirsiniz dotnet new uninstall .
Sonraki Adımlar
Bu öğreticide bir öğe şablonu oluşturdunuz. Proje şablonu oluşturmayı öğrenmek için bu öğretici serisine devam edin.