2008-10-19 3 views

ответ

8

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

Here - обсуждение форума MSDN на эту тему. Предлагаем начать работу с ASMX и WCF.

43

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

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

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

Here - это ссылка, сравнивающая две рамки.

+0

+1 Спасибо за ссылку и хорошее объяснение – 2010-04-20 23:41:38

1

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

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

28

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

ASP.NET Web метод называется ASMX [из-за расширения файла] (проверить 4GuysFromRolla об этом, они имеют good tutorial)

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

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

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

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

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

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

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

ссылка: you can read here some performance comparative between the 2 services

+0

+1 спасибо, отличная деталь – 2010-04-20 23:42:31

7

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

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

1

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

Я нашел книгу Microsoft Windows Communication Foundation Step by Step действительно хорошей.

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

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

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

+0

+1 Спасибо за ссылку на книгу – 2010-04-20 23:44:23

4

Вот новая, большая разница: Microsoft теперь рассматривает веб-службы ASMX как «устаревшие» технологии. См. «XML Web Services Created Using ASP.NET and XML Web Service Clients».

+1

+1 Как вы уже упоминали об этом раньше в других сообщениях, и это важный момент. – RichardOD 2009-09-18 09:40:44

2

Web Services

  1. она может быть доступна только через HTTP
  2. Он работает в безгосударственной среде

WCF

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

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

Основные различия между веб-службы и 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 поддержки

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

  • Нет связанных вопросов^_^