Source personnalisée de NuGet pour MSBuild

NuGet-Logo-2Si vous avez une source de données personnalisée pour vos package NuGet et que vous utiliser MSBuild pour vos solutions, MSBuild ne sera pas en mesure de restaurer ces packages.

Pour y arriver sans ajouter des fichiers de configuration spécifiques à vos solutions .Net, il vous suffit d’ajouter un fichier NuGetDefaults.config dans le répertoire %ProgramData%\NuGet\NuGetDefaults.config de votre serveur de build. Ce fichier sera ouvert à chaque build nécessitant la restauration de packages et permettra de voir vos sources de packages NuGet d’entreprises ou personnels.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="Ma source de packages Nuget" value=https://masupersource.com/F/MonFeed />
    </packageSources>
</configuration>

Merci à cette page de MyGet pour l’info!

Bonne intégration continue!

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