Перевод с комментариями от меня.
Консольное приложение, которое будет собирать информацию с компьютера.
Оно должно отправлять данные веб-сервису через websoket.
Нужно собирать: Имя компьютера, Часовой пояс, Название ОС, версию дотнета
Тут вам нужно будет загуглить:
1. что такое websocket, как его использовать в .net.
2. Каким способом можно получить требуемую информацию. Скорее всего, она лежит где-то в System.Environment.*
Веб-сервис должен отслеживать, когда устройства включаются/выключаются.
Веб-сервис должен собирать информацию с устройств каждые 5 минут и отправлять её в Azure Function
Тут вам нужно будет загуглить/подумать:
1. Что за Azure function и как в неё можно отправить данные
2. Как через вебсокет запросить у клиента данные
3. Подумать, как можно отследить момент включения/выключения.
4. Как делать это всё периодично.
Azure Function для обработки информации с веб-сервиса. Он должен обновлять информацию только по необходимости (если произошло изменение с последнего состояния).
Нужно использовать MS SQL в качестве бд и linq2db в качестве ORM
1. Тут снова ещё внимательнее читаем, как писать Azure function
2. Разбираемся в
linq2db
3. Читаем про MS SQL и про просто SQL, если ещё не знаем.
Я бы взял для решения этой задачи SignalR, тк он достаточно простой и решает проблемы с броадкастом сообщений от сервера к клиентам.