C# et JSON

Si vous devez utiliser des données formatées avec le standard JSON, voici un truc simple pour démarrer (mais vous pouvez complexifier à votre guise ;)). J’utilise pour ce faire l’extension Web Essentials et le package NuGet Json.NET. Le fichier données JSON que j’utilise est celui-ci: Fichier exemple JSON (source).

Voici les étapes pour prendre les données JSON, générer les classes nécessaires et téléchargés les données et remplir ces nouvelles classes:

  • Installer l’extension Web Essentials
  • Créer une nouveau fichier de classe
  • Mettre dans le presse-papier un extrait ou l’ensemble des données JSON (Copier ou CTRL-C)
  • Cliquer-droit dans l’éditeur ou dans le menu EDITION/Collage Spécial et sélectionner “Coller le code JSON en tant que classes”

image

Ceci va créer des classes à partir du code JSON. Dans notre exemple, ceci donne les classes suivantes:

public class Rootobject
{
    public Items items { get; set; }
}

public class Items
{
    public Item[] item { get; set; }
}

public class Item
{
    public string id { get; set; }
    public string type { get; set; }
    public string name { get; set; }
    public float ppu { get; set; }
    public Batters batters { get; set; }
    public Topping[] topping { get; set; }
    public Fillings fillings { get; set; }
}

public class Batters
{
    public Batter[] batter { get; set; }
}

public class Batter
{
    public string id { get; set; }
    public string type { get; set; }
}

public class Fillings
{
    public Filling[] filling { get; set; }
}

public class Filling
{
    public string id { get; set; }
    public string name { get; set; }
    public float addcost { get; set; }
}

public class Topping
{
    public string id { get; set; }
    public string type { get; set; }
}

Par la suite, nous devons télécharger ce fichier depuis notre application pour afficher/traiter les données. Pour ce faire:

  • Ajouter le package NuGet Json.NET
  • Ajouter les usings suivants:
    • using Newtonsoft.Json;
      using System.Net.Http;
  • Utilisation de HttpClient et Json.Net pour extraire les données JSON et populer nos classes
    • private static async Task<Rootobject> GetData()
      {
          HttpClient client = new HttpClient();
          var response = await client.GetStringAsync("http://www.gabrielmongeon.com/public/blog/donuts.js");
          var root = JsonConvert.DeserializeObject<Rootobject>(response);
      
          return root;
      }

Voilà, vous avez une structure de données rempli avec des données provenant de JSON. Il ne reste plus qu’à trouver/créer une source de données et d’afficher/formater ces données dans votre application.

Bonne programmation

Politique de confidentialité pour Windows Store

Je connaissais le requis d’une politique de confidentialité pour le Windows Store (requis 4.1.1), mais lors de la publication de mon application elle me fut refusé sur la base que je devais absolument fournir cette politique car j’utilisais la connexion Internet. Donc même si vous ne récolté pas d’informations de vos utilisateurs, le simple d’être connecté requiert cette politique. C’est dommage que la validation de Visual Studio ne détecte pas ce problème et que ce soit plus tard lors de la soumission que cela est détecté.

La politique de confidentialité doit être disponible dans le “Settings charm” de l’application ainsi qu’un lien dans le Windows Store. Je me suis basé sur ce qu’a fait Jim dans ses applications (Voir plus bas pour un petit correctif) pour ajouter un lien dans mon application vers ma propre page web, si vous n’avez pas de site Internet vous pourriez utiliser gratuitement Azure.

image

Correctif pour le code de Jim

Il y a une petite erreur sur sa page, mais pas dans son projet exemple attaché à son blogue. Au point #5, le code aurait du se lire:

// Add the main call to the privacy policy
SettingsPane.GetForCurrentView().CommandsRequested += DisplayPrivacyPolicy;

Patiner sur le Windows Store

Après avoir fait une application similaire sur Windows Phone, je me suis amusé à faire une application similaire sur Windows 8: Patiner.

L’application permet de visualiser l’état des patinoires de l’ile de Montréal en naviguant sur la carte. C’est tout simple et c’est voulu ainsi, mais des améliorations sont déjà prévus dans les prochaines versions.

Les données proviennent de Patiner Montréal, qui offrent une excellent portail web et des liens vers des applications pour d’autres systèmes d’exploitation.

screenshot_02192014_200210

Si vous avez des suggestions ou des bogues, ce qui est peu probable, visiter le site de support.

On s’y remet?

Après près de 1 an sans activités, ce blogue est presque sur le respirateur. Un nouvel emploi, la petite famille et d’autres éléments m’on tenu à l’écart. Mais je vais essayer de remédier à cela:

  • J’ai mis à jour l’engin de blogue et corriger certains problèmes.
  • Changé le thème.

J’ai déjà quelques idées de blogues, alors dans quelques temps ils devraient apparaitre sur ce blogue.

À suivre…

Retour sur .NET Micro Framework et Gadgeteer à Alt.NET Montréal

logoFooter[1] Wow, une belle soirée: une audience attentive et intéressée. Voici quelques liens qui ont été discutés lors de la soirée:

