В чем разница между веб-методом asp.net и службой wcf?

Я новичок в .Net и не понимаю разницы. Может ли кто-нибудь указать мне в правильном направлении?

Ответ 1

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

WCF предназначен для включения приложений .NET Framework для обмена сообщениями с другими объектами программного обеспечения. SOAP используется по умолчанию, но сообщения могут быть в любом формате и передаваться с использованием любого транспортного протокола.

Вы можете просматривать веб-службы ASP.NET как подмножество служб WCF.

Здесь - ссылка, сравнивающая две структуры.

Ответ 2

довольно легко узнать различия.

ASP.NET Web Method называется ASMX [из-за расширения файла] (проверьте 4GuysFromRolla об этом, у них есть хороший учебник)

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

[Примечание] вы можете защитить доступ к веб-службе с помощью сертификатов, но это сложно, но обычно в ASMX мы используем имя пользователя/пароль.

в WCF, вы находитесь в разных мирах о веб-сервисах, и это лучшая технология в .NET для предоставления услуг (можете ли вы увидеть разницу... Услуги! not Веб-службы), WCF не требует запуска IIS, он может работать как системная служба на сервере, используя среду консоли (например, командную строку) и т.д., Поэтому мы говорим, что WCF - это служба не веб-службы, Помните, что ASMX необходимо запустить IIS.

с WCF вы можете использовать SSL для шифрования связи (для этого в ASMX вам необходимо использовать WSE - Улучшения веб-сервисов), вы можете отправлять большие файлы и надежно (для этого в ASMX вам нужно использовать MTOM - механизм оптимизации передачи сообщений).

вы можете настроить параметры передачи, просто меняя одну строку кода, безопасность намного выше и т.д. и т.д.:)

надеюсь, что вы получите общий общий обзор с этим, но есть гораздо больше.

нижняя строка: чтобы открыть веб-службы, которые вам не нужно защищать, вы можете использовать ASMX, никаких проблем вообще, но если вам нужно как-то защитить связь, сделайте это в WCF!

ссылка: вы можете прочитать здесь сравнительную сравнительную характеристику между двумя службами

Ответ 3

Это две разные структуры для написания сервисов. WCF, как правило, более гибкий и предоставляет настраиваемые параметры того, какие протоколы используются, как организована служба и различные параметры безопасности. ASMX предлагает сервисы на основе SOAP. Вообще WCF также больше исполнитель. В общем ASMX проще в использовании и, как правило, имеет меньше кривой обучения.

Здесь - обсуждение форума MSDN по этой теме. Ниже приведены начальные страницы ASMX и WCF.

Ответ 4

В дополнение к приведенным выше ответам WCF был создан для замены .NET Remoting в .NET 3.0 и выше. В дополнение к SOAP, REST, POX и т.д. Веб-сервисам в различных форматах (например, XML и JSON), WCF также предлагает MSMQ и именованные каналы. ASMX, как упоминалось выше, предоставляет только веб-службы XML на основе SOAP.

Вам нужно будет углубиться в .NET Remoting для других типов коммуникационных протоколов. Для получения дополнительной информации вы должны проверить Pro С# 2008 и .NET 3.5 Framework. Это отличный ресурс, и вы можете получить главы из предыдущих книг, посвященных .NET Remoting и другим замененным функциям.

Ответ 6

Веб-службы

  • Доступ к нему возможен только через HTTP
  • Он работает в среде без гражданства

WCF

WCF является гибким, поскольку его службы могут размещаться в различных типах приложений. Ниже перечислены несколько распространенных сценариев для размещения служб WCF:

  • IIS
  • WAS
  • Самостоятельный хостинг
  • Управляемая служба Windows

Ответ 7

Это две разные вещи. WCF - это более общая структура, благодаря которой вы можете написать один компонент типа сервиса и развернуть его разными способами (даже в качестве веб-службы Asp.Net).

Вот краткая информация об этом http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2d6a7ff2-f15c-4599-a389-a81cfffcc852/

Ответ 8

У меня была та же проблема.

Я нашел книгу Microsoft Windows Communication Foundation шаг за шагом, чтобы быть действительно хорошим.

Если вы просто хотите использовать традиционную веб-службу с помощью WCF, то глава 1 этой книги покажет вам, как это сделать (пишите службу, проверяйте, развертывайте, пользуйтесь сервисом).

Его написано для VS2005, но я использую vs2008 и нашел его еще проще.

В WCF гораздо больше, но эта книга - хорошее начало.

Ответ 9

Основные различия между веб-сервисом и WCF перечислены ниже.

Веб-сервис. Веб-служба - это приложение, предназначенное для непосредственного взаимодействия с другими приложениями через Интернет.

1) Атрибуты [WebService] и [WebMethod] определяют веб-сервис и методы.
2) Доступ к нему возможен только через HTTP.
3) размещен в IIS.
4) Поддержка служб безопасности.
5) Не может быть многопоточным.
6) Используется только мыло или XML.
7) Пространство имен System.Xml.serialization используется для сериализации

WCF: Windows Communication Foundation (код под названием Indigo) - это платформа программирования и среда выполнения для создания, настройки и развертывания распределенных по сети сервисов.

1) Атрибуты [ServiceContract] и [OperationContract] определяют веб-сервис и методы.
2) Доступ через HTTP, TCP, MSMQ, P2P, именованные каналы
3) Хостинг в IIS, Self-Hosting, WAS и Windows Service.
4) Может быть многопоточным через класс поведения службы.
5) Пространство имен System.Runtime.Serialization используется для сериализации
6) Поддерживает различные типы привязок, такие как BasicHttpBinding, WSHttpBinding, WSDualHttpBinding и т.д.
7) Поддержка служб безопасности, надежных сообщений, транзакций, поддержки AJAX и REST.