Delen via


Bibliotheekrichtlijnen

Deze richtlijnen bieden aanbevelingen voor ontwikkelaars voor het maken van .NET-bibliotheken van hoge kwaliteit. Deze documentatie is gericht op wat enwaarom bij het bouwen van een .NET-bibliotheek, niet op de wijze.

Aspecten van .NET-bibliotheken van hoge kwaliteit:

  • Inclusief - Goede .NET-bibliotheken streven ernaar om veel platforms, programmeertalen en toepassingen te ondersteunen.
  • Stabiel : goede .NET-bibliotheken bestaan naast elkaar in het .NET-ecosysteem, dat wordt uitgevoerd in toepassingen die zijn gebouwd met veel bibliotheken.
  • Ontworpen voor ontwikkeling : .NET-bibliotheken moeten in de loop van de tijd worden verbeterd en ontwikkeld, terwijl bestaande gebruikers worden ondersteund.
  • Foutopsporing mogelijk : .NET-bibliotheken moeten de nieuwste hulpprogramma's gebruiken om een geweldige foutopsporingservaring voor gebruikers te creëren.
  • Vertrouwde . NET-bibliotheken vertrouwen ontwikkelaars door naar NuGet te publiceren met behulp van aanbevolen beveiligingsprocedures.

Typen aanbevelingen

Elk artikel bevat vier soorten aanbevelingen: Do, Consider, Avoid en Do not. Het type aanbeveling geeft aan hoe sterk deze moet worden gevolgd.

U moet bijna altijd een Do-aanbeveling volgen. Voorbeeld:

✔️ Distribueer uw bibliotheek met behulp van een NuGet-pakket.

Aan de andere kant moeten aanbevelingen over het algemeen worden gevolgd, maar er zijn legitieme uitzonderingen op de regel en je hoeft je niet slecht te voelen over het niet opvolgen van het advies:

✔️ OVERWEEG om SemVer 2.0.0 te gebruiken om uw NuGet-pakket te versiebeheer.

Vermijd aanbevelingen die dingen noemen die over het algemeen geen goed idee zijn, hoewel het soms zinvol kan zijn deze regel te breken.

❌ VERMIJD NuGet-pakketverwijzingen die een exacte versie vragen.

En tot slot geven Niet-doen aanbevelingen aan wat u bijna nooit zou moeten doen:

❌ PUBLICEER GEEN versies met een sterke naam en versies zonder sterke naam van uw bibliotheek. Bijvoorbeeld Contoso.Api en Contoso.Api.StrongNamed.