Code Monkey home page Code Monkey logo

templates's Introduction

.NET Templates

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.

Klassenbibliothek Template

  • Kurzname: nuget-classlib
  • Erstellt eine .NET Klassenbibliothek im "Kurmann"-Namespace, vorbereitet für die NuGet-Veröffentlichung.

Nutzung Klassenbibliotheks-Template

dotnet new nuget-classlib -n MeinNugetPaket -o src

GitHub-Action für NuGet-Veröffentlichung

  • Kurzname: nuget-classlib-workflow
  • Generiert eine GitHub-Action-Workflow-Datei für die automatische Veröffentlichung auf NuGet.org.

Nutzung GitHub-Action

dotnet new nuget-classlib-workflow

Template: .NET Gitignore

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

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.

Änderungsverlauf

Unveröffentlicht

  • keine

Version 0.4.1 - 2024-04-09

Hinzugefügt

  • Template entities-repo mit neuem Template-Symbol --description.

Version 0.4.0 - 2024-04-09

  • Neues Template "entities-repo" erstellt zur Initialisierung eines ganzen GitHub-Repositorys mit .NET-Projekten Entities mit Tests, Gitignore, Nuget-Packaging-Workflow.

Version 0.3.3 - 2024-04-08

Hinzugefügt

  • Klassenbibliothekts-Template unterstützt die Angabe von Namespaces

Version 0.3.2 - 2024-04-08

Hinzugefügt

  • Änderungsverlauf aus den zugehörigen veröffentlichen Nuget-Packages in dieses Readme integriert.

Version 0.3.1 - 2024-04-08

Geändert

  • Vereinfachter Workflow für Zwischenreleases mit automatischer Datumsvergabe bei Vorschauversionen nach dem Vorbild aus "Kurmann.Messaging"

Version 0.3.0 - 2024-04-06

Hinzugefügt

  • Template erstellt zur Erstellung einer GitHub-Action für die automatische Veröffentlichung von NuGet-Paketen.

Version 0.2.0 - 2024-04-06

Hinzugefügt

  • Template erstellt zur Erstellung einer Klassenbibliothek im Kurmann-Namespace.

Version 0.1.0 - 2024-04-06

Hinzugefügt

  • Template zur Erstellung einer Gitignore-Datei.
  • Erste Veröffentlichung mit einer Vorlage für eine .NET-Klassenbibliothek mit NuGet-Unterstützung.

templates's People

Contributors

kurmann avatar

Watchers

 avatar  avatar

templates's Issues

Abbau der bisherigen Struktur

  • Entfernen Legacy-Templates
  • Dokumentation anpassen
  • Readme kompakter gestalten
  • Nuget-Packet "Kurmann.Videoschnitt.Templates" in Ruhestand schicken

Stabile Version veröffentlichen

  • PackageIcon Default mitliefern
  • ItemGroup Include Files
     <!-- Spezifisch für NuGet-Packetierung -->
    <ItemGroup>
      <None Include="..\..\README.md" Pack="true" PackagePath="\" />
      <None Include="..\..\LICENSE" Pack="true" PackagePath="\" />
      <None Include="..\..\PackageIcon.png" Pack="true" PackagePath="\" />
    </ItemGroup>
    

- [ ] Default-Tags wie Videoschnitt müssen weg

VSCode-Erweiterungen im Projekt festlegen

Frage: Kann ich in einem GitHub-Repository festlegen, welche Erweiterungen für Visual Studio Code automatisch installiert werden? Dies wäre bspw. sinnvoll wenn ich ein Codespace eröffne.


Ja, es ist möglich, in einem GitHub-Repository festzulegen, welche Erweiterungen für Visual Studio Code automatisch installiert werden sollen. Dies ist besonders nützlich, wenn Sie GitHub Codespaces verwenden, aber auch hilfreich, um die Entwicklerumgebung für alle Nutzer des Repositories zu standardisieren. Sie können dies durch Hinzufügen einer .devcontainer/devcontainer.json Datei in Ihrem Repository erreichen. Hier ein einfacher Leitfaden, wie Sie dies umsetzen können:

  1. Erstellen Sie den .devcontainer Ordner: Im Wurzelverzeichnis Ihres Repositories erstellen Sie einen Ordner namens .devcontainer.

  2. Erstellen Sie die devcontainer.json Datei: Innerhalb des .devcontainer Ordners erstellen Sie eine Datei namens devcontainer.json. Diese Datei wird verwendet, um die Entwicklungsumgebung zu konfigurieren, einschließlich der Erweiterungen, die automatisch installiert werden sollen.

  3. Fügen Sie Erweiterungen hinzu: In der devcontainer.json Datei können Sie die Erweiterungen spezifizieren, die automatisch installiert werden sollen, indem Sie die extensions Eigenschaft verwenden. Zum Beispiel:

{
    "name": "Mein Projekt",
    "image": "mcr.microsoft.com/vscode/devcontainers/base:0-focal",
    "extensions": [
        "ms-python.python",
        "ms-vscode.cpptools",
        "esbenp.prettier-vscode"
    ]
}

In diesem Beispiel werden drei Erweiterungen in die Entwicklungsumgebung aufgenommen: die Python-Erweiterung von Microsoft, die C++ Tools von Microsoft und Prettier Code Formatter.

Es ist auch möglich, weitere Anpassungen vorzunehmen, wie das Setzen von Umgebungsvariablen, das Konfigurieren von Docker-Containern für Ihre Entwicklungsumgebung (wenn Sie die Docker-Option verwenden), und vieles mehr.

Wenn Sie Codespaces oder Visual Studio Code das nächste Mal für Ihr Repository verwenden, werden die spezifizierten Erweiterungen automatisch installiert und die Umgebung entsprechend konfiguriert. Diese Funktion verbessert die Konsistenz und Produktivität in Entwicklerteams, indem sie sicherstellt, dass jeder mit der gleichen Werkzeugkonfiguration arbeitet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.