Skip to content

dailydevops/projectbuilders

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

180 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ProjectBuilders

License Build Status

ProjectBuilders is a .NET solution providing libraries and utilities for programmatically building, managing, and testing .NET project structures. It is designed for developers, tool authors, and CI/CD engineers who need to automate .NET project scaffolding, configuration, and test environment setup. The solution aims to simplify the creation and management of .NET projects and their test environments, supporting modern .NET development workflows.

Overview

This solution contains multiple projects organized into a cohesive architecture:

  • Core Libraries: Foundation for project building and shared abstractions
  • Test Utilities: Helpers and fixtures for integration with TUnit and xUnit
  • Test Projects: Comprehensive unit and integration tests for all components

Projects

Core Libraries

Test Utilities

Tests

  • NetEvolve.ProjectBuilders.Tests.Unit - Unit tests for core components
  • NetEvolve.ProjectBuilders.Tests.Integration - Integration tests for core components
  • NetEvolve.ProjectBuilders.TUnit.Tests.Integration - Integration tests for TUnit utilities
  • NetEvolve.ProjectBuilders.XUnit.Tests.Integration - Integration tests for xUnit utilities

Features

  • Programmatic creation and manipulation of .NET project files
  • Utilities for managing solution and project references
  • Helpers for test environment setup and teardown
  • Extensible abstractions for custom project builders

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/dailydevops/projectbuilders.git
    cd projectbuilders

Configuration

No additional configuration is required for basic usage.

Development

Building

dotnet build

Running Tests

# Run all tests
dotnet test

# Run specific test project
dotnet test tests/NetEvolve.ProjectBuilders.Tests.Unit

Code Formatting

# Format code using CSharpier
csharpier format .

Project Structure

src/                    # Production code
├── NetEvolve.ProjectBuilders/         # Core library
├── NetEvolve.ProjectBuilders.TUnit/   # TUnit test utilities
└── NetEvolve.ProjectBuilders.XUnit/   # xUnit test utilities

tests/                 # Test projects
├── NetEvolve.ProjectBuilders.Tests.Unit/         # Unit tests
├── NetEvolve.ProjectBuilders.Tests.Integration/  # Integration tests
├── NetEvolve.ProjectBuilders.TUnit.Tests.Integration/ # TUnit integration tests
└── NetEvolve.ProjectBuilders.XUnit.Tests.Integration/ # xUnit integration tests

decisions/            # Architecture Decision Records (ADRs)
templates/            # Documentation and file templates

Architecture

This solution follows modern .NET architectural patterns and best practices:

  • Clean Architecture: Clear separation of concerns with dependencies pointing inward
  • Dependency Injection: Built-in .NET dependency injection throughout
  • Extensible Abstractions: Interfaces and extension points for custom builders
  • SOLID Principles: Object-oriented design with SOLID principles

For detailed architectural decisions, see the Architecture Decision Records.

Contributing

We welcome contributions from the community! Please read our Contributing Guidelines before submitting a pull request.

Key points:

  • Follow the Conventional Commits format for commit messages
  • Write tests for new functionality
  • Follow existing code style and conventions
  • Update documentation as needed

Code of Conduct

This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to info@daily-devops.net.

Documentation

Versioning

This project uses GitVersion for automated semantic versioning based on Git history and Conventional Commits. Version numbers are automatically calculated during the build process.

Support

  • Issues: Report bugs or request features on GitHub Issues
  • Documentation: Read the full documentation in this repository

License

This project is licensed under the MIT License - see the LICENSE file for details.


Note

Made with ❤️ by the NetEvolve Team Visit us at https://www.daily-devops.net for more information about our services and solutions.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors