Best way to Integrate desktop Client/Server system and Internet based ASP.NET system.

Hi,

I am going to be asked about the best way to integrate a desktop C/S system and an "internet" ASP.NET system. Basically data will need to be transferred from the Desktop system to the ASP.NET system.

Currently we are planning to implement a Web Service API for the ASP.NET application. So I am suspecting the best approach would be for the Desktop application to Call a "Put" webmethod in the ASP.NET app with the relevant XML data. I have done this with an intranet app going to an internet app, but not a desktop windows app. I guess it is the same apart from the code will run on the Desktop as opposed to local webserver.

Thoughts on the above??

Thanks,

Sam
SamJollyAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

RainverseCommented:
Here's a good article on this kind of thing:
http://www.devsource.com/c/a/Using-VS/Accessing-Web-Sites-Using-Desktop-Applications/

One question though.  If these are both on the same network, why can't they both just access the same backend db?

-MJC
0
SamJollyAuthor Commented:
Hi MJC,

Thanks for this. No they are not on the same network. The C/S system is on a local LAN and the ASP.NET system is on the internet.

Thanks,

Sam
0
SamJollyAuthor Commented:
Just had a look at this approach...I think I am looking for a more standard and generic mechanism since the desktoip may not be written in .NET hence my interest in Web Services.

Sam
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

jagrut_patelCommented:
Your approach seems correct to me. You can expose a web-service (asmx) or a WCF Service (using basicHttpBinding considering desktop app can can be non-.NET).

Since service is going to be on the internet, you should be considering security aspect of the service carefully. You can use HTTPS protocol.
0
SamJollyAuthor Commented:
Hi jagrut_patel,

Thanks for your answer. We do have HTTPS on our server and use it for other things, so could use it for the API. It is a good point and I had not really considered it much prior to your comment.

Out of interest what is the difference between the ASMX web service and the newer WCF service? Is it significantly better to make me consider using it? We are currently using ASP.NET 3.5.

Thanks,

Sam
0
jagrut_patelCommented:
A correction. In first post I recommended using WCF service with basicHttpBinding. Better option is to use wsHttpBinding. Like basicHttpBinding, wsHttpBinding also uses HTTP and is interoperable as well. However, with basicHttpBinding security needs to be turned-on while wsHttpBinding is by default secure and reliable.

By default ASMX is not secure. SOAP messages transferred are in plain-text. By default, ASMX does not use WS-* enhancements while wsHttpBinding does. Ordered and reliable delivery of messages is not supported with ASMX services. Overall, for newer developments WCF is recommended over ASMX.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
SamJollyAuthor Commented:
Thanks for this.

"Overall, for newer developments WCF is recommended over ASMX." - interesting...

1) I assume that the WebMethod is then built differently to the old style ASMX?
2) What version of ASP.NET do I need?
3) Does this put extra requirement on the calling client? Ie do they need to be using .NET4 or something or is it just a call with the relevant XML packet. Thus the difference is on the Server only?

This is good advice since we are about to build a WS API for our app and we were thinking of using WS SOAP ASMX etc. Now it seem that we should use WCF.

Thanks,

Sam
0
jagrut_patelCommented:
1) I assume that the WebMethod is then built differently to the old style ASMX?
Sorry I didn't get your question.

2) What version of ASP.NET do I need?
WCF is part of .NET framework. So you need .NET 3.0 or higher.

3) Does this put extra requirement on the calling client? Ie do they need to be using .NET4 or something or is it just a call with the relevant XML packet. Thus the difference is on the Server only?
Your client can be running any version of .NET. But if it is running .NET 2.0 or earlier and wants to consume WCF via adding web reference you must use BasicHttpBinding on service side. I haven't tried consuming a WCF service from a non-.NET client but I am sure that with BasicHttpBinding any client can consume the service.

wsHttpBinding is interoperable as per documentation. So I believe even non-.NET client should be able to consume it.
0
jagrut_patelCommented:
You may like to see this discussion
0
SamJollyAuthor Commented:
Thanks for this.

With regard to : 1) I assume that the WebMethod is then built differently to the old style ASMX?
Sorry I didn't get your question.

I was asking whether I would need to construct it differently for WCF as against ASMX. I think the answer is a most definate yes. The important issue is that I can use ASP.NET 3.5 for WCF on the server and that these services can be easily consumed by any application be they .NET or something else.

Thanks,

Sam
0
SamJollyAuthor Commented:
Thanks. Apologies for the late closure
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.