Kurmann.Templates 0.7.4

Additional Details

Dieses Repository wird nicht mehr aktiv weiterentwickelt und ist archiviert. Aufgrund der Entscheidung vom 31. Mai 2024, die Arbeiten nicht mehr in mehreren Repositories, sondern im Monorepo https://github.com/kurmann/videoschnitt weiterzuführen, ist die Sinnhaftigkeit dieser Repository-Templates nicht mehr gegeben.

dotnet new install Kurmann.Templates::0.7.4                
This package contains a .NET Template Package you can call from the shell/command line.

.NET Templates

Archivierung

Dieses Repository wird archiviert

Hinweis: Dieses Repository wird nicht mehr aktiv weiterentwickelt und ist archiviert. Aufgrund der Entscheidung vom 31. Mai 2024, die Arbeiten nicht mehr in mehreren Repositories, sondern im Monorepo kurmann/videoschnitt weiterzuführen, ist die Sinnhaftigkeit dieser Repository-Templates nicht mehr gegeben.


Eine kleine Sammlung von verschiedenen Templates zur Beschleunigung der .NET-Entwicklung und vereinfachten NuGet-Veröffentlichung.

Beschreibung

Kurmann.Templates bietet eine kleine Palette von .NET Projekt-Templates, die speziell darauf ausgelegt sind, Entwicklern einen schnellen Start und eine Einhaltung von Best Practices in der .NET Entwicklung zu ermöglichen. Die enthaltenen Templates umfassen eine vorstrukturierte Basis für verschiedene Projekttypen, inklusive aller nötigen Konfigurationen für eine effiziente Veröffentlichung als NuGet-Paket.

Installation

Die Installation der Templates erfolgt unkompliziert über die .NET CLI:

dotnet new install Kurmann.Templates

Verfügbare Templates

Nach der Installation sind verschiedene Templates nutzbar, die den Entwicklungsprozess unterstützen:

Entities GitHub Repository Template

Dieses Template dient der Erstellung eines GitHub-Repositories, das eine .NET-Klassenbibliothek für Entitäten beinhaltet. Es enthält eine vorbereitete .gitignore, GitHub Actions für die Veröffentlichung von NuGet-Paketen und unterstützt eine klare und einheitliche Ordnerstruktur für Ihr Projekt.

Kurzname: entities-repo

Verwendung

Um ein neues Repository für Ihre .NET-Entitätsklassen zu initialisieren, verwenden Sie den folgenden Befehl in Ihrem Terminal:

dotnet new entities-repo -n ProjectName --namespace RootNamespace --description ProjectDescription

Mit diesem Befehl wird eine klare und einheitliche Verzeichnisstruktur für Ihr Repository erstellt, die die Entwicklung und Veröffentlichung von NuGet-Paketen vereinfacht. Das generierte Repository sieht wie folgt aus:

ProjectName/
├── .github/
│   └── workflows/
│       └── dotnet.yml
├── src/
│   ├── Entities/
│   │   ├── Entities.csproj
│   │   └── SampleClass.cs
│   └── ProjectName.sln
├── Tests/
│   ├── GlobalUsings.cs
│   ├── SampleClassTests.cs
│   └── Tests.csproj
├── .gitignore
├── LICENSE
├── README.md
└── PackageIcon.png

Diese Struktur beinhaltet alles, was Sie für ein professionelles Entity-Management benötigen, einschließlich Continuous Integration und Package Publishing.

Der Namespace wird vom Parameter --namespaceübernommen. Die SampleClass bekommt bspw. den Namespace RootNamespace.ProjectName.

Die ProjectDescription wird integriert im resultierenden README.md und im Description-Tag beim Entities.csproj und somit auch imm zugehörigen NuGet-Package.

Services GitHub Repository Template

Dieses Template automatisiert die Erstellung eines vollständigen GitHub-Repositories für ein ServiceCollection, die mit dem IServiceCollection-Interface eingebunden werden kann. Es integriert VSCode Debug Einstellungen und enthält die vollständigen Workflows aus dem Repository "kurmann/GitHub.Workflows".

Kurzname: services-repo

Verwendung
dotnet new services-repo -n IhrProjektName --namespace IhrRootNamespace --description "Kurze Beschreibung Ihres Projekts"

Die Verzeichnisstruktur Ihres neuen Repositorys sieht wie folgt aus:

