Note: Not strictly tied to C#; so an answer of "repost to <x>" would be more
than adequate - however, I value the opinions of people on this group, and I
am sure that somebody here has had to do this before.
I have two disparate systems (one a browser-app, one a C# .Net2 smart-client
deployed with click-once (online-only)) which I need to tie together; my
requirement is to be able to send simple messages from the browser client to
the desktop client running on the current machine; a nice-to-have is to be
able to obtain feedback from the messages.
To do this, I looked at a few options:
* href-ing to a second click-once application with params on the
query-string, and getting the invoked exe to use remoting to talk to the
instance of the application (already running exactly once)
* making the desktop app start an HttpListener thread, listening to a port
on 127.0.0.1 (or localhost), and sending messages as GETs or POSTs to that
address either via HREF or using XMLHTTP
I favor the latter, as it seems quicker (no fusion, remoting, etc) and
simpler, and I can (is using XMLHTTP) parse the HTTP response to satisfy my
feedback requirement, but when I try use XMLHTTP I get cross-domain data
warnings (fair enough with 20:20 hindsight ; it was stupid of me to do my
original proof-of-concept with the web-site also on localhost). However, the
other (major) advantage of XMLHTTP (rather than just HREFing) is that I can
catch the error if the desktop app isn't running, and prompt the user to
start it (instead of seeing a "server not found" IE message). Also, I can
send simple HTTP messages from pretty much *any* other client, without
needing .Net etc (I still have to support some 16-bit gupta apps..
shudder...)
So:
Does anyone know of a better way to do this? Ideally using "pure" .NET and
C#, i.e. I don't want to register a control on the client, as this violates
my click-once deployment (online-only), as I need the app to run on heavily
locked down machines by restricted user accounts. Also : I don't want to
disable IE's cross-domain warning, and I don't want to have to trust the
domain... It must run under the standard internet (not intranet, as I also
need it to work on an extranet) security level without hacks. You see the
problem...
Or am I just overlooking a simple solution to this problem?
Any ideas?
Marc