Service Definition
Noam, Yosi, Udi and me sat together and had an argument about a service definition. We all agreed that calling a function/method is not a service and it does not matter if the call is stack based or XML message based. But we had different definitions.
This is my point of view:
A service is software hosted on a service host that gives value or functionality that can not be part of the client software. The client & service has to partly understand each other to get the value.
For example:
Suppose we have a weather service that get a Lat/Lon location and return the temperature. The client can be a Vista side-bar gadget that shows the temperature. Later the service evolves and now it returns the temperature and the humidity. The old client continues to get the temperature while a new client can show both values. If we configure the new client to use an old service, the new client will show only the temperature and ignore or give a default value to the humidity.
You can implement such service using WCF, however it is much harder than a function based contract which will probably lead to the same coupling that we have found in asmx based services.