2010-03-30 120 views
0

什么方式最有意义?我有一个ASP.NET应用程序...也许在未来的Silverlight应用程序..我想同时与网络服务..WCF项目与现有网站项目中的文件夹?

起初,我喜欢有WCF项目由它自我分离..

但是后来我想..因为我可以很容易地拥有一个'WEBSERVICES'文件夹,其中包含EXISTING网站项目中的所有.svc文件和代码。 ...至少这一点..部署到远程主机将是一件容易一点,因为一切都在一个项目..

任何其他的考虑?

回答

0

为什么不能有:在Contracts装配

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

这样,你有顾虑

  • 部署文件(* .SVC)在您的网站/ Web应用程序,只要你想
  • 你仍然可以扩展/使用

    • 干净,并很好地组织分离您的WCF代码以其他方式(例如自托管),后来就没有太多的大惊小怪
  • 0

    两件事情要考虑:

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

    部署 - 如果您在服务上进行了不会中断合同的更改,为了部署更改,您必须部署整个应用程序。

    我倾向于采用Marc提出的方法(例如,有一个用于合同的程序集,一个用于服务实现),并将webservice作为自己的应用程序托管并从ASP.NET应用程序中引用它。通过这种方式,您可以正确分离关注点并分别维护两者。

    相关问题