У меня есть многоуровневое приложение в C#, которое должно выполнять задачи в базе данных (при первом использовании мы можем создать базу данных и заполнить ее некоторыми данными). Когда я изначально разработал приложение, я не учитывал возможный контроль уровня выполнения, не говоря уже о каких-либо сообщениях о прогрессе любого рода. Как я могу изменить дизайн приложения, чтобы иметь возможность сообщать о результатах работы базы данных на уровне пользовательского интерфейса? Есть ли решение, которое можно использовать повторно и не заставляет меня изменять все мои функции, чтобы получать дополнительные данные для отчетности?Проектирование многоуровневого приложения для использования индикатора выполнения
ответ
№ В зависимости от того, насколько велика ваша заявка, у вас впереди много работы.
Чтобы отчет о работе работал, вам нужен код, который выполняет работу по сбору событий после завершения работы единицы измерения. Это событие нужно обрабатывать на уровне пользовательского интерфейса, а показатели прогресса обновляться.
Хорошим местом для начала было бы изучить использование BackgroundWorker (здесь есть пример на MSDN - http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx). Когда вы знакомы с BackgroundWorker, вы должны быть в лучшем положении, чтобы решить, какие изменения необходимо внести в ваше приложение.
Вы можете изменить код сервера, чтобы он обновлял информацию о ходе работы на сервере (без изменения сигнатур функций), а затем имеет отдельный метод, который может запрашивать эту информацию отдельно.
Это позволит вам модернизировать поддержку прогресса без какого-либо влияния на существующие вызовы на сервер, просто добавьте новый фоновый поток в пользовательский интерфейс, проверяя обновленную информацию о ходе работы, пока выполняется долго работающая задача.
Редактировать: Я думаю, что такой же подход будет работать для задач, которые происходят в клиенте. Но, тем не менее, здесь можно было бы использовать класс индикаторов статического прогресса.
Как сказал Грег, впереди много работы. Однако есть много способов подойти к проблеме, и лучшее для вас зависит от того, какая контекстная информация переходит от клиента к слоям приложения/базы данных уже. Например, если токен сеанса или идентификатор транзакции передается от клиента к приложению в ходе выполнения запроса/транзакции или ссылки подтверждения, переданной асинхронно из приложения в клиент, то для этих запросов/транзакций, для которых необходимо было предоставить отчет о ходе работы, чтобы приложение могло обновить таблицу состояния, которую клиент мог запросить. Это может сократить объем требуемой работы. В принципе, вам нужно рассмотреть «промежуточное ПО» уже на месте и посмотреть, можно ли использовать какое-либо из них для корреляции транзакций между уровнями.
- 1. Проектирование многоуровневого приложения (стиль шаблона)
- 2. Проектирование базы данных для многоуровневого раскрывающегося меню
- 3. Текстовая область для индикатора выполнения
- 4. Использование индикатора выполнения для вывода
- 5. Создание индикатора выполнения для android
- 6. Использование cat для индикатора выполнения
- 7. Flex: нет индикатора выполнения?
- 8. Правильное использование индикатора выполнения
- 9. Создание точного индикатора выполнения для приложения удаленного установщика в C#
- 10. Проектирование приложения для Android-планшета
- 11. проектирование индикатора вида пейджера как этого
- 12. Настройка индикатора выполнения AJAX
- 13. Swift - Создание индикатора выполнения
- 14. JSON для многоуровневого приложения для Android-андроид
- 15. Использование индикатора выполнения
- 16. Использование пользовательского индикатора выполнения?
- 17. Создание пользовательского индикатора выполнения
- 18. Дросселирование индикатора выполнения Ajax
- 19. Использование индикатора выполнения?
- 20. Создание интерактивного индикатора выполнения
- 21. Настройка индикатора выполнения AVPlayerViewController
- 22. Проектирование приложения для личных финансов
- 23. Проектирование приложения Win32api
- 24. SetProgress вызывает setLevel для индикатора выполнения
- 25. установить фон для неопределенного кругового индикатора выполнения
- 26. jQuery UI Bounce для индикатора выполнения
- 27. imagecopy PHP для индикатора выполнения не работает
- 28. Как сделать треугольный дизайн для индикатора выполнения
- 29. вычислить maxmimum индикатора выполнения для размера файла
- 30. Создание индикатора выполнения для функции поиска
Удачи. (Отчетность) прогресс тяжелый – SLaks