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

image

 

Commençons, depuis Visual Studio.

image

image

image

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

image

image

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; }

image

 

Ajouter le code suivant dans la classe Owner:

public int OwnerId { get; set; }
public string Name { get; set; }

 

image

 

Ajoutez également une classe ToDoDb :

image

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

image

Ajoutez le code suivant:

public DbSet<ToDoItem> ToDoItems { get; set; }
public DbSet<Owner> Owners { get; set; }

 

image

 

Dans la console, tapez le code suivant:

enable-migrations

 

image

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

image

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

add-migration Initial

image

image

puis dans la même console

update-database -Verbose

image

 

image

image

 

Compilez

image

Une erreur subsiste:

image

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:

image

 

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

image

image

image

et un contrôleur également pour les Owners

image

 

Essayez localement:

image

image

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:
image

 

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

image

 

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 image

 

image


image

image

image

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

 

image

image

image

 

de retour dans Visual Studio,

image

image

image

image

image

image

image

image

image

La publication dure quelques secondes

 

et voilà

image

(…)

 

image

 

Smile

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:

image