Однооконный интерфейс vs Многооконный интерфейс
От: alesterre Удмуртия  
Дата: 15.05.12 15:23
Оценка:
Пишу программу на WPF, в основном для работы с табличными данными — разные расчеты, обработка и т.п. Сейчас оно представляет собой небольшое главное окно, из которого можно открывать разные дочерние модули в новых больших окнах. Сначала в такой идее я не нашел ничего плохого, но уже по мере разработки стало ясно, что интерфейс не очень удобный — окна постоянно загораживают друг друга, и если их по какой-либо причине не закрывать, то их количество стремительно растет. Но есть и преимущество — можно рядом расположить два окна и сравнивать их содержимое. К сожалению, я сейчас не могу предсказать, как часто это будет нужно, но мне кажется, что не часто. Или, например, что-то делал, нужно стало посмотреть в другом месте. Открыл другое окно, посмотрел, вернулся. А в однооконном интерфейсе чтобы посмотреть второе, надо закрыть первое. Опять же, решается чем-то типа "открыть в новом окне / в новой вкладке" (хотя это немного труднее в разработке).
Хочу, пока не слишком поздно, переделать все в однооконный режим, чтобы нельзя было открыть одновременно более одной страницы. Вокруг открытой страницы — общие для всех страниц элементы — навигация, меню и т.п. В отдельных окнах открывать только мелкие второстепенные кратковременные диалоги и мастера. На случай, если нужно видеть два набора данных, можно открыть два экземпляра программы — этому ничто не препятствует, конфликтов не будет.

Ну и вопросы:
1) Насколько оправданно переходить на однооконный интерфейс? Может и многооконный еще ничего ? Или это абсолютное зло и антипаттерн? (Делфи и гимп отказались от многооконности, но там окна мелкие и распределены по всему экрану, а у меня нет).
2) Если оправданно, стоит ли реализовывать вкладки, как в браузере? Насколько это бывает полезно/вредно для пользователей? Или не тратить время?

Понятно, что во многом все зависит от специфики приложения, но может у кого-то есть однозначное мнение на этот счет, или кто-то просто захочет поделиться опытом.
Re: Однооконный интерфейс vs Многооконный интерфейс
От: Rius Россия  
Дата: 15.05.12 15:32
Оценка: 2 (1)
Здравствуйте, alesterre.
Было то же. Многооонность, на всякий случай. Случая этого так и не нашли Перешли на однооконность, за исключением одного окошка выбора чисел, которое пока не придумал куда впихнуть. Все режимы открываются один за другим, с показом пути к ним в заголовке окна.
Потом в ходе экспериментов реализовал вкладки как в браузере. Это дало возможность вызывать один и тот же режим несколько раз, а также совершенно иной режим без закрытия текущего.
Re: Однооконный интерфейс vs Многооконный интерфейс
От: boot  
Дата: 15.05.12 17:18
Оценка: 2 (1)
Здравствуйте, alesterre, Вы писали:

A>2) Если оправданно, стоит ли реализовывать вкладки, как в браузере? Насколько это бывает полезно/вредно для пользователей? Или не тратить время?


A>Понятно, что во многом все зависит от специфики приложения, но может у кого-то есть однозначное мнение на этот счет, или кто-то просто захочет поделиться опытом.


Да, специфика диктует выбор. Бывает пользователи не желают _сохранять_ документ (на сервер) до какой-то степени завершенности этого документа, поэтому хотят кучу открытых окон. И таких пользователей подавляющее большинство. А что поделаешь?..
Жизнеспособность прямо пропорциональна простоте!
Re: Однооконный интерфейс vs Многооконный интерфейс
От: matumba  
Дата: 17.05.12 12:44
Оценка: 1 (1)
Здравствуйте, alesterre, Вы писали:

A>Пишу программу на WPF, в основном для работы с табличными данными — разные расчеты, обработка и т.п.


А элементарный docking не решит проблемы? Хочешь — открывай одновременно, хочешь — склади их все в тэбы. Юзер рулит!
Re: Однооконный интерфейс vs Многооконный интерфейс
От: Osaka  
Дата: 17.05.12 13:23
Оценка: 1 (1)
A>Или не тратить время?
Тратить, но не на то, что уже написано. Взять за основу DevExpress DockManager или Visual Studio Shell.
Re: Однооконный интерфейс vs Многооконный интерфейс
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.05.12 16:06
Оценка: 2 (1)
Здравствуйте, alesterre, Вы писали:

A>Ну и вопросы:

