CURSO NOVO - BLAZOR SERVER

balta.io balta.io
  • Cursos
  • Carreiras
  • Para sua Empresa
  • Agenda
  • Blog

Seja Premium
balta.io

  • Cursos
  • Carreiras
  • Para sua Empresa
  • Agenda
  • Blog
  • Player
Seja Premium

Entre ou Cadastre-se

  • Home
  • Artigos
  • Criando templates no Visual Studio


Criando templates no Visual Studio

O nosso dia a dia como dev é uma grande correria pingando de um projeto para outro, e com isso vem as copias de estruturas e de códigos existente para criar uma nova funcionalidade, basicamente copiamos o esqueleto de arquivos e depois renomearmos para ai começar a desenvolver o que realmente importa, isso é tão natural e também muito repetitivo.

Seria uma maravilha se simplesmente apenas com um clique no menu New Item e a escolha de um arquivo o nosso amigo vs2019 criasse toda a estrutura para nós.

Então comemore pois esse dia chegou, neste artigo vou te ensinar como você pode melhorar a produtividade do seu dia a dia, fazendo você deixar de copiar e colar código e criar templates de projeto para facilitar o desenvolvimento de novas funcionalidades.

Mão na massa:

Basicamente estaremos criando um simples template um serviço onde será criado a partir de uma ção do vs2019 os arquivos:

  • Interface (onde fica declarado a assinatura do metodo)
  • Classe de Request (basicamente é o objeto que será enviado para este serviço)
  • Classe de implementação (Onde será implementada a interface criada enviando como parametro o request).

É algo bem proximo do recurso de scaffold no ASPNET CORE MVC onde é gerado os controllers com as ações de forma atomatica.

Primeiro passo:

Crie um projeto do tipo Console Application para ficar mais fácil de criarmos os arquivos que envolvem a nossa automação de template.

Vou criar o projeto via vs2019, porem nada impede de ser criado via dotnet CLI.

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled.png

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%201.png

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%202.png

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%203.png

Após o projeto estar criado, iremos realizar a seguinte ação:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%204.png

Crie uma pasta chamada Template e dentro desta Pasta uma interface chamada IRepository

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%205.png

crie uma interface:

  • Interface (pode chama-la como quiser)

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%206.png

No meu caso vou montar esta estrutura:

  • IServiceTemplate.cs (interface)

Ficou desta forma:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%207.png

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%208.png

logo após criar toda a estrutura realize a exportação como template:

navegue até a aba Project→ Export Template:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%209.png

selecione a opção de Item Template

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2010.png

no caso selecione a interface:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2011.png

caso queira pode selecionar algumas dependências, pois com isso o arquivo gerado via template já vem com essas importações por exemplo System.Linq.

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2012.png

Realize o preenchimento do nome do seu template e da descrição do mesmo.

No caso existe a possibilidade de colocar um icon customizado, eu não vou colocar pois não é obrigatório, mais você pode colocar o logo da empresa ou do projeto para que se destina este template.

logo após click em Finish

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2013.png

Será aberto uma pasta com um template zip conforme abaixo, realize a copia deste template para outro diretorio onde seja possivel abri-lo no VSCode ou outro editor de sua preferencia:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2014.png

realize a extração da pasta e abra no vscode, note que foi gerado 3 arquivos:

  • Icon (que será exibido no vs2019)
  • Classe de template
  • Arquivo de configuração do .vstemplate

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2015.png

Agora como o nosso template tem 3 arquivos iremos editar manualmente o vstemplate para aceitar os demais arquivos.

O arquivo padrão de configuração está desta forma:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2016.png

Vamos editar para esse modelo:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2017.png

note que existe uma variavel chamada $fileinputname$, que corresponde ao nome do arquivo digitado na criação via vs2019.

Note que você pode definir padrões de nomes de arquivos com prefixo e sufixo, tudo vai de acordo com o padrão do seu projeto.

Logo após adicionar essas linhas de configuração no VSCODE crie os metodos padrões da sua interface como por exemplo o metodo abaixo:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2018.png

