2009-06-04 3 views
2

Каковы наилучшие способы управления кодом в одноформатном приложении с множеством разных компонентов? например, подумайте о финансовом приложении, у которого есть выборщик для просмотра/выбора продукта для просмотра; несколько тикеров в реальном времени для цен, процентных ставок или чего-то еще; прокручивающийся новостной канал; различные графики; сетка, отображающая локально рассчитанные значения; и т. д.Организация gui-кода в C#

Вы бы создали пользовательский элемент управления для каждого отдельного компонента, даже если они не будут использоваться за пределами этого приложения? или вы могли бы сделать это с классами, которые реализуют логику для каждого компонента и каким-то образом обновляют этот фактический контроль в gui? двум компонентам может потребоваться взаимодействие друг с другом, например, вы нажимаете ячейку в сетке, и она вызывает какую-то диаграмму (будет ли обработчик главной формы отправляться сообщение?)

У меня есть привычка вводить код формы раздутой, поскольку функции добавлены, и я действительно хочу познакомиться с лучшим способом. Я работаю с C# (не используя WPF), но я предполагаю, что основные принципы проектирования не обязательно зависят от языка.

ответ

0

Это зависит от того, насколько велика шкала приложений, а также время жизни приложения.

В почти любом приложении с разумным размером я бы рекомендовал разделить отдельные разделы на отдельные UserComponents. При этом есть много способов выйти за рамки этого, включая использование плагинов/DI и т. Д.

Я бы рекомендовал для чтения идеи (или, по крайней мере, скимминг) Composite Client Application Guidance. Вопросы, передающие сообщения, а также вопросы о разных подходах к объединению отдельных компонентов подробно обсуждаются.

Есть много драгоценных камней, которые будут актуальны в Composite Client Appilcation Guidance, даже если вы не используете WPF или Silverlight. Многие из разделов руководства не относятся к конкретным технологиям - они больше связаны с тем, как объединить несколько частей, способствовать повторному использованию и гибкости в дизайне и т. Д. Они применяются независимо от того, какую технологию вы используете.

0

Я склонен делать все, как пользовательский элемент управления и их использовать панели для моего размещения. Затем я создаю новый экземпляр элемента управления и добавляю его в панель.

Это позволяет мне создавать пользовательские конструкторы, которые я нашел более полезными, поскольку я пытаюсь использовать структуру DI/IOC для своего текущего проекта.

 Смежные вопросы

  • Нет связанных вопросов^_^