Допустим необходимо реализовать следующую фичу. У меня есть GUI приложение со своей бизнес логикой. Модель довольно нетривиальная, и я хочу внедрить так называемый дебагинг. Другими словами, я хочу отслеживать изменение модели пошагово (например по нажатию клавиши F10). Хотел бы спросить, какое самое адекватное решение данной проблемы существует? На данный момент вижу два потенциальных решения:
Не хочется городить велосипед, может уже существуют зарекомендовавшие себя подходы?
Мне кажется, устоявшийся подход — отлаживать программу по частям.
Когда вы тестируете вашу модель, вам всё равно, есть ли у вас UI. Вы просто подаёте на вход значения, запускаете модель, и убеждаетесь, что она выдаёт нужный результат. (Возможно, это стоит автоматизировать в виде юнит-тестов.) И вы можете вполне смотреть значение ваших переменных в отладчике, UI вам для этого не нужен.
Когда вы тестируете бизнес-логику/VM, в простых случаях вы тоже можете просто пройти нужные куски под отладчиком, вам не нужно для этого UI. В сложных случаях (например, много асинхронные событий, на которые отладчик влияет не лучшим образом) заведите адекватный логгинг.
Для тестирования UI, проще всего разбить сложный UI на отдельные контролы (UserControl
, DataTemplate
и т. п.), и тестировать их по отдельности на тестовом приложении.
Если вы замечаете, что у вас для отладки бизнес-логики нужно дождаться реакции UI, у вас что-то неправильно в архитектуре: ваша бизнес-логика частично находится в UI-уровне! (Пример: у вас связаны две VM через Binding
в UI. Это плохо и неправильно.) Убедитесь, что бизнес-логика бежит нужным образом и в отсутствие UI. Это ликвидирует проблемы с отладкой, и улучшит модульность вашего приложения.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Подскажите пожалуйста, можно ли реализовать, и если да, то как, такую затеюTextBox, в нём маска на ввод трёх слов - ФИО
Допустим, имеется DataTable t1 с полями f1,f2,f3 и нужно, что бы DataAdapter произвел вот такое обновление на реальной БД:
при выводе строке вида str="строка1 <br/> строка2 " выводится строка целиком с отображением <br/>, те