什么方法最有意义?我有一个 ASP.NET 应用程序......将来可能还有一个 Silverlight 应用程序......我希望两者都与 Web 服务通信......
起初,我喜欢让 WCF 项目独立进行。
但后来我想.. 有什么意义,因为我可以很容易地拥有一个包含现有网站项目中所有 .svc 文件和代码的“WEBSERVICES”文件夹。......至少那样......部署到远程主机会更容易一些,因为一切都在一个项目中......
还有其他考虑吗?
为什么没有:
Contracts
程序集中的 WCF 服务和数据协定Services
程序集中的 WCF 服务实现WebServices
目录这样,你有
需要考虑两件事:
安全性 - 您的服务是否只会被您的应用程序使用,或者它们是否有可能在其他任何地方使用(毕竟它们是服务)。如果是这样,您将授予对应用程序的访问权限,以便授予对 Web 服务的访问权限,或者至少调整对特定文件夹的访问权限,这可能会导致安全漏洞。
部署 - 如果您在不违反合同的情况下对服务进行更改,为了部署更改,您必须部署整个应用程序。
我更愿意采用 Marc 建议的方法(例如,有一个用于合同的程序集,一个用于服务实现的程序集)并将 web 服务作为其自己的应用程序托管并从 ASP.NET 应用程序中引用它。这样,您就可以适当地分离关注点,并且可以分别维护两者。