У меня возникли небольшие проблемы с принятием решения о том, как структурировать создаваемое мной приложение.
Приложение должно анализировать текстовые файлы (по одной записи в строке) и загружать всю информацию вобъем памяти.Обычно существует от 100 000 до 500 000 записей.После этого данные должны отображаться в виде таблиц и очень подробных графиков / диаграмм для дальнейшего анализа.
Пользователь должен иметь возможность настроить представление этих данных.Например, существует много разных «типов» записей журнала (TypeA_Log, TypeB_Log и т. Д.). Пользователь должен иметь возможность выбирать / отменять выбор этих типов, которые будут отображать / скрывать их на дисплее.Существует несколько других типов фильтрации (фильтрация по дате и т. Д.)
-
По сути, у меня сейчас есть следующее:
У меня есть структура классакоторый представляет различные типы записей журнала.
Существует шаблон Singleton для хранения всех данных (почти как база данных в памяти), который включает списки <> экземпляров записей журнала.
Затем у меня есть класс «filter», который содержит информацию о том, что пользователь хотел бы просмотреть.«Фильтр» передается в Data-Singleton, а затем возвращает подмножество данных.Я в основном использую лямбда-выражения C # для выбора данных из списка <> записей журнала, аналогично тому, как вы можете передать инструкцию SELECT в базу данных SQL.
-
Этоработает хорошо, но я должен думать, что есть лучший способ справиться с этим.Прямо сейчас, каждый раз, когда пользователь вносит даже малейшее изменение (например, выбирает / отменяет выбор одного из многих типов записей журнала, новый набор данных должен быть извлечен из Data-Singleton, а затем все таблицы и диаграммы имеютчтобы быть обновленным / повторно объединенным / пересчитанным, чтобы отразить это изменение. В большинстве случаев все, что я действительно хочу сделать, это показать / скрыть определенные вещи.
Я использую C # .NET 3.5.