﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tag SDK - Constellation</title>
	<atom:link href="https://developer.myconstellation.io/tag/sdk/feed/" rel="self" type="application/rss+xml" />
	<link>https://developer.myconstellation.io/tag/sdk/</link>
	<description>Votre plateforme d&#039;interconnexion</description>
	<lastBuildDate>Thu, 13 Jun 2019 13:58:18 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.11</generator>

<image>
	<url>https://developer.myconstellation.io/wp-content/uploads/2016/02/256x256-e1457476015859.png</url>
	<title>Tag SDK - Constellation</title>
	<link>https://developer.myconstellation.io/tag/sdk/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Constellation SDK 1.8.6 : extension asynchrone et fin du support pour Visual Studio 2012 et 2013</title>
		<link>https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/</link>
					<comments>https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Thu, 13 Jun 2019 13:58:01 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6330</guid>

					<description><![CDATA[<p>Peu de temps après la version 1.8.5 annonçant le support de Visual Studio 2019, le SDK sort une nouvelle mise à jour, la version 1.8.6. Extension Visual Studio « Asynchrone » La grande nouveauté de cette mise à jour est la réécriture</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/">Constellation SDK 1.8.6 : extension asynchrone et fin du support pour Visual Studio 2012 et 2013</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Peu de temps après <a href="/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/">la version 1.8.5 annonçant</a> le support de Visual Studio 2019, le SDK sort une nouvelle mise à jour, la version 1.8.6.</p>
<h3>Extension Visual Studio « Asynchrone »</h3>
<p>La grande nouveauté de cette mise à jour est la réécriture du « package » Visual Studio en « package asynchrone ».</p>
<p>La notion d&rsquo;extension (ou package) « asynchrone » a été introduite depuis la version 2015 de Visual Studio (14.0) afin de charger les extensions non plus au démarrage de VS de manière séquentielle mais de façon asynchrone, sans bloquer ou ralentir le démarrage de l&rsquo;IDE.</p>
<p>L&rsquo;extension Visual Studio du SDK Constellation a un temps d&rsquo;initialisation extrêmement rapide et est restée depuis sa première version en Mars 2015 un package « classique » et non asynchrone.</p>
<p>Seulement depuis les dernières versions de Visual Studio, les extensions « non-asynchrones » sont désormais considérées comme obsolètes et sont/seront automatiquement désactivées dans l&rsquo;IDE :</p>
<p><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning.png"><img loading="lazy" class="alignnone wp-image-6331 aligncenter colorbox-6330" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning.png" alt="" width="450" height="44" srcset="https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning.png 960w, https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning-300x29.png 300w, https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning-768x75.png 768w" sizes="(max-width: 450px) 100vw, 450px" /></a></p>
<p>C&rsquo;est pourquoi la roadmap concernant le SDK a été accéléré afin de porter le SDK dans une extension de type « asynchrone ».</p>
<p>Le SDK n&rsquo;est donc plus initialisé au démarrage de Visual Studio, mais en tache de fond afin de se conformer aux nouvelles exigences en matière de performance et UX de l&rsquo;IDE de Microsoft.</p>
<h3>Fin du support pour Visual Studio 2012 et 2013</h3>
<p>La migration vers cette notion de « package asynchrone » (introduite depuis VS2015) met de côté Visual Studio 2012 et Visual Studio 2013.</p>
<p>Comme le support officiel de Microsoft pour ces deux versions de l&rsquo;IDE a déjà pris fin, le SDK Constellation ne supportera plus non plus ces deux versions.</p>
<p>Ainsi, à compter de cette version du SDK 1.8.6, nous supportons officiellement Visual Studio 2015 (14.x), VIsual Studio 2017 (15.x) et  le nouveau Visual Studio 2019 (16.x)</p>
<p>Pour installer ou mettre à jour votre SDK, rien de plus simple, lancez simplement le Web Platform Installer et sélectionnez “<em>Constellation SDK</em>” dans la liste des composants à installer/mettre à jour. <div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-1').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-6330"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-1">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(1);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails1" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div></p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/">Constellation SDK 1.8.6 : extension asynchrone et fin du support pour Visual Studio 2012 et 2013</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Constellation SDK 1.8.5 avec le support de Visual Studio 2019</title>
		<link>https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/</link>
					<comments>https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Sun, 19 May 2019 11:52:28 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6190</guid>

					<description><![CDATA[<p>Disponible depuis le début de la semaine sur le canal Beta, la nouvelle version du SDK Constellation pour Visual Studio vient d’être publiée sur le canal Stable. Principale nouveauté de cette version : le support de Visual Studio 2019 !</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/">Constellation SDK 1.8.5 avec le support de Visual Studio 2019</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Disponible depuis le début de la semaine sur le canal Beta, la nouvelle version du <a href="/constellation-platform/constellation-sdk/">SDK Constellation</a> pour Visual Studio vient d’être publiée sur le canal Stable.</p>
<p>Principale nouveauté de cette version : le support de <strong>Visual Studio 2019</strong> !</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-8.png"><img class="colorbox-6190"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Visual Studio 2019" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-7.png" alt="Visual Studio 2019" width="454" height="282" border="0" /></a></p>
<p align="left">Vous pourrez donc créer, développer, tester et publier vos packages Constellation depuis Visual Studio 2012, 2013, 2015, 2017 et maintenant 2019 toute édition (de l’édition gratuite Community et l’édition haut de gamme Enterprise).</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-9.png"><img class="colorbox-6190"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Création d'un projet Constellation dans Visual Studio 2019" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-8.png" alt="Création d'un projet Constellation dans Visual Studio 2019" width="454" height="315" border="0" /></a></p>
<p align="left">Pour installer ou mettre à jour votre SDK, rien de plus simple, lancez simplement le Web Platform Installer et sélectionnez “<em>Constellation SDK</em>” dans la liste des composants à installer/mettre à jour. <div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-2').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-6190"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-2">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(2);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails2" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div></p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/">Constellation SDK 1.8.5 avec le support de Visual Studio 2019</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Migration du serveur NuGet Constellation vers nuget.org</title>
		<link>https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/</link>
					<comments>https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Fri, 01 Mar 2019 12:24:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[nuget]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6158</guid>

					<description><![CDATA[<p>Historiquement depuis 2015 les différentes libraires Constellation (.NET, Javascript, AngularJS, Python, etc…) étaient diffusées sur un serveur Nuget privé. Il fallait alors sélectionner la source “Constellation” (ajoutée automatiquement par le SDK Constellation pour Visual Studio) pour pouvoir se connecter et</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/">Migration du serveur NuGet Constellation vers nuget.org</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Historiquement depuis 2015 les différentes libraires Constellation (.NET, Javascript, AngularJS, Python, etc…) étaient diffusées sur un serveur Nuget privé.</p>
<p>Il fallait alors sélectionner la source “Constellation” (ajoutée automatiquement par le SDK Constellation pour Visual Studio) pour pouvoir se connecter et récupérer les mises à jour des librairies Constellation.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image.png"><img class="colorbox-6158"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="L'ancienne source Nuget" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb.png" alt="L'ancienne source Nuget" width="354" height="132" border="0" /></a></p>
<p>Pour des raisons pratiques et parce qu’il n’y a plus d’intérêt de conserver ce serveur privé, <strong>tous les packages NuGet sont désormais publiés et disponibles sur la </strong><a href="https://www.nuget.org/profiles/Constellation"><strong>galerie publique NuGet.org</strong></a></p>
<p align="center"><a href="https://www.nuget.org/profiles/Constellation"><img class="colorbox-6158"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="nuget-logo" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/nuget-logo.png" alt="nuget-logo" width="350" height="106" border="0" /></a></p>
<p align="left">Concrètement cela ne change rien du tout côté développement hormis le fait de prendre garde à ne plus utiliser le “Package source” Constellation dans votre gestionnaire NuGet et utiliser la source officielle nommée “nuget.org” ou “nuget v3” :</p>
<p align="center"><img class="colorbox-6158"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Package source" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-1.png" alt="Package source" width="454" height="38" border="0" /></p>
<p align="left">A noter également que lorsque vous installerez le SDK Constellation à partir de la version 1.8.5 actuellement disponible l’ancienne source sera automatiquement supprimée évitant ainsi les confusions !</p>
<div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-3').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-6158"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-3">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(3);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails3" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/">Migration du serveur NuGet Constellation vers nuget.org</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Constellation 1.8.3 est disponible</title>
		<link>https://developer.myconstellation.io/blog/constellation-1-8-3-est-disponible/</link>
					<comments>https://developer.myconstellation.io/blog/constellation-1-8-3-est-disponible/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Wed, 12 Jul 2017 12:50:01 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[Changelog]]></category>
		<category><![CDATA[Sentinel]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=5242</guid>

					<description><![CDATA[<p>La nouvelle version 1.8.3 de la plateforme Constellation disponible depuis lundi 10 juillet 2017 sur l’environnement “beta” vient tout juste d’être validée sur l’environnement “Stable” aujourd&#8217;hui-même ! Vous pouvez mettre à jour votre installation en lançant le « Web Platform Installer »</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-1-8-3-est-disponible/">Constellation 1.8.3 est disponible</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>La nouvelle version 1.8.3 de la plateforme Constellation disponible depuis lundi 10 juillet 2017 sur l’environnement “beta” vient tout juste d’être validée sur l’environnement “Stable” aujourd&rsquo;hui-même !</p>
<p>Vous pouvez mettre à jour votre installation en lançant le « Web Platform Installer » sur Windows :</p>
<div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-4').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-5242"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-4">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(4);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails4" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div>
<p>Ou, sur Linux, en lançant la commande :</p>
<p></p><pre class="crayon-plain-tag">wget -O install.sh https://developer.myconstellation.io/download/installers/install-linux.sh &amp;&amp; chmod +x install.sh &amp;&amp; ./install.sh</pre><p></p>
<h3>Constellation Server 1.8.3</h3>
<p>Tout d’abord les dépendances du serveur Constellation ont été mises à jour : Json.NET 9.0.1, NLog 4.4.11, SignalR 2.2.2 et enfin la stack OWIN en version 3.1. Chacune d’entre elles apportant des correctifs et améliorations de performance.</p>
<p>La modification la plus importante de cette version 1.8.3 est la refonte complète de la gestion des packages au niveau du serveur. En effet, jusqu’à présent seuls les packages réels (et non virtuels) étaient gérés par le hub de contrôle. Pour les packages virtuels, il fallait exploiter l’API de Management (ou lire la configuration XML) car ils n’existaient pas sur le hub de contrôle (d’où le terme “virtuel”).</p>
<p>Désormais, chaque package déclaré dans la configuration d’une Constellation, qu’il soit réel ou virtuel, est chargé sur le hub de contrôle. Il n’y a donc plus de Statut en “N/A” sur la Console Constellation : tous les packages ont par défaut un état à “Unknown”. Une simple connexion sur le hub de contrôle permet donc de récupérer l’intégralité des packages d’une Constellation sans devoir combiner des informations venant de la configuration XML pour y ajouter la partie « virtuelle ».</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/07/image.png"><img class="colorbox-5242"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Constellation Console 1.8.3" src="https://developer.myconstellation.io/wp-content/uploads/2017/07/image_thumb.png" alt="Constellation Console 1.8.3" width="404" height="147" border="0" /></a></p>
<p>De plus les packages virtuels initialisant des abonnements aux messages ou StateObjects sont maintenant marqués comme “connecté” sur le hub de contrôle permettant de suivre leurs états. Par exemple, un Arduino/ESP est maintenant vu comme connecté sur le hub de contrôle :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/07/image-1.png"><img loading="lazy" class="alignnone colorbox-5242" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Trois packages Arduino/EST vus comme connecté dans Constellation 1.8.3" src="https://developer.myconstellation.io/wp-content/uploads/2017/07/image_thumb-1.png" alt="Trois packages Arduino/EST vus comme connecté dans Constellation 1.8.3" width="404" height="221" border="0" /></a></p>
<p>Aussi chaque package envoie désormais, en plus de son n° de version et de la libraire Constellation utilisée, le type de la libraire utilisée : il s’agit de la propriété “ConstellationClientType”.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/07/image-2.png"><img class="colorbox-5242"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Remonté du type de la librarie Constellation" src="https://developer.myconstellation.io/wp-content/uploads/2017/07/image_thumb-2.png" alt="Remonté du type de la librarie Constellation" width="244" height="109" border="0" /></a></p>
<p>Aussi, il est possible définir le répertoire de base de la Constellation dans lequel trouver le fichier de configuration en spécifiant la clé « Constellation.BaseDirectory ». Cela permet de séparer les binaires Constellation de sa configuration, très utile dans un environnement Docker. Un article sur le sujet sera prochainement publié.</p>
<p><!--EndFragment--></p>
<p>Outre différentes optimisations du code et correction de défauts mineurs on peut aussi noter :</p>
<ul>
<li>Server / ControlHub : le ReloadServerConfiguration envoi la liste des packages aux sentinelles seulement connectées et « Update settings » sur les packages connectés seulement et non à tous les groupes</li>
<li>Server / ControlHub : prise en charge des mises à jour de configuration des packages à volée</li>
<li>Server / Management API : ajout d’un objet de synchronisation pour les I/O vers le fichier de configuration pour éviter les écritures concurrentes</li>
<li>Server / Licensing : LeaseLicensing dans le domaine serveur si multi-tenant sinon dans le domaine de la constellation si mono-instance (permettant ainsi de récupérer les erreurs de licence dans la Console Log)</li>
<li>Server / API REST : le timeout des sessions HTTP est maintenant de 150 secondes par défaut configurable dans le fichier de configuration</li>
</ul>
<p>Enfin notez que le serveur 1.8.3 est rétrocompatible avec les différents composants Constellation 1.8.x, que ce soit pour la Console, les packages ou les sentinelles. Autrement dit vous pouvez mettre à jour votre serveur en 1.8.3 tout en gardant vos packages et sentinelles 1.8.x fonctionnelles.</p>
<h3>Constellation Sentinel 1.8.3</h3>
<p>L’autre grande nouveauté de cette nouvelle version 1.8.3 est la refonte complète du gestionnaire de processus sur les sentinelles.</p>
<p>Jusqu’à présent lorsqu’une sentinelle recevait sa liste des packages, elle se chargeait de télécharger et démarrer chaque package de sa liste. Si le package était déjà en fonctionnement elle levait un Warning ce qui avait tendance à “polluer” les logs notamment lorsqu’on déployé la configuration au niveau d’une Constellation. Enfin lorsqu’un package en fonctionnement était supprimé de la liste, elle fermait le processus associé.</p>
<p>Le problème dans ce mécanisme est que si vous arrêtez un package et que vous redéployer la configuration, par exemple en ajoutant, supprimant ou modifiant les settings d&rsquo;un autre package, la liste était renvoyée à votre sentinelle qui relançait “bêtement” le package vous avez arrêté !</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/07/image-3.png"><img class="colorbox-5242"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Sentinelle 1.8.3 connectée" src="https://developer.myconstellation.io/wp-content/uploads/2017/07/image_thumb-3.png" alt="Sentinelle 1.8.3 connectée" width="354" height="68" border="0" /></a></p>
<p>C’est pour cela que le fonctionnement interne de la sentinelle a été profondément revu et a conduit à la réécriture complète du mécanisme de gestion des processus. Ainsi la description de chaque package, démarré ou non, est maintenue en mémoire. Lorsqu’une sentinelle reçoit sa nouvelle liste, elle est toujours capable de charger/démarrer les nouveaux packages et supprimer/arrêter les packages retirés mais les packages existants ne sont pas redémarrés automatiquement, ils conservent leurs états.</p>
<p>Cette refonte a amélioré beaucoup de chose en apportant plus de fiabilité et stabilité dans le suivi du processus et elle apporte une meilleure cohérence des états de chaque package.</p>
<p>Aussi, comme le serveur, les dépendances ont été mises à jour : Json.NET 9.0.1, SignalR 2.2.2, NLog 4.4.11 et NLog.Windows.Form 4.2.3 pour la Sentinelle UI.</p>
<p>Notez enfin qu&rsquo;une sentinelle 1.8.3 peut fonctionner sans aucun problème dans une Constellation 1.8.x de version antérieure tout comme une sentinelle antérieure à la version 1.8.3 pour fonctionner sur une Constellation 1.8.3.</p>
<ul><!--EndFragment--></ul>
<h3>Constellation Console 1.8.3</h3>
<p>La Console Constellation a aussi reçu sont lot de nouveautés à l’occasion de cette nouvelle release 1.8.3.</p>
<p>Etant donné la refonte dans la gestion des packages sur le hub de contrôle, la Console Constellation a été impacté à ce niveau. Elle se base exclusivement sur le hub de contrôle sans devoir interroger la Management API en parallèle pour intégrer les packages virtuels ou non connectés.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/07/image-4.png"><img class="colorbox-5242"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Console Constellation 1.8.3" src="https://developer.myconstellation.io/wp-content/uploads/2017/07/image_thumb-4.png" alt="Console Constellation 1.8.3" width="404" height="221" border="0" /></a></p>
<p>Suite à la publication des <a href="/blog/nouvelles-api-javascript-angularjs-1-8-2/">nouvelles librairies Javascript et AngularJS 1.8.2 </a>du mois dernier, les codes snippets du <a href="/constellation-platform/constellation-console/messagecallbacks-explorer/">MessageCallbacks Explorer</a> ont été mis à jour pour intégrer les nouveautés de ces librairies.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/07/image-5.png"><img class="colorbox-5242"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Code snippet JS 1.8.2" src="https://developer.myconstellation.io/wp-content/uploads/2017/07/image_thumb-5.png" alt="Code snippet JS 1.8.2" width="404" height="256" border="0" /></a></p>
<p>On notera aussi l’ajout d’un bouton pour vider la Console Log, l’ajout ConstellationClientType sur les packages ou encore du credential utilisé par une sentinelle sur la fenêtre de détail. Aussi la Console supporte pleinement les utilisateurs connectés sans droits de Management.</p>
<p>Mais aussi :</p>
<ul>
<li>Console / Package : Gestion des packages virtuels avec un statut Unknown, menu contextuel synchronisé et mise à jour de l’activité pour les packages virtuels</li>
<li>Console / Packages : « Update Settings » affiché dans le menu contextuel si le package est connecté et démarré (package virtuel compris)</li>
<li>Console / Packages : bugfix sur le déploiement de package avec un setting de type DateTime (module $filter non injecté dans le contrôleur principal)</li>
<li>Console / Packages : bugfix sur le déploiement de la configuration une fois que le SetRecoveryOption est terminé et non en parallèle</li>
<li>Console : déconnexion des deux hubs (consumer et controller) si l’un des deux est déconnecté (cas très rare où l’un des deux hubs parvient à se reconnecter et pas l’autre)</li>
<li>Console : Mise à jour de l’API Constellation Javascript &amp; AngularJS en version 1.8.2 et de la librairie SignalR 2.2.2</li>
</ul>
<h3>Autres nouveautés</h3>
<p>La librairie .NET pour les packages a été mise à jour en version 1.8.3.17190, et est disponible sur le repository Nuget. Cette nouvelle version envoie le “ConstellationClientType” ( net40 » ou « net45 ») lors de la connexion de votre package à Constellation. De plus les dépendances ont été mises à jour vers JSON.NET 9.0.1 et SignalR 2.2.2.</p>
<p>Notez enfin qu&rsquo;un package exploitant l&rsquo;API 1.8.3 peut fonctionner sans aucun problème sur une Constellation 1.8.x de version antérieure tout comme un package antérieure à la version 1.8.3 peut fonctionner sur une Constellation 1.8.3.</p>
<p>Une nouvelle version SDK est également disponible. Il intègre une mise à jour des templates de projet Constellation pour prendre en compte les dernières versions des API 1.8.3.</p>
<p>Pour finir le <a href="/constellation-platform/constellation-server/installer-constellation-sur-linux/">Web Platform Installer pour Linux</a> a lui aussi été mis à jour. Il garde en mémoire le jeton d’authentification entre les différents installeurs Server, Sentinel et Console de façon à éviter de devoir se ré authentifier à chaque composant mais surtout le pilotage des services Server et Sentinel dans Supervisor est désormais basé sur “supervisorctl” pour une gestion plus fine des services.</p>
<p>Pour consulter le <a href="/constellation-platform/changelog/#10072017_Release_183_18317190">changelog complet</a> de cette nouvelle version <a href="/constellation-platform/changelog/#10072017_Release_183_18317190">cliquez ici</a>. N’hésitez pas non plus à remonter <a href="https://developer.myconstellation.io/forums/topic/constellation-1-8-1-en-release-candidate/">vos feedbacks sur le forum</a>.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-1-8-3-est-disponible/">Constellation 1.8.3 est disponible</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/constellation-1-8-3-est-disponible/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mise à jour de l&#8217;API Python et du SDK en version 1.8.2</title>
		<link>https://developer.myconstellation.io/blog/api-python-et-sdk-version-1-8-2/</link>
					<comments>https://developer.myconstellation.io/blog/api-python-et-sdk-version-1-8-2/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Fri, 30 Jun 2017 14:26:51 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[PythonProxy]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Mise à jour]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SDK]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=5145</guid>

					<description><![CDATA[<p>En ce début d’été plusieurs mises à jour ont été publiées cette semaine dont la nouvelle version du SDK 1.8.2, des mises à jour de la Console et surtout une nouvelle version du PythonProxy. Découvrons ces nouveautés en détail !</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/api-python-et-sdk-version-1-8-2/">Mise à jour de l&rsquo;API Python et du SDK en version 1.8.2</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En ce début d’été plusieurs mises à jour ont été publiées cette semaine dont la <strong>nouvelle version du </strong><a href="/constellation-platform/constellation-sdk/" target="_blank" rel="noopener"><strong>SDK</strong></a><strong> 1.8.2</strong>, des <strong>mises à jour de la </strong><a href="/constellation-platform/constellation-console/" target="_blank" rel="noopener"><strong>Console</strong></a> et surtout une <strong>nouvelle version du </strong><a href="/client-api/python-api/" target="_blank" rel="noopener"><strong>PythonProxy</strong></a>.</p>
<p>Découvrons ces nouveautés en détail !</p>
<h3>PythonProxy 1.8.2 :  amélioration de l’expérience de développement des packages Python</h3>
<h4>Configuration des scripts à démarrer</h4>
<p>Depuis la sortie du “PythonProxy” en décembre 2014 permettant d’embarquer des scripts Python dans un package Constellation, tous les fichiers “.py” présents dans le répertoire “Scripts” étaient chargés à l’exception du fichier “Constellation.py” et des fichiers terminant par “lib.py” ce qui permettait d’inclure des librairies Python dans vos packages. De plus tous ces fichiers Python étaient lancés par ordre alphabétique.</p>
<p>Cela fait désormais partie du passé ! En effet, depuis la mise à jour 1.8.2, il faut déclarer la liste des fichiers Python à charger dans le fichier App.config en ajoutant la section suivante :</p>
<p></p><pre class="crayon-plain-tag">&lt;pythonProxy xmlns="urn:Constellation.PythonProxy"&gt;
  &lt;scripts&gt;
    &lt;script filename="Scripts\Demo.py" /&gt;
    &lt;script filename="Scripts\LightSensor.py" /&gt;
    &lt;script filename="Scripts\Camera.py" /&gt;
  &lt;/scripts&gt;
&lt;/pythonProxy&gt;</pre><p></p>
<p>Sans oublier de déclarer dans la section<em> &lt;configSection&gt;</em> la ligne suivante :</p>
<p></p><pre class="crayon-plain-tag">&lt;section name="pythonProxy" type="Constellation.PythonProxy.PythonConfigurationSection, Constellation.PythonProxy, Version=1.8.0.0, Culture=neutral, PublicKeyToken=null" /&gt;</pre><p></p>
<p>Vous pouvez donc maintenant définir explicitement les scripts que vous voulez lancer et dans l’ordre que vous souhaitez sans devoir jouer sur les noms des fichiers.</p>
<p>Cela offre plus de souplesse dans la conception de vos packages avec un fonctionnement beaucoup plus clair et explicit.</p>
<h4>Timeout de démarrage</h4>
<p>Lorsque le PythonProxy lance un script Python que vous avez écrit, il cherchera à se connecter avec lui avant d’invoquer votre méthode “OnStart”. Seulement en cas de problème, par exemple si votre script comporte des erreurs fatales, la connexion n’aura jamais lieu et votre package sera bloqué !</p>
<p>Désormais cette nouvelle version intègre la notion de “timeout” permettant de définir un temps maximal de démarrage. Si le PythonProxy ne parvient pas à se connecter à votre script dans le délai imparti, il affichera un message d’erreur et passera au script suivant sans bloquer indéfiniment.</p>
<p>Ce timeout peut être configuré pour chaque script avec l’attribut “<em>startupTimeout</em>” ou bien de manière globale.</p>
<p>Notez également qu’il existe un timout d’arrêt : si votre script n’est pas terminé après avoir reçu l’ordre d’arrêt dans un délai imparti, le PythonProxy mettra fin au processus Python qui l’héberge.</p>
<p>Par exemple :</p>
<p></p><pre class="crayon-plain-tag">&lt;pythonProxy xmlns="urn:Constellation.PythonProxy" scriptStartupTimeout="20" scriptCloseTimeout="5"&gt;
  &lt;scripts&gt;
    &lt;script filename="Scripts\Demo.py" startupTimeout="10" /&gt;
    &lt;script filename="Scripts\LightSensor.py" closeTimeout="2" /&gt;
    &lt;script filename="Scripts\Camera.py" /&gt;
  &lt;/scripts&gt;
&lt;/pythonProxy&gt;</pre><p></p>
<p>Le 1er script (Demo.py) doit démarrer en moins de 10 secondes et le 2ème script (LightSensor.py) doit s’arrêter en moins de 2 secondes. Pour le reste, le temps de démarrage est de 20 secondes et 5 secondes pour l’arret.</p>
<p>Notez enfin que si aucune valeur n’est spécifiée (ni sur la balise <em>&lt;script&gt;</em> ni de manière globale sur la section <em>&lt;pythonProxy&gt;</em>), les valeurs par défaut sont :</p>
<ul>
<li>30 secondes pour le démarrage</li>
<li>8 secondes pour l’arrêt</li>
</ul>
<h4>Redirection de la sortie et des erreurs Python sur Constellation</h4>
<p>Avec cette nouvelle version du PythonProxy, l’ensemble du flux de sortie et d’erreur des processus Python qui hebergent vos scripts seront rédirigés vers les logs Constellation.</p>
<p>Autrement dit un simple “print” sera visible dans les logs Constellation mais surtout la moindre erreur, par exemple une erreur de syntaxe dans votre script empêchant son initialisation, sera remontée dans les logs Constellation vous donnant alors toutes les informations nécessaires pour sa correction.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/06/image-2.png"><img class="colorbox-5145"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Exemple d'erreur de syntaxe redirigée dans les logs Constellation" src="https://developer.myconstellation.io/wp-content/uploads/2017/06/image_thumb-2.png" alt="Exemple d'erreur de syntaxe redirigée dans les logs Constellation" width="354" height="45" border="0" /></a></p>
<p>Avec cette nouvelle version du Python Proxy, fini le côté “Black Box” lors du démarrage de vos scripts !</p>
<h4>Surveillance de vos scripts</h4>
<p>Il y a désormais un mécanisme de Ping/Pong entre le package Constellation et les scripts Python pour vérifier l’état de vie des deux parties. Si un processus Python ne reçoit plus de Ping reçu pendant plus de 30 secondes, il s’arrêtera automatiquement pour éviter les processus orphelins (notamment en cas de debug).</p>
<h4>Mise à niveau</h4>
<p>Pour en profiter il suffit de mettre à jour le package Nuget depuis Visual Studio et d’ajouter ensuite la section de configuration présentée ci-dessus dans votre fichier App.config.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/06/image-3.png"><img class="colorbox-5145"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Mise à jour du package Nuget PythonProxy" src="https://developer.myconstellation.io/wp-content/uploads/2017/06/image_thumb-3.png" alt="Mise à jour du package Nuget PythonProxy" width="354" height="151" border="0" /></a></p>
<p align="left">Notez que tous les nouveaux projets Constellation créés avec le SDK 1.8.2 (présenté ci-dessous) sont déjà basés sur cette nouvelle version du Python Proxy, il n’y a aucune action à faire pour en profiter !</p>
<h3>Mise à jour du SDK 1.8.2</h3>
<p>Tout d&rsquo;abord les templates des projets (C# et Python) ont été mis à jour avec les dernières versions des libraires (.NET et Python). Ainsi les nouveaux projets créés avec cette nouvelle version du SDK profiteront automatiquement des dernières versions de l&rsquo;API .NET et du Python Proxy 1.8.2 décrit ci-dessus.</p>
<p>Lorsqu&rsquo;un package est publié (en local ou directement sur un serveur Constellation), l&rsquo;assistant effectuera un nettoyage de la solution avant de lancer la compilation. Cela permet de purger les fichiers qui ne sont plus utilisés dans votre package.</p>
<p>Autre détail fort bien utile, lorsque vous ajoutez une icone pour votre package, c&rsquo;est à dire que vous ajoutez cette icone (png ou jpg) dans votre projet Visual Studio et que vous la déclarez dans le Package Manifeste, l&rsquo;assistant de publication du package Constellation configuera automatique la propriété « <em>Copy to Output directory</em> » sur votre icone !</p>
<p>Suite à la sortie du Python Proxy 1.8.2, le schéma de configuration XSD de la nouvelle section<em> &lt;pythonProxy&gt;</em> décrite ci-dessus sera installée de façon à pouvoir profiter de l&rsquo;IntelliSense dans Visual Studio lorsque vous éditez ce fichier.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/06/image.png"><img class="colorbox-5145"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="IntelliSense sur la section PythonProxy" src="https://developer.myconstellation.io/wp-content/uploads/2017/06/image_thumb.png" alt="IntelliSense sur la section PythonProxy" width="354" height="129" border="0" /></a></p>
<p>De plus un nouvel « Item Template » nommé « <em>Constellation Python Script</em> » a été ajouté. Il permet de créer des scripts Constellation Python avec un template de base dans vos packages.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/06/image-1.png"><img class="colorbox-5145"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Création d'un nouveau script Constellation Python" src="https://developer.myconstellation.io/wp-content/uploads/2017/06/image_thumb-1.png" alt="Création d'un nouveau script Constellation Python" width="354" height="246" border="0" /></a></p>
<p>Dès qu&rsquo;un script Constellation Python est ajouté, Visual Studio configurera automatiquement la propriété « <em>Copy to Output directory</em> » pour inclure votre script dans le package et ajoutera la référence de ce fichier dans la section  <em>&lt;pythonProxy&gt;</em> du fichier App.config toujours de manière automatique.</p>
<h3>Autre : mise à jour de la Console et de la libraire .NET</h3>
<p>Les différentes mises à jour de la Console du mois de Juin permettent de prendre en compte dynamiquement les packages uploadés via la Management API (sans devoir rafraichir la page). De plus plusieurs bugs ont été corrigés comme l’édition des settings de type boolean ou number sur les packages sans manifeste (eg. Virtual Package) ou encore un problème de la mise à jour des StateObjects qui n’étaient pas maintenus en cas de changement de page.</p>
<p>Aussi la libraire .NET Constellation a été mise à jour le 20 mai 2017 (1.8.2.17140) et le 29 juin (1.8.2.17178). Cela corrige un problème sur l’envoi de réponse à des sagas dans un environnement Linux/Mono et permet le déclenchement de la procédure d’arrêt (<em>OnPreShutsown</em> puis <em>OnShutdown</em>) sur les packages lancés hors sentinelle (par exemple depuis Visual Studio en phase de debug).</p>
<p>Retrouvez plus d&rsquo;information sur le <a href="/constellation-platform/changelog">changelog</a>.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/api-python-et-sdk-version-1-8-2/">Mise à jour de l&rsquo;API Python et du SDK en version 1.8.2</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/api-python-et-sdk-version-1-8-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Constellation 1.8.2 est disponible</title>
		<link>https://developer.myconstellation.io/blog/constellation-1-8-2-est-disponible/</link>
					<comments>https://developer.myconstellation.io/blog/constellation-1-8-2-est-disponible/#comments</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Sun, 23 Apr 2017 11:53:11 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[Changelog]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=4177</guid>

					<description><![CDATA[<p>La nouvelle version 1.8.2 de la plateforme Constellation est disponible au téléchargement depuis le 22 avril 2017. Vous pouvez mettre à jour votre installation en lançant le « Web Platform Installer » : Ou sur Linux en lançant la commande suivante :</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-1-8-2-est-disponible/">Constellation 1.8.2 est disponible</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>La nouvelle version 1.8.2 de la plateforme Constellation est disponible au téléchargement depuis le 22 avril 2017.</p>
<p>Vous pouvez mettre à jour votre installation en lançant le « Web Platform Installer » :</p>
<div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-5').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-4177"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-5">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(5);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails5" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div>
<p>Ou sur Linux en lançant la commande suivante :</p>
<p></p><pre class="crayon-plain-tag">wget -O install.sh https://developer.myconstellation.io/download/installers/install-linux.sh &amp;&amp; chmod +x install.sh &amp;&amp; ./install.sh</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Mise à jour 1.8.2" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb.png" alt="Mise à jour 1.8.2" width="350" height="286" border="0" /></a></p>
<h3>Constellation SDK 1.8.2 : support de Visual Studio 2017</h3>
<p>La nouvelle version du SDK Constellation est désormais compatible avec toutes les éditions de Visual Studio 2012, 2013, 2015 et maintenant 2017.</p>
<p>Cette version embarque également une mise à jour du générateur de code pour supporter des booléens optionnels dans la signature des MC ou encore l’ajout de méthode d’extension pour les StateObjects de type générique.</p>
<p>Aussi, les fenêtres s’ouvrent maintenant au centre de l’instance Visual Studio et non sur l’écran principal ce qui était peu conviviale sur les environnements multi-écrans. Les templates de projet ont également été mis à jour.</p>
<p>Enfin avec l’arrivée de Visual Studio 2017, le programme d’installation du SDK a été révisé pour supporter cette nouvelle version ainsi que le concept de “multi-instance” de Visual Studio 2017. Vous aurez maintenant le programme “VSIX Installer” qui sera lancé automatiquement lors de l’installation pour sélectionner les instances de VS où installer le SDK Constellation.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image-1.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Installation du SDK par VSIX Installer" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb-1.png" alt="Installation du SDK par VSIX Installer" width="350" height="286" border="0" /></a></p>
<h3>Constellation Console 1.8.2 : plus de productivité</h3>
<p>Cette mise à jour apporte beaucoup d’améliorations de la Console Constellation.</p>
<h5>Déploiement des mises à jour des packages</h5>
<p>Depuis Constellation 1.8.1, lorsqu’une mise à jour est disponible dans le catalogue en ligne, vous avez une notification avec la possibilité de télécharger la nouvelle version du package :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image-7.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Mise à jour des packages depuis le catalogue en ligne" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb-7.png" alt="Mise à jour des packages depuis le catalogue en ligne" width="240" height="153" border="0" /></a></p>
<p align="left">La nouvelle version du package est déployée dans votre repository local et c’est à vous, ensuite, de déployer manuellement cette nouvelle version sur les instances en cours de fonctionnement via le bouton “Reload”.</p>
<p align="left">Désormais avec la version de 1.8.2 de la Console, une fenêtre s’ouvre automatiquement à la suite du déploiement d’une mise à jour d’un package pour vous proposer de recharger directement le ou les packages sur les sentinelles de votre Constellation où ils sont déployés :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image-2.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Déploiement des mises à jour des packages" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb-2.png" alt="Déploiement des mises à jour des packages" width="227" height="240" border="0" /></a></p>
<h5>Détachement des fenêtres</h5>
<p>Sur toutes les pages de la Console 1.8.2, vous avez deux nouvelles icones en haut à droite :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image-3.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Détachement des fenêtres" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb-3.png" alt="Détachement des fenêtres" width="218" height="90" border="0" /></a></p>
<p align="left">La première icone permet de détacher la page en cours dans une pop-up et la deuxième icone permet de détacher la page en cours dans un nouvel onglet de votre navigateur.</p>
<p align="left">Cela permet d’ouvrir plusieurs pages de la Console sur un même écran, pour suivre par exemple les logs, contrôler les packages, visualiser les StateObjects, etc. sans devoir changer constamment de page :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image-4.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Détachement des fenêtres" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb-4.png" alt="Détachement des fenêtres" width="240" height="109" border="0" /></a></p>
<h5>Contrôle de la compatibilité du déploiement des packages sur les sentinelles</h5>
<p>Sur la fenêtre de déploiement d’un package, un contrôle de compatibilité est réalisé pour vous indiquer si le package est compatible avec la sentinelle sélectionnée.</p>
<p>Par exemple un package comme <a href="/package-library/hwmonitor/">HWMonitor</a> ou <a href="/package-library/windowscontrol/">WindowsControl</a> n’est pas compatible avec une sentinelle Linux, vous aurez donc directement l’information lors du déploiement d’un nouveau package.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image-5.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Contrôle de la compatibilité" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb-5.png" alt="Contrôle de la compatibilité" width="240" height="89" border="0" /></a></p>
<p align="left">Ce contrôle est basé sur les informations définies dans le <a href="/concepts/package-manifest/#Informations_de_compatibilite">manifeste du package</a>. A charge au package de spécifier les informations de compatibilité dans leur manifeste.</p>
<h5>Les filtres persistants</h5>
<p>Les filtres de chaque page sont maintenant conservés lorsque l’on change puis revient sur une page (au sein d’une même session). Cela apporte plus de productivité en nous évitant de devoir constamment réappliquer les filtres lorsque l’on passe d’une page à l’autre.</p>
<p><!--EndFragment--></p>
<h4 align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2017/04/image-6.png"><img class="colorbox-4177"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Filtres persistants" src="https://developer.myconstellation.io/wp-content/uploads/2017/04/image_thumb-6.png" alt="Filtres persistants" width="240" height="65" border="0" /></a></h4>
<h5>Plus de réactivité</h5>
<p>Outre les nouvelles fonctionnalités, la Console 1.8.2 apporte aussi plus de réactivité. Anciennement il y a certaines opérations comme la suppression de sentinelles ou de packages, la création d’un package virtuel, qui nécessitaient de recharger la Console (via un F5 par exemple). Désormais, les vues se mettent bien à jour en temps réel quelque soit les actions réalisées.</p>
<p>Il est également possible de déployer plusieurs instances d’un même package sur une même sentinelle.</p>
<h5>Autre</h5>
<p>En vrac :</p>
<ul>
<li>Extinction automatique des packages lors de la suppression d’une sentinelle</li>
<li>Affichage du nombre d’élément filtré et total sur chaque page</li>
<li>Limite de 500 lignes dans la Console Log et de 20 erreurs max dans la sidebar de notification pour éviter les dérives de performances</li>
<li>Rafraichissement automatique du cookie d’authentification lorsque l’on est connecté (pour éviter les déconnexions au changement de page)</li>
<li>Mise en forme des types génériques sur le StateObjects Explorer &amp; MessageCallbacks Explorer</li>
<li>Bugfix graphique sur le rédimensionnement de la Console log &amp; editeur de configuration</li>
<li>Mise à jour des codes snippets pour les appels HTTP (exemples pour l’API Constellation et l’API Consumer) dans le MessageCallbacks Explorer</li>
<li>Appel des ressources JS/CSS et templates HTML avec le numéro de version pour éviter les problèmes de cache lors des mises à jour de la Console</li>
</ul>
<h3>Constellation Server 1.8.2 : section de configuration et compteurs de performance</h3>
<p>Premièrement, le nom de la section de configuration “constellationSection” a été renommé en “constellation”.</p>
<p>Le programme d’installation du serveur 1.8.2 renommera automatiquement la section en cas de mise à jour de votre Constellation. Soyez simplement vigilant sur le fait que, désormais, la section est “<em>&lt;constellation&gt;</em>” et non “<em>&lt;constellationSection&gt;</em>”. Les schémas XSD fournis avec le SDK ainsi que l&rsquo;IntelliSense du “Configuration Editor” de la Console ont été mis à jour dans ce sens.</p>
<p>Ensuite autre modification importante, les compteurs de performance sont activés si et seulement si la clé de configuration  “<em>EnablePerformanceCounters</em>” est définie à “<em>true</em>”.</p>
<p>Si la valeur est “false” ou encore si la clé n’est pas présente, les compteurs ne seront pas activés.</p>
<p></p><pre class="crayon-plain-tag">&lt;appSettings&gt;
  &lt;add key="EnablePerformanceCounters" value="true" /&gt;
&lt;/appSettings&gt;</pre><p></p>
<p>Par défaut, lors d’une nouvelle installation la clé est définie à “false”. Dans le cas d’une mise à jour, la clé n’est pas ajoutée, autrement dit cette clé sera absente de votre configuration. De ce fait, les compteurs de performance sont désactivés par défaut.</p>
<p>C’est pourquoi, si vous souhaitez suivre les indicateurs de performance du serveur Constellation, vous devez explicitement ajouter ou modifier cette clé dans votre fichier de configuration et redémarrer le service Windows “Constellation Server”. Pour rappel, cette fonctionnalité n’est disponible que sur un environnement Windows.</p>
<p>N’hésitez pas à consulter le <a href="/constellation-platform/changelog/#22042017_Release_182_18217112">changelog complet</a> et remonter <a href="https://developer.myconstellation.io/forums/topic/constellation-1-8-1-en-release-candidate/">vos feedbacks sur le forum</a>.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-1-8-2-est-disponible/">Constellation 1.8.2 est disponible</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/constellation-1-8-2-est-disponible/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Installer la plateforme Constellation 1.8</title>
		<link>https://developer.myconstellation.io/getting-started/installer-constellation/</link>
					<comments>https://developer.myconstellation.io/getting-started/installer-constellation/#comments</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Sun, 13 Mar 2016 18:22:53 +0000</pubDate>
				<category><![CDATA[Constellation Server]]></category>
		<category><![CDATA[Guide de démarrage]]></category>
		<category><![CDATA[Sentinel UI]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[Sentinel]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Server]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=1016</guid>

					<description><![CDATA[<p>Après avoir introduit Constellation, découvrons comment installer la plateforme sur vos ordinateurs ou serveurs. Prérequis La plateforme Constellation se compose : d’un serveur qui héberge et expose la Constellation en HTTP/s (un serveur = une Constellation) de sentinelles (UI ou Service) à</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/getting-started/installer-constellation/">Installer la plateforme Constellation 1.8</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Après avoir <a href="/plateforme/">introduit Constellation</a>, découvrons comment installer la plateforme sur vos ordinateurs ou serveurs.</p>
<p style="text-align: center;"><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/hD8Upyb2jXo" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h3>Prérequis</h3>
<p>La plateforme Constellation se compose :</p>
<ul>
<li>d’un <strong>serveur</strong> qui héberge et expose la Constellation en HTTP/s (un serveur = une Constellation)</li>
<li>de <strong>sentinelles</strong> (UI ou Service) à installer sur vos différentes machines (tout système Windows ou Linux)</li>
<li>d’une <strong>Console</strong> d&rsquo;administration : application Web de pilotage de votre Constellation</li>
</ul>
<p>Vous pouvez installer le serveur Constellation sur une machine Windows ou <a href="/constellation-platform/constellation-server/installer-constellation-sur-linux/">Linux</a>, que ce soit un laptop, un desktop, un NUC, un SoC, un serveur local ou dans le Cloud.</p>
<p>Dans la rubrique <a href="/constellation-platform/constellation-server/">Constellation Server</a> vous retrouverez plusieurs articles sur les différentes installations possibles (système Linux,  Raspberry, cloud Azure ou Amazon, etc…).</p>
<p>Pour démarrer, nous allons déployer dans ce guide une Constellation complète (serveur, sentinelle, console et le SDK) sur une machine Windows.</p>
<p>Vous avez donc besoin pour suivre ce guide :</p>
<ul>
<li>d&rsquo;un ordinateur ou serveur sous <strong>Windows</strong> (Windows 7/8/10 ou Windows Server)</li>
<li>Pour installer le SDK : <strong>Visual Studio 2015, 2017 ou 2019</strong></li>
</ul>
<p>Si vous ne disposez pas de licence de Visual Studio, vous pouvez installer la version  “Community”, une version gratuite de Visual Studio compatible avec le SDK Constellation : <a title="https://www.visualstudio.com/fr-fr/products/visual-studio-community-vs.aspx" href="https://www.visualstudio.com/fr-fr/products/visual-studio-community-vs.aspx">https://www.visualstudio.com/fr-fr/products/visual-studio-community-vs.aspx</a></p>
<h3>Télécharger la plateforme Constellation</h3>
<p>Sur la <a href="/download/">page de téléchargement</a> vous trouverez plusieurs programmes d’installation pour chaque composant Constellation  :</p>
<ul>
<li>Le serveur</li>
<li>Les sentinelles (UI ou Service)</li>
<li>La console</li>
<li>Le SDK Visual Studio</li>
</ul>
<p>Mais pour gagner en productivité, vous avez à votre disposition le “<strong>Web Platform Installer</strong>” (WPI), un programme d’installation tout-en-un qui télécharge automatiquement et configure les composants que vous souhaitez installer.</p>
<p>Commencez donc par télécharger le programme  “<strong>Constellation Web Platform Installer</strong>” pour Windows :</p>
<p align="center"><div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-6').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-1016"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-6">Constellation Web Platform Installer</a>
    
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(6);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails6" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div></p>
<h3>Installer la plateforme</h3>
<h4>Etape 1 : lancement de l’installation</h4>
<p>Lancez le programme “Constellation Web Platform Installer.exe”</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-8.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Web Platform Installer" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-8.png" alt="Web Platform Installer" width="428" height="333" border="0" /></a></p>
<h4>Etape 2 : identification</h4>
<p>Vous devez dans cette étape renseigner votre compte myConstellation.io afin de pouvoir télécharger les composants Constellation et accéder à vos licences :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-9.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Identification" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-9.png" alt="Identification" width="428" height="333" border="0" /></a></p>
<h4>Etape 3 : acceptez la licence d’utilisation</h4>
<p>Vous retrouverez le détail des licences Constellation <a href="/licensing/">sur cette page</a>. Pour résumer, Constellation est gratuit pour un usage personnel ou éducatif sans aucun but lucratif et soumis à l’acquisition d’une licence pour un usage professionnel ou entreprise.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/03/image11.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Licence d'utilisation" src="https://developer.myconstellation.io/wp-content/uploads/2016/03/image11_thumb.png" alt="Licence d'utilisation" width="424" height="347" border="0" /></a></p>
<h4 align="left">Etape 4 : choix du canal de distribution</h4>
<p>Vous devez sélectionner le canal de distribution à utiliser : Stable ou Pre-release (versions Beta) :</p>
<p style="text-align: center;"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-6.png"><img loading="lazy" class="alignnone aligncenter colorbox-1016" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Choix du canal" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-6.png" alt="Choix du canal" width="424" height="347" border="0" /></a></p>
<h4 align="left">Etape 5 : répertoire d’installation</h4>
<p align="left">Vous devez choisir le répertoire d’installation racine de la plateforme Constellation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/03/image47.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Repertoire d'installation de la plateforme" src="https://developer.myconstellation.io/wp-content/uploads/2016/03/image47_thumb.png" alt="Repertoire d'installation de la plateforme" width="424" height="347" border="0" /></a></p>
<h4 align="left">Etape 6 : sélectionnez les composants Constellation à installer</h4>
<p align="left">Vous pouvez sélectionner ici les composants à installer ou utiliser les profils prédéfinis :</p>
<ul>
<li>
<div align="left"><u>Full server installation</u> : installation typique pour un serveur (le serveur, la sentinelle en version service et la console Constellation)</div>
</li>
<li>
<div align="left"><u>Full developer installation</u> : installation typique pour un poste de développement (le serveur, la sentinelle UI, la console et le SDK Visual Studio)</div>
</li>
<li>
<div align="left"><u>Custom installation</u> : sélectionnez à la carte les composants que vous souhaitez installer</div>
</li>
</ul>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-10.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Selection des composants" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-10.png" alt="Selection des composants" width="428" height="333" border="0" /></a></p>
<p>Notez que le WPI vous indiquera la dernière version de chaque composant à installer et est capable de déployer les mises à jour pour chacun de ces composants si une nouvelle version plus récente est disponible.</p>
<p>Notez également que si Visual Studio n’est pas installé, le composant SDK sera grisé avec la mention “Not applicable”.</p>
<p>Dans ce guide, sélectionnons le profil “Développeur” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-11.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Selection des composants" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-11.png" alt="Selection des composants" width="428" height="333" border="0" /></a></p>
<h4 align="left">Etape 7 : configuration du serveur Constellation</h4>
<p align="left">Entrons désormais dans les étapes de configuration de chacun des composants à installer en commençant par le serveur Constellation.</p>
<h5 align="left">Etape 7.1 : sélection de la licence</h5>
<p align="left">Premièrement, vous devez sélectionner <a href="/licensing/">une licence</a> pour l’utilisation du serveur. Vous pouvez utiliser une licence que vous aurez préalablement téléchargée depuis le portail Constellation ou  vous connecter directement sur le service de licence de Constellation depuis le WPI :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-12.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Selection de la licence" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-12.png" alt="Selection de la licence" width="428" height="333" border="0" /></a></p>
<p align="left">Vous obtiendrez l’ensemble des licences associées à votre compte avec la possibilité de créer des licences gratuites pour un usage personnel (<a href="/licensing/">plus d’information ici</a>).</p>
<p align="left">Dans notre cas créons une licence personnelle :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-13.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Selection/Création de la licence" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-13.png" alt="Selection/Création de la licence" width="428" height="333" border="0" /></a></p>
<h5 align="left">Etape 7.2 : choix du répertoire des packages</h5>
<p align="left">Dans cette étape vous devez définir le répertoire pour votre catalogue de packages de votre Constellation.</p>
<p align="left">Par défaut, il s’agit du sous-dossier “Packages” de votre répertoire d’installation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-14.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Configuration du Package Repository" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-14.png" alt="Configuration du Package Repository" width="428" height="333" border="0" /></a></p>
<h5 align="left">Etape 7.3 : choix du port d’écoute du serveur</h5>
<p align="left">Le serveur Constellation utilise le protocole HTTP pour exposer ses différents hubs et API. Pour cela vous avez besoin de choisir le port d’écoute et de l’ouvrir au niveau de votre firewall.</p>
<p align="left">L’assistant peut déclarer le port que vous avez choisi dans le pare-feu de Windows. Si vous souhaitez ouvrir Constellation à l’extérieur de votre réseau local, à vous d’ouvrir le port sur votre routeur.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-15.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Configuration réseau" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-15.png" alt="Configuration réseau" width="428" height="333" border="0" /></a></p>
<p align="left">A noter que vous pouvez déclarer dans la configuration du serveur Constellation sur plusieurs ports HTTP et/ou HTTPS ou même définir un chemin HTTP personnalisé. Il est d’ailleurs conseillé d’activer le protocole HTTPS si vous souhaitez exposer votre serveur Constellation sur Internet. Vous retrouverez plusieurs articles sur la configuration avancée du serveur dans la rubrique <a href="https://developer.myconstellation.io/constellation-platform/constellation-server/">Constellation Server</a>.</p>
<h5 align="left">Etape 7.4 : choix des clés d’accès</h5>
<p align="left">Pour se connecter à Constellation vous avez besoin de créer des clés d’accès (les “Access Keys”). Dans le cas d’une nouvelle installation, l’assistant vous proposera de créer deux clés :</p>
<ul>
<li>
<div align="left">Une clé “Standard” (accès de base) que vous utiliserez pour connecter vos sentinelles et packages</div>
</li>
<li>
<div align="left">Une clé “Administrator” qui dispose des droits d’accès au hub de contrôle (pour le pilotage de la Constellation) et à l’API de Management (pour la configuration du serveur) :</div>
</li>
</ul>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-16.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Configuration des Access Keys" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-16.png" alt="Configuration des Access Keys" width="428" height="333" border="0" /></a></p>
<p align="left">Une clé d’accès est une chaîne de caractère. Il est conseillé de choisir des clés d’accès assez longues (&gt; 16 caractères) et compliquées.</p>
<p align="left">Pour simplifier leurs mémorisations et générations, Constellation propose d’utiliser un couple login/password pour créer des clés d’accès. Pour cela, on utilise le hash SHA1.</p>
<p align="left">Exemple : pour le login “Admin” et le mot de passe “Password”, la clé d’accès sera “d882b8721a224d38ebb54559e6b54e5df3a1bc6d » (soit SHA1(“AdminPassword”)). Notez bien que la casse est importante !</p>
<p align="left">Dans l’assistant d’installation, cliquez sur le bouton “Use Password” pour renseigner un couple login/password afin de générer les Access Keys :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-17.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Création des Access Keys" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-17.png" alt="Création des Access Keys" width="354" height="275" border="0" /></a><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-18.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Création des Access Keys" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-18.png" alt="Création des Access Keys" width="354" height="275" border="0" /></a></p>
<p align="left">Pour finir, vous pouvez ajouter le droit de débogage sur la clé “Administrator” en cochant la case correspondante. Cela nous permettra de tester des packages connectés à votre Constellation depuis Visual Studio.</p>
<h4 align="left">Etape 8 : configuration de la Console Constellation</h4>
<p align="left">Comme la Console Constellation est déployée sur la même machine que le serveur Constellation, l’assistant vous propose héberger la console par le serveur Constellation lui-même.</p>
<p align="left">Si vous désirez utiliser votre propre serveur Web pour exposer la Console (Apache, IIS ou autre) sélectionnez la deuxième option mais dans notre guide laissons le serveur Constellation héberger la console :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-19.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Hosting de la console" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-19.png" alt="Hosting de la console" width="428" height="333" border="0" /></a></p>
<p align="left">Vous pouvez ensuite fixer une clé d’accès en dur ou utiliser une page de login. De plus vous pouvez également restreindre l’accès à la console en local seulement.</p>
<p align="left">Laissons les options par défaut (c’est à dire Console ouverte à tous avec une page de login) :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-20.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Configuration de la console" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-20.png" alt="Configuration de la console" width="428" height="333" border="0" /></a></p>
<h4 align="left">Etape 9 : configuration de la Sentinelle Constellation</h4>
<p align="left">Dans la sélection des composants nous avons indiqué vouloir installer la sentinelle UI. Vous arrivez donc à cette étape de configuration.</p>
<p align="left">Comme la sentinelle est installée sur la même machine sur le serveur, vous pouvez l’inclure automatiquement dans votre Constellation ou bien l’inclure dans une autre Constellation en sélectionnant la deuxième option.</p>
<p align="left">Dans notre cas, laissons la première option sélectionnée pour ajouter notre sentinelle UI à notre Constellation en cours d”installation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-21.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Ajout de la sentinelle" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-21.png" alt="Ajout de la sentinelle" width="428" height="333" border="0" /></a></p>
<h4>Etape 10 : Installation</h4>
<p>La configuration des composants est désormais terminée. Vous retrouverez tout le détail sur l’écran de confirmation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-22.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Confirmation d'installation" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-22.png" alt="Confirmation d'installation" width="428" height="333" border="0" /></a></p>
<p align="left">En cliquant sur le bouton “Install”, le <em>Web Platform Installer </em>va télécharger les dernières versions de composants Constellation à installer :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-23.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Téléchargement des composants" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-23.png" alt="Téléchargement des composants" width="428" height="333" border="0" /></a></p>
<p align="left">Puis il déroulera l’installation et la configuration de chacun de ces composants :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-24.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Installation des composants" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-24.png" alt="Installation des composants" width="428" height="333" border="0" /></a></p>
<p align="left">A la fin de l’installation, l’assistant vous proposera de lancer la Console et la Sentinelle UI (car ces deux composants ont été installés) :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-25.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Fin de l'installation" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-25.png" alt="Fin de l'installation" width="428" height="333" border="0" /></a></p>
<h4 align="left">Etape 11 : Validation de l’installation</h4>
<p align="left">En fermant le programme d’installation, la sentinelle UI va être lancée :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/03/image73.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Démarrage de la sentinelle UI" src="https://developer.myconstellation.io/wp-content/uploads/2016/03/image73_thumb.png" alt="Démarrage de la sentinelle UI" width="424" height="140" border="0" /></a></p>
<p align="left">En double-cliquant sur l’icone vous pourrez visualiser les logs de cette sentinelle qui doit être correctement connectée au serveur :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/03/image77.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Sentinel UI" src="https://developer.myconstellation.io/wp-content/uploads/2016/03/image77_thumb.png" alt="Sentinel UI" width="424" height="207" border="0" /></a></p>
<p align="left">Vous aurez également la Console Constellation qui se lancera dans votre navigateur Internet par défaut :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/03/image81.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Page de connexion à la Console" src="https://developer.myconstellation.io/wp-content/uploads/2016/03/image81_thumb.png" alt="Page de connexion à la Console" width="424" height="332" border="0" /></a></p>
<p>Utilisez le Login/Password de la clé d’accès “Administrator” pour vous connecter. Sur la page “Sentinels” vous devriez voir votre sentinelle UI locale connectée :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/03/image85.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Sentinelle connectée" src="https://developer.myconstellation.io/wp-content/uploads/2016/03/image85_thumb.png" alt="Sentinelle connectée" width="424" height="332" border="0" /></a></p>
<p align="left">Bravo vous avez déployé votre première Constellation avec succès !</p>
<h4>Optionnellement : ajouter ou mettre à jour un composant</h4>
<p>Vous pouvez à tout moment relancer le “Web Platform Installer” (WPI) pour<strong> ajouter</strong> ou <strong>mettre à jour</strong> des composants Constellation.</p>
<p>Ainsi quand des mises à jour Constellation sont disponibles, vous avez juste à relancer le WPI et vous laissez guider par l&rsquo;assistant.</p>
<p>Dans notre exemple, relançons le WPI. Comme nous le montre l&rsquo;écran ci-dessous, tous les composants sont bien à jour mais vous pouvez encore ajouter la “Sentinel Service” sur cette machine :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/05/image-26.png"><img class="colorbox-1016"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Ajout de composant" src="https://developer.myconstellation.io/wp-content/uploads/2016/05/image_thumb-26.png" alt="Ajout de composant" width="428" height="333" border="0" /></a></p>
<p>Vous entrez alors dans la configuration de la sentinelle avec la possibilité d’ajouter cette nouvelle sentinelle à votre Constellation locale (car précédemment installée) ou de l’ajouter à une autre Constellation.</p>
<h3>Next steps</h3>
<ul>
<li><a href="https://developer.myconstellation.io/getting-started/ajouter-des-sentinelles/">Ajoutez des sentinelles dans votre Constellation</a></li>
<li><a href="https://developer.myconstellation.io/getting-started/telecharger-et-deployer-des-packages-sur-vos-sentinelles/">Téléchargez et déployez des packages sur vos sentinelles</a></li>
<li>Exposer votre serveur Constellation derrière avec reverse proxy <a href="/constellation-platform/constellation-server/exposer-constellation-derrire-un-serveur-web-reverse-proxy/">IIS</a> ou <a href="/constellation-platform/constellation-server/exposer-constellation-en-https-derriere-un-reverse-proxy-avec-nginx-et-lets-encrypt/">Nginx</a> et ajouter le <a href="https://developer.myconstellation.io/constellation-platform/constellation-server/configuration-ssl/">support du HTTPS/SSL</a></li>
</ul>
<p>Vous souhaitez installer le serveur et sa console sur un système Linux ?</p>
<ul>
<li>
<p class="header-post-title-class"><a href="/constellation-platform/constellation-server/installer-constellation-sur-linux/">Installer Constellation sur Linux</a></p>
</li>
</ul>
<p>Prêt pour développer avec Constellation ?</p>
<ul>
<li><a href="https://developer.myconstellation.io/getting-started/creez-votre-premier-package-constellation-en-csharp/">Créez votre premier package Constellation en C#</a></li>
<li><a href="https://developer.myconstellation.io/client-api/net-package-api/packages-ui-wpf-winform/">Créez des packages UI en Winform ou WPF</a></li>
<li><a href="https://developer.myconstellation.io/getting-started/connectez-vos-pages-web-constellation/">Connectez vos pages Web à Constellation</a></li>
<li><a href="https://developer.myconstellation.io/getting-started/creez-votre-premier-package-constellation-en-python/">Créez votre premier package Constellation en Python</a></li>
<li><a href="https://developer.myconstellation.io/getting-started/connecter-un-arduino-ou-un-esp8266-constellation/">Connectez un Arduino ou un ESP8266 à Constellation</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/getting-started/installer-constellation/">Installer la plateforme Constellation 1.8</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/getting-started/installer-constellation/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Publier un package depuis Visual Studio</title>
		<link>https://developer.myconstellation.io/constellation-platform/constellation-sdk/publier-package-visual-studio/</link>
					<comments>https://developer.myconstellation.io/constellation-platform/constellation-sdk/publier-package-visual-studio/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Tue, 09 Aug 2016 12:54:13 +0000</pubDate>
				<category><![CDATA[Constellation SDK]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[SDK]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=2155</guid>

					<description><![CDATA[<p>Pour publier un package Constellation depuis Visual Studio vous pouvez cliquez sur l’icone dans la barre Constellation : Le package à publier est celui marqué comme “Projet de démarrage” dans le cas où vous avez plusieurs projet dans votre solution</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/constellation-platform/constellation-sdk/publier-package-visual-studio/">Publier un package depuis Visual Studio</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Pour publier un package Constellation depuis Visual Studio vous pouvez cliquez sur l’icone <img class="colorbox-2155"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-90.png" alt="image" width="26" height="31" border="0" /> dans la barre Constellation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-91.png"><img class="colorbox-2155"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-86.png" alt="image" width="350" height="144" border="0" /></a></p>
<p align="left">Le package à publier est celui marqué comme “Projet de démarrage” dans le cas où vous avez plusieurs projet dans votre solution Visual Studio.</p>
<p>Autrement cliquez-droit sur le projet que vous souhaitez publier et cliquez sur “Publish Constellation package” dans le menu “Constellation” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-92.png"><img class="colorbox-2155"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-87.png" alt="image" width="350" height="318" border="0" /></a></p>
<p>Vous pourrez ensuite publier votre package en local ou directement sur un serveur Constellation.</p>
<h3>Publication locale</h3>
<p>Il suffit d’indiquer un répertoire de sortie et un nom de fichier :</p>
<p><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-93.png"><img class="colorbox-2155"  loading="lazy" style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-88.png" alt="image" width="350" height="174" border="0" /></a></p>
<h3>Publication sur un serveur Constellation</h3>
<p>Pour publier votre package sur un serveur Constellation sélectionnez la méthode “Upload on Constellation Server” et indiquez le serveur à utiliser :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-94.png"><img class="colorbox-2155"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-89.png" alt="image" width="350" height="174" border="0" /></a></p>
<p>Pour gérer les serveurs Constellation depuis Visual Studio, <a href="/constellation-platform/constellation-sdk/gerer-connexions-constellation/">consultez cet article</a>.</p>
<p>Une confirmation vous indiquera le bon déroulé de la publication :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-95.png"><img class="colorbox-2155"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-90.png" alt="image" width="350" height="121" border="0" /></a></p>
<p align="left">Notez que vous pouvez suivre le détail du processus de publication dans la fenêtre “Output” de Visual Studio :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-96.png"><img class="colorbox-2155"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-91.png" alt="image" width="350" height="89" border="0" /></a></p>
<p>Une fois publié, votre package sera disponible dans le Package Repository de votre Constellation et sera prêt à être déployé sur une de vos sentinelles :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-97.png"><img class="colorbox-2155"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-92.png" alt="image" width="350" height="86" border="0" /></a></p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/constellation-platform/constellation-sdk/publier-package-visual-studio/">Publier un package depuis Visual Studio</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/constellation-platform/constellation-sdk/publier-package-visual-studio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Le générateur de code C#</title>
		<link>https://developer.myconstellation.io/constellation-platform/constellation-sdk/generateur-de-code/</link>
					<comments>https://developer.myconstellation.io/constellation-platform/constellation-sdk/generateur-de-code/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Tue, 09 Aug 2016 12:53:45 +0000</pubDate>
				<category><![CDATA[Constellation SDK]]></category>
		<category><![CDATA[StateObject]]></category>
		<category><![CDATA[MessageCallback]]></category>
		<category><![CDATA[SDK]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=2153</guid>

					<description><![CDATA[<p>Etant donné que chaque package peut (et devrait) déclarer la liste des MessageCallbacks détaillée (description, liste des paramètres, type de réponse, …) qu’il expose ainsi que la liste des types personnalisées qu’il utilise dans la signature de ses MessageCallbacks ou</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/constellation-platform/constellation-sdk/generateur-de-code/">Le générateur de code C#</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Etant donné que chaque package peut (et devrait) déclarer la liste des MessageCallbacks détaillée (description, liste des paramètres, type de réponse, …) qu’il expose ainsi que la liste des types personnalisées qu’il utilise dans la signature de ses MessageCallbacks ou des StateObjects qu’il publie, il est donc possible de générer du code de manière automatique.</p>
<p>C’est grâce à cette description, que l’on nomme le “PackageDescriptor” que fonctionne le “<a href="/constellation-platform/constellation-console/messagecallbacks-explorer/">MessageCallback Explorer</a>” de la Console Constellation par exemple.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-116.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-111.png" alt="image" width="350" height="200" border="0" /></a></p>
<p align="left">L’interface est capable de lister chaque MessageCallbacks  de chaque packages de votre Constellation avec un formulaire pour la saisie des paramètres (simples ou complexes) afin de tester simplement vos MC.</p>
<p align="left">En cliquant sur le bouton <a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-117.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-112.png" alt="image" width="25" height="22" border="0" /></a>, le “<a href="/constellation-platform/constellation-console/messagecallbacks-explorer/">MessageCallback Explorer</a>” de la Console Constellation vous propose des “code snippets” pour différents langages (C#, Python, Arduino, JS, etc.).</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-118.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-113.png" alt="image" width="354" height="226" border="0" /></a></p>
<h3 align="left">Pourquoi générer du code ?</h3>
<p align="left">Comme vous le savez, en C# pour envoyer un message et donc invoquer un MC d’un autre package, vous devez créer un scope et invoquer le MC en utilisant un proxy dynamique.</p>
<p align="left">Par exemple pour invoquer le MC “AreaArm” du package Paradox, on pourrait écrire :</p>
<p></p><pre class="crayon-plain-tag">PackageHost.CreateMessageProxy("Paradox").AreaArm(new { Area = Paradox.Core.Area, Mode = Paradox.Core.ArmingMode, PinCode = System.String });</pre><p></p>
<p align="left">Il est important de noter ici que la méthode “<em>CreateMessageProxy</em>” retourne un “proxy dynamique”, c’est à dire que la méthode invoquée, ici “AreaArm” sera la clé du message.</p>
<p align="left">Autrement dit, comme tout est dynamique, il y a aucune aide ou auto-complétion. On pourrait très bien écrire ceci :</p>
<p></p><pre class="crayon-plain-tag">PackageHost.CreateMessageProxy("Paradox").CeciEstUnExemple();</pre><p></p>
<p>Votre package enverra un message “CeciEstUnExemple” au(x) package(s) Paradox de votre Constellation. Vous devez donc être vigilent sur le nom des MC invoqués car une erreur de frappe passera inaperçu !</p>
<p>Pour plus d’information sur l’envoi de messages &amp; invocation de MessageCallbacks en C#, <a href="/client-api/net-package-api/envoyer-des-messages-invoquer-des-messagecallbacks/">veuillez lire ceci</a>.</p>
<p>Le “problème” est le même avec la consommation des StateObjects (<a href="/client-api/net-package-api/consommer-des-stateobjects/">lire ceci</a>). Par exemple pour injecter dans votre code, le StateObject “/intelcpu/0/load/0” produit par le package “HWMonitor” sur la sentinelle “MON-PC”, on peut écrire :</p>
<p></p><pre class="crayon-plain-tag">[StateObjectLink("MON-PC", "HWMonitor", "/intelcpu/0/load/0")]
private StateObjectNotifier CPU { get; set; }</pre><p></p>
<p>Je peux donc ensuite exploiter la valeur de mon StateObject :</p>
<p></p><pre class="crayon-plain-tag">dynamic value = this.CPU.DynamicValue;</pre><p></p>
<p>La propriété “Value” du StateObjectNotifier  me donne la valeur du StateObject et la propriété “Value” de ce StateObject me donne la valeur du StateObject. Vous pouvez utiliser la propriété “DynamicValue” directement sur le StateObjectNotifier  pour récupérer la valeur du SO sous forme d’un ”dynamic”.</p>
<p>Comme chaque StateObject est différent, je ne sais pas ne que je trouverai dedans (une valeur simple, un objet complexe, …). D’où l’intérêt d’utiliser le <a href="/constellation-platform/constellation-console/stateobjects-explorer/">StateObject Explorer</a> de la Console Constellation pour explorer les SO de votre Constellation.</p>
<p>Par exemple, le StateObject “/intelcpu/0/load/0” produit par le package “HWMonitor” est un objet complexe contenant 4 propriétés :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-119.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-114.png" alt="image" width="354" height="252" border="0" /></a></p>
<p align="left">Alors que le StateObject de type “CarbonDioxideMeasurement” produit par le package “NetAtmo” est un entier :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-120.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-115.png" alt="image" width="354" height="280" border="0" /></a></p>
<p>C’est pour cela que dans votre code, la valeur d’un StateObject est “dynamique” : tout dépend du StateObject que vous consommez !</p>
<p>Que ce soit pour l’invocation de MessageCallback ou la consommation de StateObject, la forme “dynamique” permet de s’adapter à toutes les situations. En revanche vous perdez l’auto complétion ce qui peut vous ralentir mais aussi être une source d’erreur. D’où l’intérêt de générer du code dans votre package!</p>
<h3>Générer du code depuis Visual Studio.</h3>
<p>Le générateur de code inclut dans le SDK Constellation pour Visual Studio ne fonctionne que pour un projet C#.</p>
<p>Commencez tout d’abord par cliquer le bouton <a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-110.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-105.png" alt="image" width="30" height="24" border="0" /></a> “Generate Code” dans la barre de menu :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-109.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-104.png" alt="image" width="240" height="92" border="0" /></a></p>
<p>Le code sera généré pour le projet marqué comme projet de démarrage dans le cas où votre solution contient plusieurs projets.</p>
<p>Autrement, en cliquant-droit sur le projet de votre choix, sélectionnez “Generate Code” dans le sous-menu “Constellation” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-111.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-106.png" alt="image" width="350" height="327" border="0" /></a></p>
<p>Vous serez amené à sélectionner dans la liste déroulante la Constellation à cibler. Pour configurer des connexions vers vos Constellations, <a href="/constellation-platform/constellation-sdk/gerer-connexions-constellation/">lisez ceci</a>.</p>
<p>Une fois le serveur Constellation sélectionné, cliquez sur “Connect and Discover”. Vous obtiendrez la liste de toutes vos sentinelles et packages de votre Constellation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-122.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-117.png" alt="image" width="350" height="387" border="0" /></a></p>
<p align="left">Sélectionnez tout simplement la liste des packages que vous souhaitez inclure dans votre code. Par exemple, ici nous allons générer du code pour les packages “DoorBell”, “LightSensor”, “IRRemote”,”Paradox”, “Pionner” et “Vera”.</p>
<p align="left">Après avoir cliqué sur le bouton “Generate”, un message de confirmation vous indiquera le bon déroulé de l’opération :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-113.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-108.png" alt="image" width="168" height="165" border="0" /></a></p>
<p align="left">Le SDK génère le code dans le fichier “<em>MyConstellation.generated.cs</em>” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-114.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-109.png" alt="image" width="291" height="203" border="0" /></a></p>
<p align="left">Attention, vous ne devez pas modifier ce code directement car ce fichier est écrasé à chaque fois que vous relancer une génération.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-115.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-110.png" alt="image" width="350" height="308" border="0" /></a></p>
<h3 align="left">Utiliser le code généré</h3>
<h4 align="left">Organisation du code généré</h4>
<p align="left">Le code généré dans le fichier “<em>MyConstellation.generated.cs</em>” s’organise dans plusieurs espaces de nom (namespaces) :</p>
<ul>
<li>
<div align="left">Dans le namespace de votre assembly vous trouverez :</div>
<ul>
<li>
<div align="left">La classe statique “<em>MyConstellation</em>” représentant votre Constellation</div>
</li>
<li>
<div align="left">Les classes utilitaires <em>RealNameAttribute</em> et <em>RealNameExtension</em> indispensable au fonctionnement du code généré</div>
</li>
</ul>
</li>
<li>
<div align="left">Des namespaces par package</div>
<ul>
<li>
<div align="left"><em>VotreNamespace.NomDuPackage.StateObjects</em> : code généré pour les StateObjects (si des StateObjects sont déclarés pour le package)</div>
</li>
<li>
<div align="left"><em>VotreNamespace.NomDuPackage.MessageCallbacks</em> : code généré pour les MessageCallbacks (si des MessageCallbacks sont déclarés pour le package)</div>
</li>
</ul>
</li>
</ul>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-123.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-118.png" alt="image" width="350" height="406" border="0" /></a></p>
<h4 align="left">Des énumérations pour les sentinelles, packages et instances de votre Constellation</h4>
<p align="left">La classe statique “<em>MyConstellation</em>” contient trois énumérations :</p>
<ul>
<li>
<div align="left"><u>Sentinels</u> : contenant la liste des sentinelles de votre Constellation</div>
</li>
<li>
<div align="left"><u>Packages</u> : contenant le liste des packages de votre Constellation</div>
</li>
<li>
<div align="left"><u>PackageInstances</u> : contenant la liste des instances des packages de votre Constellation</div>
</li>
</ul>
<p align="left">Comme les noms de sentinelles ou packages peuvent contenir des caractères interdits en C# (comme par exemple les tirets), les valeurs des énumérations sont “nettoyées” et la valeur réelle se trouve dans l’attribut “RealName” que vous pouvez récupérer avec la méthode d’extension “<em>GetRealName()</em>”.</p>
<p align="left">Dans notre exemple l’énumération “Sentinels” générée est la suivante :</p>
<p></p><pre class="crayon-plain-tag">/// &lt;summary&gt;
/// Specifies the sentinels in your Constellation
/// &lt;/summary&gt;
public enum Sentinels
{
    /// &lt;summary&gt;
    /// Sentinel 'CEREBRUM'
    /// &lt;/summary&gt;
    [RealName("CEREBRUM")]
    CEREBRUM,
    /// &lt;summary&gt;
    /// Sentinel 'ESP8266'
    /// &lt;/summary&gt;
    [RealName("ESP8266")]
    ESP8266,
    /// &lt;summary&gt;
    /// Sentinel 'ESP-DoorBell'
    /// &lt;/summary&gt;
    [RealName("ESP-DoorBell")]
    ESP_DoorBell,
    /// &lt;summary&gt;
    /// Sentinel 'ESP-LightSensorSalon'
    /// &lt;/summary&gt;
    [RealName("ESP-LightSensorSalon")]
    ESP_LightSensorSalon,
    /// &lt;summary&gt;
    /// Sentinel 'esp-senergy'
    /// &lt;/summary&gt;
    [RealName("esp-senergy")]
    esp_senergy,
    /// &lt;summary&gt;
    /// Sentinel 'SKYNET-SERVER'
    /// &lt;/summary&gt;
    [RealName("SKYNET-SERVER")]
    SKYNET_SERVER,
}</pre><p></p>
<p align="left">De ce fait on peut manipuler les sentinelles et récupérer le nom réel avec la méthode “GetRealName()” :</p>
<p></p><pre class="crayon-plain-tag">MyConstellation.Sentinels sentinel = MyConstellation.Sentinels.ESP_DoorBell;
string realName = sentinel.GetRealName();</pre><p></p>
<p align="left">De plus, dans cette classe vous trouverez des méthodes d’extension pour <a href="/client-api/net-package-api/envoyer-des-messages-invoquer-des-messagecallbacks/#Creer_un_scope">créer un “MessageScope”</a> vers une de vos sentinelles, packages ou instances de package.</p>
<p align="left">Par exemple pour créer un scope vers les packages “Hue” :</p>
<p></p><pre class="crayon-plain-tag">MessageScope scope = MyConstellation.Packages.Hue.CreateScope();</pre><p></p>
<p>Ce qui est équivalent à :</p>
<p></p><pre class="crayon-plain-tag">MessageScope scope = MessageScope.Create("Hue");</pre><p></p>
<p>Sauf qu’avec le code généré plus besoin de chercher le nom exact ni même de risquer de faire une erreur de frappe, car tout est énumération !</p>
<p>On peut également cibler une instance d’un package en particulier. Par exemple pour cibler précisément le package “Hue” déployé sur la sentinelle “SKYNET-SERVER” :</p>
<p></p><pre class="crayon-plain-tag">MessageScope scope = MyConstellation.PackageInstances.SKYNET_SERVER_Hue.CreateScope();</pre><p></p>
<h4 align="left">Code généré pour les StateObjects</h4>
<p align="left">Prenons un exemple simple :  dans le code généré ci-dessus j’ai sélectionné le package “Paradox”, un package permettant de connecter les système d’alarme Paradox dans Constellation.</p>
<p align="left">Ce package publie plusieurs StateObjects :</p>
<ul>
<li>
<div align="left">Des StateObjects de type “AreaInfo” par secteur qui représente l’état d’un secteur (système armé ou non par exemple)</div>
</li>
<li>
<div align="left">Des StateObjects de type “ZoneInfo” par zone qui représente l’état d’une zone (zone ouverte ou non par exemple)</div>
</li>
<li>
<div align="left">Des StateObjects de type “UserInfo” par utilisateur qui représente l’état d’un utilisateur (nom de l’utilisateur, dernière activité, etc..)</div>
</li>
</ul>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-124.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-119.png" alt="image" width="350" height="206" border="0" /></a></p>
<p align="left">Prenons par exemple le StateObject “ZoneInfo1” de ce package :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-125.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-120.png" alt="image" width="350" height="268" border="0" /></a></p>
<p align="left">On y trouvera plusieurs informations sur l’état de cette zone.</p>
<p align="left">Le code généré pour les StateObjects de ce package sera donc rangé dans le namespace : <em>VotreNamespace.Paradox.StateObjects </em>et contiendra :</p>
<ul>
<li>
<div align="left">Une énumération “<em>ParadoxStateObjectNames</em>” référençant le nom des StateObjects actuellement connus sur le serveur</div>
</li>
<li>
<div align="left">Une classe “<em>ParadoxStateObjectLinkAttribute</em>” (spécialisation de la classe <em>StateObjectLinkAttribute</em>)</div>
</li>
<li>
<div align="left">Des classes pour chaque types personnalisés du package, ici le générateur aura généré les classes “AreaInfo”, “ZoneInfo” et “UserInfo”</div>
</li>
<li>
<div align="left">Une classe “<em>ParadoxExtensions</em>” contenant des méthodes d’extension pour convertir des StateObjects en type personnalisé</div>
</li>
</ul>
<p align="left">Voyons par exemple comment inclure notre StateObject de la zone “1” dans votre code C# avec le code généré.</p>
<p align="left">Tout d’abord, il faut inclure le namespace :</p>
<p></p><pre class="crayon-plain-tag">using Paradox.StateObjects;</pre><p></p>
<p align="left">Ensuite ajoutons un “StateObjectLink” de type “ParadoxStateObjectLink” où nous préciserons le nom du StateObject avec l’énumération :</p>
<p></p><pre class="crayon-plain-tag">[ParadoxStateObjectLink(ParadoxStateObjectNames.ZoneInfo1)]
public StateObjectNotifier Zone1 { get; set; }</pre><p></p>
<p align="left">Sans le code généré nous aurions écrit :</p>
<p></p><pre class="crayon-plain-tag">[StateObjectLink(Package="Paradox", Name="ZoneInfo1")]
public StateObjectNotifier Zone1 { get; set; }</pre><p></p>
<p align="left">Je peux ensuite utiliser la méthode d’extension générée “<em>AsZoneInfo()</em>” pour convertir la valeur du StateObject en “<em>ZoneInfo</em>” (“<em>Zon</em>eInfo” étant un type personnalisé décrit par le package Paradox) :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-126.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-121.png" alt="image" width="400" height="125" border="0" /></a></p>
<p align="left">Le générateur a “reproduit” ce type dans votre code généré avec les commentaires tel que spécifiés dans le PackageDescriptor du package Paradox.</p>
<p align="left">Sans le code généré, vous devez travailler avec un objet dynamique, donc sans auto-complétion :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-127.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-122.png" alt="image" width="230" height="32" border="0" /></a></p>
<p align="left">Bien entendu tous les Packages (virtuels ou non) peuvent déclarer des Packages Descriptor.</p>
<p align="left">Prenez l’exemple d’un capteur d’électricité basé sur un ESP8266. En utilisant la <a href="/client-api/arduino-esp-api/">librairie Constellation pour Arduino</a>, le code C++ de ce package virtuel commence par déclarer le type “<em>SEnergy.Electricity</em>” :</p>
<p></p><pre class="crayon-plain-tag">constellation.addStateObjectType("SEnergy.Electricity", TypeDescriptor().setDescription("S-Energy Electricity data").addProperty("Counter", "System.Int64", "Number of revolution").addProperty("Timestamp", "System.Int64", "Internal timestamp of the last revolution").addProperty("RevolutionTime", "System.Double", "The time (in ms) of the last revolution").addProperty("WattPerHour", "System.Int32", "Energy consumed").addProperty("Cumul", "System.Int64", "Total of KWh consumed")); 
constellation.declarePackageDescriptor();</pre><p></p>
<p>Puis à chaque fois que le capteur détecte une consommation électrique il publie un StateObject de la façon suivante :</p>
<p></p><pre class="crayon-plain-tag">StaticJsonBuffer&lt;JSON_OBJECT_SIZE(5)&gt; jsonBuffer;
JsonObject&amp; myStateObject = jsonBuffer.createObject();
myStateObject["Counter"] = counter;
myStateObject["Timestamp"] = ts;
myStateObject["RevolutionTime"] = timePerRevolution;
myStateObject["WattPerHour"] = wattPerHour;
myStateObject["Cumul"] = cumul;
constellation.pushStateObject("Electricity", myStateObject, "SEnergy.Electricity", 600);</pre><p></p>
<p align="left">On retrouve bien ce StateObject sur la Console Constellation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-129.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-124.png" alt="image" width="350" height="249" border="0" /></a></p>
<p align="left">Après avoir sélectionné le package “<em>SElectricity</em>” dans le générateur de code, je peux très facilement exploiter ce StateObject avec auto-complétion, description, etc.. :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-130.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-125.png" alt="image" width="450" height="176" border="0" /></a></p>
<p align="left">Par exemple pour suivre en temps réel la consommation électrique dans mon package C# avec le code généré à partir du capteur ESP8266 écrit en C++/Arduino :</p>
<p></p><pre class="crayon-plain-tag">namespace ConstellationPackageConsole2
{
    using Constellation.Package;
    using ConstellationPackageConsole2.SElectricity.StateObjects;

    public class Program : PackageBase
    {
        [SElectricityStateObjectLink(SElectricityStateObjectNames.Electricity)]
        public StateObjectNotifier Electricity { get; set; }

        static void Main(string[] args)
        {
            PackageHost.Start&lt;Program&gt;(args);
        }

        public override void OnStart()
        {
            this.Electricity.ValueChanged += (s, e) =&gt;
            {
                PackageHost.WriteInfo($"Current Energy Consumption : {e.NewState.AsSElectricitySEnergy_Electricity().WattPerHour}W @ {e.NewState.LastUpdate}");
            };
        }
    }
}</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-131.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-126.png" alt="image" width="350" height="176" border="0" /></a></p>
<h4 align="left">Code généré pour les MessageCallbacks</h4>
<p align="left">Le principe est le même avec les MessagesCallbacks, le générateur de code va créer le code dans le namespace “<em>VotreNamespace.NomDuPackage.MessagesCallbacks</em>” :</p>
<ul>
<li>
<div align="left">Des classes pour chaque types personnalisés utilisés dans les MC du package</div>
</li>
<li>
<div align="left">Une classe “<em>(NomDuPackage)Scope</em>” permettant de référencer les MC sous forme de méthodes .NET</div>
</li>
<li>
<div align="left">Une classe “<em>(NomDuPackage)Extensions</em>” : classe d’extension pour créer un scope du package à partir d’un MessageScope ou des énumérations Sentinels, Packages, PackagesInstances générées par le générateur</div>
</li>
</ul>
<h5 align="left">MessageCallbacks avec ou sans paramètre</h5>
<p align="left">Prenons par exemple le package virtuel “IRremote”, un récepteur/émetteur d’infrarouge développé en Arduino/C++ sur un ESP8266. Ce package virtuel expose deux MessageCallbacks : “Restart” pour rebooter l’ESP et “SendCode” pour envoyer un signal IR.</p>
<p align="left">En utilisant la <a href="/client-api/arduino-esp-api/">librairie Constellation pour Arduino</a> de ces deux MC se résume par ces quelques lignes de C++ :</p>
<p></p><pre class="crayon-plain-tag">// SendCode MessageCallback
constellation.registerMessageCallback("SendCode",
  MessageCallbackDescriptor().setDescription("Send the IR code").addParameter("encoding", "System.String").addParameter("code", "System.Int64"),
  [](JsonObject&amp; json) {
    const char * encoder = json["Data"][0].asString();  
    unsigned long code = strtoul(json["Data"][1].asString(), NULL, 0);
    // send the "code" here !
 });

// Restart MessageCallback
constellation.registerMessageCallback("Restart",
  MessageCallbackDescriptor().setDescription("Restart the ESP"),
  [](JsonObject&amp; json) {
    ESP.restart();
 });</pre><p></p>
<p>Une fois l’ESP démarré, nos deux MessageCallbacks sont correctement référencés sur Console Constellation avec les listes des paramètres, types et description :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-132.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-127.png" alt="image" width="350" height="150" border="0" /></a></p>
<p>Dans Visual Studio, générons maintenant le code pour notre package “IRRemote” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-133.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-128.png" alt="image" width="350" height="195" border="0" /></a></p>
<p>Ajoutons ensuite le namespace correspondant aux MessageCallbacks de notre package, ici “IRRemote” :</p>
<p></p><pre class="crayon-plain-tag">using IRremote.MessageCallbacks;</pre><p></p>
<p>Vous pouvez ensuite utiliser l’énumération “Packages” (ou “PackagesIntances”) et accéder à la méthode d’extension “<em>CreateIRRemoteScope</em>” pour créer un scope spécifiquement pour notre package :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-134.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-129.png" alt="image" width="450" height="109" border="0" /></a></p>
<p>Vous avez également une méthode d’extension nommée “ToXXXXSCope()” sur un MessageScope. En clair vous avez plusieurs moyen de créer un scope spécifiquement pour votre package “IRremote” avec le code généré :</p>
<p></p><pre class="crayon-plain-tag">IRremoteScope scope =  MyConstellation.Packages.IRremote.CreateIRremoteScope();

IRremoteScope scope = new IRremoteScope(MessageScope.Create("IRRemote"));

IRremoteScope scope = MessageScope.Create("IRRemote").ToIRremoteScope();

IRremoteScope scope = MessageScope.Create(MyConstellation.Packages.IRremote.GetRealName()).ToIRremoteScope();</pre><p></p>
<p>Ensuite sur la classe Scope généré pour votre package, ici “<em>IRRemoteScope</em>”, vous <strong>retrouverez vos MessageCallbacks sous forme de méthode .NET avec les paramètres et descriptions</strong> !</p>
<p>De ce fait vous disposez de l’auto complétion sans risque de faire des erreurs de frappe :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-135.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-130.png" alt="image" width="450" height="152" border="0" /></a></p>
<p>Ainsi pour envoyer un code IR sur l’Arduino/ESP depuis mon code C#, on pourrait écrire :</p>
<p></p><pre class="crayon-plain-tag">// Send Power ON/OFF to Samsung TV
MyConstellation.Packages.IRremote.CreateIRremoteScope().SendCode("Samsung", 0xE0E040BF);</pre><p></p>
<h5>MessageCallbacks avec des paramètres complexes</h5>
<p>Ici le package “<em>IRRemote</em>” expose un MC sans paramètre et un autre avec deux paramètres simples (string et long).</p>
<p>Mais le générateur est également capable de gérer les types complexes. Par exemple prenez le package “Xbmc” permettant de piloter des média-centers Xbmc/Kodi.</p>
<p>Le package expose différents MessageCallbacks pour lancer un média, mettre pause, piloter le volume et également pour afficher un message à l’écran via le MessageCallback nommé “ShowNotification”.</p>
<p>Ce MessageCallback prend deux paramètres : le nom de l’hôte Xbmc (un string) et la notification à afficher. Cette notification est un objet de type “<em>Xbmc.NotificationRequest</em>” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-136.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-131.png" alt="image" width="350" height="155" border="0" /></a></p>
<p align="left">Sur la Console Constellation, vous pouvez cliquer sur les types personnalisés pour afficher les détails du type, ici un objet avec quatre propriétés :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-137.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-132.png" alt="image" width="350" height="172" border="0" /></a></p>
<p align="left">Lorsque vous générez le code C# pour ce package vous retrouverez bien le MC “<em>ShowNotification</em>” avec le type personnalisé en paramètre :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-138.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-133.png" alt="image" width="450" height="92" border="0" /></a></p>
<p>Le générateur a en effet reproduit le type personnalisé dans votre code C# :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-139.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-134.png" alt="image" width="450" height="92" border="0" /></a></p>
<p>Ainsi pour afficher une notification sur un hôte Kodi, je pourrais écrire très simplement :</p>
<p></p><pre class="crayon-plain-tag">MyConstellation.Packages.Xbmc.CreateXbmcScope().ShowNotification("Kodi", new NotificationRequest() { Title = "Constellation", Message = "Hello World !" });</pre><p></p>
<h5>MessageCallbacks avec réponse : les sagas</h5>
<p>Une invocation d’un MessageCallback peut donner lieu à une réponse, on appelle cela les “<a href="/concepts/messaging-message-scope-messagecallback-saga/#Les_Sagas">Sagas</a>”. Avec l’API.NET, n’hésitez pas à relire les articles dédiés : <a href="/client-api/net-package-api/envoyer-des-messages-invoquer-des-messagecallbacks/#Invoquer_un_MessageCallback_avec_reponse_Utilisation_des_Sagas">Invoquer un MessageCallback avec réponse</a> et <a href="/client-api/net-package-api/messagecallbacks/#Repondre_a_une_saga">Répondre à une saga</a>.</p>
<p>Prenons un exemple, le package “Vera” (interface pour les box domotique) expose des MC pour envoyer des ordres à des périphériques Z-Wave :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-140.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-135.png" alt="image" width="350" height="213" border="0" /></a></p>
<p align="left">Vous remarquerez d’ailleurs que les MC “<em>SetDimmableLevel</em>” et “<em>SetSwitchState</em>” prennent en argument un type complexe comme expliqué dans le chapitre précédent.</p>
<p align="left">Vous remarquerez également que ces trois MC retournent un message de réponse, ici de type “Boolean”. En effet le résultat de l’exécution de l’ordre Z-Wave par la Vera est retourné à l’appellent si celui-ci à attaché un numéro de Saga.</p>
<p align="left">Ainsi dans le code généré, les méthodes générées pour ces MessageCallbacks retournent une <em>Task&lt;T&gt; </em>où T est le type de retour, ici un booléen :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-141.png"><img class="colorbox-2153"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-136.png" alt="image" width="350" height="70" border="0" /></a></p>
<p>Ainsi dans le C# on peut très facilement invoquer le MessageCallback et récupérer la réponse :</p>
<p></p><pre class="crayon-plain-tag">bool result = await MyConstellation.Packages.Vera.CreateVeraScope().SetSwitchState(new DeviceRequest() { DeviceID = 42, State = false });
 if (result)
 {
     PackageHost.WriteInfo("Device #42 turn off !");
 }
 else
 {
     PackageHost.WriteWarn("Unable to turn off the device #42 !");
 }</pre><p></p>
<p>Pour plus d’information à ce sujet, je vous recommande la lecture de l’article : <a href="/client-api/net-package-api/envoyer-des-messages-invoquer-des-messagecallbacks/#Invoquer_un_MessageCallback_avec_reponse_Utilisation_des_Sagas">Invoquer un MessageCallback avec réponse</a>.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/constellation-platform/constellation-sdk/generateur-de-code/">Le générateur de code C#</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/constellation-platform/constellation-sdk/generateur-de-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gérer les connexions Constellation</title>
		<link>https://developer.myconstellation.io/constellation-platform/constellation-sdk/gerer-connexions-constellation/</link>
					<comments>https://developer.myconstellation.io/constellation-platform/constellation-sdk/gerer-connexions-constellation/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Tue, 09 Aug 2016 12:55:22 +0000</pubDate>
				<category><![CDATA[Constellation SDK]]></category>
		<category><![CDATA[AccessKey]]></category>
		<category><![CDATA[connexion]]></category>
		<category><![CDATA[SDK]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=2159</guid>

					<description><![CDATA[<p>Pour gérer les connexions Constellation dans Visual Studio, cliquez sur le bouton “Manage Constellation Servers” dans la barre d’outils Constellation : Vous pourrez alors ajouter, supprimer ou éditer des connexions vers vos serveurs Constellation : Le bouton “Test” permet de</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/constellation-platform/constellation-sdk/gerer-connexions-constellation/">Gérer les connexions Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Pour gérer les connexions Constellation dans Visual Studio, cliquez sur le bouton “Manage Constellation Servers” dans la barre d’outils Constellation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image.png"><img class="colorbox-2159"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Manage Constellation Servers" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb.png" alt="Manage Constellation Servers" width="354" height="71" border="0" /></a></p>
<p>Vous pourrez alors ajouter, supprimer ou éditer des connexions vers vos serveurs Constellation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-1.png"><img class="colorbox-2159"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Manage Constellation Servers" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-1.png" alt="Manage Constellation Servers" width="354" height="268" border="0" /></a></p>
<p align="left">Le bouton “Test” permet de tester la connectivité.</p>
<p align="left">N’oubliez pas de sélectionner dans le liste déroulante en haut de la fenêtre, le serveur Constellation à utiliser pour le debug des packages.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/constellation-platform/constellation-sdk/gerer-connexions-constellation/">Gérer les connexions Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/constellation-platform/constellation-sdk/gerer-connexions-constellation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Mise en cache de page à l’aide de Disk: Enhanced 

Served from: developer.myconstellation.io @ 2026-01-22 03:13:21 by W3 Total Cache
-->