Andrés,
 
   Perdón que siga preguntando antes de sugerir alguna solución pero es para poder entender bien el problema.
 
   Por lo que entiendo, vos querés enviar un mensaje del browser al SP. ¿El SP va a estar corriendo fuera del navegador, va a inciarse la aplicación desde el navegador o va a ejecutarse dentro del navegador? Hay una diferencia entre iniciar un proceso desde otro y comunicar un mensaje entre dos procesos.
 
   De cualquier modo, si querés recibir llamadas aún con el navegador cerrado, entonces el SP va a tener que estar ejecutándose como otro proceso independiente. Si es así, igual podés recurrir a una OCX o una app en Silverlight (o un plugin de IE, o lo que sea) para establecer la comunicación entre los procesos con la particularidad de que no vas a estar saliendo del equipo en el que corren estos procesos (que sería como pedirle al portero del edificio que vaya al locutorio de la esquina, la llame a tu novia y le diga que querés hablarle, y entonces tu novia pasa de la sala al living, donde estás vos y te pregunta "qué querés?").
 
   Estrategias de IPC, miles: está bien pensar en colas de mensajería y cosas así, pero no descartes los viejos pipes, los sockets o, incluso, los archivos de texto. Cuanto más simple, si es adecuado, es más fácil de mantener y más rentable.
Carlos.
 
Sent: Thursday, October 27, 2011 11:55 AM
Subject: [puntonet] Coneccion WebForm a Windows Application via Web Service
csalvatore, de lo casos que me indicas es el primero, pero esto no lo puedo resolver con un OCX ya que si me cierran el browser no podrian recivir llamadas. Las formas que se me han ocurrido para solucionar esto son 2, se las comento para que me den su opinion.

Primera:

ERP (Web Form) Se quiere llamar al Nº x ==> Web Service (Informo que el usuario conectado quiere realizar una llamada a Nª x) ==> Windows Service en Cliente (Por cada usuario existira un windows service corriendo y preguntando si existe llamada) ==> (Windows Form SoftPhone) Si existe alguna llamada este windows service le informara a mi SoftPhone que llame al Nª

Segundo:

ERP (Web Form) Se quiere llamar al Nº x ==> BD Sql Server (Ingreso registro a Base de Datos) ==> Windows Service en Cliente (Por cada usuario existira un windows service corriendo y preguntando en la bd si existe nº nuevo) ==> (Windows Form SoftPhone) Si existe alguna llamada este windows service le informara a mi SoftPhone que llame al Nº

Saludos y gracias.

El 27 de octubre de 2011 11:28, <[email protected]> escribió:
Me parece que están hablando de escenarios distintos sin especificarlo.
Un caso sería en el softphone (la aplicación WF) a la que se quiere transmitir el mensaje para que realice la acción, está en la misma máquina en la que el usuario está browseando. En ese caso es el browser el que debería comunicarse de algún modo con el SP. OK, esto es lo mismo que hacer click en un número de teléfono y que skype intente conectarse.
Otra caso distinto es si el SP se ejecuta en el Web Server y es el web server el que tiene que actuar derivando la acción ante un request determinado. Ponele que estás tan contento de que al fin alguien completa el proceso de suscripción a tu servicio y querés que el servidor te llame por teléfono para avisarte (reutilizando un SP que en algún momento programaste y se te ocurrió instalar en un servidor web).
En el primer caso hay muchas maneras de resolverlo, desde las viejas OCX hasta Silverlight. No importa que estés en el contexto del navegador, eso no te va a limitar de ningún modo el acceso a ningún recurso del SO. Lo que sí va a requerir es que el usuario ejecute distintas acciones como instalar componentes o asignar privilegios. Ir al webserver para que de vuelta se mande un mensaje a la PC que le indique al SP que realice la acción me parece un despropósito. Si lo que querés es verificar créditos disponible o algo por el estilo tenés que buscar otra estrategia más sencilla.
En el segundo caso, sí, parecería que lo recomendable sería ir por el encapsulamiento de la funcionalidad.
Sent: Thursday, October 27, 2011 11:02 AM
Subject: [puntonet] Coneccion WebForm a Windows Application via Web Service

Perdon, me meto rapido en este thread….

Pero tener una libreria comun no parece que sea lo que se necesita.

Digamos WA == aplicacion Web

Digamos WF == aplicacion WinForm

Lo que entendi que se pide es:

WA ----> envia mensaje a -----> X

WF ß--- recibe mensaje de ß---- X

No se resuelve esto haciendo X == libreria comun. Lo que entiendo que se pregunta es, que podemos poner en X (una instancia real de algo, un artefacto corriendo algo) para que el escenario propuesto funcione.

Como comentaron, puede ser:

- Una cola (en el caso de Microsoft, una cola en Azure)

- Dos servicios: uno que recibe un mensaje, y otro que es “polleado” por WF par aver si hay un mensaje

- Un table en una base de datos, donde WF va “polleando” que registros nuevos hay

Me atrevo a sugerir uno:

