A collection generic transformers for use in ETLs using Wolfgang.Etl.Abstractions
dotnet add package Wolfgang.Etl.Transformers
NuGet Package: Coming soon to NuGet.org
This project is licensed under the MIT License. See the LICENSE file for details.
Examples:
| Framework | Versions |
|---|---|
| .NET Framework | .NET 4.6.2, .NET 4.7.0, .NET 4.7.1, .NET 4.7.2, .NET 4.8, .NET 4.8.1 |
| .NET Core | .NET Core 3.1 |
| .NET | .NET 5.0, .NET 6.0, .NET 7.0, .NET 8.0, .NET 9.0, .NET 10.0 |
This project enforces strict code quality standards through 7 specialized analyzers and custom async-first rules:
This library uses BannedSymbols.txt to prohibit synchronous APIs and enforce async-first patterns:
Blocked APIs Include:
Task.Wait(), Task.Result - Use await insteadThread.Sleep() - Use await Task.Delay() insteadFile.ReadAllText) - Use async versionsReadAsync(), WriteAsync()Parallel.For/ForEach - Use Task.WhenAll() or Parallel.ForEachAsync()WebClient, BinaryFormatter)Why? To ensure all code is truly async and non-blocking for optimal performance in async contexts.
# Clone the repository
git clone https://github.com/Chris-Wolfgang/ETL-Transformers.git
cd ETL-Transformers
# Restore dependencies
dotnet restore
# Build the solution
dotnet build --configuration Release
# Run tests
dotnet test --configuration Release
# Run code formatting (PowerShell Core)
pwsh ./format.ps1
This project uses .editorconfig and dotnet format:
# Format code
dotnet format
# Verify formatting (as CI does)
dotnet format --verify-no-changes
See README-FORMATTING.md for detailed formatting guidelines.
This project uses DocFX to generate API documentation:
# Install DocFX (one-time setup)
dotnet tool install -g docfx
# Generate API metadata and build documentation
cd docfx_project
docfx metadata # Extract API metadata from source code
docfx build # Build HTML documentation
# Documentation is generated in the docs/ folder at the repository root
The documentation is automatically built and deployed to GitHub Pages when changes are pushed to the main branch.
Local Preview:
# Serve documentation locally (with live reload)
cd docfx_project
docfx build --serve
# Open http://localhost:8080 in your browser
Documentation Structure:
docfx_project/ - DocFX configuration and source filesdocs/ - Generated HTML documentation (published to GitHub Pages)docfx_project/index.md - Main landing page contentdocfx_project/docs/ - Additional documentation articlesdocfx_project/api/ - Auto-generated API reference YAML filesContributions are welcome! Please see CONTRIBUTING.md for: