Во-первых, я не злюсь, потому что я использую MVVM
в WinForms-). Я знаю о шаблоне MVP
(Model View Presenter) и его вариантах. Когда я начинал этот проект, я собирался изучить WPF и использовать его, но я вынужден спешить с разработкой программы, и у меня нет времени изучать WPF, поэтому я должен написать его в WinForms, который я хорошо знаю.
Итак, вкратце, у меня есть большое интеллектуальное клиентское приложение, ориентированное на данные, которое почти готово, у меня есть все модели и ViewModel (инфраструктура, домен, презентация завершены), пользовательский интерфейс тоже готов, теперь мне нужно только подключить интерфейс к ViewModels.
Сначала я начал подключать его стандартным способом winforms (BindingSources и простым связыванием данных), но когда я сделал 30-50% привязки, я обнаружил, что моя программа работает очень медленно, у меня примерно 100-150 связанных свойств, поэтому 30 из них являются привязками корневого объекта домена (агрегатного корня) к его EditForm. Таким образом, привязка данных не работает хорошо в этой ситуации, множество ненужных обновлений, каскадные обновления всего представления, когда что-то меняется незначительно, неясное поведение и другие уродливые вещи. Он пахнет очень ненадежным кодом, над которым у меня мало контроля.
Поэтому я начал переписывать проводку как чистый чистый код WinForms (подписка на события PropertyChange и ListChanged и установка свойства ViewModels самостоятельно из пользовательского интерфейса). Много кода для написания, но он работает намного быстрее, у меня есть полный контроль над этим, и он чувствует себя намного надежнее.
Так что ты думаешь об этом парне?
У кого-нибудь был такой опыт? Какой у вас вердикт по поводу «Связать данные или нет»?