Leitfaden zu Bibliotheken

Dieser Leitfaden bietet Empfehlungen für Entwickler zum Erstellen von qualitativ hochwertigen .NET-Bibliotheken. In dieser Dokumentation liegt der Fokus auf dem Was und Warum beim Erstellen einer .NET-Bibliothek und nicht auf dem Wie.

Kriterien für hochwertige .NET-Bibliotheken:

  • Inklusiv: Gute .NET-Bibliotheken sind dafür ausgelegt, viele Plattformen, Programmiersprachen und Anwendungen zu unterstützen.
  • Stabil: Gute .NET-Bibliotheken existieren im .NET-Ökosystem nebeneinander und werden in Anwendungen ausgeführt, die mit vielen Bibliotheken erstellt wurden.
  • Für die Weiterentwickelung entworfen: .NET-Bibliotheken sollten sich im Laufe der Zeit verbessern und weiterentwickeln, während Sie vorhandene Benutzer unterstützen.
  • Debugfähig: .NET-Bibliotheken sollten die neuesten Tools verwenden, um für Benutzer eine gute Debugleistung bereitzustellen.
  • Vertrauenswürdig: Entwickler haben Vertrauen zu .NET-Bibliotheken, da diese mithilfe bewährter Sicherheitsmethoden Inhalte auf NuGet veröffentlichen.

Empfehlungstypen

Jeder Artikel enthält vier Empfehlungstypen: Do, Erwägen, Vermeiden und Do not. Der Empfehlungstyp kennzeichnet, wie streng die Empfehlung befolgt werden sollte.

Eine Do-Empfehlung sollten Sie fast immer befolgen. Beispiel:

✔️ DO Verteilen Sie Ihre Bibliothek mithilfe eines NuGet-Pakets.

Andererseits gibt es Empfehlungen, die Sie erwägen sollten. Berechtigte Ausnahmen bestätigen jedoch die Regel, und es ist auch nicht weiter schlimm, wenn Sie die folgende Anweisung nicht befolgen:

✔️ Erwägen Sie, SemVer 2.0.0 für die Versionskontrolle Ihres NuGet-Pakets zu verwenden.

Empfehlungen hinsichtlich Vermeiden geben Dinge an, die allgemein als keine gute Idee angesehen werden, jedoch kann das Brechen dieser Regel manchmal auch sinnvoll sein:

❌ Vermeiden Sie NuGet-Paketverweise, die eine exakte Version erfordern.

Schließlich kennzeichnen Do not-Empfehlungen Vorgänge, die Sie niemals ausführen sollten:

❌ Veröffentlichen Sie NICHT die Versionen Ihrer Bibliothek mit oder ohne starkem Namen. Beispiel: Contoso.Api und Contoso.Api.StrongNamed.