Я новичок в .Net и не понимаю разницы. Может ли кто-нибудь указать мне в правильном направлении?
В чем разница между веб-методом asp.net и службой wcf?
Ответ 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 и другим замененным функциям.
Ответ 5
Здесь новая, большая разница: Microsoft теперь рассматривает веб-службы ASMX как "устаревшую" технологию. См. " Создание веб-служб XML с использованием клиентов веб-служб ASP.NET и XML.
Ответ 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.