【问题标题】:Sharing my repository (repository pattern) with other projects(.NET)?与其他项目(.NET)共享我的存储库(存储库模式)?
【发布时间】:2009-07-04 15:45:06
【问题描述】:

我正在尝试整理我的代码,我有许多项目都引用了我的服务层,即 DLL。这意味着当我分发一个新的服务层时,我必须上传一些通常相同的服务层..

当然,使用 ADD 引用非常快,因为它的一个程序集与另一个程序集通信......

我想知道另一种方法的优缺点..

我可以使用 web 服务/wcf 来包装我的服务层,但这不是破坏对象..

那么速度呢,现在我的桌面应用程序需要调用 web service/wcf 而不是访问程序集引用??

当然,我的服务层与我的数据层对话,而我的客户从不直接与数据层对话..

这是我的业务逻辑所在的服务层的问题,它在多个应用程序之间共享..

桌面应用、2 个网站、2 个 wcf 项目(用作 Web 服务)

关于我如何在不重复我的代码的情况下实现最快的可能场景的任何建议,这对我现在正在做的事情有影响,即

每个应用程序(桌面、网站、wcf)在同一个 DLL 上都有副本并有引用(在 vs 2008 中添加引用)..

想法?

【问题讨论】:

  • @mark:为什么在更新服务层时必须上传任何内容?使用它的应用程序应该在准备好后获得更高版本。他们不想先测试您的新版本吗?
  • 谢谢,但关键是所有客户端都是我的,因此我知道它可以工作,我测试了它......但现在我已经将 DLL 上传到不同的地方 - 它的重复代码......我想要知道用 WCF 或类似方法包装服务层(存储库模式)是否是一种好习惯,但我担心速度等......
  • @mark: 所有客户端都指向同一个数据库吗? (虽然也许这实际上并不重要)
  • 是的,从技术上讲,他们这样做是因为他们正在使用该服务,而该服务又调用了 DAL

标签: c# .net repository repository-pattern business-logic


【解决方案1】:

我认为使用 WCF(包含 .net 远程处理、msmq 等)会让您受益最大。然后你就不必为每个程序复制一个 dll ......他们可以只指向一个 WCF 服务。这种面向服务的架构非常适合您所描述的内容。

根据我目前使用 WCF 的经验,我没有注意到任何性能问题,尤其是在内部网络上。

下面是关于 WCF 的一个很好的概述:http://msdn.microsoft.com/en-us/library/aa480210.aspx

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    如果您主要在单个主机上部署应用程序,则选择在 GAC 中发布您的中间层,并为其提供适当的版本策略。

    如果您在分布式环境中部署应用程序,请使用 .NET remoting/WS/WCF。我认为远程处理将是您方案中最快的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 2023-03-27
      • 2015-02-21
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 2019-11-08
      相关资源
      最近更新 更多