用于.NET的可移植HTTP客户端

直到最近,关于在.NET、Silverlight、Windows Phone和Windows Store之间分享代码的问题之一,依旧是缺少发起HTTP请求的能力。每个框架支持一个或多个HTTP客户端,但在API层面它们互不兼容。

要解决该问题,开发者可以创建自己的平台相关适配器,并使用依赖注入把它们添加到有需要的可移植库中。而基本上,这也正是新的可移植HttpClient所做的事情。

当然,每个版本的HttpClientHandler都有不同的功能集。所以,为了尽可能地将更多的功能暴露出来,可移植HTTP客户端引入了诸如SupportsUseProxy和SupportsAllowAutoRedirect这样的扩展方法。

Immo Landwerth解释道:

倘若开发者想要知道为何我们添加扩展方法而不是常规属性的话:某些Microsoft.Net.Http支持的平台已经提供并正在使用HttpClientHandler类。由于不能直接修改属性的内建版本,我们添加了扩展方法并通过NuGet包以独立程序集的方式发布。

基于以下原因,微软正在变得越来越青睐类似于可移植HttpClient这样的小型、带外发布:

首先,它搭建了一座桥梁以跨越我们已经发布的平台之间的差异。HttpClient是一个很好的例子,同样的还有对async和await关键字的支持。带外发布特性允许我们通过单一可移植类库针对多平台发布新功能,而无需等待其中任何一个平台添加该功能。 其次,我们的目标是增强与客户之间的反馈回路。过去,我们发布“大型”beta版本,例如整个.NET框架的beta版本。这一方法当然有其优势,但我们也发现了它的问题。其中最大的缺点是“大型”beta版发布代价高昂,而且它一般与RTM非常接近,这也就意味着我们不能再进行重大变更。实际上,我们必须拒绝大量在“大型”beta版本中获得的bug报告,因为它们仅影响了相对小众的客户,或是因为修订这些bug会把RTM版本置于风险之中。我们当然不是第一家遇到这个问题的公司;在这个产业里,整个敏捷软件开发运动都在聚焦于此。虽然我不想开启关于敏捷方法论的哲学讨论,但是很难否认尽早并经常发布对反馈回路的问题是有帮助的。

某些开发者期望的特性未能纳入这次候选发布,其中最重要的是对自动解压缩的支持。为了不推迟本次发布,该特性将在完成后出现在后续版本中。

为了在诸如Silverlight等老平台上支持async/await,可移植HttpClient依赖BCL可移植性包

相关文章:

Portable HttpClient for .NET Framework and Windows Phone

Get /httpclient/rtm – 200 OK

第13周的NuGet包—Portable HttpClient使得portable libraries更加好用

CFNetwork-powered HttpClient

Google API的.NET可移植类库1.4.0测试版发布

查看英文原文:A Portable HTTP Client for .NET

查看中文原文:用于.NET的可移植HTTP客户端

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我和未来有约会

Web 开发的演变:转向 Web.Next

CERN 的 Tim Berners-Lee 发明现代 Web 时的初衷是将其作为允许在基于网络的系统上存储和链接静态文档的系统。之后的数年间,随着创新的发展和...

21710
来自专栏bboysoul

linux 下office软件推荐

最近要写毕业设计,很坑爹的是毕业设计一定要用office软件,都不知道为什么不能用markdown,学校真的像个婊子,在这破学校没有学到什么东西,还他妈的天天立...

1252
来自专栏张善友的专栏

即将到来的Powershell 2

在即将发布的Windows 7和其服务器产品Windows Server 2008 R2将内置PowerShell 2.0版本的解析器。与此同时,Windows...

2058
来自专栏NetCore

基于组件的.NET技术(5)

实战: 创建一个VB.NET Windows应用程序:VBTestDynamicComponent。将前面介绍的两个类ComponentList和LoadCo...

2276
来自专栏张善友的专栏

Visual Studio 2012和.NET Framework 4.5发布

微软负责Visual Studio部门的公司副总裁Jason Zander刚刚发表博客,宣布Visual Studio 2012和.NET Framework ...

2007
来自专栏张善友的专栏

Mix 08到来之前的Monolight Update

在Mix08到来之前Mono团队老大Miguel de Icaza's在blog上发布了Pre-Mix 08: Moonlight Updates。根据这篇bl...

1969
来自专栏张善友的专栏

如何使用Microsoft技术栈

Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术。Microsoft自己并不想从官方层面上反对Silverlig...

1916
来自专栏张善友的专栏

来腾讯云开发者实验室 学习.NET

腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力: 零门槛扫码即可免费领取实验机器,支持使用自有机器参与,实验完成后支持保留实验...

2295
来自专栏张善友的专栏

重磅消息-Service Fabric 正式开源

1445
来自专栏张善友的专栏

来腾讯云开发者实验室学习.NET

腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力: 零门槛扫码即可免费领取实验机器,支持使用自有机器参与,实验完成后支持保留实验...

4249

扫码关注云+社区

领取腾讯云代金券