Improving the use of .NET Core with Alexa (well trying to)

Posted by Steven Pears on December 20, 2017 · 4 mins read

Update April 2018: Added StateManagement and Gadgets now work with the Skill Beta.

There have been a lot of “year in review” posts popping up. This isn’t one of them. I might think about writing one – but this is more of a mission statement.

Two things have happened to me this year. The first is that I’ve become part of the technology community around me. I’m an introvert – always been very comfortable and accepting of that fact. But through interesting content and engaging presenters, combined with the amazing people at meetups and in Slack channels and on Twitter, I’ve become vocal enough to engage regularly and socially with people in tech – even agree to present to a few small crowds, which has always been a goal of mine.

Secondly, I’ve started working on an Open Source library. A big thank you at this stage to Tim Heuer for creating the Alexa.NET project – which I’m happy to say I’ve been steadily contributing to for several months now.

Working with the Alexa APIs has been an incredibly rewarding time – being able to help others with issues in skills, working to help resolve problems, and adding to something I know people are finding useful? It’s turned into a real passion.

.NET Core is a fabulous way to produce Alexa Skills and I want the work I do to make that entry level for new developers and hobbyists even lower. So – with Amazon opening up Notifications, In-Skill payments and their Gadget API in the new year, that’s the mission statement for 2018.

I want to help make developing Alexa Skills for .NET Core Developers as easy as possible

Whether that’s through NuGet packages I help write or contribute to, talks about development, actively resolving issues – I don’t care, I just want other developers to have as much fun working with Alexa Skills as I have and enjoy the larger community as much as I have the local one.

Next steps are to create sample skills and better articles explaining how all this fits together, and to try and ensure that there are packages for all the new skill features coming up as they are made available to the public.

To try and keep a reminder of this statement and the work it entails. I hope to keep this list of packages I contribute to and create as up to date as I can. I’ll also list the package source where I can so other devs can raise issues and PRs

Alexa.Net

The core package that handles primary requests/responses from and to Alexa Skills
https://github.com/timheuer/alexa-skills-dotnet
https://www.nuget.org/packages/Alexa.NET/

Alexa.Net.Management

Maps Alexa CLI to .NET Objects
https://github.com/stoiveyp/Alexa.NET.Management
https://www.nuget.org/packages/Alexa.NET.Management

Alexa.Net.ListManagement

Interactions with Alexa, Lists and their items
https://github.com/stoiveyp/Alexa.NET.ListManagement
https://www.nuget.org/packages/Alexa.NET.ListManagement

Alexa.Net.SkillMessaging

The back-end portion of Notifications, allowing systems to ping Alexa skills with information required to create notifications
https://github.com/stoiveyp/Alexa.NET.SkillMessaging
https://www.nuget.org/packages/Alexa.NET.SkillMessaging

Alexa.Net.Notifications

Create, update, delete and dismiss notifications from within a skill
https://github.com/stoiveyp/Alexa.NET.Notifications
https://www.nuget.org/packages/Alexa.NET.Notifications

Alexa.Net.Gadgets

Interact with and control Alexa Gadgets
https://github.com/stoiveyp/Alexa.NET.Gadgets
https://www.nuget.org/packages/Alexa.NET.Gadgets

NodaTime.AmazonDate

Parse Amazon date strings to NodaTime local dates
https://github.com/stoiveyp/NodaTime.AmazonDate
https://www.nuget.org/packages/NodaTime.AmazonDate

Alexa.Net.MD2Ssml

Converts Markdown to Ssml, hopefully allowing expressive speech to be stored in most modern CMS systems.
https://github.com/stoiveyp/Alexa.NET.MD2Ssml
https://www.nuget.org/packages/Alexa.NET.MD2Ssml

Alexa.Net.StateManagement

Handles management of variables at both a request and session level, and allows you to create a persistence mechanism as well – all of which are seamless to the end skill
https://github.com/stoiveyp/Alexa.NET.StateManagement
https://www.nuget.org/packages/Alexa.NET.StateManagement