Tech.Aerove.StreamDeck.Client 0.7.13-beta

This is a prerelease version of Tech.Aerove.StreamDeck.Client.
dotnet add package Tech.Aerove.StreamDeck.Client --version 0.7.13-beta                
NuGet\Install-Package Tech.Aerove.StreamDeck.Client -Version 0.7.13-beta                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tech.Aerove.StreamDeck.Client" Version="0.7.13-beta" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tech.Aerove.StreamDeck.Client --version 0.7.13-beta                
#r "nuget: Tech.Aerove.StreamDeck.Client, 0.7.13-beta"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tech.Aerove.StreamDeck.Client as a Cake Addin
#addin nuget:?package=Tech.Aerove.StreamDeck.Client&version=0.7.13-beta&prerelease

// Install Tech.Aerove.StreamDeck.Client as a Cake Tool
#tool nuget:?package=Tech.Aerove.StreamDeck.Client&version=0.7.13-beta&prerelease                

Aerove C# Stream Deck Client

BuildNuGetNuGet

An easy to use C# Client library for making Elgato Stream Deck plugins taking advantage of the .NET Core service environment with cross platform plugin support for both Windows and Mac OSX.

Purpose

The Elgato Stream Deck is used by many people mostly in the streaming industry. I purchased one myself to help speed up my development workflow and was surprised to see the lack of options when it came to the plugin store. Naturally I wanted to see how I could change that and contribute some of my own work and found out the only official SDKs are for C++ and Objective-C which may explain the lack of options since these are harder languages for people to start learning in.

I did find other decent options for developing in C# but after trying some of them out I ultimately decided to create my own. The biggest reason being that these SDK's could still be challenging for a beginner and I felt I could offer an easier solution to jump into. These solutions were also built on .NET Framework and even though nothing in them seemed Windows specific, it likely attributes to the lack of Mac plugins.

Requirements

Getting Started

Install the plugin templates by opening up CMD or Powershell

dotnet new -i Tech.Aerove.StreamDeck.Template

Make sure you have the latest version

dotnet new --update-apply

You will now see the following projects available in Visual Studio | Project | Description | |--|--| | Beginner Stream Deck Plugin | Contains everything the normal one does and lots of comments and information perfect for a new developer or someone new to this client. | | Stream Deck Plugin | Contains your first action and an example service |

After selecting one of these templates you will need to fill in information about your plugin like your website, name and UUID.

Once your finished you can run the plugin and the "DevDebug" feature will automatically install and takeover your plugin giving you access to full debug mode.

enter image description here

Thats it! You can read over the comments and go from there. Please reference the Elgato Documentation to understand how the Stream Deck works.

Publishing for Windows and Mac

Publishing is simple in Visual Studio.

  1. Select your project.
  2. Select Build > Publish Selection
  3. Select Folder and click Finish
  4. Select Actions > More Options > Edit
  5. Change Deployment Mode to "Self Contained"
  6. Change Target Runtime to "win-x64" or "osx-64"
  7. Expand the File Publish Options and Select "Produce Single File" and "Trim unused code"
  8. Save and click Publish
  9. Select "New" and repeat these steps for the opposite runtime
  10. Combine the two output folder contents and your done!
  11. You can find further information on how to publish to the store on the Elgato Website

Special Features

DevDebug

A unique system to automatically handle changes to your plugin without the need to restart the Stream Deck application while also giving you access to the built in visual studio debugger. No longer do you need to mess around with powershell scripts and log file debugging to get around the poor design of the Stream Deck, let DevDebug handle it for you. In most cases it can take less than 4 seconds to launch debug and takeover the stream deck connection!

Cross Platform Support

Easily develop a cross platform plugin.

Service Architecture

Built on top of the .NET Core service architecture you can easily Inject services into your actions and async support giving you the ability to fire off background tasks as needed. I even provide a way to inject middleware into the pipeline between the Client and your actions. (Docs coming soon)

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.7.13-beta 162 5/5/2022
0.7.12-beta 112 5/5/2022
0.7.11-beta 129 5/1/2022
0.7.3-beta 116 4/29/2022
0.7.1-beta 124 4/27/2022
0.7.0-beta 114 4/27/2022
0.6.9-beta 136 4/27/2022
0.6.5-beta 167 4/25/2022
0.6.0-beta 129 4/25/2022
0.5.0-beta 132 4/24/2022