Je m’amuse depuis peu avec Windows 10 IOT et un Raspberry Pi alors je me suis procuré un écran tactile pour améliorer mon expérience. Voici mon setup actuel:
- Raspberry Pi 3
- Rapsberry Pi 7” touch display
- Raspberry Pi Clear Case
- Windows 10 IOT Insider Edition
Pour faire fonctionner le tout, il faut simplement connecter le câble “display” (le gros gris) ainsi que les 3 petits fils sur le GPIO du Raspberry Pi!

Un petit test de Windows 10 IOT et l’écran. Tout fonctionne, l’écran et le tactile du premier coup!!

Le tout visé et connecté:

Le couvercle arrière refermé:

Voici le tout qui ce tient tout seul:

Mais lorsque le RPi redémarre dans le beau case, l’écran est inversé!!! Heureusement je ne suis pas le premier à qui cela arrive et il suffit de rajouter la ligne suivante dans le fichier de configuration:
lcd_rotate=2
Je retourne jouer avec l’Internet des objets…
Si 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!
Dans un de mes projets, j’utilise un site ASP.Net MVC pour communiquer avec Team Foundation Server (TFS) pour afficher des métriques/graphiques/rapports. Le site est hébergé sur le même serveur qui héberge TFS et lors de la publication il publie dans le fichier bin le fichier Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll à chaque fois, ce qui cause une erreur ASP.Net car la dll se trouve déjà sur le serveur.
Il est possible dans un projet ASP.Net MVC d’exclure des fichiers et répertoire en créant un fichier .wpp.targets. Celui-ci permet de définir les exclusions ainsi que la source/raison de l’exclusion.
Dans le cas qui m’intéresse, voici le mon fichier monprojet.wpp.targets:
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ExcludeFromPackageFiles Include="bin\Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll">
<FromTarget>monprojet.wpp.targets</FromTarget>
</ExcludeFromPackageFiles>
</ItemGroup>
</Project>
Donc vous pouvez facilement créer vos propre exclusions!
Bonne publication
En voulant bénéficier des nouveaux graphiques de tendances dans TFS 2013.4, je me suis rendu compte que la date du changement d’état n’était pas ajouter au template des items dans le template Scrum de TFS. Je devais me résoudre à prendre la date de modification, mais celle-ci fausse les résultats pour des items qui n’ont pas réellement changé depuis longtemps mais qui changeant une propriété (notamment la priorité lorsque l’on réordonne le backlog).
J’ai donc trouvé cet article qui expliquait les changements à apporter, mais ma version de TFS est en français, donc voici la version français à ajouter aux tâches, bogues et item du journal en souffrance (backlog item) dans la section <FIELDS></FIELDS>:
<FIELD name="Date de modification d'état" refname="Microsoft.VSTS.Common.StateChangeDate" type="DateTime">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
<WHENCHANGED field="System.State">
<SERVERDEFAULT from="clock" />
</WHENCHANGED>
</FIELD>
Voici la requête créé pour allez chercher les items dont l’état a été modifié dans les 4 dernières semaines:
Voici le graphique correspondant (noté qu’il n’y a pas beaucoup d’items puisque la date du changement d’état vient d’être incorporé):
Et sa configuration:
En espérant que cela a pu vous aider!
8. avril 2014
Gabriel
.Net , C# , Français
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”

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

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

Si vous avez des suggestions ou des bogues, ce qui est peu probable, visiter le site de support.
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…
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!
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!