Windows Azureのサービス開発における環境構築については、第2回の記事を参考にして、行ってください。本記事では、Visual Studio 2010を使用して開発内容を説明していきます。第2回で紹介したとおり、Visual Web Developer 2010 Expressでも開発可能です。以降、Visual Studioと表記しますので、適宜環境に合わせて読み替えてください。
Visual Studioを(Vista以降では管理者権限で)起動したらテンプレートからプロジェクトを生成します。メニューの「ファイル(F)」の「新しいプロジェクト…(P)」でダイアログが開きます。左のリストから「インストールされたテンプレート」の「Visual C#」を展開して、「Cloud」を選択します。中央リストに表示された「Windows Azure Project」を選んで、プロジェクト名を名前のテキストボックスに入力します。ここでは「GihyoiOSAzureSample1」とします。[OK]ボタンをクリックすると、次に[New Windows Azure Project]ダイアログが開きます。左のリストから「WCF Service Web Role」を選択して、[>]ボタンで追加して、[OK]ボタンでプロジェクトが生成されます(図1)。
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace DivinationWebRole.Entity
{
[DataContract]
public class Card
{
[DataMember(Name = "rank")]
public int Rank { get; set; }
[DataMember(Name = "desc")]
public string Description { get; set; }
}
}
Using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;
namespace DivinationWebRole.Service
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class DivineService
{
[OperationContract]
[WebGet(UriTemplate = "card/{zodiac}",
ResponseFormat = WebMessageFormat.Json)]
public Entity.Card DrawCard(string zodiac)
{
var random = new Random();
var card = new Entity.Card();
card.Rank = random.Next(10) + 1;
card.Description = "This is a sample " + zodiac + " Card.";
return card;
}
}
}