?
Solved

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

Posted on 2011-10-24
11
Medium Priority
?
301 Views
Last Modified: 2012-06-21
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
0
Comment
Question by:SamJolly
  • 6
  • 4
11 Comments
 
LVL 5

Assisted Solution

by:Rainverse
Rainverse earned 800 total points
ID: 37018294
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
 

Author Comment

by:SamJolly
ID: 37018367
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
 

Author Comment

by:SamJolly
ID: 37018403
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 your Disaster Recovery as a Service basics

Disaster Recovery as a Service is one go-to solution that revolutionizes DR planning. Implementing DRaaS could be an efficient process, easily accessible to non-DR experts. Learn about monitoring, testing, executing failovers and failbacks to ensure a "healthy" DR environment.

 
LVL 8

Expert Comment

by:jagrut_patel
ID: 37022363
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
 

Author Comment

by:SamJolly
ID: 37023165
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
 
LVL 8

Accepted Solution

by:
jagrut_patel earned 1200 total points
ID: 37023488
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
 

Author Comment

by:SamJolly
ID: 37023512
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
 
LVL 8

Expert Comment

by:jagrut_patel
ID: 37023584
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
 
LVL 8

Expert Comment

by:jagrut_patel
ID: 37023588
You may like to see this discussion
0
 

Author Comment

by:SamJolly
ID: 37023683
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
 

Author Closing Comment

by:SamJolly
ID: 37276562
Thanks. Apologies for the late closure
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
Screencast - Getting to Know the Pipeline
Suggested Courses

807 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question