Criei um metodo chamado EXECUTE onde receberá um Servicerequest que será criado via template.

Crie um arquivo chamado ServiceTemplateRequest.cs (pode ser o nome que você desejar) e crie o seguinte codigo dentro deste arquivo:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2019.png

Essa classe será a classe de request que será passada como parâmetro para o nosso método e para nossa interface.

Na sequencia crie um arquivo chamado ServiceTemplate.cs (pode ser o nome que você desejar), dentro desse arquivo será realizado a implementação da nossa interface conforme o exemplo abaixo:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2020.png

no caso foi realizado a implementação da interface em conjunto com o metodo Execute que criamos anteriormente.

Após finalizar as configurações e implementações destes arquivos, agora vamos importar esse template dentro do vs2019:

Primeiramente realize o zip desses arquivos, desta forma:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2021.png

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2022.png

O seu arquivo .zip deverá conter somente os arquivos de template conforme a print abaixo:

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2023.png

Agora dentro do vs2019 navegue até o caminho :

Tools→ Options

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2024.png

Pesquise pela palavra Locations, entre no menu Projects and Solutions, copie o caminho presente no passo 2

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2025.png

abra esse caminho via executar (Tecla Windows + R)

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2026.png

Caso já exista algum zip com o mesmo nome devido ao processo de exportação realizado anteriormente, realize a exclusão do arquivo existente e cole o arquivo que você acabou de gerar o zip.

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2027.png

Caso você queira manter os templates de forma organizada, você pode movimentar para a pasta Visual C# ou para as demais linguagens de sua preferência.

Agora feche o seu vs2019.

Abra novamente no projeto de console

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2028.png

Agora vamos testar o template, crie uma nova pasta chamada TemplateTest, para que possamos criar os arquivos dentro dela.

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2029.png

Logo na sequencia vá ate o menu Add → New Item

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2030.png

Note que o template criado já esta em primeiro, porem caso não esteja pesquise pelo nome na barra de pesquisa do lado direito.

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2031.png

Selecione o template e coloque o nome que desejar, eu vou criar por exemplo um serviço de CEP

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2032.png

Note que nao preciso colocar a extensão '.cs' e nem o prefixo ou sufixo de Service etc..

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2033.png

Note que a estrutura padrão de um Service foi criada com sucesso, agora basta você implementar a sua logica, sem se preocupar em copiar arquivos e estruturas de outros lugares.

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2034.png

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2035.png

https://baltaio.blob.core.windows.net/static/content/articles/images/criando-templates-visual-studio/criando-templates-visual-studio/Untitled%2036.png

Espero que tenha gostado desta dica, acredito que os templates vieram para agregar em nossas vidas, para focarmos no que realmente importa que é gerar valor para o nosso cliente/negocio.

Até a próxima!

Populares

Priority Queue

Priority Queue ou fila prioritária é um tipo de lista inclusa no C# 10 que permite que seus itens...


Implicit Operators no C#

Implicit Operators permitem adicionar comportamentos de conversão a objetos Built In ou complexos...


ASP.NET 5 – Autenticação e Autorização com Bearer e JWT

Este artigo atualmente utiliza a versão 5.0.0-rc.1 do ASP.NET/.NET, o que significa que ainda não...


Clean Code - Guia e Exemplos

Saiba como manter seu código limpo (Clean Code) seguindo algumas práticas sugeridas pelo Robert C...


Git e GitHub - Instalação, Configuração e Primeiros Passos

Git é um sistema de controle de versões distribuídas, enquanto GitHub é uma plataforma que tem o ...


Compartilhe este artigo



Conheça o autor

Pedro Pagotto

Pedro Pagotto

Desenvolvedor

