Aug.03

Piloter sa maison ? C’est facile !

Note : cet article a été initialement publié en deux parties dans le magazine Programmez de Juillet/Août 2012 (n°154) et Septembre 2012 (n°155).

prgorammez 154

La domotique du latin « domos » (domicile) est l’ensemble des techniques et technologies qui permet de superviser et d’automatiser les services de l’habitat comme l’éclairage, le chauffage, la sécurité mais aussi la consommation de l’habitat, ainsi que les différents services de détente et de loisirs comme la diffusion sonore et vidéo, la téléphonie et l’informatique au sens large.

Ses possibilités permettent aujourd’hui de concevoir des habitats confortables, évolutifs, sûrs, autonomes et économes. Mariée à des technologies d’agents intelligents, la domotique pose les fondations de la maison intelligente et communicante.

Imaginez une maison à qui on parle et qui nous parle, qui enregistre votre émission favorite quand elle sait que vous êtes absent, qui rallume le chauffage quand vous rentrez le soir d’hiver, qui vous accueille avec votre playlist musicale du moment toutes lumières allumées, ou tout simplement vous prévient de prendre votre parapluie lorsque vous sortez et que la météo annonce un orage en prenant le soin d’éteindre les lumières, chauffages, volets, musique et TV à votre place. Rêves ? Non, une réalité !

Dev,HighTech,Domotique

Feb.09

SlightBox V2 – La version “mini”

Après un premier prototype d’une solution "Ambilight" maison développée avec des modules .NET Gadgeteer, la “SlightBox V2” est une version miniaturisée et beaucoup moins chère.

Rappel des épisodes précédents :

Pour rappel (voir l’article sur le fonctionnement de la V1), la SlightBox V1 est une box développée avec les modules .NET Gadgeteer uniquement dans le but servir d’interface USB/SPI pour le pilotage des bandes de leds LDP8806. Pour rendre la solution plus compacte et moins onéreuse,  nous allons utiliser une puce MCP2210 de Microchip qui n’est ni plus ni moins qu’une interface USB/SPI en une seule puce  !!

Dev,HighTech,.NET,SlightBox

Feb.09

SlightBox V1 : un système « Ambilight » avec C# et Gadgeteer

Cet article a été initialement publié dans le magazine Programmez! n°165 paru en Juillet/Aout 2013.

Programmez n°165

Inventée en 2002 par Phillips, la technologie Ambilight consiste à générer des effets lumineux autour de l’écran en fonction du contenu vidéo. Nous allons découvrir dans cet article comment développer notre propre système « Ambilight » en utilisant des modules « .NET Gadgeteer » et un peu de C#. Préparez Visual Studio, une perceuse et un fer à souder !

Dev,HighTech,.NET,SlightBox

Oct.22

A lap around .NET4.0 & Visual Studio 2010 Beta 2

schottgu

La disponibilité de la Beta 2 de Visual Studio 2010 et du .NET Framework 4.0 a été annoncé par Jason Zander, General Manager de Visual Studio ce lundi (19/10/2009) suivi de l’annonce de Scott Guthrie, General Manager de la division .Net chez MS Corp que j’ai eu la chance de rencontrer en Mars dernier à l’occasion du MIX09 à Las Vegas.

Parcourons ensemble ces nouvelles versions !

Dev,.NET,Workflow Foundation,WPF,visual studio,Azure

Mar.18

[Astuce] Deviner le type MIME d’un FileInfo

Depuis la nouvelle CTP du Live Framework vous avez remarqué qu’on était désormais « obligé » de passer le type MIME d’un fichier que l’on ajoute via la méthode DataEntryCollection.Add/AddAsync (voir mon post précédent).

Pour récupérer le type MIME d’un fichier, le plus simple est de regarder dans le HKEY_CLASSES_ROOT du registre pour récupérer la clé ayant pour nom l’extension et de regarder la valeur du « Content Type » :

image

Côté code, voici comment faire cela simplement :

A l’exécution contentType vaudra « image/jpeg », le type MIME d’un fichier .JPG !

Afin de faciliter nos développements, nous pouvons, à partir de ces deux lignes de code, créer une méthode d’extension sur la classe FileInfo. Voici son code :

De façon a pouvoir l’utiliser simplement de la manière suivante :

Vous remarquerez que si le type MIME n’est pas trouvé nous renverrons un « application/octet-stream« .

Bon développement 😉

Dev,.NET

Feb.21

[.NET 4.0] Introduction à MEF : Managed Extensibility Framework

image Bientôt disponible dans la nouvelle version de la plateforme .NET de Microsoft, le .NET 4.0 introduira le framework MEF actuellement disponible en code ouvert sur CodePlex.

MEF pour Managed Extensibilty Framework, que vous trouverez sous le namespace System.ComponentModel.Composition, est une librairie .NET facilitant le développement d’application extensible.

C’est le travail résultant de l’équipe « Application Framework Core »  responsable d’harmoniser les frameworks applicatifs (type WinForm, SL, WPF et ASP.NET) de la même façon que le fait l’équipe de la BCL (Base Class Library) au niveau le plus bas de .NET.

Développer avec MEF, comment ca marche ?

Aujourd’hui pour concevoir nos applications de façon extensible, nous sommes souvent obligé de développer notre propre système d’extention. L’arrivée, fin 2007, du .NET 3.5 a ouvert une brèche dans la mise à disposition d’un framework générique pour le développement de telle application. Le System.Addin (encore nommé MAF, Managed Addin Framework) met à disposition des mécanismes simplifiant la mise en place d’un système d’extension basé sur des AddIns. Je traiterai un peu plus bas dans cet article des différences entre MAF et MEF.

MEF offre quant à lui un mécanisme d’import/export assez original. Le concept est de marquer des classes, variables, propriétés ou méthode par l’attribut Export. Dans d’autre classes vous pouvez alors créer des propriétés marquées de l’attribut Import pour venir importer les classes, variables, propriétés ou méthodes exportés.

MEF n’est pas qu’un simple framework d’ IoC (Inversion de contrôle) bien qu’il propose des fonctionnalités similaires comme l’injection de dépendance (comme le fait aussi StuctureMap ou Unity). MEF met surtout le focus sur la découverte de composant et permet à votre application de se composer par elle-même et cela à l’exécution.

.NET

Feb.05

[VS Extensibility] Part 3 : Quelques interactions avec Visual Studio

Après avoir vu le fonctionnement d’un Add-In au sein de Visual Studio (voir part 1) et comment créer ses propres fenêtres « VS like » hébergeant nos UserControls .NET (voir part 2), nous allons voir dans cette 3ème partie quelques interactions possibles avec l’IDE.

C’est depuis notre objet DTE2 (le _applicationObject dans notre classe Connect) que nous avons la possibilité d’accéder à notre IDE depuis le code. Voyons tout cela plus détails avant d’illustrer quelques interactions avec la StatusBar, Propeties Window ou encore les Window Panes.

.NET,visual studio