Представление библиотеки классов.NET (который, прежде всего, определяет операции CRUD), как услуга

Что является лучшим, эффективным и самым быстрым способом выставить существующее (класс) библиотека (который, прежде всего, определяет операции CRUD) как услуга (Обслуживание WCF или Услуга передачи данных WCF), так, чтобы это могло использоваться с Silverlight или Ajax. Есть ли инструменты (генераторы кода, инструменты RAD), который может поддерживать это? Заранее спасибо за Вашу справку и подсказки.

6
задан Elmex 13 July 2010 в 11:18
поделиться

3 ответа

Лучший подход - использовать WCF для создания обертки самостоятельно.

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

  • Безопасность, вы хотите, чтобы кто-либо мог вызвать что-либо на библиотеке в любое время?
  • Большинство библиотек предполагают, что они вызываются напрямую, а не через сервис (см. заблуждения корпоративной разработки).
  • WCF по умолчанию является stateless: вам нужно разработать, как управлять любым состоянием, которое предполагает библиотека (у вас больше не будет единственного клиента).
  • Я упомянул о безопасности?
2
ответ дан 17 December 2019 в 06:59
поделиться

Вам следует взглянуть на WCF Data Services, особенно в .NET 4. Хотя вам придется создать класс или классы контекста данных, чтобы раскрыть ваши сущности вместе с раскрытием IQueryable и реализацией IUpdatable, вы сможете воспользоваться преимуществами вспомогательной структуры, которую WCF Data Services предоставляет вместе со стандартизированным протоколом (OData) для вашей полезной нагрузки данных.

В .NET 4 и Visual Studio 2010, WCF Data Services становятся более принятыми, и продвигаются Microsoft как хорошее средство доступа к данным для Silverlight приложений.

Я думаю, что это, по крайней мере, стоит проверить. Есть много информации об этом на MSDN, хотя я не думаю, что это организовано очень хорошо в местах. Вот ссылка на раздел в MSDN по созданию собственной службы данных WCF с использованием встроенного провайдера отражений. (В примере показано только получение данных, потому что это намного проще, чем их обновление/вставка/удаление, но в статье есть ссылка на то, как реализовать IUpdatable).

Получение IQueryable через WCF Data Services должно быть довольно быстрым. IUpdatable займет немного больше времени (поскольку вам нужно реализовать Insert/Update/Delete для каждой сущности). Но как только вы запустите его (что не должно занять много времени), вы сможете изменить параметры безопасности, добавить пользовательские методы службы и добавить дополнительную функциональность и/или сущности довольно легко. Это хорошая основа для того, что вы описываете.

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

1
ответ дан 17 December 2019 в 06:59
поделиться

Если ваш класс - это просто тупой набор данных, просто добавьте к нему DataContract. (Не забудьте про пространство имен, иначе вы себя пинаете позже.) Затем вы можете раскрыть его с помощью веб-проекта.

Если в вашем классе есть настоящая логика, тогда у вас проблемы. Нет хорошего способа поделиться бизнес-логикой с приложениями Silverlight. Они пытаются воспользоваться услугами RIA Services, но это не дает результата.

1
ответ дан 17 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: