Ploch.Common Documentation Hub
Welcome to the comprehensive documentation for Ploch.Common — a suite of .NET utility libraries that simplify everyday development tasks.
Documentation Guide
| Resource | Best For |
|---|---|
| Getting Started Guide | New users — installation, first steps, common use cases |
| Quick Reference | Experienced users — method signatures, cheat sheet |
| API Reference | Complete method reference organised by namespace |
| Main README | Full feature overview with in-depth examples |
Library Documentation
Per-library documentation with overviews, key types, usage examples, and configuration guidance.
Core Foundation
| Library | Description | Docs |
|---|---|---|
| Ploch.Common | Extension methods for strings, collections, types, paths, guard clauses, randomisers | common.md |
| Ploch.Common.Net9 | .NET 9+ specific extensions (AppDomainTypesLoader) | common-net9.md |
| Ploch.Common.DataAnnotations | Custom validation attributes (RequiredNotDefaultDate) | common-data-annotations.md |
| Ploch.Common.ObjectBuilder | WMI/COM object-to-POCO conversion pipeline | common-object-builder.md |
| Ploch.Common.Ardalis.Result | Result-to-HTTP status code mapping extensions | common-ardalis-result.md |
Serialization
| Library | Description | Docs |
|---|---|---|
| Ploch.Common.Serialization | Abstract serialisation interfaces (ISerializer, IAsyncSerializer) | common-serialization.md |
| Ploch.Common.Serialization.SystemTextJson | System.Text.Json implementation (sync + async) | common-serialization-system-text-json.md |
| Ploch.Common.Serialization.SystemTextJson.ExtensionsDependencyInjection | DI registration for System.Text.Json serialiser | common-serialization-system-text-json-di.md |
| Ploch.Common.Serialization.NewtonsoftJson | Newtonsoft.Json implementation (sync only) | common-serialization-newtonsoft-json.md |
| Ploch.Common.Serialization.NewtonsoftJson.ExtensionsDependencyInjection | DI registration for Newtonsoft.Json serialiser | common-serialization-newtonsoft-json-di.md |
Dependency Injection
| Library | Description | Docs |
|---|---|---|
| Ploch.Common.DependencyInjection | ServicesBundle pattern — modular DI registration | common-dependency-injection.md |
| Ploch.Common.DependencyInjection.Autofac | Autofac container integration | common-dependency-injection-autofac.md |
| Ploch.Common.DependencyInjection.Hosting | IHostBuilder integration for ServicesBundle | common-dependency-injection-hosting.md |
| Ploch.Common.Extensions.Configuration | Configuration section binding extensions | common-extensions-configuration.md |
| Ploch.Common.Dependencies | Meta-package for shared dependencies | common-dependencies.md |
Web, API, and Applications
| Library | Description | Docs |
|---|---|---|
| Ploch.Common.WebApi | CRUD endpoint builders, AutoMapper integration, FastEndpoints | common-webapi.md |
| Ploch.Common.Web | Swagger/OpenAPI configuration helpers | common-web.md |
| Ploch.Common.WebUI | Razor/MVC page utilities (AppPage, SelectListHelper) | common-webui.md |
| Ploch.Common.AppServices | Application service abstractions (IUserInfoProvider) | common-appservices.md |
| Ploch.Common.AppServices.Web | HTTP context user info provider | common-appservices-web.md |
| Ploch.Common.Apps | Action handler framework (IActionHandler, ActionHandlerManager) | common-apps.md |
| Ploch.Common.UseCases | Use case abstractions (placeholder) | common-usecases.md |
| Ploch.Common.NSwag | NSwag operation name generator | common-nswag.md |
| Ploch.Common.Maui | MAUI MVVM bases, view discovery, font management | common-maui.md |
| Ploch.Common.Windows | Windows-specific utilities (placeholder) | common-windows.md |
| Ploch.Common.Windows.DependencyInjection | Windows DI registration (placeholder) | common-windows-di.md |
Testing Support
| Library | Description | Docs |
|---|---|---|
| Ploch.TestingSupport | Base testing utilities, test data attributes, FluentVerifier | testing-support.md |
| Ploch.TestingSupport.XUnit3 | xUnit v3 integration with custom data attributes and OS-conditional skipping | testing-support-xunit3.md |
| Ploch.TestingSupport.XUnit3.AutoMoq | AutoFixture + Moq integration for xUnit v3 | testing-support-xunit3-automoq.md |
| Ploch.TestingSupport.FluentAssertions | Custom FluentAssertions extensions | testing-support-fluent-assertions.md |
| Ploch.TestingSupport.FluentAssertions.IOAbstractions | IO Abstractions FluentAssertions extensions | testing-support-fluent-assertions-io.md |
| Ploch.TestingSupport.MockConsoleApp | Stub executable for process-launch integration tests | testing-support-mock-console-app.md |
| Ploch.TestingSupport.Dependencies.MetaPackages | Meta-package .nuspec repository | testing-support-meta-packages.md |
| Ploch.TestingSupport.XUnit3.Dependencies | xUnit v3 testing dependency meta-package | testing-support-xunit3-dependencies.md |
| Ploch.TestingSupport.XUnit2.Dependencies | xUnit v2 testing dependency meta-package (legacy) | testing-support-xunit2-dependencies.md |
Build Configuration
| Resource | Description | Docs |
|---|---|---|
| Build Configuration (MSBuild) | Directory.Build.props, Central Package Management, NBGV versioning | common-msbuild.md |
Quick Navigation by Feature
| Feature | Getting Started | Quick Reference | API Reference | Library Docs |
|---|---|---|---|---|
| String operations | Guide | Cheat sheet | API | Ploch.Common |
| Collections | Guide | Cheat sheet | API | Ploch.Common |
| Guard clauses | Guide | Cheat sheet | API | Ploch.Common |
| Serialisation | Guide | — | API | Serialization |
| Dependency injection | Guide | — | API | DI |
| Testing | Guide | — | — | TestingSupport |