Deploying Applications
When deploying your ETL application to other locations and computers, e.g. test and production servers, at a minimum:
- Ensure the target execution node or account is licensed by the "actionetl.license.json" license file
- Switch to Release mode (unless you are specifically deploying a Debug build)
- Clean the project (or solution)
- Build the project (or solution)
- Deploy the project output files
- On .NET Framework, use the
...\<project-folder>\bin\Release\
output folder - On .NET Core and .NET 5+, first publish the build files to a new output folder
- E.g.
dotnet publish -c Release -f netcoreapp3.1 <project-folder>
, which puts the output files in.../<project-folder>/bin/AnyCPU/Release/netcoreapp3.1/
. See Publish .NET Core apps with the .NET Core CLI for details.
- E.g.
- The above output folder with sub folders contains any executable, DLLs, configuration files etc. required to run the application, which all need to be deployed to the target location or computer.
- Consider starting with a simple XCOPY deployment, by simply copying all the files from the Release folder to the deployment target folder, and only move to more involved deployment methods if and when required.
- Consider automating the deployment, e.g. with:
- PowerShell
- The MSI installer tools WiX
- The new MSIX package tools
- Deploying the .NET Framework and Applications and .NET Core application publishing overview has in-depth information on various deployment options.
- On .NET Framework, use the
Note
Most organizations have well defined procedures for deploying .NET applications, consider adopting these also for your actionETL applications.
Running Applications
On .NET Framework and .NET Core 3 onwards, run the executable in the deployed output folder:
.../<deployed-folder>/<application-name>.exe
.On .NET Core 2.x, run the deployed application by invoking the application DLL:
dotnet .../<deployed-folder>/<application-name>.dll
.
Scheduling Jobs
To run the application on a regular schedule, trigger on other jobs etc., the most common option is to use whichever job scheduler your organization has standardized on. There are many free and commercial job schedulers available, which includes the free Windows Task Scheduler and on Linux the bare-bones crontab.
SQL Server installations often use the SQL Server Agent scheduler.
actionETL applications are normal executables and therefore easy to integrate with any job scheduler.
In some cases it can be useful to instead incorporate a job scheduler within your application, e.g. the widely used Quartz.Net.