Архитектура, которая может быть использована для Web / Windows / WPF - PullRequest
2 голосов
/ 06 августа 2009

Мне нужно создать приложение, чью бизнес-логику можно использовать в приложениях WEB / WPF, если есть какой-либо стандартный способ сделать это. Я новичок в шаблонах и размышлял над концепцией шаблонов и структур. Я не хочу заново изобретать колесо.

Есть идеи?

Ответы [ 7 ]

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

Возможно, вы прочитали о дизайне, управляемом доменом. В центре внимания DDD находится бизнес-уровень, о котором вы говорите. Все это объектно-ориентировано и построено исключительно с POCO (plain-old-clr-objects). Он предоставляет интерфейсы с внешним миром для использования в форме сервисов и обеспечивает интерфейсы с внешним миром для сохранения в виде репозиториев.

Между прочим, DDD почти идеально подходит для MVC и особенно похож на шаблоны, потому что он так хорошо изолирует модель предметной области.

Вы могли бы начать здесь, но я бы начал с этой ссылки или с чтения книги Эрика Эвана "Домен-управляемый дизайн" http://dddstepbystep.com/

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

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

0 голосов
/ 09 июня 2010

Многоуровневая архитектура: В этой статье описан конкретный пример архитектуры для .NET / WPF Rich Client Applications. Слой домена и все слои ниже также можно использовать в веб-приложениях.

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

поиск по CSLA - компонентная масштабируемая логическая архитектура. Это библиотека базовых классов .NET для создания «бизнес-объектов». Этот бизнес-уровень может одинаково хорошо использоваться в Winforms, Web или WPF.

Библиотека бесплатная, и на Amazon есть книги, в которых описывается, как она работает. Здесь - версия книги на C #. Также есть версия VB

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

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

пользовательский интерфейс (может быть любым) | | Уровень бизнес-логики | | DAL | | Источник данных (база данных SQL)

и слой сущностей для передачи данных с одного слоя на другой.

Попробуйте WCSF (который использует MVC для внутреннего использования)

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

Когда вам нужно представить ваше приложение в разных видах, можно использовать стандартный шаблон Model View Controller:

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

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

Вы должны взглянуть на инфраструктуру ASP.net MVC для веб-сайтов и инфраструктуру Prism для WPF.

Существуют и другие варианты, например, представление представления модели. И модель-вид-вид-модель:

http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

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

Одной из основных концепций, которая будет применяться к большинству шаблонов, которые вы увидите, будет «разделение проблем» или разновидность «n-уровневой» архитектуры. Если вы хотите, чтобы веб-приложения и приложения WPF использовали одни и те же данные, убедитесь, что слой данных отделен от бизнес-логики и легко содержится.

Таким образом, вы можете подключить и ваше веб-приложение, и приложение WPF к одному и тому же хранилищу данных, но не беспокойтесь о лежащих в его основе проблемах. Все, что нужно знать вашему приложению, это то, что оно получает List of X или DataTable или что-то еще, и может продолжать с него.

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

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