Skip to content

Code from programming intensive "Development of real-time data processing system"

Notifications You must be signed in to change notification settings

mrglaster/csharp-intensive-GPSD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Code from Brief course program “Development of real-time data processing systems”

Revision: 2022-10-18

Description: The program is designed for trained students who have programming skills (C# language) and work with a database (PostgreSQL). The course is a brief guide to creating a system for loading and processing data from the GPSD service (a service for obtaining current coordinates using systems such as GPS, Glonass). In the program, students will be introduced to the data format generated by the GPSD service. Learn how to process the received data (JSON format). Design databases within the project, taking into account the constant load with the PostgreSQL, PgAdmin environment.

Main steps: No. | Stage of work First day (4 hours)

  1. Getting to know the GPSD service in a Linux environment. Setting up the environment. Visual Studio (Rider), PgAdmin. Server connection.

  2. Introduction to Json data structure. Working with Json, a typical set of C# libraries, System.Text.Json. Working with Json using the Newton.Json library. Serialization / Deserialization.

  3. Development of data structures in the C# environment for data deserialization. Creating tests in NUnit.

  4. Complete loading and deserialization of all data using the Factory template.

  5. Study and development of systems for parallel execution of tasks in the C # environment. Pattern Observer

  6. Implementation of this template on the example of loading data from the GPSD service.

Second day (4 hours)

  1. Joint design of the database structure.
  2. Creating a database connection using ADO.net technology. Building a data reader system using a connection pool. Building a data recording system using Reflection.