Asp.net + Silverlight + WCF и n-уровневая архитектура - PullRequest
0 голосов
/ 24 ноября 2010

Кодеры, я нахожусь в процессе разработки / реализации (да, одновременно) моего прототипа моей собственной CMS.Я использую Asp.net, WCF и silverlight.Пока что у меня есть следующая модель для моего проекта:

Уровень представления [silverlight & Asp.net/html]> WCF> Бизнес-логика> База данных

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

К сожалению, у меня возникли некоторые трудности при реализации моей модели.Мне кажется, что, если у меня есть три проекта в моем решении:

Решение:

  • -Asp.net [Уровень презентации]
  • -Silverlight [Уровень презентации]
  • -WCF [WCF и бизнес-логика]

Тогда мне придется дублировать многие классы как на уровне представления, так и на уровне WCF.

Вот сценарий: позвольте мне сказать, что у меня есть класс Post в моем WCF, который является реализацией моего BL.Я мог бы добавить новое сообщение из моего PL после создания клиентского экземпляра моей ссылки на сервис, используя строку, такую ​​как: client.AddPostAsync (параметры сообщения).Однако, если бы я хотел получить объект Post в моем PL, вызвав метод WCF, то мне уже нужно будет иметь реализацию класса Post в моем PL, которая является точно такой же копией моего класса Post в моем WCF!

Таким образом, в конечном итоге у меня будет много дубликатов классов как на уровне WCF, так и на уровне PL.Я чувствую, что есть что-то, чего я не понимаю, или, может быть, я что-то путаю в моей модели?Пожалуйста, помогите!

1 Ответ

0 голосов
/ 24 ноября 2010

Действительно, вам не нужно дублировать классы (с атрибутом DataContract) из службы WCF в Silverlight, они будут просто автоматически создаваться при создании ServiceReference для службы WCF.

Как бы они ни были просты в принципеstore-data-in-fields-classes, так что я могу понять, что вы можете захотеть создать несколько функциональных дубликатов в Silverlight, если вам понадобится некоторая логика позади них.Я использую ту же модель в своем проекте, и у меня тоже есть эта проблема.

Я думаю, вы должны планировать свою архитектуру заранее, зная это, делая эти наследуемые классы WCF все более и более похожими на шаблоны классов DataTransferObject, чтобы избежать массового дублирования классов,

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