A>1) Насколько оправданно переходить на однооконный интерфейс? Может и многооконный еще ничего ? Или это абсолютное зло и антипаттерн? (Делфи и гимп отказались от многооконности, но там окна мелкие и распределены по всему экрану, а у меня нет).
Вообще, многооконность полезна только тогда, когда есть шансы совместно использовать значительную часть UI.
Ну, например, в студии — вспомогательные окна удерживаются на месте, а переключаешься преимущественно между окнами текстового редактора.
Если работа сосредоточена в одном "документоориентированном" окне, то SDI однозначно лучше — проще и понятнее. Если пользователю понадобится два документа одновременно — он откроет два SDI-окна.

A>2) Если оправданно, стоит ли реализовывать вкладки, как в браузере? Насколько это бывает полезно/вредно для пользователей? Или не тратить время?

Вкладки нужны в тех случаях, когда одновременно открытых окон становится очень много, и их неудобно менеджить через таскбар. Для интернет-браузеров это так — типичный сёрфер держит открытыми 10-70 страниц. Для девелоперских тулзов типа студии или Delphi это так — потому что приходится бегать между сотней файлов проекта.
Для вашего приложения — смотрите на реальный опыт использования.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Однооконный интерфейс vs Многооконный интерфейс
От: AlexKalan Россия  
Дата: 21.07.12 18:55
Оценка:
Здравствуй, друг.
Пиши лучше многооконный интерфейс. Случай применения очень простой. Ты, наверное, за одним монитором работаешь, а вот, когда два экрана появятся так сразу проникнешься многооконностью. Главное окно MDI на два экрана не растащить, чтобы два подчинённых окошка там были видны на двух экранах.
Re: Однооконный интерфейс vs Многооконный интерфейс
От: MozgC США http://nightcoder.livejournal.com
Дата: 21.07.12 19:12
Оценка:
Здравствуйте, alesterre, Вы писали:

A>Ну и вопросы:

A>1) Насколько оправданно переходить на однооконный интерфейс? Может и многооконный еще ничего ? Или это абсолютное зло и антипаттерн? (Делфи и гимп отказались от многооконности, но там окна мелкие и распределены по всему экрану, а у меня нет).

Если вы чувствуете что в вашем проекте с MDI будет удобнее работать — то абсолютно ничего плохого в этом нет. В нашем проекте MDI — все довольны.

A>2) Если оправданно, стоит ли реализовывать вкладки, как в браузере? Насколько это бывает полезно/вредно для пользователей? Или не тратить время?


Это может быть очень полезно, у нас даже пользователи сами запросили сделать панель вкладок.
Re[2]: Однооконный интерфейс vs Многооконный интерфейс
От: alesterre Удмуртия  
Дата: 23.07.12 09:30
Оценка:
Здравствуйте, AlexKalan, Вы писали:

AK>Здравствуй, друг.

AK> Пиши лучше многооконный интерфейс. Случай применения очень простой. Ты, наверное, за одним монитором работаешь, а вот, когда два экрана появятся так сразу проникнешься многооконностью. Главное окно MDI на два экрана не растащить, чтобы два подчинённых окошка там были видны на двух экранах.

Спасибо, но я уже сделал однооконный Сразу стало сильно легче, управляться с одним окном куда проще. Я сейчас работаю в таком месте, что двух мониторов тут нет ни у кого (утилита чисто для внутреннего применения, кажется я забыл об этом написать). А если вдруг появятся такие рабочие места, то можно открыть два экзмепляра программы (как в ворде, например). Думаю, моя задача такая, что действительно удобнее показывать все в одном окне. Я просто вставил в главное WPF-окно Frame, в котором показываю разные страницы (Page). Между страницами можно быстро переключаться, при этом они не перегружены тоннами информации. В чем-то это очень близко к вебу, но веб нам по разным причинам не подошел.

Если надо будет, сделаю возможность открывать страницы в новом окне. Или вкладки. Ну или что там еще можно придумать. Пока что все хорошо и так
Re[3]: Однооконный интерфейс vs Многооконный интерфейс
От: _Raz_  
Дата: 23.07.12 09:41
Оценка:
Здравствуйте, alesterre, Вы писали:

A>можно открыть два экзмепляра программы (как в ворде, например)


У ворда один экземпляр программы и несколько окон документов.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
Re[4]: Однооконный интерфейс vs Многооконный интерфейс
От: Sinclair Россия https://github.com/evilguest/
Дата: 23.07.12 14:40
Оценка:
Здравствуйте, _Raz_, Вы писали:

_R_>У ворда один экземпляр программы и несколько окон документов.

1. Не обязательно.
2. Ведут они себя так, что вы затруднитесь определить, кто из документов открыт в одном экземпляре процесса, а кто — в другом.
3. Так что это всё-таки SDI.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Однооконный интерфейс vs Многооконный интерфейс
От: _Raz_  
Дата: 23.07.12 15:09
Оценка:
Здравствуйте, Sinclair, Вы писали:

_R_>>У ворда один экземпляр программы и несколько окон документов.

