Vous développez une application pour smartphones et tablettes ? Vous avez besoin de stocker les données dans le cloud et de les exposer avec une API de type Services Web REST qui renvoie ses données en JSON ? Ce billet vous montre comment développer cela et l’héberger en quelques minutes.
Pour cela, on s’appuie sur une des nouvelles fonctionnalités de Windows Azure: les sites Web. J’ai recensé les principales ressources utiles à l’utilisation des nouvelles fonctionnalités de Windows Azure dans un billet récent: Comment bien démarrer avec les nouvelles fonctionnalités de Windows Azure.
En particulier, pour accéder aux nouvelles fonctionnalités de Windows Azure, rendez-vous sur ce billet: Comment accéder aux nouvelles fonctionnalités de Windows Azure ?
Plus précisément, les technologies utilisées ici seront:
- Visual Studio 2012 RC (1)
- ASP.NET MVC 4
- Entity Framework (code first)
- Windows Azure SQL Database
- Windows Azure Web Sites
Le but est de stocker en base de données le schéma de données suivant, et de l’exposer en services Web REST/JSON

Commençons, depuis Visual Studio.



Créer une première classe ToDoItem qui sera notre premier POCO (Plain Old C# Object).


Créer également une deuxième classe appelée Owner dans un fichier Owner.cs
Ajouter le code suivant dans la classe ToDoItem
public int ToDoItemId { get; set; }
public string Name { get; set; }
public bool IsComplete { get; set; }
public int OwnerId { get; set; }
public Owner Owner { get; set; }

Ajouter le code suivant dans la classe Owner:
public int OwnerId { get; set; }
public string Name { get; set; }

Ajoutez également une classe ToDoDb :

la faire hériter de DbContext dans le namespace System.Data.Entity:

Ajoutez le code suivant:
public DbSet<ToDoItem> ToDoItems { get; set; }
public DbSet<Owner> Owners { get; set; }

Dans la console, tapez le code suivant:

Cela a créé le fichier Configuration.cs dans le dossier Migrations

Dans la même console, taper la ligne suivante:


puis dans la même console



Compilez

Une erreur subsiste:

Error 1 Cannot convert lambda expression to type 'string' because it is not a delegate type D:\dev\SampleWebApi\SampleWebApi\Controllers\ToDoItemsController.cs 21 50 SampleWebApi
Vous pouvez la corriger simplement de la façon suivante:

Remplaçons également le contrôleur principal de l’interface utilisateur pour pouvoir manipuler également les données de façon interactive:



et un contrôleur également pour les Owners

Essayez localement:


Ajoutez Owner à l’URL pour pouvoir ajouter des responsables de tâches
En jouant un peu avec l’interface utilisateur, vous pouvez facilement avoir ce jeu de test:

Puis, pour tester l’API, il suffit d’aller à /api/ToDoItems et ouvrir le fichier .json dans un éditeur de texte:


Déployons maintenant cela dans Windows Azure.
On commence par créer un site Web Windows Azure depuis le portail http://manage.windowsazure.com
En bas à gauche, cliquer sur 




La création du site et de la base prend quelques secondes



de retour dans Visual Studio,









La publication dure quelques secondes
et voilà

(…)


Benjamin
(1) ASP.NET MVC 4 est également disponible pour Visual Studio 2010. On trouve par exemple dans les téléchargements MSDN ce type de package:
