Criar templates em .NET é uma prática essencial para desenvolvedores que desejam reaproveitar estruturas de projetos, manter padrões organizacionais e agilizar a criação de novas aplicações. Utilizar templates permite a uniformidade entre diferentes projetos, garantindo que todos sigam as mesmas convenções de codificação, estrutura de pastas, bibliotecas e configurações. Isso não apenas economiza tempo, como também reduz a margem de erros e facilita a manutenção de projetos ao longo do tempo.

Neste exemplo, vamos criar um template de um projeto .NET, instalá-lo, e depois utilizá-lo para criar outros projetos baseados nesse template. Acompanhe o passo a passo para entender como esse processo funciona.

Vamos criar um diretório raiz:

mkdir DotNetTemplates

Dentro da pasta raiz, criaremos outro diretório específico para o nosso projeto base:

mkdir MyTemplate

Agora, adicionamos um arquivo .gitignore para evitar o versionamento de arquivos desnecessários:

dotnet new gitignore

Vamos inicializar o repositório Git para o nosso template:

git init

O próximo passo é criar uma Web API:

dotnet new webapi

Vamos adicionar uma classe Book dentro do namespace MyTemplate.Models para fins de exemplo:

namespace MyTemplate.Models;

public class Book
{
}

Precisamos de um diretório de configuração para o nosso template. Vamos criá-lo agora:

mkdir .template.config

O arquivo template.json é crucial para definir as configurações do template. Vamos criar o arquivo com o seguinte conteúdo:

{
    "$schema": "http://json.schemastore.org/template",
    "author": "Talles Valiatti",
    "classifications": [ "Web", "WebAPI", "C#"],
    "identity": "my-template-web-api",
    "name": "My web api template",
    "shortName": "my-template",
    "tags": {
      "language": "C#",
      "type": "project"
    },
    "symbols": {
      "ProjectName": {
          "type": "parameter",
          "datatype": "string",
          "description": "Rename namespaces",
          "replaces": "MyTemplate",
          "FileRename": "MyTemplate",
          "defaultValue": "MyTemplate"
      }
    },
    "sources": [
      {
        "modifiers": [
          {
            "exclude": ["**/.git/**"]
          }
        ]
      }
    ]
}

<observe que>

Observações Importantes:

  • Nome do Autor: Definimos o nome do autor do template;
  • Classificações e Tags: Definimos o nome do template, a linguagem (C#), e as categorias (Web, WebAPI);
  • Parâmetro ProjectName: adicionamos um parâmetro ProjectName que substitui todos os valores "MyTemplate" pelo valor fornecido, tanto no conteúdo dos arquivos quanto no nome dos mesmos;
  • Exclusão de .git: O diretório .git não será levado para os novos projetos criados com o template.

Com tudo configurado, vamos instalar o template por meio do comando abaixo:

dotnet new install . 

Podemos verificar se o novo template foi instalado com sucesso listando os templates disponíveis:

dotnet new --list

Já podemos criar outros projetos com base nesse template. Dentro da pasta raiz, vamos criar um novo diretório:

mkdir ProjectOne

Agora, vamos criar um novo projeto com base no template que criamos anteriormente, utilizando --ProjectName ProjectOne como parâmetro:

 dotnet new my-template --ProjectName ProjectOne

Observe que o novo projeto foi criado com sucesso, e como esperado, o diretório .git não foi incluído no novo projeto.

Você já pode baixar o projeto por esse link, e não esquece de me seguir no LinkedIn!

Até a próxima, abraços!

💡
Podemos te ajudar com uma revisão 100% gratuita do seu ambiente cloud.
Share this post