2009-07-22 17 views

Respuesta

8

WCF es mucho más flexible:

  • se puede utilizar sobre HTTP (como legado ASMX)
  • sino también: se puede utilizar más de NetTCP, MSMQ, wsHttp y así sucesivamente

  • Los servicios de WCF se pueden hospedar en IIS (como ASMX heredado)

  • pero los servicios de WCF también se pueden alojar automáticamente en una aplicación de consola, Windows NT Service, etc.

  • WCF ofrece muchas más funciones de seguridad y niveles de seguridad de ASMX (mensaje de seguridad, etc.)

  • WCF ofrece cosas como la mensajería fiable, soporte de transacciones, etc.

En WCF, casi todo es configurable en un archivo de configuración, mucho más que con ASMX.

No tengo ningún documento listo que describa esto, pero esa es realmente la esencia, diría yo.

Marc

PS: No estoy seguro si éste contendría nada útil para usted:

http://whitepapers.techrepublic.com/abstract.aspx?kw=remoting&docid=270830

PPS: Por favor pensar que Microsoft tendría montones de estos documentos técnicos para convencer amigos, pero no ..... :-)

+0

¡Gracias! Cualquier documento para recomendar? Estoy persuadiendo a otros, así que necesito documentos no escritos por mí mismo. :-) – George2

+0

Lo siento Marc, no he encontrado un documento descargable relacionado. – George2

+0

Marc, si no hospedamos WCF en IIS, ¿el beneficio es? – George2

4

George,

No tengo esos documentos a la mano, porque es obvio por qué WCF es mejor.

Primero, debido a Microsoft: ASMX Web Services are a “Legacy Technology”. También declaran públicamente que no realizarán cambios en WSDL.EXE y otras partes de la tecnología ASMX. Tenemos suficientes problemas en esta industria con tecnología y aplicaciones heredadas: no tiene sentido crear hoy una nueva pieza de código heredado.

En segundo lugar, WCF abstrae los conceptos que forman parte de ASMX, Remoting y WSE. "Cualquier cosa que puedan hacer, WCF puede hacerlo mejor".

+0

Cool, John! :-) – George2

+0

John, si no alojamos WCF en IIS, ¿el beneficio es? – George2

+1

Entonces el beneficio es que puedes alojarlo donde quieras alojarlo. Por ejemplo, puede alojarlo en un servicio de Windows o incluso en una aplicación de cliente WinForms. Esto se puede usar para permitir que dos aplicaciones cliente hablen entre sí. Además, recuerde que IIS es solo HTTP. Hay un nuevo Servicio de Activación de Proceso de Windows que puede activar un servicio WCF sobre cualquier protocolo (binario sobre TCP/IP en bruto, por ejemplo). –

3

En pocas palabras, su pregunta es el equivalente de "¿Por qué es .NET mejor que VB6". Dado el tiempo suficiente, cualquier tecnología heredada se convertirá en un problema de mantenimiento/financiero.

Como usted ha preguntado sobre la seguridad y el rendimiento en particular, yo diría que "depende".Es posible hacer que cualquiera de las opciones sea segura y el rendimiento depende en gran medida del código que se escribe. Un aspecto positivo para el rendimiento de WCF es que no tiene que alojarlo en IIS, por lo que tiene más opciones y flexibilidad para hacerlo funcionar.

+0

¿Hospedaje sin IIS tiene el beneficio de? – George2

+1

Creo que es casi notoriamente más rápido alojarlo como un servicio usando TCP. – Fenton

1

WCF es una pila altamente configurable con casi infinitas combinaciones de serialización, seguridad, transporte, etc. Para su pregunta específica, WCF implementa protocolos WS- * que incluyen seguridad de transporte y mensajes. El serializador de contrato de datos WCF es sustancialmente más rápido que xmlserialzer utilizado en acmx. El transporte Net.Tcp también es más eficiente que el transporte basado en http.

encontré una comparación de rendimiento aquí http://msdn.microsoft.com/en-us/library/bb310550.aspx

+0

¡Buenas cosas, gracias! – George2

Cuestiones relacionadas