假设您要创建一个 ASP.NET Web 应用程序。您认为它永远只是一个网络应用程序(带有常规页面和移动页面),但您永远不知道。有一天,您可能希望拥有 iPhone、iPad、Android 或任何应用程序作为客户端。如果发生这种情况的可能性为 0%,您可以将业务层打包为 DLL 并从客户端引用它们。如果将来这些其他前端应用程序有 1% 或更大的机会,您会将业务层打包在 WCF 中并通过 http 公开(即面向服务的架构 (SOA),任何客户端都可以使用的软件即服务)不论平台)。
- DLL pro:速度/性能。
- DLL con:只有 Microsoft 客户端可以使用并且必须有 DLL 与客户端。这也意味着如果 DLL 嵌入客户端应用程序,则需要很长的距离将数据带到业务层进行处理然后返回。
- WCF pro:可扩展性.. 任何客户端都可以使用。
- WCF 缺点:速度/性能。
软件架构就是要在性能和灵活性之间找到适当的平衡。我想在这种情况下您必须将 WCF 作为保险单?