公告
:本博客为微软云计算中文博客
的镜像博客。
部分文章因为博客兼容性问题
,会影响阅读体验
。如遇此情况,请访问
原博客
。
Dallas项目(现以改为Windows Azure
Marketplace)是微软提供的数据交易和分享平台。通俗一些来讲,即能够让数据提供商通过Dallas平台暴露出API让数据消费者以OData协议操作数据。目前Dallas尚处于CPT阶段。有兴趣的读者可以免费试用。例如如果想要获取美国火星探测行动拍摄到的图片,可以访问下面的链接,点击Trial按钮,然后按照提示进一步操作:
http://pinpoint.microsoft.com/en-US/PartnerDetails.aspx?PartnerId=12884901889&ProductId=12884902246&CurrentTab=1
(现以改为https://datamarket.azure.com/
)
本文将从数据消费者的角度来引导读者消费Dallas上的数据。
订阅服务
首先,请进入上面的链接点击Trial按钮,按照提示操作,当你看到下面的页面时,在Catalog面板下找到感兴趣的数据然后点击Subscribe按钮订阅:

在本文中,我们将使用Weather Central数据服务。该服务能够提供气象预报,历史气象数据等信息。点击Subscribe按钮订阅,确保显示为Already subscribed:

所有已经订阅的服务将会出现在Subscriptions面板下:

浏览服务细节
点击服务的标题,进入到下一页面:

在这个页面中我们可以通过Web UI来浏览某些数据(对于某些格式数据不能显示,比如image)。作为数据消费者,我们需要关心的主要是三个地方。第一个是Account Key,第二个是Unique User ID。他们相当于访问服务的用户名和密码。在我们调用API的时候需要提供。另外一个地方是下方的下载按钮(对于非C#语言开发人员需要关心下载链接上方关于HTTP头和URL的说明以便调用服务)。我们可以通过点击这个按钮下载到客户端代理类,能够方便我们调用API。需要指出的是,由于API实际上是按照OData协议的规定发送HTTP请求,因此跟开发语言甚至操作系统都是无关的。只是当前CTP阶段我们只提供C#版本的代理类代码。
编写程序
下载完代理类后,我们新建一个WPF程序,并加入该代理类文件。在XAML中加入一个Canvas,并在Canvas中加入一个Image控件:
<
Image
Canvas.Left
="10"
Canvas.Top
="34"
Height
="262"
Name
="image1"
Stretch
="Uniform"
Width
="501" />
在MainWindow.xaml.cs中引用命名空间:
using Microsoft.Dallas.Services;
并且加入代码:
public
partial
class
MainWindow
:Window
{
const
string
accountkey ="7qg7j7pCPFaKvVY2u5CjBey6EnuZGAXjPHSv1gKCNyM="
;
const
string
guid ="5a00d570-d837-40e1-98d8-e2c7827e46f2"
;
TilesService
t =new
TilesService
(accountkey,new
Guid
(guid));
public
MainWindow()
{
InitializeComponent();
this
.Loaded +=new
RoutedEventHandler
(MainWindow_Loaded);
}
void
MainWindow_Loaded(object
sender,RoutedEventArgs
e)
{
var
stream = t.Invoke("Temperature"
,"032"
,DateTime
.UtcNow.ToString("yyyy-MM-ddThh:mm:ss"
),"1"
);
PngBitmapDecoder
pngdecoder =new
PngBitmapDecoder
(stream,BitmapCreateOptions
.PreservePixelFormat,BitmapCacheOption
.Default);
BitmapFrame
bf = pngdecoder.Frames[0];
Dispatcher.BeginInvoke(DispatcherPriority
.Normal,new
ThreadStart
(() =>
{
this
.image1.Source = bf;
}));
}
}
按F5运行程序。我们将能得到当前时间美国东部地区的温度图:

由于该服务还提供了其他图片,我们改写代码为:
var
stream = t.Invoke("Clouds"
,"032"
,DateTime
.UtcNow.ToString("yyyy-MM-ddThh:mm:ss"
),"1"
);
即能够得到当前时间美国东部地区的云层图。注意最后一个参数为1表示去除掉大海的部分:

注:该服务的当前版本只提供部分美国地区的气象图片信息,边界为:
Northwest corner = 55, -140
Northeast = 55, -56
Southwest = 23, -124
Southeast = 23, -72
分析代码
代码中唯一可能让人产生困惑的是代理类中TilesService.Invoke()接收的第二个参数。这里我们使用了032。该值的含义和计算方法请读者参考下面文档中提到的quadkey计算方法:
http://msdn.microsoft.com/en-us/library/bb259689.aspx
总结
本文从数据消费者的角度通过一个简单的例子说明了如何消费Dallas的数据。我们可以看到,如果您正在用C#开发程序,您将能够利用提供的代理类很方便地调用API来对数据进行操作。如果您是其他开发语言的使用者,您也可以使用标准的OData协议来发送HTTP请求调用API。在服务细节中给出了调用该API所需要的HTTP头和URL。我们能够在Dallas的帮助下快速地开发出一个很酷的程序,例如一个3D的地球仪:

关于微软Dallas更多问题请参考:
http://blogs.msdn.com/azchina/archive/2010/03/01/dallas.aspx
分享到:
相关推荐
元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D...
COM技术初探.doc
网络公关初探资料.pdf
企业信息化初探。。。。。
关于物联网智能家居的初探. 关于物联网智能家居的初探
地产行业杂谈系列之十六:社区增值服务模式初探
天干地支在择时中的应用初探 天干地支是中国古代的计时系统,用于记录和预测时间周期。天干地支系统由十个天干(甲乙丙丁戊己庚辛壬癸)和十二个地支(子丑寅卯辰巳午未申酉戌亥)组成。天干地支的阴阳属性奇数为阳...
### 初探uCOS-II:嵌入式操作系统的基础与应用 #### 一、uCOS-II简介 uCOS-II,全称MicroC/OS-II,是一款专门为嵌入式系统设计的操作系统内核。它由Jean J. Labrosse创建,并在开源社区中得到了广泛的认可和支持。...
六爻预测彩票初探.pdf
15、培训学校成本管理初探.doc
S7-1500T同步功能初探 凸轮同步模式介绍.mp4
### USB2.0规范初探 #### USB2.0概述 USB2.0(Universal Serial Bus 2.0)是一项广泛应用于计算机领域的高速串行总线技术标准,它旨在简化外部设备与计算机之间的连接,提高数据传输速率的同时降低制造成本。USB...
腾讯体育APP发展模式初探.pdf
基于SNS互动的就业指导网站网络营销运营初探.docx基于SNS互动的就业指导网站网络营销运营初探.docx基于SNS互动的就业指导网站网络营销运营初探.docx基于SNS互动的就业指导网站网络营销运营初探.docx基于SNS互动的...
多因子模型体系初探 多因子模型是风险-收益关系的定量表达,因子是不同类型风险的解释变量。多因子模型是由 APT 理论发展而来,其一般表达式为:̃ = ∑ ∗ ̃ + ̃=1。多因子模型本质是将对只股票的收益-风险预测...
我国电子信息产业生态构建初探.pdf
SpringCloud服务拆分初探与案例解析 cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第...
从概念上简要介绍人工智能涉及的领域和范围,阐述不同领域之间的关系,能解决的问题等。
初探计算机网络安全技术以及防范方案.pdf