Eğitim
Modül
.NET Aspire projesi oluşturma - Training
.NET 8'de .NET Aspire yığınını kullanarak sıfırdan bulutta yerel uygulamalar oluşturmayı veya mevcut bir uygulamaya düzenleme eklemeyi öğrenin.
Bu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
.NET SDK'sı, zaten yüklü ve kullanıma hazır birçok şablonla birlikte gelir. Komut dotnet new
yalnızca şablon kullanmanın yolu değildir, aynı zamanda şablonların nasıl yüklenip kaldırılma yöntemidir. Uygulama, hizmet, araç veya sınıf kitaplığı gibi herhangi bir proje türü için kendi özel şablonlarınızı oluşturabilirsiniz. Yapılandırma dosyası gibi bir veya daha fazla bağımsız dosyanın çıktılarını veren bir şablon bile oluşturabilirsiniz.
Doğrudan bir NuGet .nupkg dosyasına başvurarak veya şablonu içeren bir dosya sistemi dizini belirterek herhangi bir NuGet akışına nuGet paketinden özel şablonlar yükleyebilirsiniz. Şablon altyapısı, değerleri değiştirmenize, dosyaları dahil edip hariç tutmanıza ve şablonunuz kullanıldığında özel işlem işlemleri yürütmenize olanak sağlayan özellikler sunar.
Şablon altyapısı açık kaynak ve çevrimiçi kod deposu GitHub'da dotnet/templating konumundadır. üçüncü tarafların şablonları da dahil olmak üzere daha fazla şablon kullanılarak dotnet new search
bulunabilir. Özel şablonlar oluşturma ve kullanma hakkında daha fazla bilgi için bkz . Dotnet new ve dotnet/templating GitHub deposu Wiki'sine yönelik kendi şablonlarınızı oluşturma.
Not
Şablon örnekleri dotnet/templating GitHub deposunda bulunabilir.
İzlenecek yolu izlemek ve şablon oluşturmak için dotnet yeni öğreticisi için özel şablon oluşturma öğreticisine bakın.
.NET SDK'sını yüklediğinizde konsol uygulamaları, sınıf kitaplıkları, birim testi projeleri, ASP.NET Core uygulamaları (Angular ve React projeleri dahil) ve yapılandırma dosyaları dahil olmak üzere proje ve dosya oluşturmak için bir düzineden fazla yerleşik şablon alırsınız. Yerleşik şablonları listelemek için komutunu dotnet new list
çalıştırın:
dotnet new list
Şablon aşağıdaki bölümlerden oluşur:
Kaynak dosya ve klasörler, komut çalıştırıldığında dotnet new <TEMPLATE>
şablon altyapısının kullanmasını istediğiniz dosyaları ve klasörleri içerir. Şablon altyapısı, proje üretmek için kaynak kodu olarak çalıştırılabilir projeleri kullanacak şekilde tasarlanmıştır. Bunun çeşitli avantajları vardır:
Şablonda depolanan dosya ve klasörler resmi .NET proje türleriyle sınırlı değildir. Kaynak dosya ve klasörler, şablon altyapısı çıktı olarak yalnızca bir dosya üretse bile şablon kullanıldığında oluşturmak istediğiniz içeriklerden oluşabilir.
Şablon tarafından oluşturulan dosyalar, template.json yapılandırma dosyasında sağladığınız mantık ve ayarlara göre değiştirilebilir. Kullanıcı, komut seçenekleri dotnet new <TEMPLATE>
geçirerek bu ayarları geçersiz kılabilir. Özel mantığın yaygın bir örneği, şablon tarafından dağıtılan kod dosyasındaki bir sınıf veya değişken için bir ad sağlamaktır.
template.json dosyası, şablonun kök dizinindeki .template.config klasörüne yerleştirilir. Dosya, şablon altyapısına yapılandırma bilgileri sağlar. En düşük yapılandırma, işlevsel bir şablon oluşturmak için yeterli olan aşağıdaki tabloda gösterilen üyeleri gerektirir.
Üye | Type | Açıklama |
---|---|---|
$schema |
URI | template.json dosyasının JSON şeması. JSON şemalarını destekleyen düzenleyiciler, şema belirtildiğinde JSON düzenleme özelliklerini etkinleştirir. Örneğin, Visual Studio Code bu üyenin IntelliSense'i etkinleştirmesini gerektirir. değerini http://json.schemastore.org/template kullanın. |
author |
Dize | Şablonun yazarı. |
classifications |
array(dize) | Bir kullanıcının şablonu ararken bulmak için kullanabileceği şablonun sıfır veya daha fazla özelliği. Sınıflandırmalar, komutu kullanılarak dotnet new list oluşturulan şablonların listesinde göründüğünde Etiketler sütununda da görünür. |
identity |
Dize | Bu şablon için benzersiz bir ad. |
name |
Dize | Kullanıcıların görmesi gereken şablonun adı. |
shortName |
Dize | Şablon adının kullanıcı tarafından belirtildiği ortamlara uygulanan şablonu seçmek için varsayılan bir kısaltma adıdır, GUI aracılığıyla seçilmez. Örneğin, cli komutlarıyla bir komut istemindeki şablonları kullanırken kısa ad kullanışlıdır. |
sourceName |
Dize | Yerine kullanıcının belirttiği kaynak ağaçtaki ad. Şablon altyapısı, yapılandırma dosyasında belirtilenlerin herhangi bir örneğini sourceName arar ve dosya adlarında ve dosya içeriğinde değiştirir. Değiştirilecek değer, şablon çalıştırılırken veya --name seçenekleri kullanılarak -n verilebilir. Ad belirtilmezse geçerli dizin kullanılır. |
preferNameDirectory |
Boolean | Ad belirtilirse ancak çıkış dizini ayarlanmadıysa (içeriği doğrudan geçerli dizinde oluşturmak yerine) şablon için dizin oluşturulup oluşturulmayacağını gösterir. Varsayılan değer olarak yanlış kullanılır. |
template.json dosyasının tam şeması JSON Şema Deposu'nda bulunur. template.json dosyası hakkında daha fazla bilgi için dotnet templating wiki'sine bakın. Şablonlarınızı Visual Studio'da görünür hale getirme hakkında daha ayrıntılı örnekler ve bilgiler için Sayed Hashimi'nin oluşturduğu kaynaklara göz atın.
Örneğin, iki içerik dosyası içeren bir şablon klasörü vardır: console.cs ve readme.txt. ayrıca template.json dosyasını içeren .template.config adlı gerekli klasör de vardır.
└───mytemplate
│ console.cs
│ readme.txt
│
└───.template.config
template.json
template.json dosyası aşağıdaki gibi görünür:
{
"$schema": "http://json.schemastore.org/template",
"author": "Travis Chau",
"classifications": [ "Common", "Console" ],
"identity": "AdatumCorporation.ConsoleTemplate.CSharp",
"name": "Adatum Corporation Console Application",
"shortName": "adatumconsole"
}
mytemplate klasörü yüklenebilir bir şablon paketidir. Paket yüklendikten sonra komutuyla shortName
dotnet new
kullanılabilir. Örneğin, dotnet new adatumconsole
ve readme.txt
dosyalarının çıkışını console.cs
geçerli klasöre yapar.
.NET şablonları yerelleştirilebilir. Bir şablon geçerli yerel ayarla eşleşen dil için yerelleştirilmişse, bu şablonun öğeleri CLI ile aynı dilde görünür. Yeni şablonlar oluşturulurken yerelleştirme isteğe bağlıdır.
Şablondaki yerelleştirilebilir öğeler şunlardır:
Yerelleştirme dosyalarının JSON biçimi vardır ve kültür başına yalnızca bir dosya olmalıdır. Adlandırma kuralı: templatestrings.<lang code>.json
, burada lang code
CultureInfo seçeneklerinden birine karşılık gelir. Tüm yerelleştirme dosyaları klasörün içinde .template-config\localize
olmalıdır.
Yerelleştirme JSON'i anahtar değer çiftlerinden oluşur:
template.json
başvurusudur. Öğesi bir alt öğeyse, sınırlayıcı ile /
tam yolu kullanın.Şablonları yerelleştirme hakkında daha fazla bilgi için dotnet templating wiki'nin yerelleştirme sayfasına bakın.
Örneğin, bazı yerelleştirilebilir alanlara sahip template.json dosyası aşağıda verilmişti:
{
"$schema": "http://json.schemastore.org/template",
"author": "Microsoft",
"classifications": "Config",
"name": "EditorConfig file",
"description": "Creates an .editorconfig file for configuring code style preferences.",
"symbols": {
"Empty": {
"type": "parameter",
"datatype": "bool",
"defaultValue": "false",
"displayName": "Empty",
"description": "Creates empty .editorconfig instead of the defaults for .NET."
}
}
}
Ayrıca bazı alanlar Brezilya Portekizcesi olarak yerelleştirilmelidir. Dosya adı kültürle eşleşecek templatestrings.pt-BR.json
ve şöyle görünecektir:
{
"author": "Microsoft",
"name": "Arquivo EditorConfig",
"description": "Cria um arquivo .editorconfig para configurar as preferências de estilo de código.",
"symbols/Empty/displayName": "Vazio",
"symbols/Empty/description": "Cria .editorconfig vazio em vez dos padrões para .NET."
}
Dotnet pack komutu ve .csproj dosyasıyla birlikte özel bir şablon paketlenmiştir. Alternatif olarak, NuGet bir .nuspec dosyasıyla birlikte nuget pack komutuyla da kullanılabilir. Ancak NuGet, Windows üzerinde .NET Framework ve Linux ve macOS üzerinde Mono gerektirir.
.csproj dosyası, geleneksel bir kod projesi .csproj dosyasından biraz farklıdır. Aşağıdaki ayarlara dikkat edin:
<PackageType>
eklenir ve olarak Template
ayarlanır.<PackageVersion>
eklenir ve geçerli bir NuGet sürüm numarasına ayarlanır.<PackageId>
eklenir ve benzersiz bir tanımlayıcıya ayarlanır. Bu tanımlayıcı, şablon paketini kaldırmak için kullanılır ve NuGet akışları tarafından şablon paketinizi kaydetmek için kullanılır.<Title>
, <Authors>
, <Description>
ve <PackageTags>
.<TargetFramework>
Şablon işlemi tarafından üretilen ikili dosya kullanılmasa bile ayar ayarlanmalıdır. Aşağıdaki örnekte olarak ayarlanmıştır netstandard2.0
..nupkg NuGet paketi biçimindeki bir şablon paketi, tüm şablonların paket içindeki içerik klasöründe depolanmasını gerektirir. Oluşturulan .nupkg dosyasının şablon paketi olarak yüklenebilmesini sağlamak için .csproj dosyasına eklenecek birkaç ayar daha vardır:
<IncludeContentInPack>
ayar, projenin NuGet paketine içerik olarak ayarlandığı herhangi bir dosyayı içerecek şekilde ayarlanırtrue
.<IncludeBuildOutput>
, derleyici tarafından oluşturulan tüm ikili dosyaları NuGet paketinden dışlamak için olarak ayarlanır false
.<ContentTargetFolders>
olarak content
ayarlanır. Bu, içerik olarak ayarlanan dosyaların NuGet paketindeki içerik klasöründe depolanmasını sağlar. NuGet paketindeki bu klasör dotnet şablon sistemi tarafından ayrıştırılır.Şablon projeniz tarafından derlenen tüm kod dosyalarını dışlamanın kolay bir yolu, öğeyi <Compile Remove="**\*" />
proje dosyanızda bir <ItemGroup>
öğenin içinde kullanmaktır.
Şablon paketinizi yapılandırmanın kolay bir yolu, tüm şablonları tek tek klasörlere ve ardından her şablon klasörünü .csproj dosyanızla aynı dizinde bulunan bir templates klasörünün içine yerleştirmektir. Bu şekilde, şablonlardaki tüm dosya ve klasörleri içerik olarak eklemek için tek bir proje öğesi kullanabilirsiniz. Öğenin <ItemGroup>
içinde bir <Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" />
öğe oluşturun.
Bu yönergelerin tümüne uygun örnek bir .csproj dosyası aşağıda verilmiştir. Şablonlar alt klasörünü içerik paketi klasörüne paketler ve tüm kod dosyalarının derlenmesini dışlar.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageType>Template</PackageType>
<PackageVersion>1.0</PackageVersion>
<PackageId>AdatumCorporation.Utility.Templates</PackageId>
<Title>AdatumCorporation Templates</Title>
<Authors>Me</Authors>
<Description>Templates to use when creating an application for Adatum Corporation.</Description>
<PackageTags>dotnet-new;templates;contoso</PackageTags>
<TargetFramework>netstandard2.0</TargetFramework>
<IncludeContentInPack>true</IncludeContentInPack>
<IncludeBuildOutput>false</IncludeBuildOutput>
<ContentTargetFolders>content</ContentTargetFolders>
</PropertyGroup>
<ItemGroup>
<Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" />
<Compile Remove="**\*" />
</ItemGroup>
</Project>
Aşağıdaki örnekte şablon paketi oluşturmak için .csproj kullanmanın dosya ve klasör yapısı gösterilmektedir. MyDotnetTemplates.csproj dosyası ve templates klasörü, project_folder adlı dizinin kökünde bulunur. templates klasöründe mytemplate1 ve mytemplate2 adlı iki şablon bulunur. Her şablonun içerik dosyaları ve template.json yapılandırma dosyası içeren bir .template.config klasörü vardır.
project_folder
│ MyDotnetTemplates.csproj
│
└───templates
├───mytemplate1
│ │ console.cs
│ │ readme.txt
│ │
│ └───.template.config
│ template.json
│
└───mytemplate2
│ otherfile.cs
│
└───.template.config
template.json
Not
Şablon paketinin sonuç olarak dotnet new search
göründüğünden emin olmak için NuGet paket türünü olarak Template
ayarlayın.
Şablon paketi yüklemek için dotnet new install komutunu kullanın.
Şablon paketi yüklemek için NuGet paket tanımlayıcısını kullanın.
dotnet new install <NUGET_PACKAGE_ID>
Özel bir NuGet kaynağı sağlayın (örneğin, https://api.my-custom-nuget.com/v3/index.json
).
dotnet new install <NUGET_PACKAGE_ID> --nuget-source <SOURCE>
.nupkg NuGet paket dosyasının yolunu belirtin.
dotnet new install <PATH_TO_NUPKG_FILE>
Şablonlar, önceki örnekteki mytemplate1 klasörü gibi bir şablon klasöründen yüklenebilir. .template.config klasörünün klasör yolunu belirtin. Şablon dizini yolunun mutlak olması gerekmez.
dotnet new install <FILE_SYSTEM_DIRECTORY>
Kaldır komutu, başka parametre olmadan tüm yüklü şablon paketlerini ve dahil edilen şablonları listeler.
dotnet new uninstall
Bu komut aşağıdaki çıkışa benzer bir şey döndürür:
Currently installed items:
Microsoft.Azure.WebJobs.ProjectTemplates
Version: 4.0.1942
Details:
Author: Microsoft
NuGetSource: https://api.nuget.org/v3/index.json
Templates:
Azure Functions (func) C#
Azure Functions (func) F#
Uninstall Command:
dotnet new uninstall Microsoft.Azure.WebJobs.ProjectTemplates
...
Sonraki öğelerin ilk düzeyi Currently installed items:
, şablon paketini kaldırırken kullanılan tanımlayıcılardır. Önceki örnekte Microsoft.Azure.WebJobs.ProjectTemplates
ise listelenmiştir. Şablon paketi bir dosya sistemi yolu kullanılarak yüklendiyse, bu tanımlayıcı .template.config klasörünün klasör yoludur. Listede yalnızca aracılığıyla dotnet new install
yüklenen şablon paketleri gösterilir. .NET SDK'da yerleşik olarak bulunan şablon paketleri gösterilmez.
Şablon paketini kaldırmak için dotnet new uninstall komutunu kullanın.
Paket bir NuGet akışı veya .nupkg dosyası tarafından doğrudan yüklendiyse tanımlayıcıyı sağlayın.
dotnet new uninstall <NUGET_PACKAGE_ID>
Paket .template.config klasörünün yolu belirtilerek yüklendiyse, paketi kaldırmak için bu yolu kullanın. Komut tarafından dotnet new uninstall
sağlanan çıktıda şablon paketinin mutlak yolunu görebilirsiniz. Daha fazla bilgi için Yüklü şablonların listesini alma bölümüne bakın.
dotnet new uninstall <FILE_SYSTEM_DIRECTORY>
Bir şablon yüklendikten sonra, önceden yüklenmiş diğer tüm şablonlarda olduğu gibi komutunu yürüterek dotnet new <TEMPLATE>
şablonu kullanın. Ayrıca, şablon ayarlarında yapılandırdığınız şablona dotnet new
özgü seçenekler de dahil olmak üzere komutun seçeneklerini belirtebilirsiniz. Şablonun kısa adını doğrudan komutuna sağlayın:
dotnet new <TEMPLATE>
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Eğitim
Modül
.NET Aspire projesi oluşturma - Training
.NET 8'de .NET Aspire yığınını kullanarak sıfırdan bulutta yerel uygulamalar oluşturmayı veya mevcut bir uygulamaya düzenleme eklemeyi öğrenin.
Belgeler
dotnet new için proje şablonu oluşturma - .NET
dotnet new komutu için proje şablonu oluşturmayı öğrenin.
dotnet new için şablon paketi oluşturma - .NET
dotnet new komutu için şablon paketi oluşturan bir csproj dosyası oluşturmayı öğrenin.
dotnet new için öğe şablonu oluşturma - .NET CLI
dotnet new komutu için öğe şablonu oluşturmayı öğrenin. Öğe şablonları herhangi bir sayıda dosya içerebilir.