Olá! Meu nome é Vinícius Santos e serei seu instrutor no curso de Bibliotecas em Sechá.
Audiodescrição: Vinícius é um homem negro de 40 anos, com cabelo raspado. Ele usa óculos e veste uma camisa preta. Ao fundo, há uma parede com iluminação azul.
Neste curso, vamos explorar como criar uma biblioteca, os conceitos de organização de bibliotecas, como publicar essa biblioteca em feed público e feeds privados, além de como deixá-la melhor organizada e documentada. Também abordaremos como utilizar bibliotecas no dia a dia. Preparamos um material muito interessante e estamos certos de que será do agrado de todos. Vamos aprender bastante nesta jornada, continuando a estudar e programar.
Olá, tudo bem? Ao estudarmos a orientação a objetos, abordamos os conceitos de reutilização de código, herança, interfaces e classes. Esses conceitos ganham ainda mais relevância quando começamos a discutir sobre bibliotecas.
As bibliotecas são conjuntos de funcionalidades organizadas em código para serem reutilizadas em diferentes projetos. Dessa forma, podemos incluir nessas bibliotecas classes, interfaces, métodos e outros recursos que serão reaproveitados, evitando a necessidade de desenvolvê-los novamente em projetos futuros.
Vamos imaginar o seguinte cenário: estamos em uma organização que possui um sistema de vendas, um sistema de estoque e um sistema financeiro. Todos esses sistemas têm algo em comum: a necessidade de gerar relatórios CSV. Como resolver isso? Em vez de cada sistema ter sua própria forma de gerar um relatório CSV, podemos criar uma biblioteca específica para geração de relatórios CSV e distribuí-la para esses sistemas. Assim, desenvolvemos a funcionalidade uma única vez e a utilizamos em todos os sistemas.
Agora, imagine a seguinte situação: a empresa decide mudar o cabeçalho de todos os seus relatórios. Por algum motivo, a identidade visual da empresa mudou e isso precisa ser aplicado em todos os sistemas.
Se tivéssemos uma implementação para cada um dos sistemas, cada equipe teria que desenvolver sua própria solução para esse novo cabeçalho. Quando fazemos isso em uma biblioteca, precisamos apenas ajustar a biblioteca uma vez, redistribuí-la para os novos sistemas e tudo já estará aplicado. Assim, percebemos a grande vantagem de utilizar bibliotecas e distribuí-las não apenas dentro da nossa organização, mas também de forma pública.
A biblioteca nos proporciona vantagens como reutilização de código, organização e modularidade. Teremos um código mais organizado e modular. A manutenção torna-se muito mais fácil, pois não precisamos realizar um novo trabalho em cada sistema que requer atualização. Além disso, a distribuição do código é facilitada. Em vez de subir um arquivo de código e solicitar que seja copiado e ajustado em cada sistema, subimos a biblioteca, que já se encaixa perfeitamente em todos os projetos que a utilizam.
Resumindo, as bibliotecas, mais do que um conceito técnico, resolvem problemas reais nas empresas. Elas têm uma ligação direta com o que estudamos em Programação Orientada a Objetos: reutilização de código, hierarquia e distribuição desse código. Continuaremos explorando esse tema na próxima aula, quando veremos como buscar bibliotecas e utilizá-las em nosso projeto.
Olá, bem-vindos de volta. No nosso último vídeo, discutimos para que servem as bibliotecas, e agora vamos explorar como utilizá-las e sua utilidade na prática. Para isso, vamos considerar o seguinte exemplo: no Screensound, nosso velho conhecido, podemos ter a necessidade de transformar a lista de músicas que recebemos em um arquivo JSON. Se fizermos isso manualmente, precisaríamos pegar cada um dos atributos recebidos, colocá-los no formato JSON e concatenar linha por linha, o que seria um trabalho desnecessário, uma vez que o JSON já é um formato de dados amplamente utilizado. Felizmente, alguém já fez isso por nós. Por exemplo, existe uma biblioteca muito famosa e amplamente utilizada, a Newtonsoft, que serializa e desserializa formatos de JSON, transformando objetos em JSON e vice-versa.
Existem algumas formas de adicionar essa referência ao nosso projeto. Ao utilizar a biblioteca, precisamos ir ao nosso projeto e adicionar essa referência. Existem formas distintas de fazer isso. A primeira, que é a mais antiga, consiste em referenciar e exportar diretamente a DLL, que é o arquivo de ligação dinâmica para o nosso código. Para isso, baixamos essa DLL do site da Newtonsoft ou a recebemos de outra forma, e então a adicionamos diretamente ao nosso computador. Vou mostrar como fazemos isso. Primeiro, abrimos o projeto. Com o projeto aberto, vamos à seção de dependências, se o Visual Studio estiver em português. Clicamos com o botão direito e selecionamos "adicionar referência ao projeto". Depois, procuramos a pasta no computador onde a DLL está armazenada. Após adicionar, clicamos em "ok" e já podemos utilizá-la.
Aqui está um exemplo de como a referência à DLL pode ser adicionada no arquivo de projeto:
<ItemGroup>
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\..\..\..\..\Users\alura\OneDrive\Área de Trabalho\Newtonsoft.Json.dll</HintPath>
</Reference>
</ItemGroup>
Podemos perceber que essa forma de utilizar a biblioteca apresenta alguns problemas. Corremos o risco de ter uma biblioteca desatualizada, pois, se não a atualizarmos manualmente, ela não será atualizada. Também há o risco de adicionar uma DLL errada ou falsa, o que compromete a segurança do projeto. Felizmente, não precisamos mais fazer isso. Hoje, temos o gerenciador de pacotes do ecossistema .NET, o Nuget. A forma de adicionar bibliotecas aos nossos projetos, mantê-las atualizadas e garantir a segurança, sabendo quem é o autor dessas bibliotecas, é através do Nuget.
Para adicionar uma biblioteca via Nuget, com o projeto aberto, clicamos com o botão direito e selecionamos "gerenciar pacotes do Nuget". Ao clicar, uma tela de busca se abre. No nosso caso, queremos a Newtonsoft, então digitamos "Newtonsoft" para buscar. Ela aparecerá e já podemos instalá-la, tendo-a funcionando na nossa aplicação.
Após adicionar a referência da biblioteca Newtonsoft ao nosso projeto, vamos ver como utilizá-la. Vamos até o arquivo onde precisamos gerar o arquivo CSV. Primeiro, utilizamos a palavra reservada using
para importar a biblioteca, digitando Newtonsoft
.
using Newtonsoft;
No entanto, para trabalhar com JSON, precisamos ser mais específicos e importar o namespace correto:
using Newtonsoft.Json;
Com ela no nosso arquivo, no método gerarArquivo
, utilizamos o JsonConvert
da Newtonsoft para gerar nosso screen em formato JSON sem precisar criar uma lógica para essa transformação. Vamos começar criando o método GerarArquivoJson
:
public void GerarArquivoJson()
{
}
Agora, vamos adicionar a lógica para serializar o objeto e salvar o arquivo:
string json = JsonConvert.SerializeObject(new
{
nome = Nome,
musicas = ListaDeMusicasFavoritas
});
string nomeDoArquivo = $"musicas-favoritas-{Nome}.json";
File.WriteAllText(nomeDoArquivo, json);
Console.WriteLine($"O arquivo Json foi criado com sucesso! {Path.GetFullPath(nomeDoArquivo)}");
Vamos passar rapidamente pelo que esse método faz. Declaramos um screenJson
e utilizamos o serializador da Newtonsoft para transformar um objeto com o nome da lista de músicas e as listas de músicas em uma screen. Depois, criamos um arquivo, definimos seu nome e utilizamos a classe File
para salvá-lo no computador. Após salvar, verificamos em qual pasta ele está guardado. Vamos executar rapidamente para ver o resultado final. Como podem ver, o Screensound fez a busca na nossa API, trouxe uma lista de músicas e informou que o JSON da lista de músicas foi salvo em uma pasta específica. Vamos acessar essa pasta para verificar o arquivo.
Agora, acessamos o caminho onde o arquivo JSON foi salvo. Ele está em músicasfavoritas.json
. Vamos verificar seu conteúdo. Temos um arquivo com todo o conteúdo em formato JSON, pronto para ser utilizado por outra aplicação ou API que utilize esse formato de arquivo.
Mencionamos que para baixar pacotes de bibliotecas, podemos utilizar o Nuget, o gerenciador de pacotes da Microsoft. No entanto, não explicamos o que é exatamente o Nuget. O nuget.org é como um marketplace de bibliotecas, onde cada pessoa ou empresa que desenvolveu uma biblioteca a disponibiliza para que a comunidade de pessoas desenvolvedoras possa utilizá-la.
Podemos observar no site do NuGet que é possível buscar uma biblioteca, fazer o upload da nossa própria biblioteca e verificar quais pacotes estão disponíveis. Por exemplo, o Newtonsoft, um dos pacotes mais populares do NuGet, está no topo da lista, entre muitos outros que podemos utilizar.
Devemos considerar algumas boas práticas ao utilizar bibliotecas. É importante prestar atenção à segurança do nosso código e garantir que ele não comprometerá a aplicação, especialmente se for uma aplicação grande em produção. Imagine baixar uma biblioteca incompatível e a aplicação parar de funcionar. Isso não pode acontecer. A primeira ação ao decidir baixar uma biblioteca é verificar sua compatibilidade com o nosso projeto.
No Visual Studio, podemos ver os critérios aos quais devemos estar atentos ao adicionar uma biblioteca ao projeto. Clicamos com o botão direito, gerenciamos o pacote do NuGet, e ele abrirá o conjunto de bibliotecas disponíveis. Por exemplo, ao acessar o Newtonsoft na aba de instalados, podemos verificar detalhes importantes. A primeira coisa a observar é a versão do .NET de dependência, verificando se é compatível com a versão do nosso projeto. No caso do nosso Screen Sound
, ele foi escrito utilizando o .NET versão 6.0. Precisamos verificar se o Newtonsoft é compatível com o .NET 6.0. Nas dependências, vemos que ele utiliza o .NET 6.0, não requer dependências extras e é compatível com o nosso .NET. Assim, temos segurança para baixá-lo e garantir que funcionará no nosso projeto.
Outra verificação necessária é sobre o autor do projeto. Precisamos confirmar se o autor é confiável e reconhecido pela comunidade. No caso do Newtonsoft, o autor é confiável, como indicado pelo selo de verificação. Outras empresas também são verificadas. Por exemplo, ao procurar um pacote para acesso a banco de dados do MySQL Server, o MySQL Server Connector também é verificado. Isso garante que o pacote adicionado ao projeto é seguro.
Por último, devemos verificar as atualizações do pacote. Precisamos saber se o pacote recebe atualizações e se estão disponíveis. No caso do Newtonsoft, ao verificar mudanças de versão, constatamos que estamos utilizando a última versão. Se estivéssemos usando uma versão antiga, como a Crease.1
, ela apareceria na aba de atualização, indicando que há uma atualização disponível. Precisamos avaliar se essa atualização é adequada para o nosso projeto e, se for, instalá-la.
Outro ponto importante sobre atualizações é que alguns pacotes podem estar vulneráveis. Podemos forçar o Newtonsoft a utilizar um pacote vulnerável, como a versão 12.03, que está marcada como vulnerável. Recebemos um aviso de que estamos utilizando um pacote vulnerável. Devemos atualizá-lo para a última versão, que já teve a vulnerabilidade corrigida, e adicioná-la ao nosso projeto.
Falando em vulnerabilidades, podemos enfrentar problemas como a adição de um backdoor na aplicação, a entrada de vírus ou a exposição do servidor a riscos, tudo por utilizar uma biblioteca não confiável e vulnerável. Isso pode abrir portas para invasões no sistema. Portanto, é crucial escrever um código seguro e ter cuidado com as dependências utilizadas no projeto.
Com isso em mente, preparamos um checklist para verificar a segurança de uma biblioteca antes de adicioná-la ao projeto:
✓ Owners: quem mantém o pacote?
✓ Tem verificação/badges?
✓ Qual o número de downloads?
✓ Repositório ativo no GitHub? Commits recentes? Issues respondidas?
✓ A licença é compatível com o seu uso?
✓ A versão do .NET é compatível com o Target Framework do meu projeto?
Concluímos que vimos para que serve a biblioteca, como utilizá-la e os cuidados necessários ao adicioná-la ao projeto. Na próxima aula, trabalharemos na construção da nossa própria biblioteca, explorando os passos necessários para criá-la e reutilizá-la em outros projetos.
O curso C#: desenvolvimento e gerenciamento de bibliotecas possui 131 minutos de vídeos, em um total de 47 atividades. Gostou? Conheça nossos outros cursos de .NET em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Matricule-se no plano PLUS e garanta:
Mobile, Programação, Front-end, DevOps, UX & Design, Marketing Digital, Data Science, Inovação & Gestão, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.