WCF项目与现有网站项目中的文件夹?

时间:2010-03-30 20:21:22

标签: asp.net wcf layer

哪种方式最有意义?我有一个ASP.NET应用程序...可能是未来的Silverlight应用程序..我希望两者都能与Web服务进行交流..

首先,我喜欢将WCF项目自行分离..

但后来我想..有什么意思,因为我可以很容易地拥有一个'WEBSERVICES'文件夹,其中包含EXISTING网站项目中的所有.svc文件和代码。 ......这样的方式......部署到远程主机会更容易,因为一切都在一个项目中。

任何其他考虑因素?

2 个答案:

答案 0 :(得分:0)

为什么没有:

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

那样,你有

  • 干净且组织良好的关注点分离
  • 部署文件(* .svc)随时可以在您的网站/网络应用程序中
  • 您仍然可以在以后以其他方式扩展/使用您的WCF代码(例如自托管)

答案 1 :(得分:0)

需要考虑两件事:

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

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

我更愿意采用Marc建议的方法(例如,有一个合同程序集,一个用于服务实现),并将webservice作为自己的应用程序托管,并从ASP.NET应用程序引用它。通过这种方式,您可以正确分离关注点,并且可以单独维护。