![]() |
VOOZH | about |
dotnet add package AlexaVoxCraft.Logging --version 2.0.1.62
NuGet\Install-Package AlexaVoxCraft.Logging -Version 2.0.1.62
<PackageReference Include="AlexaVoxCraft.Logging" Version="2.0.1.62" />
<PackageVersion Include="AlexaVoxCraft.Logging" Version="2.0.1.62" />Directory.Packages.props
<PackageReference Include="AlexaVoxCraft.Logging" />Project file
paket add AlexaVoxCraft.Logging --version 2.0.1.62
#r "nuget: AlexaVoxCraft.Logging, 2.0.1.62"
#:package AlexaVoxCraft.Logging@2.0.1.62
#addin nuget:?package=AlexaVoxCraft.Logging&version=2.0.1.62Install as a Cake Addin
#tool nuget:?package=AlexaVoxCraft.Logging&version=2.0.1.62Install as a Cake Tool
AlexaVoxCraft is a modular C# .NET library for building Amazon Alexa skills using modern .NET practices. It provides comprehensive support for Alexa skill development with CQRS patterns, visual interfaces, and AWS Lambda hosting.
| Package | NuGet | Downloads |
|---|---|---|
| AlexaVoxCraft.Model | ๐ NuGet |
๐ Downloads |
| AlexaVoxCraft.Model.Apl | ๐ NuGet |
๐ Downloads |
| AlexaVoxCraft.MediatR.Lambda | ๐ NuGet |
๐ Downloads |
| AlexaVoxCraft.MediatR | ๐ NuGet |
๐ Downloads |
| AlexaVoxCraft.Logging | ๐ NuGet |
๐ Downloads |
# Core MediatR integration and Lambda hosting
dotnet add package AlexaVoxCraft.MediatR.Lambda
# APL visual interface support (optional)
dotnet add package AlexaVoxCraft.Model.Apl
# Structured logging for Alexa skills (optional)
dotnet add package AlexaVoxCraft.Logging
// Program.cs
using AlexaVoxCraft.MediatR.Lambda;
using AlexaVoxCraft.Model.Response;
return await LambdaHostExtensions.RunAlexaSkill<MySkillFunction, SkillRequest, SkillResponse>();
// Function.cs
public class MySkillFunction : AlexaSkillFunction<SkillRequest, SkillResponse>
{
protected override void Init(IHostBuilder builder)
{
builder
.UseHandler<LambdaHandler, SkillRequest, SkillResponse>()
.ConfigureServices((context, services) =>
{
services.AddSkillMediator(context.Configuration, cfg =>
cfg.RegisterServicesFromAssemblyContaining<MySkillFunction>());
});
}
}
// Handler.cs
public class LaunchRequestHandler : IRequestHandler<LaunchRequest>
{
public bool CanHandle(IHandlerInput handlerInput) =>
handlerInput.RequestEnvelope.Request is LaunchRequest;
public async Task<SkillResponse> Handle(IHandlerInput input, CancellationToken cancellationToken)
{
return await input.ResponseBuilder
.Speak("Welcome to my skill!")
.Reprompt("What would you like to do?")
.GetResponse(cancellationToken);
}
}
๐ Complete Documentation - Comprehensive guides and examples
AlexaVoxCraft/
โโโ ๐ src/ # Core library packages
โ โโโ ๐ฆ AlexaVoxCraft.Model/ # Base Alexa skill models & serialization
โ โโโ ๐ฆ AlexaVoxCraft.Model.Apl/ # APL (Alexa Presentation Language) support
โ โโโ ๐ฆ AlexaVoxCraft.MediatR/ # MediatR integration & request handling
โ โโโ ๐ฆ AlexaVoxCraft.MediatR.Lambda/ # AWS Lambda hosting & runtime
โ โโโ ๐ฆ AlexaVoxCraft.Logging/ # Alexa-specific logging for AWS
โ
โโโ ๐ samples/ # Working example projects
โ โโโ ๐ฑ Sample.Skill.Function/ # Basic Alexa skill demonstration
โ โโโ ๐ฑ Sample.Apl.Function/ # APL skill with visual interfaces
โ
โโโ ๐ test/ # Comprehensive test coverage
โ โโโ ๐งช AlexaVoxCraft.Model.Tests/ # Core model & serialization tests
โ โโโ ๐งช AlexaVoxCraft.Model.Apl.Tests/ # APL functionality tests
โ โโโ ๐งช AlexaVoxCraft.MediatR.Tests/ # MediatR integration tests
โ โโโ ๐งช AlexaVoxCraft.MediatR.Lambda.Tests/ # Lambda hosting tests
โ โโโ ๐งช AlexaVoxCraft.Logging.Tests/ # Logging functionality tests
โ
โโโ ๐ AlexaVoxCraft.TestKit/ # Testing utilities & AutoFixture support
โโโ ๐ docs/ # Documentation source
โโโ ๐ samples/ # Example implementations
Skills use the MediatR pattern where:
IRequestHandler<T>ICanHandle for routing logicAlexaSkillFunction<TRequest, TResponse>| Package | Purpose | Key Features |
|---|---|---|
| AlexaVoxCraft.Model | Core Alexa models | Request/response types, SSML, cards, directives, System.Text.Json serialization |
| AlexaVoxCraft.Model.Apl | APL support | 40+ components, commands, audio, vector graphics, extensions (DataStore, SmartMotion) |
| AlexaVoxCraft.MediatR | Request handling | Handler routing, pipeline behaviors, attributes management, DI integration |
| AlexaVoxCraft.MediatR.Lambda | Lambda hosting | AWS Lambda functions, context management, custom serialization, hosting extensions |
| AlexaVoxCraft.Logging | Alexa-specific logging | AWS CloudWatch-compatible JSON formatter, built on LayeredCraft.StructuredLogging |
AlexaVoxCraft includes comprehensive testing support:
Implement the IExceptionHandler interface for centralized error handling:
public class GlobalExceptionHandler : IExceptionHandler
{
public Task<bool> CanHandle(IHandlerInput handlerInput, Exception ex, CancellationToken cancellationToken)
{
return Task.FromResult(true); // Handle all exceptions
}
public Task<SkillResponse> Handle(IHandlerInput handlerInput, Exception ex, CancellationToken cancellationToken)
{
return handlerInput.ResponseBuilder
.Speak("Sorry, something went wrong. Please try again.")
.GetResponse(cancellationToken);
}
}
PRs are welcome! Please submit issues and ideas to help make this toolkit even better.
๐ฆ Credits:
- Core Alexa skill models (
AlexaVoxCraft.Model) based on timheuer/alexa-skills-dotnet- APL support (
AlexaVoxCraft.Model.Apl) based on stoiveyp/Alexa.NET.APLAlexaCompactJsonFormatteradapted from Serilog.Formatting.Compact
This project is licensed under the .
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.1.62 | 264 | 7/11/2025 |
| 2.0.0.61 | 258 | 7/2/2025 |
| 2.0.0.59 | 244 | 7/1/2025 |
| 2.0.0.58 | 239 | 7/1/2025 |
| 2.0.0-beta.57 | 189 | 6/30/2025 |
| 2.0.0-beta.56 | 182 | 6/23/2025 |
| 2.0.0-beta.55 | 187 | 6/23/2025 |
| 1.0.1.54 | 382 | 5/21/2025 |
| 1.0.1.53 | 264 | 5/19/2025 |
| 1.0.1.50 | 391 | 5/13/2025 |
| 1.0.1.49 | 345 | 5/13/2025 |
| 1.0.1-beta.52 | 186 | 5/19/2025 |
| 1.0.1-beta.48 | 263 | 5/13/2025 |
| 1.0.1-beta.47 | 266 | 5/13/2025 |
| 1.0.1-beta.46 | 263 | 5/13/2025 |
| 1.0.1-beta.45 | 287 | 5/13/2025 |