Pakketten verkennen

Voltooid

Pakketten worden gebruikt om de onderdelen te definiëren die u vertrouwt en zijn afhankelijk van uw softwareoplossing. Ze bieden een manier om deze onderdelen op te slaan in een goed gedefinieerde indeling met metagegevens om ze te beschrijven.

Wat is een pakket?

Een pakket is een geformaliseerde manier om een distribueerbare eenheid met softwareartefacten te maken die kunnen worden gebruikt vanuit een andere softwareoplossing.

Belangrijkste kenmerken van pakketten:

  • Beschrijving van inhoud: Het pakket beschrijft de inhoud die het bevat.
  • Metagegevens: Biedt extra informatie over het pakket (versie, auteur, afhankelijkheden).
  • Unieke identificatie: Informatie identificeert afzonderlijke pakketten op unieke wijze.
  • Zelf-beschrijvend: Pakketindeling is gestandaardiseerd en goed gedocumenteerd.

Voordelen van het gebruik van pakketten:

  • Gecentraliseerde opslag: Bewaar pakketten op gecentraliseerde locaties voor eenvoudige toegang.
  • Voorspelbaar verbruik: Inhoud van pakketten op een consistente manier gebruiken.
  • Ondersteuning voor hulpprogramma's: Schakel geautomatiseerde hulpprogramma's in voor het beheren van pakketten in uw softwareoplossing.
  • Versiebeheer: Verschillende versies van onderdelen bijhouden en beheren.
  • Afhankelijkheidsoplossing: Automatisch vereiste afhankelijkheden oplossen en installeren.

Pakketonderdelen

Een typisch pakket bevat:

  • Gecompileerde code: Bibliotheken, assemblies of uitvoerbare bestanden.
  • Bronbestanden: In sommige gevallen is broncode voor foutopsporing of referentie.
  • Metagegevens: Informatie over het pakket (naam, versie, auteur, licentie, afhankelijkheden).
  • Documentatie: LEESMIJ-bestanden, API-documentatie of gebruikshandleidingen.
  • Middelen: Afbeeldingen, configuratiebestanden of andere resources.

Typen pakketten

Pakketten kunnen worden gebruikt voor verschillende soorten onderdelen. Het type onderdelen dat u in uw codebasis wilt gebruiken, verschilt voor de verschillende onderdelen en lagen van de oplossing die u maakt.

Onderdeelbereiken:

  • Front-endonderdelen: JavaScript-codebestanden, CSS-bibliotheken, UI-frameworks.
  • Back-endcomponenten: .NET-assemblies, Java JARs, Python-modules.
  • Volledige oplossingen: Zelfstandige toepassingen of microservices.
  • Herbruikbare bestanden: Sjablonen, configuraties of documentatie.

In de afgelopen jaren zijn verpakkingsformaten veranderd en ontwikkeld. Er zijn nu verschillende standaardindelingen voor pakketten.

NuGet-pakketten

NuGet-pakketten (uitgesproken als 'new get') zijn een standaard die wordt gebruikt voor .NET-codeartefacten.

Kenmerken:

  • Inhoud: Bevat .NET-assembly's en gerelateerde bestanden, hulpprogramma's en soms alleen metagegevens.
  • Formatteren: In wezen een gecomprimeerde mapstructuur met bestanden in ZIP-indeling.
  • Extensie:.nupkg bestandsextensie.
  • Gebruik: Definieert hoe pakketten worden gemaakt, opgeslagen en gebruikt in het .NET-ecosysteem.

Zie ook Een inleiding tot NuGet.

npm-pakketten

npm-pakketten worden gebruikt voor JavaScript-ontwikkeling.

Kenmerken:

  • Oorsprong: Is afkomstig van Node.js ontwikkeling waarbij het de standaardverpakkingsindeling is.
  • Inhoud: Bestand of map met JavaScript-bestanden en een package.json bestand.
  • Metagegevens:package.json beschrijft de metagegevens, afhankelijkheden en scripts van het pakket.
  • Modules: Pakket bevat meestal een of meer modules die kunnen worden geladen zodra ze zijn verbruikt.

Zie ook Over pakketten en modules.

Maven-pakketten

Maven wordt gebruikt voor Java-projecten.

Kenmerken:

  • Projectobjectmodel: Elk pakket heeft een POM-bestand met een beschrijving van de metagegevens van het project.
  • Formatteren: JAR-bestanden (Java Archive) voor bibliotheken, WAR (Web Archive) voor webtoepassingen.
  • Coördinaten: Geïdentificeerd door groupId, artifactId en versie.
  • Build-hulpprogramma: Maven fungeert als pakketbeheerprogramma en bouwautomatiseringsprogramma.

PyPI-pakketten

PyPI (Python Package Index), afgekort als PyPI en bekend als de Cheese Shop, is de officiële softwareopslagplaats van derden voor Python.

Kenmerken:

  • Formatteren: Distributies in wielindelingen (.whl) of brondistributie (.tar.gz).
  • Werktuig: Beheerd met pip (pakketinstallatieprogramma voor Python).
  • Inhoud: Python-modules en -pakketten met afhankelijkheden.
  • Metagegevens:setup.py of pyproject.toml bestanden definiëren pakketgegevens.

Docker-installatiekopieën

Docker-pakketten worden installatiekopieën genoemd en bevatten volledige en zelfstandige implementaties van onderdelen.

Kenmerken:

  • Zelfstandig: Een Docker-installatiekopie vertegenwoordigt doorgaans een softwareonderdeel dat door zichzelf kan worden gehost en uitgevoerd.
  • Gelaagde architectuur: Afbeeldingen zijn ingebouwd in lagen voor efficiëntie en herbruikbaarheid.
  • Basisinstallatiekopieën: Installatiekopieën zijn mogelijk afhankelijk van andere installatiekopieën als basis (bijvoorbeeld Ubuntu, Alpine).
  • Registers: Opgeslagen in Docker-registers (Docker Hub, Azure Container Registry).

Het juiste pakkettype kiezen

Pakkettype Primair gebruik Taal/platform Extensie
NuGet .NET-bibliotheken en -hulpprogramma's C#, F#, VB.NET .nupkg
npm JavaScript-bibliotheken en -frameworks JavaScript, TypeScript n.v.t. (map)
Maven Java-bibliotheken en -toepassingen Java, Kotlin, Scala .jar, .war
PyPI Python-bibliotheken en -pakketten Python .whl, .tar.gz
Docker Toepassingen in containers Elke taal Afbeeldingslagen