- .NET 9 SDK installed
- Visual Studio 2022 or VS Code with C# extension
# Navigate to the solution root directory
cd TaskTracker
# Restore NuGet packages
dotnet restore
# Build the solution
dotnet build
# Run tests
dotnet test# Navigate to the console app project
cd src/TaskTracker.ConsoleApp
# Run the application
dotnet runOnce running, you can use these commands:
add <title>- Create a new todo itemlist- Show all todo itemsdone <id>- Mark a todo as completedelete <id>- Remove a todo itemexit- Quit the application
The application creates two SQLite database files:
task_tracker.db- Contains todo items and telemetry data (logs, spans)- The database is automatically created on first run
- Clean Architecture: Proper separation of concerns with Domain, Application, Infrastructure, and Presentation layers
- Dependency Injection: Full DI container setup using Microsoft.Extensions.DependencyInjection
- Entity Framework Core: SQLite database with code-first approach
- OpenTelemetry: Complete observability with:
- Distributed tracing (Activities/Spans)
- Structured logging
- Custom SQLite exporters to persist telemetry
- Async/Await: All I/O operations are asynchronous
- Unit Testing: Comprehensive tests using xUnit and in-memory database
- Modern C# 13: File-scoped namespaces, top-level statements, nullable reference types
- Error Handling: Graceful exception handling throughout
This solution demonstrates production-quality patterns and practices for a .NET 9 console application with full observability and testing.
This project is open source and available under the AGPL license.
Notice: This project contains code generated by Large Language Models such as Claude and Gemini. All code is experimental whether explicitly stated or not.