C# должна постоянно быть включена и выполнять следующие вещи
                  
                  
                  1) Получать и отправлять по TCP порту MQTT посылки;
                  
                  
                  2) Проверять несколько e-mail ящиков по IMAP или POP3;
                  
                  
                  3) Складывать получаемые данные в SQL базу (скорее всего сделаю MSSQL);
                  
                  
                  4) Вести логи в текстовый файл 
                  
                  
                  Может ее стоит написать как консольную утилиту или как графическую, но с минимальной графической частью (например значок в трее)? Или вообще тут лучше сделать службу? (правда службу никогда не пробовал делать)
                  
                  
                  Как это правильно реализовать?
                  
                  
                
Я бы сервис сделал, а к нему небольшой гуишный нотифаер (который бы иконку в трее держал). Сервис и нотифаер бы взаимодействовали по web API (или даже вебсокет сразу) — ну ок, можно опционально сделать WCF.
Обсуждают сегодня