IhrProjektName/
├── .devcontainer/
│   └── devcontainer.json
├── .github/
│   ├── release-drafter-config.yml
│   └── workflows/
│       ├── draft_release.yml
│       └── publish_package.yml
├── .vscode/
│   ├── launch.json
│   └── tasks.json
├── src/
│   ├── Application/
│   │   ├── Program.cs
│   │   └── Application.csproj
│   └── Services/
│       ├── Commands/
│       │   ├── ICommand.cs
│       │   └── SampleModule.cs
│       ├── Queries/
│       │   ├── IQueryService.cs
│       │   └── SampleQuery.cs
│       └── Hosted/
│           └── SampleHostedService.cs
│       ├── Services.csproj
│       ├── ServiceCollection.cs
│       └── ProjectNameSettings.cs
├── .gitignore
├── LICENSE
├── PackageIcon.png
├── README.md
└── IhrProjektName.sln

Diese Struktur unterstützt Sie bei der Entwicklung einer .NET Service Library und bereitet alles vor für Continuous Integration und NuGet Package Publishing.

Besonderheiten des Templates
  • VSCode Debug-Einstellungen: Mit launch.json und tasks.json für eine optimierte Debugging-Erfahrung direkt in VSCode.
  • GitHub Workflows: Automatisiert den Release-Prozess mit draft_release.yml, publish_package.yml und release-drafter-config.yml, übernommen aus dem Repository "kurmann/GitHub.Workflows".
  • Erweiterbare Service-Konfiguration: Die ServiceCollectionExtensions ermöglicht es, Services und Konfigurationen modular zu Ihrem .NET-Projekt hinzuzufügen.
// ServiceCollection.cs

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using IhrRootNamespace.IhrProjektName.Services;

namespace IhrRootNamespace.IhrProjektName;

public static class ServiceCollectionExtensions
{
    public static IServiceCollection AddIhrProjektName(
        this IServiceCollection services,
        IConfiguration configuration)
    {
        // Bindet Root-Konfigurationswerte an IhrProjektNameSettings
        services.Configure<IhrProjektNameSettings>(configuration.GetSection(IhrProjektNameSettings.SectionName));
        
        // Dienste hinzufügen
        services.AddHostedService<SampleHostedService>();
        
        return services;
    }
}

Inklusive einer README.md-Vorlage, die Sie mit Anweisungen für die Verwendung des Templates und Informationen zur Repository-Struktur versorgt. Die enthaltene Lizenzdatei und die Vorlage für das Paket-Icon stellen sicher, dass Ihr Repository von Anfang an professionell wirkt.

Integration in bestehende Projekte

Um die Services in einem bestehenden Projekt zu nutzen, fügen Sie die AddIhrProjektName-Methode zur Konfiguration Ihrer IServiceCollection hinzu. Dies ermöglicht es Ihnen, die Dienste und Einstellungen, die durch das Template bereitgestellt werden, einfach zu integrieren und zu verwenden.

Schlussfolgerung

Das Services GitHub Repository Template ist ein mächtiges Werkzeug, um ein standardisiertes, sofort einsatzbereites Service-Repository aufzusetzen. Es spart Zeit und sorgt dafür, dass Best Practices von Anfang an eingehalten werden. Durch die Vorstrukturierung und die mitgelieferten Workflows für GitHub Actions kann der Entwicklungs- und Veröffentlichungsprozess erheblich beschleunigt und vereinfacht werden.

Template: .NET Gitignore

Erstellt ein .gitignore im Arbeitsverzeichnis speziell für .NET-Entwicklungen, basierend auf aktuellen Best Practices und gängigen Ignorierungsregeln für .NET-Projekte.

Kurzname: dotnet-gitignore

Nutzung Gitignore-Template

Nach der Installation des Kurmann.Templates Pakets kann das .gitignore Template wie folgt angewendet werden:

dotnet new dotnet-gitignore

Dieser Befehl fügt ein vorkonfiguriertes .gitignore zu Ihrem Projekt hinzu, das eine Vielzahl von für .NET-Projekte typischen temporären Dateien und Verzeichnissen ignoriert.

Lizenz

Das Projekt steht unter der Apache 2.0 Lizenz.

  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.7.4 296 5/31/2024 0.7.4 is deprecated because it is no longer maintained.
