Шаблоны проектирования для Microsoft (или других производителей программного обеспечения) Настольное приложение - PullRequest
4 голосов
/ 10 августа 2009

Этот вопрос похож на

  1. Каковы наиболее распространенные шаблоны проектирования для любого приложения форм Windows?
  2. Шаблон проектирования пользовательского интерфейса для Windows Forms (например, MVVM для WPF) .

Но я хотел бы спросить кое-что более конкретное: я хочу знать, какие шаблоны проектирования Microsoft использует для создания своего впечатляющего набора пакетов настольных приложений, включая VS 2008, Microsoft Office и т. Д.

У кого-нибудь есть идеи? Я оглядываюсь вокруг, но могу найти только расплывчатые детали. Там, кажется, не так много информации об этом.

Редактировать: ОК, может быть, я бы немного смягчил вопрос: кто-нибудь знает, как крупные производители программного обеспечения (не только Microsoft) создают свои настольные приложения ?

Ответы [ 6 ]

1 голос
/ 12 августа 2009

Вы можете проверить интересную статью Роб Пьерри ,

Откройте для себя шаблоны проектирования, которые вы уже используете в .NET Framework в журнале MSDN

Это может помочь понять, что некоторые шаблоны, такие как Итератор, Обозреватель, Декоратор, Адаптер, Стратегия, Фабрика и т.д.

1 голос
/ 12 августа 2009

Для приложения Windows Form я предлагаю вам попробовать составной блок приложения пользовательского интерфейса (CAB), для которого вы можете найти много информации на сайте MS в разделе Patterns & Practices. Я не использовал его сам, так как я в основном разрабатываю веб-приложение, но у меня есть коллеги, которые его используют и которые действительно рекомендуют его. Больше информации здесь и codeplex :

Если вы стремитесь к приложению WPF, CAB не так хорош. Тебе лучше взглянуть на то, что называется ПРИЗМА. Я мог бы объяснить вам, почему PRISM лучше, чем CAB в случае приложений WPF, но в Интернете уже есть очень хорошее объяснение, которое вы можете найти здесь , а также в codeplex :

Оба «решения» созданы командой Microsoft Patterns & Practices Team и могут быть найдены в CodePlex ... так что я думаю, что это хороший путь!

0 голосов
/ 12 августа 2009

Шаблоны проектирования, найденные в книге Gang of Four , основаны на изучении реальных программных приложений и нахождении общих решений. Я предполагаю, что шаблоны, представленные в книге, также были обобщены, чтобы быть более полезными для населения в целом.

Учитывая этот факт, я ожидаю, что любое среднее или крупномасштабное приложение будет содержать, по крайней мере, несколько шаблонов или вариаций шаблонов, описанных Бандой четырех.

0 голосов
/ 12 августа 2009

В Mac OS X дизайн веб-фреймворка Cocoa строго подчеркивает использование подхода модель-представление-контроллер. Я полагаю, что Apple, вероятно, использовала MVC при создании большинства своих приложений, и большинство разработчиков Mac, похоже, используют тот же подход. Хотя трудно сказать наверняка, поскольку у меня нет доступа к исходному коду для большинства приложений Apple.

0 голосов
/ 11 августа 2009

Ну, в моем скромном опыте я видел и использовал что-то под названием PAC :

Презентация - Абстракция - Контроль

Две основные идеи:

  • Для оформления презентации (интерфейс рендеринг / пользовательские события) из абстракция (ваша обработка: данные доступ, объектная модель, аппаратное обеспечение, IO, ...) с помощью контроллера, который управлять связью между этими двумя частей.
  • Для управления иерархическим деревом агенты, где агент является Презентационный модуль, Абстракция Модуль и модуль контроллера.

В конкретной реализации модули Presentation преобразуют низкоуровневое событие пользовательского интерфейса в события приложения, контроллер управляет потоком событий на более высокий уровень. Некоторые события отправляются менеджеру, который отправляет их в обрабатывающую часть приложения (абстракция).

Таким образом:

  • Часть пользовательского интерфейса четко отделена от часть обработки / абстракции. Вы можете изменить пользовательский интерфейс, использовать графический интерфейс и текстовый интерфейс, интерфейс команд TCP / IP, ...
  • Иерархическая организация UI агенты сопоставляются с вашими элементами пользовательского интерфейса, которые Вы можете использовать во многих разных приложения.

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

РЕДАКТИРОВАТЬ:

Я получил отличную статью об архитектуре пользовательского интерфейса, сравнивающую различные типы архитектуры, включая PAC:

необходимо прочитать для пользовательского интерфейса / архитектора приложений

0 голосов
/ 11 августа 2009

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

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

...