DevExpress Xpo, OData и WCF
Итак, я боролся с XPO поверх WCF уже несколько дней, и я не могу добиться никакого прогресса. Я чувствую себя довольно плохо знакомым с WCF, даже если я уже использовал его в некоторых проектах. (Мой) нормальный способ работы с WCF: создать библиотеку служб, приложение-хостинг или службу windows и клиент. В клиенте я добавляю ссылку на сервис, чтобы позволить VS автоматически создавать мои классы для меня в клиенте, чтобы использовать сервис. Довольно легко до сих пор, и это работало (почти) каждый раз.
После этого я просто продолжаю добавлять дополнительные сервисы на сервер, обновляю ссылку на сервис и так далее.
Теперь я решил больше использовать мою (в настоящее время неактивную...) подписку DevExpress и использовать XPO, которые работают как шарм для простых приложений, но я терпел неудачу каждый раз, пытаясь использовать их поверх wcf до сегодняшнего дня, и я абсолютно не знаю, что Я делаю неправильно;
Во-первых, я использовал DevExpress OData Service Wizard для создания ORM-службы OData с поддержкой (выбранные odata 5.6), спроектировал мои сущности и то, что работало как очарование. Затем я добавил (как упоминалось в комментариях) простые функции для всех моих сущностей, запустил службу и попытался обнаружить конечную точку службы с помощью обозревателя ссылок на службы. При 50% всех попыток браузер выдавал мне некоторую ошибку о недопустимом форматировании XML в ответе, а остальные 50% были только интерфейсами для коллекций моих объектов ORM, но вообще не имели функций. (Я даже добавил "public int TestFunc(int arg1, int arg2) { return arg1+arg2; }", но он также не появился)
После нескольких дней удаления, создания с нуля, чтения и бросания вещей в мою стену... Я попробовал следующий пример, который показался мне наиболее актуальным: http://www.devexpress.com/Support/Center/Example/Details/E4389
Но я даже не могу запустить этот пример сразу после открытия его с помощью бегуна-примера (и исправить проблему со ссылками с помощью odata и пространственной версии 5.0/5.6...), он выдает исключение относительно ресурса "SetCategoriesFiltering", который не может быть найден. Однако я не пытался это исправить, я был слишком расстроен.
Итак, мой основной вопрос здесь: что я делаю здесь неправильно, VS2010 (SP1) не может создавать / запускать сервисы такого типа? Мой подход не подходит для XPO? Ни один учебный / демонстрационный проект для меня не сработал (за исключением представления всей базы данных как службы WCF, но я не думаю, что это хорошая идея... Или это так, как это должно быть сделано в настоящее время?)
Это действительно печально тратить столько времени без какой-либо подсказки, что происходит (или лучше, что не происходит...). Я знаю, что не публиковал ни одного примера проекта или кода, который использовал, потому что даже базовый пример из разработчик XPO не работал "из коробки"
Я надеюсь, что кто-то может помочь мне здесь, так как я действительно понятия не имею, что я мог бы попробовать дальше.
Мой компьютер для разработки: Windows 7 Ultimate Visual Studio Professional 2010 с пакетом обновления 1 (SP1) DevExpress "DXperience" Suite (последняя версия, на которую у меня есть лицензия - 13.1.10). Все ссылки хороши, когда я открываю Пример проекта, поэтому все сборки OData/EDM, кажется, быть доступным в их правильных версиях
- Namikon
1 ответ
Похоже, что вы никогда не работали с WCF Data Services раньше. Они немного отличаются от простых сервисов WCF, где вы можете только предоставлять операции сервиса и ничего более.
Мастер службы DevExpress OData создает службу данных WCF. Прежде чем добавлять операции службы в Службу данных WCF, я предлагаю вам больше узнать об этом и решить, действительно ли вы хотите добавить операции службы или вообще использовать Службу данных WCF.
Помимо MSDN Tutorials, в Интернете можно найти множество статей: