0

什么方法最有意义?我有一个 ASP.NET 应用程序......将来可能还有一个 Silverlight 应用程序......我希望两者都与 Web 服务通信......

起初,我喜欢让 WCF 项目独立进行。

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

还有其他考虑吗?

4

2 回答 2

0

为什么没有:

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

这样,你有

  • 干净且组织良好的关注点分离
  • 部署文件 (*.svc) 位于您的网站/Web 应用程序中,如您所愿
  • 您以后仍然可以以其他方式(例如自托管)扩展/使用您的 WCF 代码,而无需大惊小怪
于 2010-03-30T20:27:06.300 回答
0

需要考虑两件事:

安全性 - 您的服务是否只会被您的应用程序使用,或者它们是否有可能在其他任何地方使用(毕竟它们是服务)。如果是这样,您将授予对应用程序的访问权限,以便授予对 Web 服务的访问权限,或者至少调整对特定文件夹的访问权限,这可能会导致安全漏洞。

部署 - 如果您在不违反合同的情况下对服务进行更改,为了部署更改,您必须部署整个应用程序。

我更愿意采用 Marc 建议的方法(例如,有一个用于合同的程序集,一个用于服务实现的程序集)并将 web 服务作为其自己的应用程序托管并从 ASP.NET 应用程序中引用它。这样,您就可以适当地分离关注点,并且可以分别维护两者。

于 2010-03-30T20:34:52.457 回答