Enabling SOA in your .NET applications is not a difficult task. SOA implementations use object-oriented techniques internally, but provide a simple, platform-independent coarse-grained interface to be used by any client, independent of the technology used. Because XML is an open standard, using SOA guarantees that your system can talk to any other system, be it built in PHP, JAVA or any other platform.
SOA architecture should not be used everywhere without proper forethought. There is no need for SOA architecture when we are sure that the application is small and limited in scope as well as potential growth.
ASMX web services were one of the best ways to implement SOA-based architectures. But, Microsoft's WCF framework works best when one has to integrate all of the service-oriented techniques into one framework, as it is easy to use and involves less complexity. Considering the richness of WCF over ASMX, it is suggested that all services should be implemented in WCF only.
All of these...