В VS2010 нет шаблонов службы данных Wcf, о которых я знаю,
Не шаблон проекта — просто шаблон элемента (для использования внутри веб-сайта или веб-приложения ASP.NET). WCF DataServices очень тесно связаны с HTTP, поэтому они имеют смысл только на веб-сайте/приложении.
Службы данных WCF предоставляют фактические имена таблиц через службу.
НЕТ! По крайней мере, не обязательно. Весь смысл EF заключается в том, что вы можете отделить фактическую физическую структуру вашей базы данных от (концептуальной) модели, которая раскрывается. Вы можете полностью переименовывать сущности, вы можете сопоставлять несколько сущностей с одной таблицей, разделять сущность на несколько таблиц, вы можете опускать атрибуты - все что угодно!
На первый взгляд изучение классов, предоставляемых службами данных wcf, кажется более легким для чтения и понимания, чем классы, предоставляемые EF.
Я сомневаюсь в этом, потому что по умолчанию службы данных WCF будут использовать в качестве основы модель Linq-to-SQL или EF. Вы можете сделать это простым или сложным, как вам нравится.
Использование «обычной» службы WCF позволяет использовать netTcpBinding
для гораздо более высокой производительности (благодаря двоичному кодированию сообщений по сравнению с текстовыми сообщениями для других привязок) при использовании приложения Silverlight 4 во внутренней сети компании (не работает для Интернет-сценарии) - это не то, что вы можете сделать с WCF DataServices.
Основное отличие, на мой взгляд, заключается в разнице между SOAP и REST:
SOAP (традиционный WCF) ориентирован на методы — вы думаете и проектируете свою систему с точки зрения методов — вещей, которые вы можете делать (GetCustomer
, SaveOrder
и т. д.)
REST (подход WCF DataServices) касается ресурсов, например. у вас есть свои ресурсы и коллекции ресурсов (например, Customers
), и вы предоставляете их миру с помощью стандартных глаголов HTTP (GET, POST, PUT, DELETE
) вместо отдельных определенных методов, которые вы определяете
Так что оба подхода имеют свои плюсы и минусы. Я думаю, самый важный вопрос: какое приложение вы создаете и на какую пользовательскую аудиторию вы ориентируетесь?
Обновление:
для интрасети/внутренних приложений я думаю, что преимущество netTcpBinding
(двоичное кодирование) оправдывает использование классической службы WCF - также для приложений с интенсивным использованием данных я лично считаю подход, основанный на методах (GetCustomer, SaveCustomer
), более простым в использовании и понимать
для общедоступного приложения использование HTTP и обеспечение максимальной совместимости, вероятно, являются вашей главной заботой, поэтому в этом сценарии я бы, вероятно, предпочел службу данных WCF - простые в использовании, простые для понимания URL-адреса для пользователя
person
marc_s
schedule
13.11.2010