12

有人愿意帮助我了解 .NET Remoting、Web 服务和 WCF 的优缺点吗?我在 .NET Remoting 和 Web 服务方面做了一些工作,我正在构建一个新的 ASP.NET 3.5 Web 应用程序,我将在其中使用 SQL 2008 DB。首先,我想知道是否值得为这个应用程序真正研究 WCF。

在这种特殊情况下,以下是一些相关点:

  • 大多数持久性数据将是错误和使用跟踪。
  • 即使我使用 .NET Remoting,流量也不会保证物理远程处理服务器,但我希望有一天它会!
  • 目前,我预计不需要从其他 Web 应用程序中获取这些数据。

但是,我仍然想知道:

  • 何时/为什么要在 Web 应用程序中使用 .NET Remoting?
  • 您何时/为什么要在 Web 应用程序中使用 Web 服务?
  • 何时/为什么要在 Web 应用程序中使用 WCF?
  • 我应该考虑使用 LINQ to SQL 之类的技术吗?
  • 还有其他更好的选择吗?
4

3 回答 3

7

实际上,我将我们的软件从传统的 .NET Remoting 切换到了 WCF。Remoting 导致的通信膨胀是惊人的(只需查看 Wireshark 跟踪)。在迁移到 WCF 之前,我考虑过只使用传统的 .NET Web 服务,但我们为远程调用实现的接口需要进行大量修改(我们使用了一些 out 和 ref 参数,如果我不是,Asp.Net Web 服务无法做到这些)错误)。

真的,我想不出使用 Asp.Net 网络服务的理由,但我不是 Asp.Net 人。对我来说,它比 WCF 没有任何优势。使用 Web 服务可能更容易,但 WCF 提供的灵活性正是我所需要的。特别是在消息格式方面。

我喜欢我的 WCF 服务,因为通过一项服务,我可以提供 JSON 或 SOAP/XML,并且支持所有协议(ipc、tcp 和 http)。

WCF 的糟糕之处在于,如果您希望在基于 Web 的场景中使用它,它的严格绑定要求您为 HTTP 和 HTTPS 定义一个端点。与传统的 Web 服务不同,无论它是否安全,它都“正常工作”。

于 2009-02-03T16:56:59.077 回答
2

好问题!像你自己一样,我以前没有看过 WCF,想知道它是否会使 Web 服务或多或少过时?

关于你关于 Linq2SQL 的观点 - 鉴于这是一个非常棒的新应用程序,你可能会在几年内维护代码库 - 就个人而言(并且有被否决的风险 - 但请记住这是一个有效的观点查看!)我倾向于查看实体框架。

我知道它的缺点,对我来说最大的缺点是它与 DAL 耦合太紧密 - 因此它不能轻易地进行单元测试(相信我,这对我来说是一个大问题,尽管我确实有一种直觉一种解决方法来实现这一点)。

但是,我个人的看法是,MS 不会让这项技术被淘汰,而且我必须考虑到它将取代 L2S 的传言。另一方面,L2S 是一种更成熟的技术,也是一种更安全的选择。

也许我太天真了,但是当 Dan Simmons 说他们正在努力将 EF(最终)作为一个完全持久的无知架构交付时,我相信他 - http://blogs.msdn.com/dsimmons/pages/ef-faq -entity-classes.aspx#_Does_Entity_Framework

于 2009-02-03T20:29:53.983 回答
0

我宁愿先研究 EF,然后再研究 L2SQL。

只能连接到 MSSQL 的想法是我从未采用 L2SQL 的原因,从那时起很明显,MS 总有一天会放弃它。

于 2009-02-18T12:48:25.560 回答