Getting Started
This guide is for developers who want a fast first success with VersaTul instead of reading the full package reference up front.
The goal is to get one useful package working in a small, realistic example, then show the next most sensible step.
What VersaTul Gives You
VersaTul is not a single framework. It is a set of focused packages that help with common application concerns such as configuration, data access, file handling, export workflows, logging, and scheduling.
That packaging model matters because it lets you adopt only the parts you need.
Typical ways teams start with VersaTul include:
Adding a foundational package such as
VersaTul.ConfigurationsorVersaTul.Extensions.Adding a data package such as
VersaTul.Data.SqlorVersaTul.Data.MongoDB.Combining support packages such as
VersaTul.Loggerwith one of the concrete logger implementations.
Quickstart Outcome
In this quickstart you will:
Create a small console app.
Install
VersaTul.Configurations.Load strongly typed settings from a simple key/value source.
Verify the configuration values in running code.
If this works, you will have a concrete starting point for adding defaults, data access, logging, or other package families.
Prerequisites
.NET SDK installed.
A terminal in an empty or disposable working folder.
A basic C# console app is sufficient for this first pass.
Create A Sample App
Create a console application:
dotnet new console -n VersaTulQuickstart
cd VersaTulQuickstart
Recommended First Path
If you are evaluating the libraries for the first time, use this order:
Review Choosing Packages to decide which package family fits your use case.
Start with one package, not many.
Use the package page to install it and follow the basic example.
Add related packages only after the first package is working in your application.
Install A Package
VersaTul libraries are consumed as separate NuGet packages.
Example using the .NET CLI:
dotnet add package VersaTul.Configurations
Example using the Package Manager Console:
PM> NuGet\Install-Package VersaTul.Configurations -Version latest
Paste This Example
Replace the generated program with the following example:
using VersaTul.Configurations;
var settings = new ConfigSettings
{
{ "ConnectionString", "Server=.;Database=Demo;Trusted_Connection=True;" },
{ "TimeoutSeconds", 30 },
{ "ArchiveDirectory", "C:\\Exports" }
};
var configuration = new StorageConfiguration(settings);
Console.WriteLine($"Connection: {configuration.ConnectionString}");
Console.WriteLine($"Timeout: {configuration.TimeoutSeconds}");
Console.WriteLine($"Archive: {configuration.ArchivePath}");
public class StorageConfiguration : Configuration
{
public StorageConfiguration(ConfigSettings settings) : base(settings)
{
}
public string ConnectionString => Get<string>();
public int TimeoutSeconds => GetOrDefault<int>();
public string ArchivePath => Get<string>("ArchiveDirectory");
}
Run The App
dotnet run
What You Should See
You should see output shaped like this:
Connection: Server=.;Database=Demo;Trusted_Connection=True;
Timeout: 30
Archive: C:\Exports
If you see those values, the key VersaTul behavior is already working: your code is reading strongly typed settings from a simple settings store with almost no wiring.
Why This Is A Good First Step
This quickstart demonstrates several things quickly:
VersaTul can be adopted one package at a time.
The configuration surface is simple enough to understand in a few minutes.
The pattern scales into other packages that rely on explicit settings and reusable configuration models.
Common Mistakes
Using a missing key with
Get<T>()and expecting it to behave like an optional value.Expecting VersaTul to require a full framework bootstrap before a package becomes useful.
Pulling in several packages before the first example is working.
How To Choose A First Package
Use the package family that matches the immediate problem you are solving.
If you need to… |
Start here |
|---|---|
Read application settings |
|
Bootstrap default settings |
|
Add generic helper methods |
|
Query relational databases |
|
Work with MongoDB |
|
Use EF Core repositories |
|
Read CSV or text files |
|
Stream collections to output |
|
Add logging |
|
Send email |
|
Schedule recurring work |
|
Beginner Guidance
When starting out:
Prefer package pages with simple examples over copying patterns from multiple packages at once.
Add dependencies through dependency injection where the package supports it.
Keep configuration explicit so you can see what each package requires.
Use the related-package sections in each page before adding another package to your project.
What This Documentation Does Not Cover
Host application projects from the main VersaTul repository.
Test projects and test-only setup.
One fixed architecture that every project should follow.
What To Read Next
Read Choosing Packages for a package-by-problem guide with clearer decision help.
If this quickstart was useful, continue with Configuration Defaults to layer in default settings.
Read Recommended Paths if you want a starting set based on your application type.
If your next need is operational support, jump to Logging Setup Workflow.
If your next need is data access, jump to SQL Data Access Workflow.
Use Package Catalog only after you know the problem area you want to expand into.