什么方式最有意义?我有一个 ASP.NET 应用程序...也许将来还会有 Silverlight 应用程序..我希望两者都能与网络服务对话..

起初,我喜欢让 WCF 项目单独进行分离。

但后来我想..既然我可以轻松地拥有一个包含现有网站项目中所有 .svc 文件和代码的“WEBSERVICES”文件夹,那么这有什么意义呢?...至少这样..部署到远程主机会更容易一些,因为所有内容都在一个项目中。

还有其他考虑吗?

有帮助吗?

解决方案

为什么不拥有:

  • 您的 WCF 服务和数据合同 Contracts 集会
  • 您的 WCF 服务实现 Services 集会
  • 从您的网站或 Web 应用程序引用这两个程序集
  • 将 *.svc 文件放入 WebServices 目录

这样,你就有了

  • 干净且组织良好的关注点分离
  • 部署文件 (*.svc) 位于您的网站/Web 应用程序中
  • 您仍然可以以其他方式扩展/使用您的 WCF 代码(例如自托管)稍后不会有太多大惊小怪

其他提示

两点考虑:

安全 - 只是要你的服务,你的应用程序中使用,或者他们有在其他地方使用的可能(毕竟他们是服务)。如果是这样,你将被授权访问你的应用程序,以授予访问您的网络服务,或至少调整接入到特定的文件夹,这可能会导致安全漏洞。

部署 - 如果你做你的服务的变更,不撕毁合同,以部署改变,你必须部署整个应用程序

我宁愿去与马克建议的方法(例如有一个组件,用于合同,一个服务实现),并有web服务托管其自己的应用程序,并从ASP.NET应用程序中引用它。这样,就具有的顾虑适当分离和可以分别保持两者。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top