可以选择使用 Windows Communication Foundation(WCF)进行新开发,同时继续维护使用 ASP.NET 开发的现有应用程序。 由于 WCF 的目标是成为在任何场景中与使用.NET框架构建的应用程序进行通信的最适合选择,它可以作为一种标准工具来解决各种软件通信问题,这是 ASP.NET 无法做到的。
新的 WCF 应用程序可以部署在现有 ASP.NET Web 服务的同一台计算机上。 如果现有的 ASP.NET Web 服务使用版本 2.0 之前的 .NET Framework 版本,则可以使用 ASP.NET IIS 注册工具选择性地将 .NET Framework 2.0 部署到要托管新 WCF 应用程序的 IIS 应用程序。 该工具记录在 ASP.NET IIS 注册工具(Aspnet_regiis.exe)中,并内置于 IIS 6.0 管理控制台中的用户界面。
WCF 可用于向现有 ASP.NET Web 服务添加新功能,方法是将配置为在 ASP.NET 兼容模式下运行的 WCF 服务添加到 IIS 中的现有 ASP.NET Web 服务应用程序。 由于 ASP.NET 兼容模式,新 WCF 服务的代码可以使用该类访问和更新与预先存在的 ASP.NET 代码 HttpContext 相同的应用程序状态信息。 应用程序还可以共享相同的类库。
WCF 客户端可以使用 ASP.NET Web 服务。 配置了 BasicHttpBinding 的 WCF 服务可以被 ASP.NET Web 服务客户端使用。 ASP.NET Web 服务可以与 WCF 应用程序共存,WCF 甚至可以用于将功能添加到现有 ASP.NET Web 服务。 鉴于 WCF 和 ASP.NET Web 服务可以一起使用的所有这些方式,仅当需要 WCF 提供的功能而不是 ASP.NET Web 服务时,才需要将 ASP.NET Web 服务迁移到 WCF。
即使在少数需要的情况下,将代码从一种技术迁移到另一种技术很少是正确的方法。 采用新技术的原因是满足无法满足早期技术的新要求,在这种情况下,正确的做法是设计新解决方案以满足新扩展的要求集。 新设计受益于你与现有系统的经验,以及自该系统设计以来获得的智慧。 新设计还可以使用新技术的完整功能,而不是在新平台上重现旧设计。 在对新设计的关键元素进行原型制作后,更容易在新设计中重复使用现有系统中的代码。