Службы данных WCF или Entity Framework - PullRequest
5 голосов
/ 23 января 2011

Мне нужно разработать приложение для хранения некоторых плоских файлов в БД. Консольное приложение и SQL Server будут находиться на одном компьютере, какой из этих двух вариантов является лучшим?

  • Создание служб данных WCF и использование их из консольного приложения
  • Использование непосредственно сущностей Entity Framework из приложения консоли

Как правило, когда лучше использовать службы данных WCF или объектFramework?

СПАСИБО!

1 Ответ

22 голосов
/ 23 января 2011

Это две совершенно разные технологии:

  • Entity Framework - это OR OR для упрощения доступа к вашей базе данных;Вы можете сравнить это, например, с NHibernate, Linq-to-SQL, Subsonic, Genome или другими сопоставителями OR

  • Службы данных WCF - это способ представить ваши модели данных внешнему миру во всем мире.HTTP / REST;Сравните это с унаследованными веб-сервисами ASMX, сервисами чистого WCF, другими сервисными технологиями

Вы не можете сравнивать их - они совершенно разные животные, и во многих решениях они будут работать вместеодно не может заменить другое.

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

Возможность предоставления данных с помощью службы данных WCF добавляет еще один уровень - ваше консольное приложение не имеет прямого доступа к данным, а просто вызывает службу данных WCF.,Теперь у вас есть две части: ваше консольное приложение в качестве клиента и какое-то сервисное приложение, которое будет предоставлять данные.В этом случае вашему клиенту не нужно ничего знать о Entity Framework или о чем-либо подобном - вы также можете легко добавить второго клиента, например, веб-приложение.Но приложение-служба, предоставляющее данные, все равно должно иметь возможность напрямую подключаться к базе данных с помощью Entity Framework.

Итак, в конце концов, вы на самом деле не заменяете Entity Framework службами данных WCF - вы просто добавляете еще один уровень косвенности, но в конце концов, чтобы получить данные, вам все равно нужен какой-то видтехнологии доступа к данным (например, Entity Framework).

...