ASP.NET - Нужно ли использовать объект передачи данных при передаче объекта в WCF? - PullRequest
0 голосов
/ 19 августа 2010

действительно ли это необходимо, или есть какие-то рамки, которые делают эту работу для меня? Спасибо

Ответы [ 2 ]

0 голосов
/ 20 августа 2010

Вам не нужно.Вам нужно использовать только сериализуемые типы, известные сервисам, но это не должен быть специальный DTO, используемый только для связи.Использование DTO - это просто вопрос архитектуры приложения.Когда сложность приложения и открытая логика возрастают, вы найдете DTO в качестве полезной функции проектирования, но для простых приложений это просто накладные расходы.

0 голосов
/ 19 августа 2010

Нужно учитывать службы данных WCF, где вы позволяете своим сущностям быть доступными по проводам. Я не уверен, соответствует ли это вашим требованиям или желанию, но это возможно. Если вы используете Entity Framework 4 (.NET 4), то раскрыть часть вашей модели сущности с помощью WCF Data Services очень просто.

Некоторые преимущества :

  • вы получаете функциональность CRUD;
  • данные, предоставляемые вашему клиенту через XML или JSON;
  • вы можете заблокировать действия CRUD на уровне сущности (например, выставить Заказы на полные операции CRUD, но разрешить только чтение и обновление Продуктов);
  • использовать REST (например, HTTP-глаголы GET, PUT, POST, DELETE);
  • согласованный формат данных OData (AtomPub);
  • легко запрашивать ваши данные с помощью строки запроса (не уверен, что некоторые люди думают, что это за или против!);
  • вероятно, еще несколько, что я забыл

Некоторые негативы :

  • У вас нет доступа ко всем функциям WS- *, так как это WCF REST;
  • На данном этапе безопасность - это нечто само собой разумеющееся - вы можете либо использовать модель безопасности существующего сайта (например, аутентификацию форм), либо вручную вставлять и читать токены из заголовков запросов. (Существуют и другие блоги о защите служб данных WCF, так что я, вероятно, пропускаю несколько пунктов здесь);
  • Если вы не используете EF4, то подвергание ваших сущностей вставке / обновлению / удалению является более сложной задачей, поскольку вам необходимо реализовать интерфейс IUpdateable. Вы также должны предоставить свои объекты для чтения, предоставив метод IQueryable.

Так что я не уверен, что это то, что вы ищете, но, возможно, это что-то рассмотреть. Документация по MSDN довольно хорошая, и кажется, что она становится лучше с каждым месяцем (это было довольно редко 4-5 месяцев назад!). Также ознакомьтесь со спецификацией OData в Интернете.

MSDN для служб данных WCF - http://msdn.microsoft.com/library/cc668792.aspx Спецификация OData - http://www.odata.org/ Блоги Пабло Кибаро , Пабло Кастро и команды службы данных (у них есть серия по аутентификации / авторизации).

Надеюсь, это поможет!

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