[Simples] Criando 템플릿 사용자 정의 C#

"Sejam bondosos e compassivos uns para com os outros, perdoando-se mutualmente, assim como Deus os perdoou em Cristo."
Efésios 4.32



Provavelmente você já viu ou utilizou o comando dotnet new para criar projetos usando or novo .NET, então vou te mostrar como criar seu próprio template customizado!

사전 요구 사항(파라 에스테 튜토리얼):
  • dotnet CLI
  • VS Code

  • Vou criar o template de um projeto Web API, mas podemos criar templates de arquivos ou até estruturas completas com Dockerfile , .editorconfig , .sln , estruturas de 파스타 등, tudo dependse da sua necessidade (ou criatividade). Mas para este tutorial faremos da forma mais simples e útil para este momento, então vamos prosseguir.

    Com o terminal do VSCode aberto, vamos criar um projeto do tipo Web API, customizar e remover o que for desnecessário.

    > dotnet new webapi --no-https -n MyProject -o src
    > ri src/WeatherForecast.cs
    > ren src/Controllers/WeatherForecastController.cs MyController.cs
    


    Faremos algumas alterações no arquivo MyController.cs (caso seja iniciante não copy o código, mas escreva linha por linha).

    using Microsoft.AspNetCore.Mvc;
    
    // MyProject será substituido pelo nome do projeto ao criar o template
    namespace MyProject.Controllers;
    
    [ApiController]
    [Route("[controller]")]
    // WeatherForecast foi renomeado para My
    public class MyController : ControllerBase
    {
        private readonly ILogger<MyController> _logger;
    
        public MyController(ILogger<MyController> logger)
        {
            _logger = logger;
        }
    
        [HttpGet()]
        public string Get()
        {
            _logger.LogInformation("Hello World");
            return "Olá Mundo";
        }
    
        [HttpPost()]
        public void Post([FromBody] object body)
        {
            _logger.LogInformation($"received {body}");
        }
    }
    


    Agora vamos rodar para ver se está tudo certo:

    > dotnet run --project src
    Building...
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5172
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
    info: Microsoft.Hosting.Lifetime[0]
          Hosting environment: Development
    info: Microsoft.Hosting.Lifetime[0]
          Content root path: C:\repos\criando-template\src\
    


    Eu utilizo uma extensão chamadaREST Client para fazer as requisições usando o próprio VSCode para testar coisas mais rapidamente, mas você pode utilizar oPostman se preferir ou o próprio navegador no caso do método GET. Para não confundir ninguém vou mostrar o resultado do meu terminal ao fazer as requisições.

    info: MyProject.Controllers.MyController[0]
          Hello World
    info: MyProject.Controllers.MyController[0]
          received { "confia": "no Pai" }
    


    Agora는 nossa Web API 사용자 지정, vamos 구성 또는 nosso 템플릿:

    > mkdir ./src/.template.config
    > '' > ./src/.template.config/template.json
    


    문서 보관소template.json :

    {
        "$schema": "http://json.schemastore.org/template",
        "author": "@confianodev",
        "identity": "My Web Api",
        "name": "My Web Api",
        "shortName": "myapi",
        "preferNameDirectory": false,
        "sourceName": "MyProject",
        "classifications": ["Web API", "API"],
        "tags": {
            "language": "C#",
            "type": "project"
        }
    }
    


    Vou dar uma breve explicação de alguns desses campos, lembrando que podemos adaptar essas informações:

    저자 - Nome de quem tem a propriedade intlectual deste 템플릿(você, a empresa, uma organização).

    shortName - O nome que será utilizado no comando, 예: dotnet new myapi
    preferNameDirectory - Caso sejatrue será gerado o projeto dentro de uma 파스타 com o nome informado(dotnet new myapi -n EsseNome ) caso sejafalse não cria 파스타 nenhuma.

    sourceName - Muito Importante pois é a palavra-chave que vai substituir arquivos, namespace, textos 등, ao criar um novo projeto usando o seu 템플릿(dotnet new myapi -n PalavraChave ).

    태그 - Utilizado para informar qual o tipo do template e quais linguagens são suportadas(podemos criar em F# também)

    Para mais informações pode acessar estelink .

    Finalmente, vamos instalar nosso template, criar um projeto e testá-lo:

    > dotnet new -i .
    > dotnet new myapi -n Oloko -o sample
    > dotnet run --project sample/
    Building...
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5172
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
    info: Microsoft.Hosting.Lifetime[0]
          Hosting environment: Development
    info: Microsoft.Hosting.Lifetime[0]
          Content root path: C:\repos\criando-template\sample\
    


    E está pronto o nosso 템플릿. Lembrando que a ideia do template é facilitar a criação de novos projetos e novos arquivos, então crie da maneira que for mais útil para o seu dia-a-dia.

    Caso queria desinstalar basta utilizar o comando:

    > dotnet new --uninstall .
    


    Claro que este é o jeito mais simples de fazer um template, no próximo Post vou mostrar como criar uma solução completa, com dois projetos e uma solução, com Dockerfile, padronização de codigo e etc, github actions para publicar como pacote Nuget.

    Fico muito agradecido de ter compartilhado este conhecimento com você, se tiver alguma dúvida deixe nos comentários.

    액세스 meu canal no YouTube
    E caso queria ir para o post mais avançado,

    Abraços e até a próxima!

    폰테스:

    How to create your own templates
    Templating Wiki

    좋은 웹페이지 즐겨찾기