В VS2010 нет шаблонов службы данных Wcf, о которых я знаю,
Не шаблон проекта - просто шаблон элемента (для использования внутри веб-сайта ASP.NET или веб-приложения)).Службы данных WCF очень тесно связаны с 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 для пользователя