Создание высокомодульного бизнес-приложения с WPF? - PullRequest
10 голосов
/ 01 апреля 2009

Я воплощаю в жизнь бизнес-приложение WPF, и одна вещь, которая вызвала у меня интерес, это то, как я должен справиться, сделав его невероятно модульным. Например, мое основное приложение будет просто содержать основы для запуска интерфейса, загрузки модулей, подключения к серверу и т. Д. Эти модули, в виде библиотек классов, будут содержать собственную логику и окна WPF. Модули могут определять свои собственные словари ресурсов, и все они извлекают из словаря ресурсов основного приложения обычные кисти и тому подобное.

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

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

Спасибо!

Ответы [ 3 ]

9 голосов
/ 01 апреля 2009

Оформить Руководство по составному клиентскому приложению

Библиотека составных приложений предназначена для помощи архитекторам и разработчикам в достижении следующих целей:

Создание сложного приложения из модулей, которые могут быть собраны, собраны и, при необходимости, развернуты независимыми группами с использованием WPF или Silverlight.

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

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

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

Инкрементная интеграция новых возможностей.

2 голосов
/ 03 апреля 2009

Прежде всего вас может заинтересовать реализация SharpDevelop . Он основан на собственной системе надстроек, известной как AddInTree. Это отдельный проект, который можно бесплатно использовать в собственных решениях. Все разделено на различные надстройки, где надстройки легко добавляются / удаляются / настраиваются с помощью XML-файлов. SharpDevelop - проект с открытым исходным кодом, поэтому у вас будет возможность изучить, как внедряется инфраструктура, а также интеграция служебных шин и перекрестных надстроек. Базовое дерево надстроек можно легко перенести в проект WPF без последствий.

Следующая опция - это " Руководство по составному клиентскому приложению " (также известное как Prism , также известное как CompositeWPF ), которое уже упоминалось ранее Вы получите встроенную поддержку Unity (Object Builder), агрегацию событий, а также реализованный набор полезных шаблонов проектирования.

Если вы хотите самостоятельно выполнить дизайн и архитектуру низкого уровня, MEF будет лучшим выбором (хотя мне и нравится работать со всеми тремя). Это то, на чем будет основан VS 2010, так что вы можете быть уверены, что в будущем проект не потеряет поддержку.

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

1 голос
/ 01 апреля 2009

Посмотрите на Призма

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...