Итак, на моей работе у нас есть C# wpf-приложение. У нас есть последовательность запуска:
- База данных инициализации (EF6)
- регистрация всех служб
- Регистрация всех моделей представления
где Viewmodels могут быть вложенными.
Viewmodels состоят из конструкции модели представления. В этом подходе viewmodel также создает любые дочерние viewmodels, например, для datagrids, управляет подобным образом.
Затем у нас есть механизм с призмой, где у нас есть 2 обработчика на каждую viewmodel для OnNavigatedTo
и * 1016. * которые вызываются, когда пользователь переключается на экран или с экрана. В этих функциях находится большая часть логов обновления и очистки c. Таким образом, ctor создаст менеджера, который взаимодействует с logi c, и тогда только в нашем onNavigateTo мы осуществляем фактическую выборку данных.
Создание объекта чрезвычайно быстро, и, поскольку мы склонны сохранять Вдали от долгосрочных функций (вызовы базы данных и т. д. c) в большинстве случаев примерно в 20 раз является инициатором наших услуг.
Мы создаем около 15 экранов для модулей, каждый из которых содержит около 5- 10 панелей (так что они вложены в модели нашего экрана), каждая из которых может иметь около 1-10 элементов управления. Затем у нас есть еще около 30 дополнительных экранов для других вещей.
Таким образом, у нас есть немало моделей представления, которые могут быть довольно большими, но поскольку большинство ресурсоемких элементов там не расположено, нагрузка довольно мала .
Я не знаю, отвечает ли это на ваш вопрос, но это должно дать вам лучшее понимание, и я надеюсь, что это поможет.
В вашем случае я бы сделал то же самое. Вы, конечно, можете перейти к более асиному c образу жизни, но я не думаю, что сложность будет стоить того. Мы периодически оптимизируем наши сервисы с помощью asyn c, если мы измеряем, что они занимают слишком много времени, запуск занимает пару секунд, и для приложений и для разработки это выглядит очень хорошо.
Просто запомните; не оптимизируйте перед измерением, а также убедитесь, что у вас есть хорошее представление о том, что является приемлемым для клиента с точки зрения времени запуска.