MDI Плюсы и минусы - PullRequest
       33

MDI Плюсы и минусы

3 голосов
/ 16 декабря 2008

Я унаследовал структуру приложения от предыдущего разработчика, где я сейчас работаю. Эта структура использует множественные родительские / дочерние отношения. Во многих случаях встречаются родитель / родитель / ребенок. Я спросил, почему он не использовал MDI, и он сказал, что несколько лет назад, когда он начал, у MDI были серьезные недостатки в отношении ранее заявленных сценариев отношений. Особенно с несколькими родителями.

Мои актуальные вопросы: У MDI все еще есть эти недостатки? И те из вас, кто работал с MDI, какие у вас были проблемы и как вы их преодолели?

Спасибо!

Ответы [ 6 ]

1 голос
/ 17 декабря 2008

Одна проблема с интерфейсами MDI состоит в том, что вы все равно не можете зарегистрировать неограниченное количество окон в своих контейнерах MDI (см. Этот элемент Microsoft KB ). Думаю, я опубликовал это, потому что я видел, как многие MDI-приложения сталкивались с этой ошибкой, когда она интенсивно использовалась.

Мне, как правило, нравится интерфейс SDI, и я делаю его с одинаковыми элементами управления и окнами для нескольких экземпляров «чего-то» вместо того, чтобы создавать новое окно для каждого экземпляра «чего-то».

Я не знаю специфики интерфейса программ, но мне еще предстоит найти что-то, что не может быть переработано в интерфейс SDI и некоторые модальные диалоги (если это действительно необходимо).

1 голос
/ 17 декабря 2008

Конечно, все MDI - это способ разместить в одном месте все окна приложения в одной четко определенной области экрана. Теперь, если ваше приложение представляет собой приложение, в котором оно имеет несколько документов, и люди используют его и хотят «убрать» его, когда оно не используется, тогда MDI, вероятно, для вас. Если нет, то нет, это не так.

Tony

1 голос
/ 17 декабря 2008

Я действительно считаю, что недостатком унаследованного вами приложения является необходимость наличия нескольких родителей (привет, тесно связанная программа!).

Однажды я работал над приложением (стук по дереву, которое мне не придется возвращаться, чтобы поддержать его в ближайшее время), которое было связано, вероятно, так же, как ваше сейчас. Если бы оригинальный автор просто использовал делегаты вместо «this.Parent.Parent.Parent.functionX», мы могли бы добиться больших успехов в исправлении недостатков этого приложения (и делегаты, возможно, даже не были подходящим способом ...) .

Что касается MDI, я предпочитаю это лично, но я не могу говорить о недостатках, которые обнаружил ваш первоначальный разработчик, потому что я стараюсь создать отношения, в которых он / она нуждался.

0 голосов
/ 09 августа 2018

Когда вы открываете немодальный дочерний экран, и ваш родительский экран развернут, вы можете открыть дочерний экран только в максимальном размере, вы не можете открыть его как экран нормального размера.

0 голосов
/ 17 декабря 2008

Звучит так, будто мне нужно немного больше исследовать MDI. Меня интересует комментарий WPF, поскольку он противоречит тому, чему меня учили до сих пор.

Также интересным моментом является то, что разработчик фреймворков называет свою архитектуру HDI (Host Document Interface).

Спасибо!

0 голосов
/ 16 декабря 2008

Я, конечно, иногда видел некоторые глюки в MDI, но, если честно, я бы посоветовал смотреть на WPF вместо winforms, если вы хотите что-то сложное.

...