Vous pouvez télécharger les fichiers et la présentation sous format zip ici et sur le site du groupe .Net Montréal.

J’ai oublié des autocollants Gadgeteer à la maison, alors si vous en voulez faites moi signe et on s’arrangera pour vous les envoyer!

Merci, si vous avez des questions n’hésitez pas à me contacter et j’ai hâte de voir vos projets!

.NET Micro Framework et Gadgeteer a Alt.NET Montréal

Le 25 février prochain je ferai une présentation intitulé .NET Micro Framework et .NET Gadgeteer: l’informatique embarqué à la portée de tous lors de la rencontre Alt.Net de Montréal. Je ferais un tour du Framework ainsi que de Gadgeteer à l’aide d’exemple: des trucs qui clignotent, bougent et donnent des informations utiles ;)

Si vous avez des projets que vous aimeriez montrer au groupe, ne vous gênez pas de les apportez, nous nous ferons un plaisir d’en discuter.

Au plaisir de vous y rencontrer!

Créer votre première application Services Mobile d’Azure

Il est très facile de créer votre première application Windows 8, Windows Phone 8 ou iOS avec les outils Services Mobile d’Azure. Dans ce billet je vais démontrer comment créer une application exemple “ToDo”. En fait, cela va vous prendre plus de temps lire ce billet que d’exécuter les étapes de celui-ci!

Loguer vous sur votre portail Windows Azure et rendez-vous dans la section Services Mobiles. Cliquer sur le lien Créer un service mobile.

image

Une fenêtre s’ouvre, entrez l’url, qui deviendra <monUrl>.azure-mobile.net. Vous indiquez si vous désirez créer une nouvelle base de données ou réutiliser une existante. Dans cet exemple nous allons en créer une. Finalement indiquez la région de votre service.

image

Puisque nous créons une nouvelle base de données, vous devez inscrire le nom, le serveur et l’utilisateur de cette nouvelle base de données.

image

Ensuite, attendez que la magie opère, et appuyer sur votre nouveau service.

image

Dans la page d’accueil du service, choisissez une plateforme, dans notre cas Windows Store pour une App Windows 8. Ensuite, dans la section Mise En Route, cliquer sur le lien Créer une application Windows Store.

image

À partir ce cette section, vous n’avez qu’à suivre les indications:

  1. Obtenez les outils, soit VS2012 Express pour Windows 8 et le SDK pour les Mobile Services pour vous permettre de modifier/exécuter l’application
  2. Créer une table TodoItem: ceci va créer une table dans la base de données que l’on a créé précédemment.
  3. Télécharger et exécuter l’application: sélectionnez la langue, soit C# ou JavaScript (moi je préfère la première option ;) ) et appuyez sur Télécharger.

image

Vous avez maintenant télécharger, sous format ZIP, votre application. Vous n’avez qu’à l’extraire, l’ouvrir dans VS2012 Express pour Windows 8 et l’exécuter(F5). Voilà, votre première App Windows 8 utilisant Azure comme base de données.

Vous avez pu remarquer que plusieurs options différentes s’offre à vous (plateforme, langage, base de données, connectez à votre App existante, etc.), il ne reste plus qu’à trouver quel sera votre App!

Bon développement dans le nuage!

Productivity Power Tools 2012

Les outils de productivités pour Visual Studio 2012 sont maintenant disponible. En plus des mêmes fonctionnalités que la version 2010, les nouveautés de cette version sont:

  • Les tâches rapides (Quick tasks)
  • Power Commands
  • L’impression couleur

Toutes les fonctionnalités peuvent être désactivés individuellement dans les options. Si vous ne les avez jamais essayer, ne vous gênez pas, cela pourrait augmenter votre productivités.

Bon développement!

SharePoint 2013 RTM

Microsoft a annoncé hier que les équipe d’Office et SharePoint ont remis la version 2013 RTM.

La disponibilité pour les clients Volume Licensing (VL) ainsi que ceux avec un compte MSDN ou Technet devrait être disponible d’ici la mi-novembre (Juste à temps pour le SharePoint Conference). La disponibilité générale serait d’ici le début décembre.

Office 365 devrait aussi être mis à jour à mis novembre pour profiter des nouvelles fonctionnalités.

Quoi de neuf?

J’ai récemment croisé une vieille connaissance qui m’a demandé sur quoi que je travaillais présentement, ce qui m’a inspiré ce billet. Inquiété vous pas, je n’étalerai pas ma vie personnelle!

Dans le jour, je travaille comme développeur chez Alcero:

Dans mes temps libre:

  • Je fini mon dernier cours de maitrise en génie logiciel et je cherches mon sujet de mon essai.
  • Je mets à jour mon application Windows Phone Sports MTL.
  • J’ai installé Windows 8 sur un vieux laptop et je m’habitue à l’interface. La prochaine étape va être de faire une app.
  • En prévision de mon app Win8, j’ai commencé à regarder les nouveautés Windows Azure et faire du rattrapage depuis la dernière fois que j’ai joué avec.

Et vous, vous travaillez sur quoi?