结合 Web 服务和 Pocket PC Phone Edition 创造价值(转)

摘要:了解如何借助移动设备和 .NET Framework 精简版来使用日益增多的 Web 服务。

下载 booksanyplace.exe

移动性与新 Web 的结合

几乎在 .NET Framework 的每个部分中都能找到 XML,实现的分布式计算模型也是如此。Web 服务已经成为使应用程序从逻辑上可供用户和其他应用程序使用的基础。实际上,新一代 Web 正在慢慢崛起:使用 Web 服务创建新的 Web。用于在 Pocket PC 上启用 .NET 应用程序的 .NET Framework 精简版支持本地 Web 服务。借助连接的 Pocket PC Phone Edition(英文),移动性可丰富新 Web 的功能。

查找 Web 服务

Internet 中的某些站点致力于收集和分类 Web 服务,使其可供应用程序开发人员使用。如果要查找移动 Web 服务,建议您访问 salcentral(英文)和 Xmethods.net(英文)。您甚至可以结合几个 Web 服务来提供更有用的应用程序功能集。

结合 Web 服务创造价值

下面将介绍结合两种 Web 服务以便为用户提供额外价值的步骤。例如,我选择使用一个在输入了 ISBN 号的情况下,返回 BN.com 提供的书价的 Web 服务(Book Web 服务)和一个兑换货币的 Web 服务(Currency Web 服务)。我的设计思路是将这两个服务结合到一个应用程序中,用于对 Book Web 服务返回的美元金额进行兑换,并使用 Currency Web 服务返回的最新汇率将美元金额兑换为其他货币金额。

使用 Pocket PC Phone Edition 上运行的这类应用程序的用户可始终确保在书店购书时获得最优惠(或至少是一个不错)的价格。与美国国内的用户相比,居住在美国以外的用户可能会发觉这种货币兑换更加有用。而美国用户会发现书价查询非常有用。就我个人而言,我认为使用户能够全面了解所需产品的应用程序是理想的移动应用程序。

实现 Books Anyplace 应用程序

Books Anyplace 应用程序只使用一个窗体。用户输入 ISBN 号,在列表中选择一种货币,然后单击“Get Price”按钮查看价格。

20051221202721600.gif

图 1:输入 ISBN 并选择货币

两个 Web 服务开始运行,最后显示两种服务的响应。ListView 随响应结果而更新。

20051221202723560.gif

图 2:显示以美元和所选货币表示的书价

代码演示

首先,我将向您介绍 Books Anyplace 中使用的两个 Web 服务。这两个 Web 服务在 Xmethods.com 中以演示 Web 服务的形式列出。

Book Web 服务

说明:在输入 ISBN 号后,返回 Barnes & Noble (BN.com) 提供的书价。

WSDL 的位置:WSDL Document(英文)

详细信息:Xmethods.com(英文)

Currency Web 服务

说明:任何两种货币之间的汇率。

WSDL 的位置:WSDL Document(英文)

详细信息:Xmethods.com(英文)

在项目中添加 Web 引用

真难以想象,添加 Web 引用(对 Web 服务的引用)原来如此简单。只要输入 WSDL 文档的路径就可以了。添加必要的 Web 引用后,剩下的工作同样很简单。以下代码片段演示用户单击“Get Price”按钮后的所有结果。

private void btnGet_Click(object sender, System.EventArgs e)
{
// 获得价格并将其兑换!
// 已知错误:
// 版本   日期   人员 注释
// 00.00.000 020808 ASJ  创建
// *****************************

// 启动沙漏
WaitCursor.Show(true);

try
{

// 声明 Book Web 服务
net.xmethods.www.BNQuoteService BNQuote = new net.xmethods.www.BNQuoteService();

// 获得价格
float price = BNQuote.getPrice(txtISBN.Text);

// 声明 Currency Web 服务
net.xmethods.www1.CurrencyExchangeService Currency 

= new net.xmethods.www1.CurrencyExchangeService(); // 获得兑换后的价格。 float rate = Currency.getRate("us", cmbCurrency.Items[cmbCurrency.SelectedIndex].ToString()); // 用美元价格乘以汇率。 decimal convertedPrice = (decimal) (price * rate); // 对结果进行舍入 convertedPrice = Math.Round(convertedPrice, 2); // 添加到 ListView 中 ListViewItem lvi = new ListViewItem(txtISBN.Text); lvi.SubItems.Add(price.ToString()); lvi.SubItems.Add(convertedPrice.ToString()); lvi.SubItems.Add(cmbCurrency.Items[cmbCurrency.SelectedIndex].ToString()); lvwBooks.Items.Add(lvi); } catch { MessageBox.Show("无法调用 Web 服务!", this.Text); } finally { WaitCursor.Show(false); } }

如果这种方法本身不支持 Web 服务,那我真的不知道哪种方法支持它。Visual Studio® .NET 将 Web 服务作为 .NET 类公开,您可以通过同样的方法使用 .NET 类。事实上,除了处理用户界面和类初始化的代码以外,还有一个代码行可以获得在 Pocket PC Phone Edition 上运行的 Web 服务。

小结

我希望通过本文向您说明如何实现移动 Web 服务。结合 Pocket PC Phone Edition 的连接性,可以使这些 Web 服务随意移动。

参考站点

如果要了解 Web 服务的更多信息,建议您访问以下站点:


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126337/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126337/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值