Должен ли я использовать IMemoryCache или пользовательский GlobalCache для моего веб-приложения. Net Core? - PullRequest
0 голосов
/ 30 марта 2020

Я собираюсь перенести часть своего C# кода WinForms в какое-нибудь серверное приложение Blazor (используя. Net Core).

В своем коде Winforms я реализовал свой собственный класс Global Cache Manager, который

  • загружает все элементы в память из базы данных при первом запросе
  • использует синхронизацию для обновления sh только тех элементов из базы данных, которые были изменены demande
  • предотвращает запись устаревших данных в базу данных (используя некоторую оптимистическую c процедуру блокировки).

Использование памяти показывает, что это прекрасно для размера данных, которыми я должен управлять. Производительность в целом отличная, за исключением, конечно, когда я впервые загружаю данные.

Моя первоначальная идея состояла в том, чтобы зарегистрировать службу Singleton, которая будет извлекать данные один раз и обрабатывать синхронизацию, как я делал в приложении WinForms.

Поскольку я не совсем знаком с миром веб-сервисов, я провел некоторое исследование и натолкнулся на IMemoryCache, который на самом деле кажется довольно похожим.

Итак, на вопрос: я знаю, что я должны использовать какое-то кэширование, поскольку загрузка всех элементов каждый раз снижает производительность. Есть ли какая-то конкретная c причина, по которой я должен НЕ использовать мой подход к управлению глобальным кэшем и перейти к IMemoryCache или любому другому методу (предложения приветствуются).

...