2011-01-23 2 views
5

Мне нужно разработать приложение для хранения некоторых плоских файлов в базе данных. Приложение Console и SQL Server будут на одном компьютере, какой из этих двух вариантов лучше?WCF Data Services или Entity Framework

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

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

СПАСИБО!

+1

Да, это яблоко и апельсины, и каждый из них решает разные проблемы. Службы данных WCF не кажутся подходящими, если только одно приложение будет использовать его для данных ETL'ing. –

ответ

20

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

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

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

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

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

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

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

+0

Большое спасибо! Теперь понятно. – andrew0007

Смежные вопросы