Skip to content
This repository has been archived by the owner on May 31, 2024. It is now read-only.

Neues services-repo-Template komplett beschrieben #66

Merged
merged 2 commits into from
Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,95 @@ dotnet new nuget-classlib -n MeinNugetPaket -o src
dotnet new nuget-classlib-workflow
```

### 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".

#### Verwendung

```bash
dotnet new service-repo -n IhrProjektName --namespace IhrRootNamespace --description "Kurze Beschreibung Ihres Projekts"
```

Die Verzeichnisstruktur Ihres neuen Repositorys sieht wie folgt aus:

```text
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
│ └── Services/
│ ├── SampleHostedService.cs
│ └── ServiceCollection.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.

```csharp
// 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

- **Kurzname:** `dotnet-gitignore`
Expand Down
2 changes: 1 addition & 1 deletion templates/entities-repo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ProjectDescription

## Mitwirken

Derzeit entwickle ich das Projekt im Alleingang. Als dreifacher Familienvater bin ich für jede Unterstützung und Weiterentwicklungen dankbar. Bitte erstellen Sie ein GitHub-Issue als Anfrage.
Derzeit entwickle ich das Projekt im Alleingang. Unterstützung ist willkommen. Bitte erstellen Sie ein GitHub-Issue als Anfrage.

## Lizenz

Expand Down
2 changes: 1 addition & 1 deletion templates/services-repo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ProjectDescription

## Mitwirken

Derzeit entwickle ich das Projekt im Alleingang. Als dreifacher Familienvater bin ich für jede Unterstützung und Weiterentwicklungen dankbar. Bitte erstellen Sie ein GitHub-Issue als Anfrage.
Derzeit entwickle ich das Projekt im Alleingang. Unterstützung ist willkommen. Bitte erstellen Sie ein GitHub-Issue als Anfrage.

## Lizenz

Expand Down