Explorar pacotes

Concluído

Os pacotes são usados para definir os componentes nos quais você confia e depende em sua solução de software. Eles fornecem uma maneira de armazenar esses componentes em um formato bem definido com metadados para descrevê-los.

O que é um pacote?

Um pacote é uma maneira formalizada de criar uma unidade distribuível de artefatos de software que podem ser consumidos de outra solução de software.

Principais características das embalagens:

  • Descrição do conteúdo: O pacote descreve o conteúdo que ele contém.
  • Metadados: Fornece informações adicionais sobre o pacote (versão, autor, dependências).
  • Identificação única: As informações identificam exclusivamente os pacotes individuais.
  • Autodescritivo: O formato do pacote é padronizado e bem documentado.

Benefícios da utilização de embalagens:

  • Armazenamento centralizado: Armazene pacotes em locais centralizados para facilitar o acesso.
  • Consumo previsível: Consuma o conteúdo da embalagem de forma consistente.
  • Suporte de ferramentas: Habilite ferramentas automatizadas para gerenciar pacotes em sua solução de software.
  • Gerenciamento de versões: Rastreie e gerencie diferentes versões de componentes.
  • Resolução de dependências: Resolva e instale automaticamente as dependências necessárias.

Componentes do pacote

Uma embalagem típica contém:

  • Código compilado: Bibliotecas, assemblies ou arquivos executáveis.
  • Ficheiros de origem: Em alguns casos, código-fonte para depuração ou referência.
  • Metadados: Informações sobre o pacote (nome, versão, autor, licença, dependências).
  • Documentação: Arquivos LEIA-ME, documentação de API ou guias de uso.
  • Ativos: Imagens, arquivos de configuração ou outros recursos.

Tipos de pacotes

Os pacotes podem ser usados para diferentes tipos de componentes. O tipo de componentes que você deseja usar em sua base de código diferem para as diferentes partes e camadas da solução que você está criando.

Gamas de componentes:

  • Componentes front-end: Arquivos de código JavaScript, bibliotecas CSS, estruturas de interface do usuário.
  • Componentes de back-end: assemblies .NET, Java JARs, módulos Python.
  • Soluções completas: Aplicações autónomas ou microsserviços.
  • Ficheiros reutilizáveis: Modelos, configurações ou documentação.

Nos últimos anos, os formatos de embalagem mudaram e evoluíram. Agora existem vários formatos padrão de facto para pacotes.

Pacotes NuGet

Os pacotes NuGet (pronuncia-se "new get") são um padrão usado para artefatos de código .NET.

Caraterísticas:

  • Índice: Inclui assemblies .NET e arquivos relacionados, ferramentas e, às vezes, apenas metadados.
  • Formato: Essencialmente uma estrutura de pastas comprimidas com ficheiros em formato ZIP.
  • Extensão:.nupkg extensão de arquivo.
  • Utilização: Define como os pacotes são criados, armazenados e consumidos no ecossistema .NET.

Consulte também Uma introdução ao NuGet.

Pacotes npm

Os pacotes npm são usados para desenvolvimento JavaScript.

Caraterísticas:

  • Origem: Origina-se de Node.js desenvolvimento onde é o formato de empacotamento padrão.
  • Índice: Arquivo ou pasta contendo arquivos JavaScript e um package.json arquivo.
  • Metadados:package.json descreve os metadados, dependências e scripts do pacote.
  • Módulos: O pacote geralmente inclui um ou mais módulos que podem ser carregados uma vez consumidos.

Consulte também Sobre pacotes e módulos.

Pacotes Maven

O Maven é usado para projetos baseados em Java.

Caraterísticas:

  • Modelo de objeto do projeto: Cada pacote tem um arquivo POM descrevendo os metadados do projeto.
  • Formato: Arquivos JAR (Java Archive) para bibliotecas, WAR (Web Archive) para aplicações web.
  • Coordenadas: Identificado por groupId, artifactId e versão.
  • Ferramenta de construção: O Maven serve como gerenciador de pacotes e ferramenta de automação de compilação.

Pacotes PyPI

PyPI (Python Package Index), abreviado como PyPI e conhecido como Cheese Shop, é o repositório oficial de software de terceiros para Python.

Caraterísticas:

  • Formato: Distribuições nos formatos wheel (.whl) ou source distribution (.tar.gz).
  • Ferramenta: Gerenciado usando pip (instalador de pacotes para Python).
  • Índice: Módulos Python e pacotes com dependências.
  • Metadados:setup.py ou pyproject.toml arquivos definem informações do pacote.

Imagens do Docker

Os pacotes do Docker são chamados de imagens e contêm implantações completas e independentes de componentes.

Caraterísticas:

  • Autossuficiente: Uma imagem do Docker geralmente representa um componente de software que pode ser hospedado e executado por si só.
  • Arquitetura em camadas: As imagens são construídas em camadas para eficiência e reutilização.
  • Imagens de base: As imagens podem ser dependentes de outras imagens como base (por exemplo, Ubuntu, Alpine).
  • Registos: Armazenado em registros do Docker (Docker Hub, Azure Container Registry).

Escolher o tipo de embalagem certo

Tipo de embalagem Uso primário Idioma/Plataforma Extensão
NuGet Bibliotecas e ferramentas .NET C#, F# VB.NET .nupkg
NPM Bibliotecas e estruturas JavaScript JavaScript, TypeScript N/D (pasta)
Maven Bibliotecas e aplicações Java Java, Kotlin, Scala .jar, .war
PyPI Bibliotecas e pacotes Python Python .whl, .tar.gz
Docker Aplicações em contentores Qualquer língua Camadas de imagem