Condividi tramite


Esercitazione: Creare un modello di progetto

Con .NET è possibile creare e distribuire modelli che generano progetti, file e risorse. Questa esercitazione è la seconda parte di una serie che illustra come creare, installare e disinstallare modelli da usare con il dotnet new comando .

Suggerimento

I modelli .NET ufficiali forniti con .NET SDK sono disponibili nei repository seguenti:

Modelli Repository
Console, libreria di classi e modelli di elementi comuni dotnet/sdk
modelli ASP.NET e Blazor dotnet/aspnetcore
ASP.NET modelli di applicazione a pagina singola dotnet/spa-templates
Modelli WPF dotnet/wpf
Modelli di Windows Form dotnet/winforms
Modelli di test dotnet/test-templates
Modelli MAUI dotnet/maui

È possibile visualizzare i modelli installati nel computer eseguendo il dotnet new list comando .

In questa parte della serie si apprenderà come:

  • Creare le risorse di un modello di progetto.
  • Creare la cartella e il file di configurazione del modello.
  • Installare un modello da un percorso di file.
  • Testare un modello di elemento.
  • Disinstallare un modello di elemento.

Prerequisiti

  • .NET 9 o versione successiva.

  • Completare la parte 1 di questa serie di esercitazioni.

  • Aprire un terminale e passare alla cartella working\content .

Creare un modello di progetto

I modelli di progetto producono progetti pronti per l'esecuzione che permettono agli utenti di iniziare con un insieme di codice funzionante. .NET include alcuni modelli di progetto, ad esempio un'applicazione console o una libreria di classi. In questo esempio viene creato un nuovo progetto di applicazione console che sostituisce l'output della console "Hello World" standard con quello eseguito in modo asincrono.

Nel terminale passare alla cartella working\content e creare una nuova sottocartella denominata consoleasync. Immettere la sottocartella ed eseguire dotnet new console per generare l'applicazione console standard. Modificare i file prodotti da questo modello per creare un nuovo modello.

working
└───content
    └───consoleasync
            consoleasync.csproj
            Program.cs

Modificare Program.cs

Aprire il file Program.cs . Il progetto console standard non scrive in modo asincrono nell'output della console, quindi è necessario aggiungerlo. Modificare il codice nel codice seguente e salvare il file:

// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");

Dopo aver creato il contenuto del modello, è necessario creare la configurazione del modello nella cartella radice del modello.

Creare la configurazione del template

In questa esercitazione la cartella del modello si trova in working\content\consoleasync.

I modelli vengono riconosciuti da .NET perché hanno una cartella speciale e un file di configurazione nella radice della cartella del modello.

Creare prima di tutto una nuova sottocartella denominata .template.confige immetterla. Creare quindi un nuovo file denominato template.json. La struttura di cartelle dovrebbe essere simile alla seguente:

working
└───content
    └───consoleasync
        └───.template.config
                template.json

Aprire il template.json con l'editor di testo preferito e incollarlo nel codice JSON seguente e salvarlo.

{
  "$schema": "http://json.schemastore.org/template",
  "author": "Me",
  "classifications": [ "Common", "Console" ],
  "identity": "ExampleTemplate.AsyncProject",
  "name": "Example templates: async project",
  "shortName": "consoleasync",
  "sourceName":"consoleasync",
  "tags": {
    "language": "C#",
    "type": "project"
  }
}

Questo file di configurazione contiene tutte le impostazioni per il modello. È possibile visualizzare le impostazioni di base, ad esempio name e shortName, ma esiste anche un tags/type valore impostato su project. In questo modo il modello viene categorizzato come modello di "progetto". Non esiste alcuna restrizione sul tipo di modello creato. I valori item e project sono nomi comuni che .NET raccomanda per permettere agli utenti di filtrare facilmente il tipo di modello che cercano.

L'elemento sourceName viene sostituito quando l'utente usa il modello. Il valore di sourceName nel file di configurazione viene cercato in ogni nome file e contenuto del file e, per impostazione predefinita, viene sostituito con il nome della cartella corrente. Quando il -n parametro o --name viene passato con il dotnet new comando , viene usato il valore specificato anziché il nome della cartella corrente. Nel caso di questo modello, consoleasync viene sostituito nel nome del file con estensione csproj .

L'elemento classifications rappresenta la colonna tag visualizzata quando si esegue dotnet new e si ottiene un elenco di modelli. Gli utenti possono anche eseguire ricerche in base ai tag di classificazione. Non confondere la tags proprietà nel file template.json con l'elenco dei classifications tag. Sono due concetti diversi, purtroppo denominati allo stesso modo. Lo schema completo per il file template.json è disponibile nell'archivio schemi JSON ed è descritto in Informazioni di riferimento per template.json. Per altre informazioni sul file template.json , vedere il wiki dotnet templating.

Ora che si dispone di un file di.template.config/template.json valido, il modello è pronto per l'installazione. Prima di installare il modello, assicurarsi di eliminare eventuali cartelle e file aggiuntivi che non si desidera includere nel modello, ad esempio le cartelle bin o obj . Nel terminale passare alla cartella consoleasync ed eseguire dotnet new install .\ per installare il modello che si trova nella cartella corrente. Se si utilizza un sistema operativo Linux o macOS, usare una barra in avanti: dotnet new install ./.

dotnet new install .\

Questo comando restituisce un elenco dei modelli installati, che devono includere il proprio.

The following template packages will be installed:
   <root path>\working\content\consoleasync

Success: <root path>\working\content\consoleasync installed the following templates:
Templates                                         Short Name               Language          Tags
--------------------------------------------      -------------------      ------------      ----------------------
Example templates: async project                  consoleasync             [C#]              Common/Console

Testare il modello di progetto

Dopo aver installato un modello di progetto, testarlo.

  1. Passare alla cartella di test .

  2. Creare una nuova applicazione console con il comando seguente, che genera un progetto funzionante che è possibile testare facilmente con il dotnet run comando .

    dotnet new consoleasync -n MyProject
    

    Viene visualizzato l'output seguente.

    The template "Example templates: async project" was created successfully.
    
  3. Eseguire il progetto usando il comando seguente.

    dotnet run
    

    Viene visualizzato l'output seguente.

    Hello World with C#
    

Congratulazioni! È stato creato e distribuito un modello di progetto con .NET. In preparazione per la parte successiva di questa serie di esercitazioni, disinstallare il modello creato. Assicurarsi di eliminare anche tutti i file dalla cartella di test . In questo modo si torna a uno stato pulito pronto per la parte successiva di questa serie di esercitazioni.

Disinstallare il modello

Nel terminale passare alla cartella consoleasync ed eseguire il comando seguente per disinstallare il modello che si trova nella cartella corrente:

  • In Windows: dotnet new uninstall .\
  • In Linux o macOS: dotnet new uninstall ./

Questo comando restituisce un elenco dei modelli disinstallati, che dovrebbe includere il tuo.

Success: <root path>\working\content\consoleasync was uninstalled.

In qualsiasi momento, è possibile usare dotnet new uninstall per visualizzare un elenco di pacchetti di modelli installati, tra cui per ogni pacchetto di modello il comando da disinstallare.

Passaggi successivi

In questa esercitazione è stato creato un modello di progetto. Per scoprire come confezionare sia i modelli di elementi che quelli di progetto in un file di facile utilizzo, continuate a seguire questa serie di esercitazioni.