本文是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环境下运行。
为了使后续的教程能够顺利进行,请确保如下软件或组件已被安装:
请确保您已拥有一定的WCF编程经验,若没有,请浏览这里以快速的初步了解WCF。
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环境。如果要将应用程序切换为付费账户,我们也无需做太多更改。