0.7.3 726 5/4/2024 0.7.3 is deprecated because it is no longer maintained.
0.7.2 113 5/3/2024 0.7.2 is deprecated because it is no longer maintained.
0.7.1 131 4/26/2024 0.7.1 is deprecated because it is no longer maintained.
0.7.0 129 4/26/2024 0.7.0 is deprecated because it is no longer maintained.
0.6.0 147 4/26/2024 0.6.0 is deprecated because it is no longer maintained.
0.5.1 147 4/25/2024 0.5.1 is deprecated because it is no longer maintained.
0.5.1-preview 123 4/26/2024 0.5.1-preview is deprecated because it is no longer maintained.
0.5.0 140 4/25/2024 0.5.0 is deprecated because it is no longer maintained.
0.5.0-preview 117 4/25/2024 0.5.0-preview is deprecated because it is no longer maintained.
0.4.3 139 4/25/2024 0.4.3 is deprecated because it is no longer maintained.
0.4.2 138 4/25/2024 0.4.2 is deprecated because it is no longer maintained.
0.4.2-preview.202404112024 87 4/11/2024 0.4.2-preview.202404112024 is deprecated because it is no longer maintained.
0.4.2-preview.202404112020 70 4/11/2024 0.4.2-preview.202404112020 is deprecated because it is no longer maintained.
0.4.2-preview.202404112016 80 4/11/2024 0.4.2-preview.202404112016 is deprecated because it is no longer maintained.
0.4.1 195 4/9/2024 0.4.1 is deprecated because it is no longer maintained.
0.4.1-preview.202404111953 82 4/11/2024 0.4.1-preview.202404111953 is deprecated because it is no longer maintained.
0.4.1-preview.202404092015 70 4/9/2024 0.4.1-preview.202404092015 is deprecated because it is no longer maintained.
0.4.1-preview.202404091509 78 4/9/2024 0.4.1-preview.202404091509 is deprecated because it is no longer maintained.
0.4.0 142 4/9/2024 0.4.0 is deprecated because it is no longer maintained.
0.4.0-preview.202404091131 70 4/9/2024 0.4.0-preview.202404091131 is deprecated because it is no longer maintained.
0.4.0-preview.202404091116 59 4/9/2024 0.4.0-preview.202404091116 is deprecated because it is no longer maintained.
0.4.0-preview.202404090957 83 4/9/2024 0.4.0-preview.202404090957 is deprecated because it is no longer maintained.
0.4.0-preview.202404090532 77 4/9/2024 0.4.0-preview.202404090532 is deprecated because it is no longer maintained.
0.4.0-preview.202404090525 79 4/9/2024 0.4.0-preview.202404090525 is deprecated because it is no longer maintained.
0.4.0-preview.202404082113 79 4/8/2024 0.4.0-preview.202404082113 is deprecated because it is no longer maintained.
0.4.0-preview.202404082101 87 4/8/2024 0.4.0-preview.202404082101 is deprecated because it is no longer maintained.
0.4.0-preview.202404081607 80 4/8/2024 0.4.0-preview.202404081607 is deprecated because it is no longer maintained.
0.3.3 136 4/8/2024 0.3.3 is deprecated because it is no longer maintained.
0.3.3-preview.202404082004 78 4/8/2024 0.3.3-preview.202404082004 is deprecated because it is no longer maintained.
0.3.3-preview.202404081958 95 4/8/2024 0.3.3-preview.202404081958 is deprecated because it is no longer maintained.
0.3.3-preview.202404081924 76 4/8/2024 0.3.3-preview.202404081924 is deprecated because it is no longer maintained.
0.3.3-preview.202404081627 79 4/8/2024 0.3.3-preview.202404081627 is deprecated because it is no longer maintained.
0.3.2 158 4/8/2024 0.3.2 is deprecated because it is no longer maintained.
0.3.2-preview.202404081556 76 4/8/2024 0.3.2-preview.202404081556 is deprecated because it is no longer maintained.
0.3.2-preview.202404081550 78 4/8/2024 0.3.2-preview.202404081550 is deprecated because it is no longer maintained.
0.3.1 155 4/8/2024 0.3.1 is deprecated because it is no longer maintained.
0.3.1-preview.202404081546 71 4/8/2024 0.3.1-preview.202404081546 is deprecated because it is no longer maintained.
0.3.1-preview.202404081539 75 4/8/2024 0.3.1-preview.202404081539 is deprecated because it is no longer maintained.
0.3.1-preview.202404081537 76 4/8/2024 0.3.1-preview.202404081537 is deprecated because it is no longer maintained.
0.3.0-beta.1 75 4/6/2024 0.3.0-beta.1 is deprecated because it is no longer maintained.
0.3.0-beta 153 4/6/2024 0.3.0-beta is deprecated because it is no longer maintained.
0.2.0-beta 123 4/6/2024 0.2.0-beta is deprecated because it is no longer maintained.
0.1.0-alpha.1 80 4/6/2024 0.1.0-alpha.1 is deprecated because it is no longer maintained.
0.1.0-alpha 175 4/6/2024 0.1.0-alpha is deprecated because it is no longer maintained.