SlideShare une entreprise Scribd logo
1  sur  22
palais des
congrès
Paris




7, 8 et 9
février 2012
.NET Microframework, les
joies de l'électronique et
du code pour tous
(EMB105)
2010-02-07
Laurent Ellerbach
Audience Marketing Director
Microsoft Central and Eastern Europe
Agenda
  .NET Microframework

  Démo « Hello Led »

  Démo « Mon premier serveur
  HTTP »

  Démo « Gérer mon arrosage
  automatique »

  Démo « Eclairer ma ville Lego »
.NET Micro Framework

 .NET pour les processeurs à bas      .NET Microframework pour
 coûts
 • Directement sur du métal
 • Petite et configurable empreinte
 • ARM7 @ 20-40 Mhz
 • ARM9 @ 200 Mhz
 • ~ 300 Ko de RAM
 • 1 Mo de mémoire Flash/ROM

 Compatibilité .NET
 • Différentes versions
 • Sélections des classes
   clientes
 • Support spécifique pour
   l’embarqué
 • Un jeu de classe limité mais
   très riche
NETMF Modèle Open Source

  Open Source collaboratif
  Release History
    V. 4.0 (Nov 2009) entièrement Microsoft

    V. 4.1 (Juin 2010) petites contributions

     communautaires
    V 4.2 (Eté 2011) > 30% contributions
     communautaires
    Site hébergé sur un domaine non-Microsoft –
     netmf.com
    Partenaires communautaires

       tinyclr.com, netduino.com

  Portages de Atmel, NXP, Renasas, TI, ST Micro,
  …
Partial implementation
Namespaces                                 Same as .NET Fx

  System.Windows            System.Windows.Controls
     Window              Border                ListView

System.Windows.Input     Button              RadioButton             System.Data
   Keyboard/GPIO       CheckBox              ScrollViewer
      Mouse              Panel                StackPanel             System.XML

       Stylus            Image                 TextBox                 Reader
                        ListBox               UIElement                 Writer
   System.Forms

  System.Drawing                               System
                       Collections          Globalization            Diagnostics
System.Service.Model
                        Security              Reflection              Runtime
  DPWS Discovery                                                     Remoting
                       Threading                   IO               Serialization
  DPWS Eventing
                       Resources              NET/HTTP              Compiler Svcs
 DPWS Addressing
                                           Managed Drivers
   DPWS Transfer
                       SerialPort          I2C/SPI        A/D         Power Mgmt
  Proxy Discovery
                          USB               GPIO            PWM        Watchdog
