This question is in conjuction with **[How would you approach developing a Hotel Reservation System?](https://softwareengineering.stackexchange.com/questions/110056/how-would-you-approach-developing-a-hotel-reservation-system)**

The solution to a system with different interfaces (or clients I should say) is to go with developing a Web service and have other systems interact with it.

I never had the requirement for developing a Web service so I am bit short on it. All I understand is that **A web service is a system or application that performs some operations which may include modifying, sending or receiving data over a network using HTTP protocol**. (Let me know if the understanding is wrong)

Now, from the other question it's clearly understood that I need to develop a web service but I have no idea as to how should I go about it. My language of choice is C# and .NET Framework. 

**Question**: How do we develop a webservice and which tools, technology and framework should I use for the same using C# language?

**Question**: How can I interact with this from a desktop WPF application, website and mobile app.