Utiliser RIA Services & le Table Storage d’Azure

MAI29

Lors d’un Azure Camp organisé par ZeCloud, j’ai montré comment exposer le Table Storage de Windows Azure via un WCF Data Services, cela nous permettait d’avoir une exposition de nos données via OData. Vous pouvez retrouver la démonstration sur le codeplex de ZeCloud, et me demander plus d’infos au prochain Azure Camp

 

Dans la même idée, je me suis aperçu que la dernière version de RIA Services proposait quelque chose du même genre, via son toolkit, on va donc voir comment le mettre en place !

 

Commençons déjà par créer un projet de type Cloud, ainsi qu’une application Silverlight avec un site web et WCF RIA Services. Il nous faut ensuite ajouter les références, par NuGet c’est plus facile

image

 

 

Maintenant, il nous faut créer notre Model, pour cela, on va prendre un cas très simple :

 

public class Person : TableEntity
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    /// <summary>
    /// The property is set to be mentioned explicitly in the DataForm ...
    /// ONLY FOR THE DEMO
    /// </summary>
    public string MyPartitionKey
    {
        get
        {
            return base.PartitionKey;
        }
        set
        {
            base.PartitionKey = value;
        }
    }
}

On peut voir déjà quelques différences, premièrement on n’hérite pas de TableStorageEntity, mais de TableEntity qui hérite lui même de TableServiceEntity, et la deuxième c’est que pour le cas de la démo, j’ai voulu tester plusieurs PartitionKey, j’ai donc réexposé via une autre propriété celle ci afin qu’elle apparaisse dans mon DataForm Silverlight.

 

Maintenant, voyons notre contexte de données pour notre Table Storage

public class AzureServiceContext : TableEntityContext
{      
    public AzureServiceContext() : 
        base(RoleEnvironment
            .GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"))
    {
    }

    public TableEntitySet<Person> People
    {
        get { return base.GetEntitySet<Person>(); }
    }
}

 

Donc de même ici, on peut voir quelques différences, déjà au niveau de l’héritage, ici on hérite de TableEntityContext qui hérite lui même de TableServiceEntity.

De plus, on peut voir que l’on ne gère pas non plus la création des tables dans le Table Storage, vu que le toolkit de RIA Services s’en occupe pour nous.

Il ne vous reste plus qu’à créer votre Domain Service de façon classique, il faut juste renseigner aucun contexte.

image

 

Maintenant, implémentons notre DomainService

[EnableClientAccess()]
public class TSDomainService : TableDomainService<AzureServiceContext>
{

    protected override string PartitionKey
    {
        get
        {
            return null;
        }
    }

    public IQueryable<Person> GetPeople()
    {
        return EntityContext.People;
    }

    public void AddPerson(Person person)
    {
        EntityContext.People.Add(person);
    }

    public void DeletePerson(Person person)
    {
        EntityContext.People.Delete(person);
    }

