Back to book

Learn C#Bot

Learn about the C#Bot and ReactBot combination.

This article provides a high level overview of the different technologies and frameworks used by C#Bot, along with resources to assist developers with becoming familiar with and start working with the bot.

Application Overview

The application consists of two parts,

  1. client-side - this manages the entirety of the presentation (HTML, Javascript and any styling)
  2. server-side - data access via API (REST and GraphQL).

The server-side is found within the server-side root directory under serverside/src.

The client-side for the entire project exists in the clientside directory of the project. There is no HTML rendering done in the server-side and all data is accessed from the API presented by the server-side.

External Resources


C# Language
Supporting Tools (Server-Side)
  • ASP.NET - This is the server-side library that manages the request/response pipeline, handles controller actions, and manages user authentication.
  • ASP.NET inside C# - A tutorial for using ASP.NET inside C#.
Data (Server-Side)
  • Entity Framework Core - This library handles the database connection and data access layer of the application.
  • GraphQL .NET - This library is used to build GraphQL schemas' as well as queries and mutations that can be run.
  • GraphQL.EntityFramework - Integrates GraphQL with the entity framework to provide efficient table joins when constructing large GraphQL queries.


React Framework

  • React - React is the main DOM rendering library that is used inside of ReactBot.
  • React Router - For page routing, ReactBot uses React Router

Supporting Tools (Client-Side)

  • TypeScript - Instead of writing raw javascript for the clientside, ReactBot instead uses TypesScript, a superset of javascript that adds a full type system.
  • MobX - For state management ReactBot uses MobX, an observer library with tight integration with React.
  • SCSS (Sass) - SCSS (or Sass) is a superset of CSS that is used for styling the client-side.

Data (Client-Side)

  • Apollo GraphQL - Apollo is used to facilitate client-side communication with GraphQL API, which is presented by the server-side.


Testing Framework

  • xUnit - xUnit and xUnit runner are the test framework and test runner used for C#Bot.
  • SpecFlow 3 - SpecFlow is the framework used for writing Selenium based tests for C#Bot

Supporting Tools (Test Target)

  • RestSharp - RestSharp is a C# library for sending API requests. It is used by the C#Bot testing target for API tests.