Windows Azure AppFabric 入门教学系列 (三):LABS环境

 

 

 

声明:由于Windows Azure SDK和相关工具的更新,下文下载链接可能已失效,最新链接更新如下:

 

Windows Azure Tools for Microsoft Visual Studio (已包含SDK)

Windows Azure AppFabric SDK V1.0 - October Update

 

 

 

 

 

 

 

本文是Windows Azure AppFabric入门教学的第三篇文章。我们会介绍一下LABS环境。

微软AppFabric团队与2010年3月11日推出了AppFabric LABS环境。AppFabric团队会用其展示一些早期特性,并从社区获得反馈。用户无需为该环境的使用付费。

AppFabric LABS 使得用户能够测试并使用实验性的AppFabric技术。对于那些激动人心的功能和特性,我们希望从用户那里尽快的获得反馈。LABS环境并没有SLA协议的支持,但您可以获得AppFabric新特性的预览,同时帮助我们改善这些特性。

虽然与Community Technology Preview类似,但是 LABS 技术离商用有着更远的距离。 

在上一篇文章中,我们演示了Echo程序,但是其配置基于Azure收费账户,本文会介绍如何将Echo程序改为在LABS环境下运行。

 

前置条件

为了使后续的教程能够顺利进行,请确保如下软件或组件已被安装:

·         Microsoft .NET Framework 3.5 SP1

·         Microsoft Visual Studio 2008 SP1 (or above)

·         AppFabric SDK

·         Windows Azure Platform Training Kit - December Update(示例代码)

 

请确保您已拥有一定的WCF编程经验,若没有,请浏览这里以快速的初步了解WCF。

 

创建LABS项目和服务命名空间:

1.        在https://portal.appfabriclabs.com/ 处,以您的Live ID登陆。

2.        在如下红框处点击以创建新的AppFabric项目。(可以参照本教程第一篇文章:创建 AppFabric 项目与命名空间

 

 

3.        当点击“New Namespace”后,会弹出创建新namespace的对话框,若之前此live账户没有lab的subscription,此时他会为你自动创建一个subscription。

在红色框标记的文本框中输入Namespace名称,点击"Check Availability"检测是否此namespace可用,点击“OK”创建。

4.        等待Namespace初始化,当Status显示“Active”时,创建成功。Namespace的信息显示在右侧的Properties面板中。

 

 

 

 

 

配置更改:         

1.        如果没有按照上一篇教程完成Echo程序,可以从Windows Azure Platform Training Kit - December Update(示例代码)安装目录下WindowsAzurePlatformKit\Labs\IntroServiceBus\Source\Ex01-BasicSample\end\CS找到完整的Echo程序代码。双击BasicSample.sln,以打开项目。

2.        打开文本编辑器,拷贝如下xml,保存为servicebus.config。验证:

<?xml version="1.0" encoding="utf-8"?>

<!-- the root web configuration file -->

<configuration>

  <Microsoft.ServiceBus>

    <relayHostName>servicebus.appfabriclabs.com</relayHostName>

    <stsHostName>accesscontrol.appfabriclabs.com</stsHostName>   

    <acmHostName>accesscontrol.appfabriclabs.com</acmHostName>

  </Microsoft.ServiceBus>

</configuration>

3.         并将其放置到如下目录:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG ( x86 系统)

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG  (x64 系统)

若使用.net4,则使用,则需放在 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config (x86系统)目录下 

 

 

至此,所有需要的更改已经全部完成。我们并没有做任何代码的改动,仅仅是增加了一个配置文件。现在我们已经可以进行调试了。

1. 右击Service项目,Debug->Start new Instance 。按照Console提示输入您在https://portal.appfabriclabs.com/ 处所注册得到的信息。

2. 右击Client项目,Debug->Start new Instance启动另一调试实例,同样按照Console提示输入信息。

 

 

最终效果如图:

 

 

探析:

       

在编程方面,对于此Echo项目的来说,在LABS环境和付费环境下唯一的差别仅是放置servicebus.config的差别。以下为servicebus.config的内容:

<?xml version="1.0" encoding="utf-8"?>

<!-- the root web configuration file -->

<configuration>

  <Microsoft.ServiceBus>

    <relayHostName>servicebus.appfabriclabs.com</relayHostName>

    <stsHostName>accesscontrol.appfabriclabs.com</stsHostName>    

    <acmHostName>accesscontrol.appfabriclabs.com</acmHostName>

  </Microsoft.ServiceBus>

</configuration>

而引起差别的代码便是如下语句:

 ServiceBusEnvironment.CreateServiceUri( "sb",serviceNamespaceDomain, "EchoService" );

该方法会读取servicebus.config的内容,我们看到在LABS环境下,会返回如下形式的URI。

sb://xxxxxx.servicebus.appfabriclabs.com/EchoService/,

而不放置servicebus.config时返回如下形式URI:

sb://xxxxxx.servicebus.windows.net/EchoService/ ;(Azure收费账户)

由此 程序将服务挂载到了LABS环境下。

除此之外程序并无二致。因此LABS的环境对于开发者来以非常简便的方法提供了一致的编程体验,无需更改代码便能体验LABS环境。如果要将应用程序切换为付费账户,我们也无需做太多更改。