Что является лучшим, эффективным и самым быстрым способом выставить существующее (класс) библиотека (который, прежде всего, определяет операции CRUD) как услуга (Обслуживание WCF или Услуга передачи данных WCF), так, чтобы это могло использоваться с Silverlight или Ajax. Есть ли инструменты (генераторы кода, инструменты RAD), который может поддерживать это? Заранее спасибо за Вашу справку и подсказки.
Лучший подход - использовать WCF для создания обертки самостоятельно.
Вы должны сделать это, а не использовать некоторую автоматизацию, чтобы просто выставить библиотеку напрямую, потому что:
Вам следует взглянуть на 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 для каждой сущности). Но как только вы запустите его (что не должно занять много времени), вы сможете изменить параметры безопасности, добавить пользовательские методы службы и добавить дополнительную функциональность и/или сущности довольно легко. Это хорошая основа для того, что вы описываете.
Надеюсь, это поможет.
Если ваш класс - это просто тупой набор данных, просто добавьте к нему DataContract. (Не забудьте про пространство имен, иначе вы себя пинаете позже.) Затем вы можете раскрыть его с помощью веб-проекта.
Если в вашем классе есть настоящая логика, тогда у вас проблемы. Нет хорошего способа поделиться бизнес-логикой с приложениями Silverlight. Они пытаются воспользоваться услугами RIA Services, но это не дает результата.