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âmetroProjectName
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!