I`m in the software development market since 2014 working with the .NET platform for backend, I have advanced knowledge in programming logic, object oriented programming, programming architeture, optimization of algorithms and structuring and restructuring of codes.





2.438

Aulas disponíveis

235

horas de conteúdo

53.092

Alunos matriculados

36.728

Certificados emitidos





Comece de graça agora mesmo!

Temos mais de 18 cursos totalmente de graça e todos com certificado de conclusão.

Começar


Prefere algo mais Premium?

Conheça nossos planos



Premium semestral

Compra única, parcelada em até
12x no cartão de crédito


12x R$

41

,48

=R$ 497,80
  • 6 meses de acesso
  • Acesso à todo conteúdo
  • Emissão de Certificado
  • Tira Dúvidas Online
  • 54 cursos disponíveis
  • 4 carreiras disponíveis
  • 161 temas de tecnologia
  • Conteúdo novo todo mês
  • Encontros Premium

Começar agora

Política de privacidade

Premium anual

Compra única, parcelada em até
12x no cartão de crédito


12x R$

70

,65

=R$ 847,80
  • 1 ano de acesso
  • Acesso à todo conteúdo
  • Emissão de Certificado
  • Tira Dúvidas Online
  • 54 cursos disponíveis
  • 4 carreiras disponíveis
  • 161 temas de tecnologia
  • Conteúdo novo todo mês
  • Encontros Premium

Começar agora

Política de privacidade



Precisa de ajuda?

Dúvidas frequentes



  • Posso começar de graça?

    Sim! Basta criar sua conta gratuita no balta.io e começar seus estudos. Nós contamos com diversos cursos TOTALMENTE gratuitos e com certificado de conclusão.

  • Vou ter que pagar algo?

    Nós temos cursos gratuitos e pagos, porém você não precisa informar nenhum dado de pagamento para começar seus estudos gratuitamente conosco. Os cursos gratuitos são completos e com certificado de conclusão, você não paga nada por eles.

    Porém, caso queira algo mais Premium , você terá acesso à diversos benefícios que vão te ajudar ainda mais em sua carreira.

  • Por onde devo começar?

    Siga SEMPRE as nossas Carreiras , elas vão te orientar em todos os sentidos. Os cursos já estão organizados em categorias e carreiras para facilitar seu aprendizado.
    Nossa sugestão para aprendizado é começar pelo Backend e seguindo para Frontend e Mobile.

    • Backend
    • Frontend
    • Mobile

  • Os cursos ensinam tudo que preciso?

    Nenhum curso no mundo vai te ensinar tudo, desculpa ser sincero! Os cursos são uma base, eles fornecem por volta de 30% do que você precisa aprender, o resto é com você, com dedicação e MUITA prática.

  • O que eu devo estudar?

    Java ou .NET? Angular ou React? Xamarin ou Flutter? A resposta é simples e direta: "Você já sabe o básico?"

    Se você ainda não sabe BEM o básico, ou seja, os fundamentos, OOP, SOLID, Clean Code, está perdendo tempo estudando Frameworks ou até coisas mais avançadas como Docker. Foque nos seus objetivos primeiro.
    Agora se você está indeciso sobre qual Framework estudar, a boa notícia é que o mercado neste momento está bem aquecido e você tem várias oportunidade. Desta forma o que levaríamos em conta para tomar esta decisão seria:

    • Já sei o básico
    • O Framework/Tecnologia tem mercado onde eu estou (região)
    • O Framework/Tecnologia é utilizado em uma empresa onde quero atual
    • O Framework/Tecnologia resolve meu problema
    • Eu gosto de utilizar o Framework/Tecnologia

  • Estou pronto para estudar no balta.io?

    Com certeza! O primeiro passo é começar e você pode fazer isto agora mesmo!

    Começar de graça

Ainda tem dúvidas?





Assine nosso Newsletter

Receba em primeira mão todas as nossas novidades.

Cadastrar


balta.io

Sobre

  • Como funciona?
  • Seja Premium
  • Agenda
  • Blog
  • Todos os cursos

Cursos

  • Frontend
  • Backend
  • Mobile
  • Fullstack

Suporte

  • Termos de uso
  • Privacidade
  • Cancelamento
  • Central de ajuda

Redes Sociais

  • Telegram
  • Facebook
  • Instagram
  • YouTube
  • Twitch
  • LinkedIn
  • Discord