Referencia web frente a referencia de servicio

Acabo de golpear una gran pared de ladrillo con Paypal. Creé un proyecto regular de C # para crear algunas clases de contenedor utilizando su WSDL.

Si crea un proyecto que no es web, la única opción que tiene para agregar un wsdl es una referencia de servicio web. Y esto construye el mismo conjunto de clases de proxy que una Referencia Web, pero no realmente … agrega más de lo que incluso los chicos de PayPal desconocen.

Así que estuve todo este tiempo buscando la interfaz correcta en esta lista de clases proxy para usar como servicio (SoapBinding) y PayPalAPIAASoapBinding no estaba allí. Seguí contando a nuestro punto de PayPal en contacto.

Solo pude ver las 2 interfaces siguientes que me pareció que necesitaba usar, ya que no vi un PayPalAPIAASoapBinding que PUEDE ver en una referencia de servicio basada en la referencia web:

 PayPalAPIAAInterfaceClient PayPalAPIInterfaceClient 

Así que me di cuenta, oh, probablemente había creado una referencia de servicio frente a una referencia web, que es una opción en un proyecto web. Pero no quiero que mi referencia de servicio se una estrechamente a mi proyecto web. Entonces, por eso creé el Proyecto C #.

Entonces, ¿qué diablos es una referencia de servicio vs. referencia web? ¿Y cómo se supone que debo separar esto en el proyecto antera si Service Reference me va a lanzar un bucle y me dará un conjunto de interfaces diferentes a las que haría una Referencia Web?

Además, para hacer las cosas aún más confusas, VS 2008 tiene un proyecto de aplicación de servicio web.

Entonces, ¿qué uso? Estamos usando el framework .NET 3.5 y no estamos listos para pasar a WCF . Entonces, ¿puedo seguir usando la nueva referencia de servicio incluso si no utilizo WCF o qué? Si está utilizando .NET 3.5 y no WCF aún y aún desea hacer servicios web básicos, ¿todavía sigue la ruta de referencia del servicio y simplemente no utiliza el marco WCF? ¿Todavía se puede usar como una referencia web .NET 2.0, solo que obtendrá una generación completamente diferente del WSDL?

Agregar referencia web es la tecnología de ASP.NET webservices (ASMX) obsoleta al estilo antiguo (solo utiliza el XmlSerializer para sus cosas); si hace esto, obtiene un cliente ASMX para un servicio web ASMX. Puede hacer esto en casi cualquier proyecto (aplicación web, sitio web, aplicación de consola, formas de pago, lo que sea).

Agregar referencia de servicio es la nueva forma de hacerlo, agregando una referencia de servicio WCF, que le brinda un modelo de servicio mucho más avanzado y mucho más flexible que simplemente las cosas antiguas de ASMX.

Como no está listo para pasar a WCF, también puede agregar la referencia web anterior, si es necesario: cuando hace una “Agregar referencia de servicio”, en el cuadro de diálogo que aparece, haga clic en [Avanzado ] botón en el botón esquina izquierda:

texto alternativo

y en el siguiente diálogo que aparece, elija el botón [Agregar referencia web] en la parte inferior.

Si entiendo bien tu pregunta:

Para agregar una referencia de servicio web .net 2.0 en lugar de una referencia de servicio WCF, haga clic derecho en su proyecto y haga clic en ‘Agregar referencia de servicio’.

Luego haga clic en “Avanzado …” en la esquina inferior izquierda del cuadro de diálogo.

Luego haga clic en “Agregar referencia web …” en la esquina inferior izquierda del siguiente cuadro de diálogo.

Ahora puede agregar una referencia web regular de SOAP como la que está buscando.

Agregar una referencia de servicio le permite crear un cliente WCF, que se puede usar para hablar con un servicio web normal siempre que use el enlace apropiado. Agregar una referencia web le permitirá crear solo una referencia de servicio web (es decir, SOAP).

Si está absolutamente seguro de que no está listo para WCF (realmente no sé por qué), debe crear una referencia de servicio web regular.

Al final, ambos hacen lo mismo. Existen algunas diferencias en el código: los servicios web no agregan un espacio de nombres de raíz del proyecto, pero la referencia de servicio agrega clases de servicio al espacio de nombres del proyecto. La clase ServiceSoapClient recibe un nombre diferente, que no es importante. Al trabajar con TFS, prefiero usar la referencia de servicio porque funciona mejor con el control de fuente. Ambos funcionan con protocolos SOAP.

Me parece mejor utilizar la Referencia de servicio porque es nueva y, por lo tanto, se mantendrá mejor.