Você pode ter uma camada de negócios em WCF, WebService ou WebApi e consumir com plataforma Web, plataforma Desktop e futuramente plataforma móvel ou até mesmo uma que não exista no momento. Dessa forma suas aplicações clientes seriam burras e consumiria
os serviços. Outra forma é desenvolver em camadas e trocar apenas a camada View(Asp.Net, WPF)