In addition to the many examples throughout the documentation (such as the extensive Slowly Changing Dimension Example), this article describes how to download, build and run the below project samples on Windows and Linux.
Download and unpack the samples:
Ensure your development environment has the necessary bits, please see System Requirements. Also note:
The samples multi targets .NET Framework 4.6.1 (
net461, on Windows only), .NET Core 2.1 (
netcoreapp2.1), and .NET Core 3.1 (
netcoreapp3.1). Either install any missing SDKs from https://dotnet.microsoft.com/download/visual-studio-sdks or the Visual Studio installer, or edit each project file and remove unwanted frameworks from the two
If using Visual Studio, install ".NET desktop development" and ".NET Core cross-platform development" workloads
In each project, restore dependencies, build, run and clean each sample application either via Visual Studio, or from the command line, picking a suitable target framework:
dotnet run --no-build --framework netcoreapp3.1
The samples are listed in order from simple to more involved.
A simple application that checks if a file exists. This is the same application you get when running "Create Project" with the actionETL project template. It:
- Creates and runs a worker system
- Uses a
FileExistsWorkerto check for a file
- Reads the filename from a configuration file
- Flags success or failure via the application exit code
A detailed explanation of the sample is available in First actionetl Application.
A fairly simple application that demonstrates:
- Generating multiple sets of similar workers via looping
- Generating dataflow test data by creating an enumerator using the
- Dataflow row throughput with multiple parallel streams of data.
- The rows are all generated in multiple sources, and redirected to different targets, where they then are discarded
- All work happens in-memory
- With a single source worker and reasonably new hardware, typical throughput is 30 to 50 million rows per second
- With more source workers, aggregate throughput increases, but reaches a maximum when the computer eventually becomes CPU limited
NOTE: For best performance, use 'Release' (and not 'Debug') configuration, and run it either with 'Debug > Start Without Debugging', or directly from the command line.
A more involved application that:
- Creates a reusable custom worker to easily and reliably process many different feeds of data files
- Uses a helper method to create multiple similar sets of workers
- Loads data from XLSX and CSV files
- Executes database queries and calls stored procedures
- Inserts data into database tables
NOTE: This sample requires creating database scripts etc. before running, please see the:
- Project "Readme.txt" file
- actionETL documentation at Process Incoming Files Example