    public void UpdatePerson(Person person)
    {
        EntityContext.People.Update(person);
    }
}

On a dorénavant la possibilité de faire un TableDomainService pour englober notre contexte Azure, de même les méthodes standards de CRUD sont facilitées.

Voyons maintenant la PartitionKey, par défaut  le toolkit met la PartitionKey à la valeur du nom du Domain Service, pour éviter qu’elle soit définit ainsi, il suffit de surcharger la PartitionKey, cependant cela veut dire qu’il vous faudra la spécifier à chaque fois, ce qui est mieux si vous voulez une bonne structure de donnée dans votre Table Storage

 

Et voilà le résultat dans un DataForm Silverlight

image

 

Vous pouvez retrouver les sources de la solution ici


Remonter

ZeCloud : Prochain Azure Camp le 22 novembre

NOVE5

ZeCloud, ça continue ! Après le dernier Azure Camp chez Microsoft, on remet ça même endroit, même planning ou presque  !

Donc si vous avez loupé les nombreuses annonces de la PDC, ou que vous vouliez simplement découvrir Azure, ou même continuer à travailler sur cette technologie, les Azure Camp sont fait pour vous !

 

L’Azure Camp aura lieu de 15h à 18h ( et au delà pour ceux qui veulent)
Thomas Conté Architecte Evangéliste sur la plateforme Windows Azure sera présent.

 

Le planning est donc le suivant :

15h : Conférence d’introduction: Présentation des nouveautés de la plateforme Azure

15h30 : Brainstorming entre les participants pour décider des projets.

16h à 18h : Coding Party : A la fin, le but est d’avoir un début d’application (ou une appli complète) qui compile et dont on peut faire une démo.

Après 18h: Ce sera l’occasion d’échanger entre les participants, autour de boissons fraiches.

Donc ne manquez pas cet Azure Camp ce sera  l’occasion de démarrer de nouveaux projets, et de partager les retours d’expériences des projets précédents. Et quelques surprises seront au rendez vous.

Un pc portable au minimum pour 2 personnes est requis avec les outils nécessaires pour développer sur Azure.

 

Pour rappel, lors de la dernière session, nous avons commencé l’application OuSuisJe que vous pouvez retrouver sur codeplex à laquelle vous pouvez participer à ce prochain Azure Camp , ou alors venir avec une nouvelle idée de projet!

 

L'adresse du Campus Microsoft :

39 quai du Président Roosevelt

92130 Issy les moulineaux France

Pour se rendre chez Microsoft c’est très simple, c’est juste à coté d’une gare de  RER, du tram et du métro, retrouvez toutes les informations pour vous y rendre sur leur site.

 

Pour s’inscrire un simple mail suffit à Azurecamp@zecloud.fr avec vos  nom et prénom, ou un message sur Twitter.


Remonter

ZeCloud : Une rentrée chez Microsoft

OCTO1

 

Bien que la rentrée des classes soit fini depuis quelques temps, c’est maintenant au tour de la communauté ZeCloud de rentrée ! Même si on me fait signe qu’en fait nous n’étions pas totalement en vacances !

Alors ZeCloud pour les nouveaux késako ? C’est donc déjà un site web http://zecloud.fr mais bon ce n’est pas que ça ! C’est une communauté Microsoft autour de la plateforme Azure. En plus du blog que vous êtes déjà tous allé voir, nous essayons de nous réunir tous les mois afin de faire ce qu’on appelle communément entre nous un Azure Camp.

Un Azure Camp consiste à faire une mini conférence autour des nouveautés d’Azure et présenter le groupe aux nouveaux arrivants. Ensuite viens l’heure de la Coding Party, nous travaillons donc tous en équipe de deux minimum sur un projet ou plusieurs pour au final les publier sur la page codeplex du site : http://zecloud.codeplex.com C’est donc des projets Open Source et sur Azure. Voilà qui peut donner des idées à certains!

 

Donc après ce petit interlude, je vous ais dit que c’est la rentrée, et qui dit nouvelle année, dit nouveaux locaux et nouveaux horaires ! Cette année se sera donc dans les locaux de Microsoft à Issy les Moulineaux. Le prochain Azure Camp se tiendra donc le 18 octobre de 15h à 18h.

Au programme :

15h : Conférence d’introduction : Présentation des nouveautés de la plateforme Azure.

15h30 : Brainstorming entre les participants du projet (donc vous)

16h à 18h : Coding Party, avec une ou plusieurs appli bien commencée voir finie !

18h : On improvisera, mais ce sera l’occasion d’échanger entre les participants (Azure Beer peut être bien)

 

Bon bien entendu tout le monde ne peut pas venir, il y a certaines conditions bien entendu.

  • Avoir entre 7 et 107 ans
  • Connaître un minimum C#
  • 1 PC pour 2 au minimum avec les derniers outils Azure installés.
  • S’inscrire

Alors comment s’inscrire, c’est simple, soit vous m’envoyer un mail avec votre nom / prénom, soit vous passez par le formulaire de contact qui se trouve sur ce site : http://blog.woivre.fr/?page_id=411


Remonter

© Wilfried Woivré, tous droits réservés mai 2018