<?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>KlearTouch Blog &#187; Azure</title>
	<atom:link href="https://blog.developpez.com/kleartouch/pcategory/net/azure/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/kleartouch</link>
	<description></description>
	<lastBuildDate>Sun, 26 Jul 2009 06:31:00 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Ma première expérience avec la plate-forme de services Azure</title>
		<link>https://blog.developpez.com/kleartouch/p7889/net/azure/ma_premiere_experience_avec_la_plate_for</link>
		<comments>https://blog.developpez.com/kleartouch/p7889/net/azure/ma_premiere_experience_avec_la_plate_for#comments</comments>
		<pubDate>Sun, 19 Jul 2009 16:18:35 +0000</pubDate>
		<dc:creator><![CDATA[Pierre Henri Kuate]]></dc:creator>
				<category><![CDATA[Azure]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Il ya quelques semaines, j&#8217;ai décidé de créer un nouveau blog sur Azure; c&#8217;est pourquoi j&#8217;ai porté BlogEngine.NET vers Azure. Dans ce post, je vais décrire rapidement cette nouvelle plate-forme et présenter les problèmes que j&#8217;ai rencontrés et comment je les ai résolus/contournés. Au cas où vous ne savez pas ce que c&#8217;est, voici un petit résumé (vous pouvez en savoir plus sur Wikipedia et dans sa FAQ): &#171;&#160;La plate-forme de services Azure est une [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Il ya quelques semaines, j&rsquo;ai décidé de créer <a href="http://blog.kleartouch.com/">un nouveau blog sur Azure</a>; c&rsquo;est pourquoi j&rsquo;ai <a href="http://blog.developpez.com/kleartouch/p7857/net/azure/blogengine-net-sur-azure/">porté BlogEngine.NET vers Azure</a>. Dans ce post, je vais décrire rapidement cette nouvelle plate-forme et présenter les problèmes que j&rsquo;ai rencontrés et comment je les ai résolus/contournés.</p>
<p>Au cas où vous ne savez pas ce que c&rsquo;est, voici un petit résumé (vous pouvez en savoir plus <a href="http://fr.wikipedia.org/wiki/Windows_Azure">sur Wikipedia</a> et dans <a href="http://www.microsoft.com/azure/faq.mspx">sa FAQ</a>):<br />
&laquo;&nbsp;La plate-forme de services Azure est une plate-forme d&rsquo;application dans le nuage (cloud) qui permet aux applications d&rsquo;être hébergé et géré par les serveurs de Microsoft. Il fournit un système d&rsquo;exploitation dans le nuage appelé Windows Azure, qui est un environnement pour les applications et fournit un ensemble de services qui permet le développement, gestion et hébergement d&rsquo;applications gérées en ligne.&nbsp;&raquo;<br />
Pratiquement parlant, on l&rsquo;utilise par la construction et l&rsquo;emballage d&rsquo;un site Web, puis l&rsquo;uploader par le biais du <a href="https://lx.azure.microsoft.com/">portail d&rsquo;Azure</a> et après ça, le site est disponible à une adresse du genre: http://MonSiteWeb.cloudapp.net/<br />
Notez qu&rsquo;il peut être utilisé non seulement pour les applications .NET, mais aussi PHP, Java, Ruby, etc.</p>
<p>En plus de l&rsquo;hébergement lui-même, la plate-forme Azure comprend également de nombreux services. Je ne citerai que le stockage (pour stocker des fichiers et données non-structurés) et SQL Azure (SQL Server fonctionnant en ligne). Ils ont tous été conçus pour être extrêmement évolutif (gardez cela à l&rsquo;esprit lorsque vous observer d&rsquo;étranges limitations).<br />
Microsoft fournit des SDKs pour émuler la plupart de ces services sur votre machine (la &laquo;&nbsp;Fabrique de Développement&nbsp;&raquo; ou FabDev). Cela rend le débogage plus facile. En théorie, si votre application fonctionne correctement sur votre ordinateur, elle fonctionnera également en ligne (même si, ce n&rsquo;est pas exactement le cas, pour le moment).</p>
<p>Maintenant, parlons de ce que c&rsquo;est que de développer pour cette plate-forme.<br />
<span id="more-36"></span><br />
1. En ligne, Azure vous permet de stocker des données dans des tables Azure. Elles ne sont pas relationnelles. Elles se comportent comme des &laquo;&nbsp;<a href="http://en.wikipedia.org/wiki/Set_(computer_science)">sets non typés</a>&laquo;&nbsp;, de sorte que vous pouvez mettre n&rsquo;importe quel objet (de différents types) de la même &laquo;&nbsp;table&nbsp;&raquo;, il n&rsquo;y a pas de schéma et les tables peuvent être créées à la volée.<br />
La &laquo;&nbsp;fabrique de développement&nbsp;&raquo; (FabDev) est livrée avec un outil de stockage qui s&rsquo;appuie sur SQL Server pour émuler le stockage de données. Contrairement à la version en ligne, il possède de nombreuses ennuyeuses restrictions (en raison de sa mise en œuvre basée sur SQL Server): Vous devez exécuter un outil (Devgentable.exe) pour générer les tables où sont stockées vos données. Le plus ennuyeux est que les chaînes de caractères ont une longueur maximale de 1000. Ceci est très petit pour tout travail sérieux. Globalement, cela signifie que profiter des tables Azure comme sets non typés est difficile, car cela rend l&rsquo;application in-testable localement.<br />
Malheureusement, je ne vois pas comment contourner ce problème. Au mieux, on peut augmenter la taille des chaînes de caractères. Espérons qu&rsquo;une meilleure mise en œuvre sera disponible bientôt.</p>
<p>2. Comme je l&rsquo;ai expliqué précédemment, vous devez emballer votre site web pour l&rsquo;uploader. Cela signifie que, chaque déploiement doit contenir l&rsquo;ensemble du projet. Cela est compréhensible pour les fichiers binaires, mais cela signifie aussi que vous ne pouvez pas faire un changement rapide de web.config ou une page HTML par exemple. Et je ne veux pas être parmi les gens qui doivent uploader l&rsquo;ensemble de l&rsquo;environnement PHP/Java à chaque fois (requis parce qu&rsquo;ils ne sont pas préinstallés comme .NET).<br />
Ce problème est soluble. Après tout, le stockage d&rsquo;Azure donne accès aux fichiers individuels, afin de les ajouter/modifier/supprimer. Tout ce dont nous avons besoin, c&rsquo;est d&rsquo;avoir accès à la racine Web de la même manière. Notez que, dans les deux cas, la montée en charge est abstraite (il existe de nombreuses copies de des fichiers sur des ordinateurs différents et ils sont gardés en synchronisation).</p>
<p>3. Nous avons vraiment besoin d&rsquo;une solution pour accéder aux services de stockage d&rsquo;Azure. Pour le moment, j&rsquo;utilise <a href="http://azurestorageexplorer.codeplex.com/">AzureStorageExplorer</a>, il est assez bon, mais a de nombreuses lacunes. Il existe des sociétés offrant des solutions plus complètes, mais ils ne sont pas gratuits.</p>
<p>4. Windows Azure a une API pour enregistrer des événements. Cela est vraiment utile pour surveiller un site web. Le problème est l&rsquo;accès à ces logs. Actuellement, on doit: transférer dans un stockage, attendre, télécharger et, enfin, lire. Nous avons besoin d&rsquo;une interface web pour accéder aux logs en temps réel!<br />
Ma solution actuelle (mise en œuvre dans mon BlogEngine.NET sur Azure): Tous les journaux sont envoyés par la même API (<a href="http://kleartouch.codeplex.com/SourceControl/changeset/view/29443#484827">classe ApplicationEnvironment</a>). J&rsquo;ai ajouté un StringBuilder statique où je les enregistre et à la fin de chaque demande, je l&rsquo;enregistre dans un blob Azure (nom du fichier basé sur la date). Ensuite, j&rsquo;utilise AzureStorageExplorer pour le lire. Je pourrais aussi créer une page Web pour le lire en ligne. Cette solution est primitive, mais elle fonctionne. N&rsquo;oubliez pas de désactiver ça en production (afin de réduire les coûts).</p>
<p>5. Enfin, le plus irritant problème s&rsquo;est produit lorsque je débutais. L&rsquo;application ne démarrais pas du tout. Dans .NET, le débogueur est attaché avant que tout le code soit exécuté, de sorte que toute erreur peut être interceptée et débuggée. Ce n&rsquo;est pas le cas pour la FabDev. En plus, je ne pouvais même pas lire les logs dans sa console. J&rsquo;ai donc utilisé le StringBuilder introduit en 4. Je l&rsquo;enregistre dans un fichier après chaque log:<br />
<code class="codecolorer text default"><span class="text">File.WriteAllText(Path.Combine(HttpRuntime.AppDomainAppPath, &quot;logs.txt&quot;), Logs.ToString());</span></code><br />
De cette façon, je pouvais au moins ajouter assez de logs pour finalement savoir où sont les bugs.<br />
Au fait, dans Silverlight, il ya l&rsquo;évènement <a href="http://msdn.microsoft.com/fr-fr/library/system.windows.application.unhandledexception(VS.95).aspx">Application.UnhandledException</a> qui peut être utilisé pour détecter toute exception non gérée. Ceci est très utile car, avec lui, je n&rsquo;ai plus à mettre des try/catch/log partout. <a href="http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx">AppDomain.UnhandledException</a> semble faire le même travail, mais je ne l&rsquo;ai pas encore testé.</p>
<p>Globalement, j&rsquo;aime vraiment Azure, considérant les contraintes dues au support de la montée en charge, c&rsquo;est une bonne plate-forme. Et je comprends qu&rsquo;il est encore en version bêta/CTP (la version finale est <a href="http://blogs.msdn.com/windowsazure/archive/2009/07/14/confirming-commercial-availability-and-announcing-business-model.aspx">prévue pour Novembre</a>). J&rsquo;espère que ces commentaires contribueront à l&rsquo;améliorer.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlogEngine.NET sur Azure</title>
		<link>https://blog.developpez.com/kleartouch/p7857/net/azure/blogengine_net_sur_azure</link>
		<comments>https://blog.developpez.com/kleartouch/p7857/net/azure/blogengine_net_sur_azure#comments</comments>
		<pubDate>Thu, 09 Jul 2009 03:01:04 +0000</pubDate>
		<dc:creator><![CDATA[Pierre Henri Kuate]]></dc:creator>
				<category><![CDATA[Azure]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Je viens de créer un nouveau blog utilisant BlogEngine.NET et hébergé sur Windows Azure. C&#8217;est mon premier gros projet sur Azure, et j&#8217;ai beaucoup appris sur cette plateforme. Au cas où vous n&#8217;avez pas jamais entendu parlé de Windows Azure, il s&#8217;agit, en gros, d&#8217;un service d&#8217;hébergement offert par Microsoft. Il diffère des solutions classiques ASP.NET parce qu&#8217;il est fait pour supporter une grand montée en charge. Il est donc comparable à Google AppEngine et [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Je viens de créer un <a href="http://blog.kleartouch.com/">nouveau blog</a> utilisant <a href="http://www.dotnetblogengine.net/" target="_blank">BlogEngine.NET</a> et hébergé sur <a href="http://www.microsoft.com/azure/" target="_blank">Windows Azure</a>. C&rsquo;est mon premier gros projet sur Azure, et j&rsquo;ai beaucoup appris sur cette plateforme.</p>
<p>Au cas où vous n&rsquo;avez pas jamais entendu parlé de Windows Azure, il s&rsquo;agit, en gros, d&rsquo;un service d&rsquo;hébergement offert par Microsoft. Il diffère des solutions classiques ASP.NET parce qu&rsquo;il est fait pour supporter une grand montée en charge. Il est donc comparable à <a href="http://code.google.com/appengine/">Google AppEngine</a> et à <a href="http://aws.amazon.com/ec2/">Amazon EC2</a> (avec un support natif pour ASP.NET).</p>
<p>Il existait déjà deux portages de BlogEngine.NET vers Azure: <a href="http://azureblogengine.codeplex.com/" target="_blank">Azure Blog Engine</a> and <a href="http://zecloud.codeplex.com/" target="_blank">ZeCloud</a>. Après les avoir testé, j&rsquo;ai décidé d&rsquo;en faire un autre pour deux raisons:<br />
<span id="more-35"></span><br />
&#8211; Faire un portage plus facile à maintenir: Les versions actuelles n&rsquo;ont pas gardé la structure originelle de BlogEngine.NET, ce qui signifie qu&rsquo;il serait difficile d&rsquo;incorporer ces nouvelles fonctions.<br />
&#8211; Me familiariser avec Azure: Rien de tel qu&rsquo;un projet compliqué pour approfondir ces connaissances</p>
<h4>Processus de portage de BlogEngine.NET vers Azure</h4>
<p>ZeCloud as <a href="http://www.zecloud.fr/post/2009/01/29/Portage-du-BlogEngineNet-sur-Azure-reussi.aspx">un article détaillé</a> et j&rsquo;ai suivi un chemin assez similaire. J&rsquo;ai aussi fait beaucoup d&rsquo;efforts pour changer la structure au minimum. Il devrait donc être assez facile de la maintenir à jour.</p>
<p>Vous pouvez télécharger le résultat final sur CodePlex: <a href="http://kleartouch.codeplex.com/" target="_blank">http://kleartouch.codeplex.com/</a><br />
J&rsquo;ai inclu un court <a href="http://kleartouch.codeplex.com/sourcecontrol/changeset/view/27313?projectName=kleartouch#484847" target="_blank">lisez-moi</a> qui explique comment l&rsquo;installer.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
