基于Windows Azure 包、Service Provider Foundation 和 Virtual Machine Manager的示例门户代码
最近,我们发现很多客户(包括服务提供商)纷纷寻找集成示例或最佳实践指南,希望集成现有门户或者开发全新门户以便与Windows Azure包 (WAP) API集成,从而为其租户提供基于WAP的开箱即用的云服务(如Web Site Cloud、VM Cloud、Service Bus Cloud、SQL Server、My SQL Server),继而使用基于订阅的模型使用这些服务。在本文中,我将会说明并提供基于System Center 2012 R2Windows Azure 包 (WAP)、Service Provider Foundation (SPF) 和Virtual Machine Manager (VMM)开发的示例门户代码(如下所示)。示例门户为ASP.Net、MVC 4、Web 应用程序,旨在实施WAP API以便使用WAP的服务管理 API执行一些常见的WAP和虚拟机(VM)操作。
示例门户代码的作用:
虽然绝大部分客户能够使用发布的WAP 开发人员工具包文档自行开发门户,我们仍然发现很多客户要求提供用于实现特定用例或场景的示例代码,以便用作示例进行参考并扩展到真实世界的场景中。此外还有一些需求,客户希望了解实现身份验证逻辑背后的更多详细信息,以便与作为租户和管理员的服务管理 API 集成。此处提供的示例主要解决上述两个问题,并对WAP开发人员工具包文档提供的信息加以补充。有关WAP SDK的最新信息,请参阅产品文档。
示例门户代码涉及的场景:
该示例门户代码包含以下场景:
控制面板或门户集成
- 租户(使用ASP.NET成员资格提供程序)和管理员(使用Windows)门户WAP身份验证
- 列出可用订阅计划
- 列出租户订阅
- 列出租户订阅报价
- 列出订阅虚拟机(租户)
- 执行虚拟机操作:
VM云资源提供程序(SPF)
- 启动虚拟机
- 停止虚拟机
- 创建虚拟机
- 虚拟机详细信息
示例门户代码的组成部分:
该示例门户代码包含以下两部分或Visual Studio (VS)项目:
- WAPWrapper.csproj -实现常见服务管理 API 调用(用于执行租户身份验证、订阅、虚拟机操作、云操作和虚拟机模板操作)的VS项目
- WAPContosoPortal.csproj -实现MVC(模型-视图-控制器)代码的VS项目,以便通过WAPWrapper库调用服务管理 API,以及在门户上执行用户请求的操作
从最佳实践的角度,为简便起见,服务管理 API 层集成以包装库的形式呈现。这样,您就能在不同类型的门户(如租户和管理员门户)上灵活使用相同的代码。与此同时,在服务管理 API 层进行升级时,仅修改和构建包装库就已足够,而不必修改和构建全部门户代码。此外,包装库将实现租户和管理员相关功能,但门户代码仅包含租户特定操作,因为它仅适用于租户。
总而言之,使用WAP、SPF 和 VMM实现时的自定义示例门户按分层顺序查看和连接,如下图所示:
一些示例门户代码屏幕截图:
- 使用ASP.NET成员资格提供程序对租户进行WAP身份验证
- 列出可用租户订阅计划
- 列出租户订阅
- 列出订阅报价
- 列出订阅虚拟机(租户)
有关示例门户代码的更多信息:
示例门户代码包含以下交付成果:
- Documents文件夹: 包含以下三个文档,用于描述源代码、版本以及如何将该版本部署到基于Web Server (IIS)的 Web 服务器
- Readme for WAPWrapper sample.docx – 此文档描述包装库(WAPWrapper.csproj) VS项目的源代码详细信息
- Readme for ContosoCloud sample (WAP version).docx –此文档描述示例Contoso门户(WAPContosoPortal.csproj) VS项目的源代码详细信息
- Readme for Deploying ContosoCloud sample (WAP version).docx –此文档描述示例Contoso门户的部署详细信息
- Source文件夹: 包含以下两个源代码文件夹
- WAPWrapper –此文件夹包含包装库(WAPWrapper.csproj) VS项目的源代码
- WAPSamplePortal –此文件夹包含示例Contoso 门户(WAPContosoPortal.csproj) VS项目的源代码
- 下载位置:您可以从以下TechNet Gallery站点下载文档和源文件。