ORM против сервисного источника данных - PullRequest
2 голосов
/ 21 мая 2010

Перед нами стоит задача перенести существующий набор сущностей (в настоящее время POCO сохранены с NHibernate в базу данных MSSQL), чтобы теперь перенести их на какой-то веб-сервис (который еще предстоит построить, на основе RESTful или SOAP, и под нашим контролем ).

Мне нравится, как NHibernate инкапсулирует проблемы постоянства и позволяет нам поддерживать логически богатую, независимую от постоянства модель предметной области. Есть ли способ заставить NHibernate общаться с веб-сервисом на стороне сервера, а не напрямую с базой данных SQL? Другими словами, может ли «служба вместо базы данных SQL» рассматриваться как деталь реализации постоянства и позволять нам продолжать использовать NHibernate?

Я задаю правильный вопрос? :)

Ответы [ 2 ]

1 голос
/ 21 мая 2010

NHibernate является ORM. Он отображает между объектами и реляционными таблицами. Он не отображается между объектами и веб-сервисами. Вам нужно использовать другой API для постоянных веб-сервисов. Вы можете создать набор интерфейсов, которые будут реализованы как вашим уровнем NHibernate (для реляционной базы данных), так и уровнем веб-службы, чтобы он выглядел как единый API.

0 голосов
/ 21 мая 2010

Вопрос действителен, но, к сожалению, ответ - нет. В идеале вы должны разрабатывать свои сервисы так, чтобы они возвращали объекты, которые имеют отношение к потребителям вашего сервиса, и вы должны использовать NHibernate для получения данных из вашей базы данных, которые затем сервис сможет использовать для возврата потребителю.

На самом деле я читал интересную статью о том, как раскрыть ваши данные через слой обслуживания на днях. http://davybrion.com/blog/2010/05/why-you-shouldnt-expose-your-entities-through-your-services/ Это был интересный взгляд на роль сервисов в предоставлении данных вашим приложениям.

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