- Dos cuentas de Twitter, una para WF, y otra para WA. Con mensajes protegidos si quieren. WA envia mensaje a la cuenta de twitter de WF. WF lee los mensajes que le llegan de WA. Pueden usar un cliente de Twitter para .NET

Es este escenario el que se pedia al comienzo del thread?

Nos leemos!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

From: [email protected] [mailto:[email protected]] On Behalf Of Gustavo Azcona
Sent: Wednesday, October 26, 2011 7:07 PM
To: [email protected]
Subject: [puntonet] Coneccion WebForm a Windows Application via Web Service

Como muchos te lo han dicho, lo ideal es que la funcionalidad de tu Softphone la encapsules en un componente reutilizable (líbrería y/o web services) de forma tal que la puedas consumir en ambas aplicaciones (web y desktop), mediante una referencia local si creaste una librería o una referencia web si creaste un web service.

Este enfoque puede serte fácil o difícil según como tengas desarrollado tu Softphone.

Básicamente tu Aplicación Web NO puede enviarle comandos a tu aplicación Windows, ya que, por cuestiones de seguridad, las aplicaciones web corren en un sandbox dentro del browser. Es decir, tu aplicación web no puede acceder (o tiene acceso muy limitado) a recursos locales (disco, memoria, procesador, periféricos, aplicaciones, servicios, etc.).

La única forma que tu aplicación web pueda interactuar con otras aplicaciones o recursos locales, es mediante add-ins (Complementos o extensiones del browser), con lo cual ya te estarías metiendo en otro gran lío interesante.

Insisto que lo mejor sería que aísles la funcionalidad de tu softphone en una librería o componente reutilizable.

Saludos, Gus

De: [email protected] [mailto:[email protected]] En nombre de Andres Guzman
Enviado el: miércoles, 26 de octubre de 2011 01:16 p.m.
Para: [email protected]
Asunto: [puntonet] Coneccion WebForm a Windows Application via Web Service

Mira mejor te cuento lo que necesito, necesito que al presionar un boton en mi web form, le envie un numero telefonico a mi softphone (windows form este softphone fue codificado por mi asi que tengo el codigo y lo puedo modificar) y el softphone realize la llamada

El 26 de octubre de 2011 13:03, Carlos Peix <[email protected]> escribió:

Hola Andres,

Olvidate del asincronismo, de WCF y todo lo demas.

Construi un componente (una clase o conjunto de clases) en un proyecto de tipo "class library" y usalo desde las dos aplicaciones (referenciandola como haces con otros assemblies).

Para darte mas detalles, supongo que tendrias que decirnos cual es esa tarea que queres compartir.

----------------------------------
Carlos Peix

2011/10/26 Andres Guzman <[email protected]>

Carlos pero como construyo un componente con la funcionalidad para compartirla (sincronicamente), a través de WCF (Hosting Services) como me indica Sebastian

El 26 de octubre de 2011 12:00, Carlos Peix <[email protected]> escribió:

Entonces te recomiendo que no lo hagas de esa manera y te evitaras dolores de cabeza.



Sugiero que construyas un componente con la funcionalidad que deseas comartir entre las dos aplicaciones y los uses en ambas.

Si crees que esto no es posible, explicanos un poco mas sobre los motivos


Por otro lado, deberias analizar si deseas ejecutar esa accion "sincronicamente" o "asincronicamente". El primer caso es el mas sencillo suponiendo que necesites el valor retornado por la accion para la ejecucion de tu pagina web y que la accion se ejecute rapidamente (medio segundo o algo asi).

Estos consejos asumen una aplicacion de baja carga, es decir, no estoy hablando de twitter o facebook o amazon.com



----------------------------------
Carlos Peix

2011/10/26 Andres Guzman <[email protected]>

Si tengo oportunidad de modificar, ambas las estoy desarrollando yo.

El 26 de octubre de 2011 11:06, Carlos Peix <[email protected]> escribió:

Tenes oportunidad de modificar la aplicacion WinForms?

----------------------------------
Carlos Peix


2011/10/26 Andres Guzman <[email protected]>

Estimados.

Junto con saludarlos y esperando que se encuentren bien, les escribo para ver si alguien me pude ayudar con esto, lo que necesito es poder conectar mi aplicación WEB Form con mi Windows Application a través de un Webservice.

Lo que necesito hacer es que al presionar un botón dentro de mi Web Form, le envié un parámetro a mi Windows Application y esta ejecute una acción con el parámetro enviado. Alguien a realizado esto antes, como puedo empezar?-

Desde y muchas gracias.

--
Andrés Guzmán

[email protected]




--
Andrés Guzmán
09-9319111
[email protected]




--
Andrés Guzmán
09-9319111
[email protected]




--
Andrés Guzmán
09-9319111
[email protected]


Se certificó que el correo no contiene virus.
Comprobada por AVG - www.avg.es
Versión: 2012.0.1834 / Base de datos de virus: 2092/4575 - Fecha de la versión: 26/10/2011




--
Andrés Guzmán
09-9319111
[email protected]

Responder a