有谁愿意帮助我解决.NET Remoting,Web Services和WCF的优缺点?我已经使用.NET Remoting和Web Services进行了一些工作,我正在构建一个新的ASP.NET 3.5 Web应用程序,我将使用SQL 2008 DB。主要是我想知道是否值得真正研究这个应用程序的WCF。
在这个特定的例子中,这里有一些相关的观点:
但是,我仍然想知道:
答案 0 :(得分:7)
我实际上将我们的软件从传统的.NET Remoting切换到了WCF。从Remoting发生的通信膨胀是惊人的(只看一个wireshark跟踪)。在转移到WCF之前,我想过只使用传统的.NET Web服务,但是我们为远程调用调用的接口需要进行大量修改(我们使用了一些out和ref参数,如果我不是Asp.Net webservice不能做的话。误)。
真的,我无法想出使用Asp.Net网络服务的原因,但我不是Asp.Net的人。对我而言,它没有优于WCF的优势。使用Web服务可能更容易,但WCF提供的灵活性是我所需要的。特别是在邮件格式化方面。
我喜欢我的WCF服务,因为有了一个服务,我可以提供JSON或SOAP / XML,并支持所有协议(ipc,tcp和http)。
WCF的无赖之处在于,如果您希望在基于Web的场景中使用它,则其严格绑定要求您为HTTP和HTTPS定义端点。与传统的Web服务不同,无论其是否安全,它都“正常工作”。
答案 1 :(得分: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
答案 2 :(得分:0)
我更愿意关注EF和L2SQL。
只能连接到MSSQL的想法是我从未采用过L2SQL的原因,从那时起MS显然有一天会放弃它。