Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (9)

Лучшие ответы пользователя

Все ответы (5)
  • На чем пишутся современные десктопные приложения?

    Lapish72
    @Lapish72
    C# уже много лет спокойно работает на линуксе. На c# можно писать кроссплатформенный gui через:
    1) Avalonia. Наследник WPF с исправлением болячек wpf(тех же стилей) и реактивностью по умолчанию.
    2) UNO. Многообещающий проект, но лично мне не понравился. Слишком тяжеловесное решение и сложное. Avalonia проще и завелась сразу.
    3) Maui. Официальное решение от Microsoft, но не под линукс. На github пилят отдельно под него поддержку.
    4) Blazor/Electron.Net. Web app в виде десктопа.

    JavaFX. Сугубо субъективное мнение, но это тихий ужас по сравнению с тем же WPF.

    Для себя хочу изучить Dart и Flutter из-за быстрой перезагрузки(тот же wpf, а особеннно у blazor с этим проблемы) и 100% следования material guidline, т.к это все google. На Flutter ui пишется под все платформы и его практически не нужно будет подгонять.
    Ответ написан
    Комментировать
  • Передача сообщения через SignalR. Как сделать однократное соединение с сервером?

    Lapish72
    @Lapish72
    Нет примера вызова методов из вашего класса, но могу предположить, что вы каждый раз инициализируете его. Вам нужно сделать ваш класс Singleton'ом. Для этого в Startup ConfigureServices зарегистрируйте ваш сервис:
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton<ВашСервис>();
        }
    }

    И затем в Program:
    public class Program
    {
        public static async Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();
            var service = host.Services.GetRequiredService<ВашСервис>();
            service.ConnectToServer(); //Подключаемся к SignalR
    
            host.Run();
        }
    }


    UPD:
    Советую поменять название класса на более общее, например, SignalrService, а метод SendToSignalR на Connect.
    Ответ написан
    6 комментариев
  • Какие технологии и подходы использовать?

    Lapish72
    @Lapish72
    Как вы заметили при вашем подходе, например, 10 компьютеров при тайминге опроса 1с отправят как минимум 36к запросов к базе за 1час. 1 день 864к строк+ Это если вам нужно хранить супер подробную статистику.

    Как бы сделал я:
    Данные отправляются не напрямую в бд, а в какой-то промежуточный сервис, который к примеру будет анализировать данные за 1 час или 24ч, проводить с ними манипуляции(большинство данных удалять, а остаток перекладывать в другую таблицу для менее детальных отчетов). Из тех же +/- 3600 строк от одного компьютера можно оставить 4 по среднему значению за 15 минут. Экономия ресурсов в 900 раз.

    UPD:
    Если поставить периода "чистки" базы 2ч, то в приложении мы можем показать нагрузку как посекундно, ведь не удалились еще полные данные, так и более детально для данных >1ч.
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (9)