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

来源:互联网 发布:网校端口 编辑:程序博客网 时间:2024/04/29 11:59

 

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客

 

 


 

 

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

微软AppFabric团队与2010311日推出了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 (示例代码)

请确保您已拥有一定的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(示例代码)安装目录下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环境。如果要将应用程序切换为付费账户,我们也无需做太多更改。