Pakketten verkennen
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:
.nupkgbestandsextensie. - 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.jsonbestand. -
Metagegevens:
package.jsonbeschrijft 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.pyofpyproject.tomlbestanden 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 |