Par où commencer?
  1 board tel que Netduino
    Prendre la version
     Netduino Plus avec suport
     réseau et SD pour 50€
     environ
  Le SDK
    Gratuit                     Processeur et mémoire
  Visual Studio Express (C#)     Atmel 32-bit microcontroller
    Gratuit                     Vitesse : 48MHz, ARM7
                                 Espace de stockage pour le
                                 code: 64 KB, sans réseau: 128
…et surtout une bonne idée       KB
pour construire quelque chose    RAM: 28 KB, sans réseau: 60
de sympa                        KB
Mon premier projet : Hello Led

Un peu de Hard 

  Tout ce qu’il y a connaître : U = R x I
  Utiliser une led sur un output pin (3,3V sur
  Netduino)
  1 led = 2 V environ, courant 0,02A
  R = (3,3 – 2)/0,02 = 65 Ohms
Plus de Hard

  Réutilisation d’un
  capteur compte tour
  sur un vieux disque
  dur d’il y a 15 ans 
  Faire clignoter la led
  quand le capteur de
  lumière est obturé       2V (red)    Digital IO (yellow)




                                      Ground (black)
Example d’entrée analogique

  Capteur de lumière agit
  comme une résistance 1M Ω
  (noir complet) à 100 Ω
  (lumière intense)
  R = √(1M x 100) = 10K Ω
  Entrée analogique =         +3.3V
  3.3/(1+R/RL)
                               10KΩ    R
  Varie de 0.0323V (lumière
  intense) à 3.23V (noir)                   Entrée
                                            analogique


                                       RL

                              Ground
Mon premier serveur Web
Implémenté un serveur Web
   Partir de l’exemple Web Server

 Comment ça fonctionne
   1 thread par protocole = 1 pour http
   1 handler pour processer toutes les requêtes (GET et POST)
   1 fonction pour processer GET
   1 fonction pour processer POST
   1 fonction pour retourner un fichier du stockage (par morceau car
   la taille des buffers est limitée)
   1 fonction d’upload de fichier vers le stockage (par morceau car
   la taille des buffers est limitée)

   Plein d’autres fonctions pour faire fonctionner le tout
   Très bon exemple complet qui implémente beaucoup de bonnes
   pratiques
Simplifier le serveur Web
  Enlever le code lié à https
  Enlever le code lié à POST si GET uniquement utilisé
  Enlever le code lié au transfère de fichier si non utilisé
  Enlever le code lié à la gestion des répertoires et stockage
  si pas besoin d’accès aux fichiers
  Enlever ce genre de choses 

  Ajouter une fonction qui permet de lire les paramètres
  passer en URL
  Ajouter du code pour gérer les pages en GET
  Ajouter du code pour gérer vos propres pages
Gérer mon arrosage
automatique
Comment ça marche?

                                  Netduino




                        http
  Client utilisant un
  simple navigateur
                                           2 Pages pour gérer le
                                           calendrier et la
                                           programmation
                                          1 Page pour ouvrir/fermer
                                          les arroseurs
                                           1 Page pour gérer la
                                           programmation
                               Timer pour lancer les arrosages
Illuminer ma ville Lego
Comment ça marche ?
  Web Server avec
                           Netduino
  pages ASP.NET




          http      http




                                  Pour allumer/éteindre
                                  les led
 Client utilisant
                                  Page pour retourner le
 un simple
                                  paramrétrage et l’état
 navigateur
Trucs et astuces
  Try catch partout…
  Les buffers sont limités (1024 in most small ARM)
  System.Threading.Thread.Sleep(100);
  Compromis entre joli code et code efficace: la taille, ça compte
  La sécurité, c’est important, à prendre en compte dès le design
  U=RI
   if (Microsoft.SPOT.Hardware.SystemInfo.IsEmulator)
             strDefaultDir = "WINFS";
        else
             strDefaultDir = "SD";
  localhost:81 utilisé par l’émulateur pour un serveur web
Resources
  SDK download: http://netmf.codeplex.com/releases/view/52341
  .NET Microframework sources: http://netmf.codeplex.com/
  Visual Studio Express:
  http://www.microsoft.com/visualstudio/en-us/products/2010-
  editions/express
  Netduino: http://www.netduino.com/

  Blogs et liens utiles:
    http://www.netmf.com
    http://blogs.msdn.com/netmf

    http://blogs.msdn.com/netmfteam

    http://www.tinyclr.com/
    http://nerduino.wordpress.com/

    http://www.ghielectronics.com/downloads/FEZ/Beginners%2
     0guide%20to%20NETMF.pdf
    http://www.ghielectronics.com/catalog/category/265/
QUESTIONS

Laurent Ellerbach
laurelle@microsoft.com
http://blogs.msdn.com/laurelle
Pour aller plus loin

                                               Prochaines sessions des Dev Camps
  Chaque semaine, les                            10
                                                          Live     Open Data - Développer des applications riches avec le
                                               février
  DevCamps                                      2012

                                                 16
                                                         Meeting   protocole Open Data


  ALM, Azure, Windows Phone, HTML5, OpenData   février
                                                          Live
                                                         Meeting
                                                                   Azure series - Développer des applications sociales sur
                                                                   la plateforme Windows Azure
                                                2012
  http://msdn.microsoft.com/fr-fr/devcamp
                                                 17
                                                          Live     Comprendre le canvas avec Galactic et la librairie
                                               février
                                                         Meeting   three.js
                                                2012

  Téléchargement, ressources                     21
                                               février
                                                          Live     La production automatisée de code avec CodeFluent
                                                         Meeting   Entities
  et toolkits : RdV sur MSDN                    2012

                                               2 mars     Live     Comprendre et mettre en oeuvre le toolkit Azure pour
  http://msdn.microsoft.com/fr-fr/              2012     Meeting   Windows Phone 7, iOS et Android

                                               6 mars     Live
                                                                   Nuget et ALM
                                                2012     Meeting

  Les offres à connaître                       9 mars
                                                2012
                                                          Live
                                                         Meeting
                                                                   Kinect - Bien gérer la vie de son capteur


         90 jours d’essai gratuit de Windows   13 mars
                                                2012
                                                          Live
                                                         Meeting
                                                                   Sharepoint series - Automatisation des tests

         Azure                                 14 mars    Live     TFS Health Check - vérifier la bonne santé de votre
          www.windowsazure.fr                   2012     Meeting   plateforme de développement

                                               15 mars    Live     Azure series - Développer pour les téléphones, les
                                                2012     Meeting   tablettes et le cloud avec Visual Studio 2010
         Jusqu’à 35% de réduction sur Visual   16 mars    Live     Applications METRO design - Désossage en règle d'un
         Studio Pro, avec l’abonnement MSDN     2012     Meeting   template METRO javascript

                                               20 mars    Live     Retour d'expérience LightSwitch, Optimisation de
          www.visualstudio.fr                   2012     Meeting   l'accès aux données, Intégration Silverlight

                                               23 mars    Live     OAuth - la clé de l'utilisation des réseaux sociaux dans
                                                2012     Meeting   votre application

Contenu connexe

En vedette

Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7
Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7
Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7Microsoft
 
Metode penelitian
Metode penelitianMetode penelitian
Metode penelitianstiemb
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 
Exchange @ The Core with CTE Solutions
Exchange @ The Core with CTE SolutionsExchange @ The Core with CTE Solutions
Exchange @ The Core with CTE SolutionsCTE Solutions Inc.
 
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...Microsoft
 
Create Account
Create AccountCreate Account
Create Accountqoffice123
 

En vedette (9)

Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7
Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7
Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7
 
Metode penelitian
Metode penelitianMetode penelitian
Metode penelitian
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 
Exchange @ The Core with CTE Solutions
Exchange @ The Core with CTE SolutionsExchange @ The Core with CTE Solutions
Exchange @ The Core with CTE Solutions
 
Gambar jeratan
Gambar jeratanGambar jeratan
Gambar jeratan
 
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
 
Laporan rajut zhie
Laporan rajut zhieLaporan rajut zhie
Laporan rajut zhie
 
Daftar
DaftarDaftar
Daftar
 
Create Account
Create AccountCreate Account
Create Account
 

Similaire à .NET Microframework, les joies de l'électronique et du code pour tous

Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Microsoft
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Microsoft
 
Fast and Furious XAML Apps!
Fast and Furious XAML Apps!Fast and Furious XAML Apps!
Fast and Furious XAML Apps!Microsoft
 
Techdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft SpeechTechdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft Speechsputier
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Microsoft
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Microsoft
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightDéveloppement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightMicrosoft
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeMicrosoft
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNukeMicrosoft
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012Cyril P
 
De A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée donnéesDe A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée donnéesMicrosoft
 
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Microsoft
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisationSébastien Letélié
 
ALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et GadgeteerALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et GadgeteerGabriel Mongeon
 

Similaire à .NET Microframework, les joies de l'électronique et du code pour tous (20)

Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
 
Fast and Furious XAML Apps!
Fast and Furious XAML Apps!Fast and Furious XAML Apps!
Fast and Furious XAML Apps!
 
Techdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft SpeechTechdays 2012 - Tout sur Microsoft Speech
Techdays 2012 - Tout sur Microsoft Speech
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightDéveloppement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNuke
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012
 
De A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée donnéesDe A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée données
 
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisation
 
ALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et GadgeteerALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et Gadgeteer
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

.NET Microframework, les joies de l'électronique et du code pour tous

  • 1. palais des congrès Paris 7, 8 et 9 février 2012
  • 2. .NET Microframework, les joies de l'électronique et du code pour tous (EMB105) 2010-02-07 Laurent Ellerbach Audience Marketing Director Microsoft Central and Eastern Europe
  • 3. Agenda .NET Microframework Démo « Hello Led » Démo « Mon premier serveur HTTP » Démo « Gérer mon arrosage automatique » Démo « Eclairer ma ville Lego »
  • 4. .NET Micro Framework .NET pour les processeurs à bas .NET Microframework pour coûts • Directement sur du métal • Petite et configurable empreinte • ARM7 @ 20-40 Mhz • ARM9 @ 200 Mhz • ~ 300 Ko de RAM • 1 Mo de mémoire Flash/ROM Compatibilité .NET • Différentes versions • Sélections des classes clientes • Support spécifique pour l’embarqué • Un jeu de classe limité mais très riche
  • 5. NETMF Modèle Open Source Open Source collaboratif Release History  V. 4.0 (Nov 2009) entièrement Microsoft  V. 4.1 (Juin 2010) petites contributions communautaires  V 4.2 (Eté 2011) > 30% contributions communautaires  Site hébergé sur un domaine non-Microsoft – netmf.com  Partenaires communautaires  tinyclr.com, netduino.com Portages de Atmel, NXP, Renasas, TI, ST Micro, …
  • 6. Partial implementation Namespaces Same as .NET Fx System.Windows System.Windows.Controls Window Border ListView System.Windows.Input Button RadioButton System.Data Keyboard/GPIO CheckBox ScrollViewer Mouse Panel StackPanel System.XML Stylus Image TextBox Reader ListBox UIElement Writer System.Forms System.Drawing System Collections Globalization Diagnostics System.Service.Model Security Reflection Runtime DPWS Discovery Remoting Threading IO Serialization DPWS Eventing Resources NET/HTTP Compiler Svcs DPWS Addressing Managed Drivers DPWS Transfer SerialPort I2C/SPI A/D Power Mgmt Proxy Discovery USB GPIO PWM Watchdog
  • 7. Par où commencer? 1 board tel que Netduino  Prendre la version Netduino Plus avec suport réseau et SD pour 50€ environ Le SDK  Gratuit Processeur et mémoire Visual Studio Express (C#) Atmel 32-bit microcontroller  Gratuit Vitesse : 48MHz, ARM7 Espace de stockage pour le code: 64 KB, sans réseau: 128 …et surtout une bonne idée KB pour construire quelque chose RAM: 28 KB, sans réseau: 60 de sympa  KB
  • 8. Mon premier projet : Hello Led 
  • 9. Un peu de Hard  Tout ce qu’il y a connaître : U = R x I Utiliser une led sur un output pin (3,3V sur Netduino) 1 led = 2 V environ, courant 0,02A R = (3,3 – 2)/0,02 = 65 Ohms
  • 10. Plus de Hard Réutilisation d’un capteur compte tour sur un vieux disque dur d’il y a 15 ans  Faire clignoter la led quand le capteur de lumière est obturé 2V (red) Digital IO (yellow) Ground (black)
  • 11. Example d’entrée analogique Capteur de lumière agit comme une résistance 1M Ω (noir complet) à 100 Ω (lumière intense) R = √(1M x 100) = 10K Ω Entrée analogique = +3.3V 3.3/(1+R/RL) 10KΩ R Varie de 0.0323V (lumière intense) à 3.23V (noir) Entrée analogique RL Ground
  • 13. Implémenté un serveur Web Partir de l’exemple Web Server Comment ça fonctionne 1 thread par protocole = 1 pour http 1 handler pour processer toutes les requêtes (GET et POST) 1 fonction pour processer GET 1 fonction pour processer POST 1 fonction pour retourner un fichier du stockage (par morceau car la taille des buffers est limitée) 1 fonction d’upload de fichier vers le stockage (par morceau car la taille des buffers est limitée) Plein d’autres fonctions pour faire fonctionner le tout Très bon exemple complet qui implémente beaucoup de bonnes pratiques
  • 14. Simplifier le serveur Web Enlever le code lié à https Enlever le code lié à POST si GET uniquement utilisé Enlever le code lié au transfère de fichier si non utilisé Enlever le code lié à la gestion des répertoires et stockage si pas besoin d’accès aux fichiers Enlever ce genre de choses  Ajouter une fonction qui permet de lire les paramètres passer en URL Ajouter du code pour gérer les pages en GET Ajouter du code pour gérer vos propres pages
  • 16. Comment ça marche? Netduino http Client utilisant un simple navigateur 2 Pages pour gérer le calendrier et la programmation 1 Page pour ouvrir/fermer les arroseurs 1 Page pour gérer la programmation Timer pour lancer les arrosages
  • 18. Comment ça marche ? Web Server avec Netduino pages ASP.NET http http Pour allumer/éteindre les led Client utilisant Page pour retourner le un simple paramrétrage et l’état navigateur
  • 19. Trucs et astuces Try catch partout… Les buffers sont limités (1024 in most small ARM) System.Threading.Thread.Sleep(100); Compromis entre joli code et code efficace: la taille, ça compte La sécurité, c’est important, à prendre en compte dès le design U=RI if (Microsoft.SPOT.Hardware.SystemInfo.IsEmulator) strDefaultDir = "WINFS"; else strDefaultDir = "SD"; localhost:81 utilisé par l’émulateur pour un serveur web
  • 20. Resources SDK download: http://netmf.codeplex.com/releases/view/52341 .NET Microframework sources: http://netmf.codeplex.com/ Visual Studio Express: http://www.microsoft.com/visualstudio/en-us/products/2010- editions/express Netduino: http://www.netduino.com/ Blogs et liens utiles:  http://www.netmf.com  http://blogs.msdn.com/netmf  http://blogs.msdn.com/netmfteam  http://www.tinyclr.com/  http://nerduino.wordpress.com/  http://www.ghielectronics.com/downloads/FEZ/Beginners%2 0guide%20to%20NETMF.pdf  http://www.ghielectronics.com/catalog/category/265/
  • 22. Pour aller plus loin Prochaines sessions des Dev Camps Chaque semaine, les 10 Live Open Data - Développer des applications riches avec le février DevCamps 2012 16 Meeting protocole Open Data ALM, Azure, Windows Phone, HTML5, OpenData février Live Meeting Azure series - Développer des applications sociales sur la plateforme Windows Azure 2012 http://msdn.microsoft.com/fr-fr/devcamp 17 Live Comprendre le canvas avec Galactic et la librairie février Meeting three.js 2012 Téléchargement, ressources 21 février Live La production automatisée de code avec CodeFluent Meeting Entities et toolkits : RdV sur MSDN 2012 2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour http://msdn.microsoft.com/fr-fr/ 2012 Meeting Windows Phone 7, iOS et Android 6 mars Live Nuget et ALM 2012 Meeting Les offres à connaître 9 mars 2012 Live Meeting Kinect - Bien gérer la vie de son capteur 90 jours d’essai gratuit de Windows 13 mars 2012 Live Meeting Sharepoint series - Automatisation des tests Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre www.windowsazure.fr 2012 Meeting plateforme de développement 15 mars Live Azure series - Développer pour les téléphones, les 2012 Meeting tablettes et le cloud avec Visual Studio 2010 Jusqu’à 35% de réduction sur Visual 16 mars Live Applications METRO design - Désossage en règle d'un Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript 20 mars Live Retour d'expérience LightSwitch, Optimisation de www.visualstudio.fr 2012 Meeting l'accès aux données, Intégration Silverlight 23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans 2012 Meeting votre application