S>1. Не обязательно.

Разве можно запустить несколько экземпляров winword.exe не через com automation?

S>2. Ведут они себя так, что вы затруднитесь определить, кто из документов открыт в одном экземпляре процесса, а кто — в другом.

S>3. Так что это всё-таки SDI.

Конечно SDI. Моя ремарка относилась к тому, что топик стартер выбрал не удачный пример с вордом.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
Re: Однооконный интерфейс vs Многооконный интерфейс
От: jazzer Россия Skype: enerjazzer
Дата: 23.07.12 15:18
Оценка: :)
Здравствуйте, alesterre, Вы писали:

A>Понятно, что во многом все зависит от специфики приложения, но может у кого-то есть однозначное мнение на этот счет, или кто-то просто захочет поделиться опытом.


надо чтоб как браузер — много окон, в каждом окне много табов.
Любое другое — обязательнго найдется сценарий, при котором будет траходром для пользователя.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Однооконный интерфейс vs Многооконный интерфейс
От: jazzer Россия Skype: enerjazzer
Дата: 23.07.12 15:24
Оценка:
Здравствуйте, _Raz_, Вы писали:

S>>3. Так что это всё-таки SDI.


_R_>Конечно SDI. Моя ремарка относилась к тому, что топик стартер выбрал не удачный пример с вордом.


Точно. Настоящий SDI — это Excel, так вот это просто катастрофа (не сказать еще хужей, забанят) юзабилити.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: Однооконный интерфейс vs Многооконный интерфейс
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.07.12 04:44
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Точно. Настоящий SDI — это Excel, так вот это просто катастрофа (не сказать еще хужей, забанят) юзабилити.

Нет. Вот как раз Excel — это не SDI и не MDI. Это MDI, который пацанам велели перекрасить в SDI, и они сделали это, как умеют. Из всего офисного пакета в нём наихудшая реализация этой концепции.

Связано это с тем, что в документах Excel есть понятие внешних ссылок, и с ними — легаси-поведение, которое крайне трудно исправить.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Однооконный интерфейс vs Многооконный интерфейс
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.07.12 04:47
Оценка:
Здравствуйте, _Raz_, Вы писали:

_R_>Разве можно запустить несколько экземпляров winword.exe не через com automation?

В разных версиях — по-разному. 2010й, вроде бы, отказывается. АФАИР, в 2007 можно было просто запустить Winword.exe ещё раз, и он запускал новый экземпляр (или это было возможно только если в первом открыт модальный диалог...). Впрочем, это не очень важно — и сейчас у меня запускается более одного экземпляра, например, при просмотре аттачментов из аутлука или запуска документов из веба. Важно то, что поведение UI в ворде сделано аккуратно — количество задействованных процессов хорошо спрятано от пользователя.

_R_>Конечно SDI. Моя ремарка относилась к тому, что топик стартер выбрал не удачный пример с вордом.

Ну не знаю. Лично мне поведение ворда вполне нравится (кроме экзотических сценариев вроде сравнения документов).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Однооконный интерфейс vs Многооконный интерфейс
От: WaSh http://kxlm.blogspot.com/
Дата: 16.08.12 08:12
Оценка:
A>Понятно, что во многом все зависит от специфики приложения, но может у кого-то есть однозначное мнение на этот счет, или кто-то просто захочет поделиться опытом.

Лучше использовать докинг (к примеру AvalonDock)- пользователь сам размещает окна, а если требуется, то можно отцепить окно и переместить к примеру на другой экран...
... << RSDN@Home 1.2.0 alpha 4 rev. 1481>>
блог http://kxlm.blogspot.com/
Re[2]: Однооконный интерфейс vs Многооконный интерфейс
От: Sinclair Россия https://github.com/evilguest/
Дата: 16.08.12 14:26
Оценка:
Здравствуйте, WaSh, Вы писали:

WS>Лучше использовать докинг (к примеру AvalonDock)- пользователь сам размещает окна, а если требуется, то можно отцепить окно и переместить к примеру на другой экран...

Это очень, очень сильно зависит от специфики приложения. Лучше, если workflow построен так, что много окон вовсе не нужно. А если нужно, то лучше выбрать несколько удобных вариантов для автоматического размещения, чем заставлять пользователя самостоятельно их размещать.
Ну вот, например, для чтения почты в течение многих лет считался стандартным интерфейс с папочками слева, списком текущей папки справа-вверху, и выбранным письмом справа внизу. (Для LTR-локалей, ессно).
Потом изобрели вариант с reading pane справа. Он, несомненно, удобнее при современных объёмах почты и размерах мониторов. Но это неважно — важно, что варианты, позволяющие пользователю таскать эти окна по экрану в произвольные места, не будут шибко популярны.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.