CodeDesignPlus.Net.PubSub
0.2.0-rc.27
See the version list below for details.
dotnet add package CodeDesignPlus.Net.PubSub --version 0.2.0-rc.27
NuGet\Install-Package CodeDesignPlus.Net.PubSub -Version 0.2.0-rc.27
<PackageReference Include="CodeDesignPlus.Net.PubSub" Version="0.2.0-rc.27" />
paket add CodeDesignPlus.Net.PubSub --version 0.2.0-rc.27
#r "nuget: CodeDesignPlus.Net.PubSub, 0.2.0-rc.27"
// Install CodeDesignPlus.Net.PubSub as a Cake Addin #addin nuget:?package=CodeDesignPlus.Net.PubSub&version=0.2.0-rc.27&prerelease // Install CodeDesignPlus.Net.PubSub as a Cake Tool #tool nuget:?package=CodeDesignPlus.Net.PubSub&version=0.2.0-rc.27&prerelease
<br /> <p align="center"> <a href="https://github.com/codedesignplus/CodeDesignPlus.Net.PubSub/README"> <img src="https://i.imgur.com/PwbGy0o.png" alt="Logo"> </a>
<h3 align="center">CodeDesignPlus.Net.PubSub</h3>
<p align="center">
.NET Core archetype for efficient development, unit testing, and continuous integration of NuGet libraries.
<br />
<a href="https://codedesignplus.com">
<strong>Explore the docs »</strong>
</a>
<br />
<br />
<a href="https://github.com/codedesignplus/CodeDesignPlus.Net.Sdk/issues">
<img src="https://img.shields.io/github/issues/codedesignplus/CodeDesignPlus.Net.Sdk?color=0088ff&style=for-the-badge&logo=github" alt="codedesignplus/CodeDesignPlus.Net.PubSub's issues"/>
</a>
<a href="https://github.com/codedesignplus/CodeDesignPlus.Net.Sdk/pulls">
<img src="https://img.shields.io/github/issues-pr/codedesignplus/CodeDesignPlus.Net.Sdk?color=0088ff&style=for-the-badge&logo=github" alt="codedesignplus/CodeDesignPlus.Net.PubSub's pull requests"/>
</a>
<br />
<br />
<img alt="sonarcloud" src="https://sonarcloud.io/images/project_badges/sonarcloud-white.svg" width="100">
<br />
<img alt="Quality Gate Status" src="https://sonarcloud.io/api/project_badges/measure?project=CodeDesignPlus.Net.PubSub&metric=alert_status" />
<img alt="Security Rating" src="https://sonarcloud.io/api/project_badges/measure?project=CodeDesignPlus.Net.PubSub&metric=security_rating"/>
<img alt="Reliability Rating" src="https://sonarcloud.io/api/project_badges/measure?project=CodeDesignPlus.Net.PubSub&metric=reliability_rating" />
<img alt="Vulnerabilities" src="https://sonarcloud.io/api/project_badges/measure?project=CodeDesignPlus.Net.PubSub&metric=vulnerabilities" />
<img alt="Bugs" src="https://sonarcloud.io/api/project_badges/measure?project=CodeDesignPlus.Net.PubSub&metric=bugs" />
<img alt="Code Smells" src="https://sonarcloud.io/api/project_badges/measure?project=CodeDesignPlus.Net.PubSub&metric=code_smells" />
<img alt="Coverage" src="https://sonarcloud.io/api/project_badges/measure?project=CodeDesignPlus.Net.PubSub&metric=coverage" />
</p>
</p>
Table of Contents
About The Project
About Me Hello! I am an archetype designed to assist you in creating .NET Core libraries distributed as NuGet packages. I've been crafted with the best practices and common patterns in mind to make your life easier.
Key Features:
Options Pattern: I facilitate configuration and customization of your libraries using the options pattern.
Dependency Injection: I employ the mechanism of dependency injection to ensure effective decoupling and efficient service management. This not only eases testing and maintainability of your code but also promotes a modular and flexible structure.
Abstractions: With the interfaces and abstract classes I offer, you can develop decoupled and maintainable components.
Unit Tests: I include a dedicated project for unit tests, equipped with tools to validate data annotations, loggers, and more.
Node Utilities: I come packed with several Node.js utilities, like linters and Commitizen, to assist you in adhering to commit conventions.
Scripts and Dependencies:
In the package.json, I offer several handy scripts:
- Tools: Install global .NET tools like dotnet-sonarscanner.
- Installation: Restore necessary dependencies for your project.
- Tests: Execute all unit tests.
- Compilation: Compile your solution.
- Formatting: Format your code to keep it neat and consistent.
- Preparation: Set up husky, a tool to manage git hooks.
Furthermore, I integrate various dependencies and devDependencies to streamline version control
, linting
, and commit management
, such as commitizen
, husky
, and lint-staged
.
Built With
Efficient and maintainable software creation not only demands coding skills but also the right tools that fit our needs and streamline our workflow. The tools and technologies we employ often mirror our priorities in terms of efficiency, security, collaboration, and other pivotal aspects of software development. Below are the cornerstone tools and technologies that underpin this archetype:
- .NET SDK 8: The necessary SDK for building applications in .NET SDK 8.
- Node.js: A JavaScript runtime environment that enables server-side application development.
- Visual Studio Community 2022: A comprehensive IDE tailored for .NET development.
- VS Code: A lightweight yet powerful code editor with extensive extensibility capabilities.
This archetype comes with a preconfigured continuous integration pipeline, streamlining the automation of crucial tasks such as testing, building, packaging, and deployment. Thanks to this pipeline:
- Full Automation: Tests and builds are automatically run with each push, ensuring the code meets quality standards.
- Semantic Versioning Control: Using codedesignplus/semver-git-version, versions are automatically generated based on commits, ensuring coherent and predictable version management.
- Code Quality: With integrated SonarQube, the code is analyzed for quality and security issues.
- Automatic Publishing: Packages are automatically published to NuGet and GitHub Package Registry under certain conditions, making distribution straightforward.
- Change Management: With tools like mikepenz/release-changelog-builder-action, a changelog is automatically created for each new version.
Beyond the continuous integration pipeline, this archetype brings several benefits that enhance and standardize the development and collaboration process:
- Predefined Issue Templates: They simplify the creation of bug reports, new feature requests, security reports, and more, ensuring all necessary information is provided in a structured manner when creating a new issue.
- Standardized Contribution: The CONTRIBUTING.md file offers clear guidelines for those wishing to contribute to the project.
- Code of Conduct: CODE_OF_CONDUCT.md sets the norms to ensure a respectful and productive collaboration environment.
- Code Owners: The CODEOWNERS file outlines those responsible for reviewing and approving changes.
- Pull Request Template: Every new pull request will follow a defined structure, simplifying the review process.
- Security Guidelines: SECURITY.md provides guidelines for reporting security vulnerabilities.
- Bot Configuration: With files like issue_label_bot.yaml, tasks like auto-labeling issues based on their content can be automated.
- License: LICENSE.md details how others can use or contribute to the project.
Getting Started
To dive into this archetype and set up your development environment, follow these steps:
For Visual Studio Community 2022:
- Open the .sln file with Visual Studio Community 2022.
- Select
Build > Restore NuGet Packages
from the menu to restore dependencies. - Compile the project by selecting
Build > Build Solution
. - Run the unit tests by selecting
Test > Run All Tests
. - To package, right-click on the project you wish to package and select Pack.
For VS Code:
Open the project folder in VS Code.
Launch the integrated terminal (Ctrl + ~).
Install the Recommended Extensions:
code --install-extension amazonwebservices.aws-toolkit-vscode code --install-extension dbaeumer.vscode-eslint code --install-extension eamodio.gitlens code --install-extension esbenp.prettier-vscode code --install-extension github.vscode-github-actions code --install-extension ms-azuretools.vscode-docker code --install-extension ms-dotnettools.csharp code --install-extension ms-dotnettools.vscode-dotnet-runtime code --install-extension ms-vscode-remote.remote-containers code --install-extension ms-vscode-remote.remote-wsl code --install-extension ms-vscode.cpptools code --install-extension ms-vscode.cpptools-extension-pack code --install-extension ms-vscode.cpptools-themes code --install-extension nrwl.angular-console code --install-extension PKief.material-icon-theme code --install-extension SonarSource.sonarlint-vscode code --install-extension Tyriar.lorem-ipsum code --install-extension vivaxy.vscode-conventional-commits
Build and Management Procedures:
dotnet tool install --global dotnet-sonarscanner dotnet restore dotnet build dotnet test dotnet format npm install npm run prepare dotnet pack -c Release /p:Version=1.0.0 # Ensure to set the appropriate version
Recommended Extensions for VS Code: These extensions enrich the development experience within VS Code:
- AWS Toolkit
- ESLint
- GitLens
- Prettier
- GitHub Actions
- Docker
- C#
- .NET Runtime
- Remote Development (for containers, WSL, etc.)
- CMake Tools & Extensions
- Angular Console
- Material Icon Theme
- SonarLint
- Lorem Ipsum
- Conventional Commits
Usage
For more information regarding the library, you can visit our documentation at <a target="_blank" href="https://codedesignplus.com">CodeDesignPlus Doc</a>
Roadmap
Refer to issues for a list of proposed features and known issues.
Contributing
- Fork the Project
- Create your Feature Branch (
git checkout -b features/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
Contact
CodeDesignPlus - @CodeDesignPlus - codedesignplus@outlook.com
Project Link: CodeDesignPlus.Net.PubSub
Acknowledgements
We want to thank each member of the Latin development community in which we participate, contributing content daily to continue growing together.
- Asp.Net Core en Español
- Asp.Net Core
- Asp.net Core -MVC Group
- Asp.Net MVC (Español)
- .Net Core
- .NET En Español PROGRAMADORES
- ASP.Net Core/C#/MVC/API/Jquery/Html/Sql/Angular/Bootstrap.
- .NET en Español
- Blazor - ASP.NET Core
- C# (.NET)
- ASP.NET MVC(C#)
- Programación C# .Net Peru
- ASP.NET and ASP.NET Core
- ASP.NET AND .NET CORE
- C#, MVC & .NET CORE 3.1
- .NET Core Community
- Desarrolladores .Net, C#, React
- Programadores C#
- .NET Core
- ASP.NET EN ESPAÑOL
- Desarrolladores Microsoft.Net
- ASP.NET Core
- Grupo de Desarrolladores .Net de Microsoft
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- CodeDesignPlus.Net.PubSub.Abstractions (>= 0.2.0-rc.27)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 8.0.0)
- OpenTelemetry (>= 1.9.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on CodeDesignPlus.Net.PubSub:
Package | Downloads |
---|---|
CodeDesignPlus.Net.EventStore.PubSub.Abstractions
CodeDesignPlus.Net.EventStore.PubSub.Abstractions provides essential interfaces and abstract classes for implementing publish-subscribe patterns in event sourcing within .NET Core applications. This library defines core contracts and abstractions that facilitate a clean and maintainable architecture for event-driven systems, enabling better testing and extensibility. |
|
CodeDesignPlus.Net.RabbitMQ.Abstractions
CodeDesignPlus.Net.RabbitMQ.Abstractions provides essential interfaces and abstract classes for integrating RabbitMQ with .NET Core applications. This library defines core contracts and abstractions that facilitate a clean and maintainable architecture for event-driven systems using RabbitMQ, enabling better testing and extensibility. |
|
CodeDesignPlus.Net.Kafka.Abstractions
CodeDesignPlus.Net.Kafka.Abstractions provides essential interfaces and abstract classes for integrating Apache Kafka with .NET Core applications. This library defines core contracts and abstractions that facilitate a clean and maintainable architecture for event-driven systems using Kafka, enabling better testing and extensibility. |
|
CodeDesignPlus.Net.Redis.PubSub.Abstractions
CodeDesignPlus.Net.Redis.PubSub.Abstractions provides essential interfaces and abstract classes for implementing publish-subscribe patterns with Redis in .NET Core applications. This library defines core contracts and abstractions that facilitate a clean and maintainable architecture for event-driven systems using Redis, enabling better testing and extensibility. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.5.0-beta.14 | 39 | 11/8/2024 |
0.5.0-beta.13 | 34 | 11/7/2024 |
0.5.0-beta.11 | 34 | 11/6/2024 |
0.5.0-beta.9 | 40 | 11/3/2024 |
0.5.0-beta.6 | 38 | 11/1/2024 |
0.5.0-beta.4 | 42 | 10/31/2024 |
0.3.0-rc.3 | 41 | 10/28/2024 |
0.3.0-beta.3 | 38 | 10/28/2024 |
0.3.0-alpha.3 | 37 | 10/28/2024 |
0.2.0-rc.27 | 35 | 10/25/2024 |
0.2.0-rc.18 | 59 | 10/1/2024 |
0.2.0-beta.27 | 36 | 10/25/2024 |
0.2.0-beta.18 | 117 | 10/1/2024 |
0.2.0-alpha.27 | 40 | 10/25/2024 |
0.2.0-alpha.26 | 36 | 10/25/2024 |
0.2.0-alpha.25 | 39 | 10/25/2024 |
0.2.0-alpha.24 | 36 | 10/25/2024 |
0.2.0-alpha.23 | 37 | 10/24/2024 |
0.2.0-alpha.22 | 40 | 10/24/2024 |
0.2.0-alpha.21 | 39 | 10/23/2024 |
0.2.0-alpha.20 | 45 | 10/22/2024 |
0.2.0-alpha.19 | 54 | 10/21/2024 |
0.2.0-alpha.18 | 49 | 10/1/2024 |
0.2.0-alpha.17 | 49 | 10/1/2024 |
0.2.0-alpha.16 | 47 | 9/30/2024 |
0.2.0-alpha.15 | 53 | 9/30/2024 |
0.2.0-alpha.14 | 45 | 9/30/2024 |
0.2.0-alpha.13 | 45 | 9/29/2024 |
0.2.0-alpha.12 | 50 | 9/29/2024 |
0.2.0-alpha.11 | 45 | 9/29/2024 |
0.2.0-alpha.10 | 50 | 9/28/2024 |
0.2.0-alpha.9 | 48 | 9/28/2024 |
0.2.0-alpha.7 | 50 | 9/28/2024 |
0.2.0-alpha.6 | 51 | 9/28/2024 |
0.2.0-alpha.5 | 43 | 9/28/2024 |
0.2.0-alpha.4 | 50 | 9/28/2024 |
0.2.0-alpha.3 | 66 | 9/1/2024 |
0.2.0-alpha.2 | 44 | 9/28/2024 |
0.1.2-alpha.1 | 68 | 8/24/2024 |
0.1.2-alpha.0 | 63 | 8/24/2024 |
0.1.1 | 192 | 8/23/2024 |
0.1.1-alpha.19 | 72 | 8/23/2024 |