<b>Windows Communication Foundation (WCF) has an ASP.NET compatibility mode option to enable WCF applications to be programmed and configured like ASP.NET Web services, and mimic their behavior.
Major Difference is That Web Services Use XmlSerializer But WCF Uses
DataContractSerializer which is better in Performance as Compared to XmlSerializer.
Key issues with XmlSerializer to serialize .NET types to XML
* Only Public fields or Properties of .NET types can be translated into XML.
* Only the classes which implement IEnumerable interface.
* Classes that implement the IDictionary interface, such as Hash table can not be serialized.
Important difference between DataContractSerializer and XMLSerializer.
* A practical benefit of the design of the DataContractSerializer is better performance over Xmlserializer.
* XML Serialization does not indicate the which fields or properties of the type are serialized into XML where as DataCotratSerializer Explicitly shows the which fields or properties are serialized into XML.
* The DataContractSerializer can translate the HashTable into XML.</b>
<img src=”http://keithelder.net/blog/images/keithelder_net/blog/WindowsLiveWriter/WCFvsASMXWebServices_ABC2/image_6.png” alt=”What WCF Can Replace?” />
More thing we can host the WCF services in number of hosting applications, unlike Asp.net webservices, which support only iis hosting.