asulwer / RulesEngine

Rules Engine with extensive Dynamic expression support
MIT License
6 stars 1 forks source link

Reorganize project structure to re-align with best practices #8

Closed RenanCarlosPereira closed 1 week ago

RenanCarlosPereira commented 1 week ago

Summary: Reorganized the project files to follow standard conventions by moving them into dedicated directories: src, tests, and docs.

Changes:

  1. Source Files:
    • Moved all main code files to the src directory.
  2. Test Files:
    • Moved all test files to the tests directory.
  3. Documentation:
    • Moved all documentation files to the docs directory.
  4. Benchmark:
    • Moved all Benchmarks files to the benchmark directory.

Reason for Changes:

  1. Standardization:
  2. Community Best Practices:

Benefits:

please note the open issue #7

@asulwer could you review it?

asulwer commented 1 week ago

what is the purpose for the global.json?

RenanCarlosPereira commented 1 week ago

what is the purpose for the global.json?

The global.json file in a .NET project serves several important purposes:

  1. SDK Version Specification:

    • It specifies which version of the .NET SDK should be used when building the project. This ensures that the project is built with a specific SDK version, providing consistency across different development environments and CI/CD pipelines.
  2. Roll Forward Policies:

    • It allows configuration of roll forward policies, such as using the latest patch version, the latest minor version, or the latest feature version. This flexibility helps manage SDK updates and ensures compatibility without unexpected breaks.
  3. Multi-Targeting:

    • In solutions with multiple projects, global.json can be used to specify a single SDK version for the entire solution. This avoids conflicts and inconsistencies when different projects target different versions of the SDK.
  4. Prerelease Versions:

    • The allowPrerelease setting can control whether prerelease versions of the SDK should be considered. This is useful for testing and adopting new features before they are officially released.
  5. Tools and Workloads:

    • It can also specify additional tools and workloads that should be used with the project, ensuring all necessary components are available and correctly versioned.

Key Elements Explained

Benefits

Overall, global.json is a powerful tool for managing .NET SDK versions and ensuring a consistent and predictable development and build environment.