After spending most of this chapter working to create our game services, we are going to return to the SimpleRPG game engine. We want to replace our local game data files with requests to our game services. That way we can retrieve updated data from the services and cache it locally for the running game … Continue reading Lesson 5.13: Build Reusable Service Client for Game Engine
Month: January 2021
Lesson 1.6: Using Dependency Injection
In lesson 1.5, we discussed what dependency injection was and how to build two classes to integrate our DI engine into the Spectre.Console.Cli app. This lesson will build on that and show how we can use dependency injection in a more robust example. We will build a fully-functional IUniversityRepository, which implements all of the CRUD … Continue reading Lesson 1.6: Using Dependency Injection
Lesson 5.12: Create CD Pipeline for Azure Functions App
In lesson 5.3, we set up a continuous delivery pipeline for our SimpleRPG game Blazor app. We also need to set up a deployment pipeline for our game services. This pipeline will release the latest game services build to our Azure account and Functions App resource. The specific steps of this deployment script will be … Continue reading Lesson 5.12: Create CD Pipeline for Azure Functions App
Lesson 1.5: Setting up Dependency Injection Components
Spectre.Console supports the ability to use dependency injection to find types for our commands. The library has an integration mechanism so that developers can use their favorite DI engine with their command-line app. In this lesson, we will learn how to integrate the .NET Extensions dependency injection engine with Spectre.Console. If you are unfamiliar with … Continue reading Lesson 1.5: Setting up Dependency Injection Components
Lesson 5.11: Create CI Pipeline for Azure Functions Project
Early in our development of the SimpleRPG game project, we set up a continuous integration pipeline to automate our build with every repo check-in. Now we are going to set up another pipeline for our game services. Since the services are in their own repository and solution and have different deployment requirements, we will need … Continue reading Lesson 5.11: Create CI Pipeline for Azure Functions Project
Lesson 1.4: Async Commands
To this point, we have been using synchronous commands, but the Spectre.Console.Cli library also supports asynchronous commands. For anyone familiar with the async/await concepts in .NET, these commands follow the same pattern. When our commands use asynchronous APIs (for file I/O or web service calls), then we also need our commands to be asynchronous. With … Continue reading Lesson 1.4: Async Commands
Lesson 5.10: Complete the Game Services
In this lesson, we're going to build out the three remaining services quickly. We will continue to use the same patterns (DTOs, repositories, and service helper class) that we've used in the previous lessons. If you need to review any of the individual patterns, please review those lessons. QuestTemplateService 1. Create the quests.json file in … Continue reading Lesson 5.10: Complete the Game Services
Lesson 1.3: Nested Commands
The Spectre.Console.Cli supports having multiple nested commands to enable multiple operations on a particular resource. For example: if we have a command with additional operations, we can represent that as nested commands: command operation1, command operation2, command operation3, and so on. To enable this type of nesting, the Spectre.Console.Cli provides the AddBranch configuration method. To … Continue reading Lesson 1.3: Nested Commands
CLI Lessons Updated to Spectre.Console v0.36
With the changes to merge the Spectre.Cli and Spectre.Console packages, we had to update our existing lessons to the new combined package as well. Starting with Spectre.Console v0.36, both code bases are in a single package. Our tutorial lessons have also been updated to the new version. Lesson 1.1: Starting with Spectre.Console.CliLesson 1.2: Multiple, Default, … Continue reading CLI Lessons Updated to Spectre.Console v0.36