<?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>Le blog de Hinault Romaric Donfack &#187; Mobiles</title>
	<atom:link href="https://blog.developpez.com/lilroma/pcategory/mobiles/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/lilroma</link>
	<description>Bienvenue sur ce blog. Vous y trouverez du .NET, du .NET...  encore du .NET, toujours du .NET et très peu de chose sur moi</description>
	<lastBuildDate>Sat, 27 Aug 2016 14:24:30 +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>Cloud, Mobiles, Tablettes, App Store, violation des brevets … ou la fin de l’indépendance du développeur ?</title>
		<link>https://blog.developpez.com/lilroma/p10386/divers/cloud_mobiles_tablettes_app_store_violat</link>
		<comments>https://blog.developpez.com/lilroma/p10386/divers/cloud_mobiles_tablettes_app_store_violat#comments</comments>
		<pubDate>Tue, 11 Oct 2011 09:08:01 +0000</pubDate>
		<dc:creator><![CDATA[Hinault Romaric]]></dc:creator>
				<category><![CDATA[Cloud computing]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Mobiles]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Cette fois, les visiteurs de mon blog qui sont habitués à des sujets techniques assez pointus qui sont couramment publiés sur cet espace, seront peut être un peu déçu ce jour, car je vais m’attaquer à un sujet un peu &#8230; <a href="https://blog.developpez.com/lilroma/p10386/divers/cloud_mobiles_tablettes_app_store_violat">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Cette fois, les visiteurs de mon blog qui sont habitués à des sujets techniques assez pointus qui sont couramment publiés sur cet espace, seront peut être un peu déçu ce jour, car je vais m’attaquer à un sujet un peu plus généraliste, qui n’a rien à voir avec les technologies Microsoft.</p>
<p>En observant depuis un certain moment l’évolution des technologies et plateformes actuelles, je me rends compte que le business modèle en ce qui concerne le développement et la publication des applications est en train de s’orienter vers une situation ou le développeur perd de plus en plus son autonomie.</p>
<p><span id="more-29"></span></p>
<p>Cette idée à commencer à fleurir dans mon esprit depuis très longtemps, lorsque j’avais été frustré par une première tentative d’inscription pour publication d’application sur le marketplace Windows Phone 7, qui avait été un échec avec pour principale cause la non-prise en charge de ma zone géographique.</p>
<p>Ensuite vint mon inscription à Windows Azure pendant <a href="http://www.developpez.com/actu/30936/">les 30 jours de test gratuit</a> et pour le projet <a href="http://dotnet.developpez.com/animation/folding-at-home/">Folding@home</a> sur DVP  de la plateforme Cloud de Microsoft qui n’a bien évidement abouti à aucun résultat avec, toujours pour cause, la zone géographique. Et finalement, les sujets qui pullulent actuellement en ligne sur la guerre des brevets et les contraintes liées au développement mobile m’ont poussé à écrire ce billet de blog.</p>
<p>Avant d’évoluer, je tiens à préciser que je suis un développeur .NET indépendant, qui réside actuellement au Cameroun, un pays plutôt pauvre &#8211; faut le dire &#8211; de l’Afrique centrale, ou l’évolution technologique est à la traine. Néanmoins, il fait bon d’y vivre ;). La n’est pas le but de cet article.</p>
<p>L’ère du PC a offert une certaine liberté au développeur dans le choix de sa plateforme d’exécution, de ses outils et langages de développement.  On pouvait se vanter d’être un Geek avec un ordinateur sur lequel sont installés plusieurs OS avec de multiples plateformes de développement. </p>
<p>Couplé à l’avènement de l’Internet dans les années 80, les développeurs pouvaient publier le fruit de leur labeur beaucoup plus simplement, quasiment bon marché. </p>
<p>Internet est venu donc favoriser la distribution des applications sur le Web en dehors des standards industriels. Les logiciels sur le Web sont pour la plupart développés par des personnes physiques (développeurs indépendants) – par opposition à la personne morale qu&rsquo;est l&rsquo;entreprise.</p>
<p>Dès lors, on a assisté même à un essor des développeurs indépendants. Certains ont même quitté l’entreprise qui les employait pour se lancer avec beaucoup de succès dans une activité personnelle avec le maximum de liberté.</p>
<p>Avec l’avènement des terminaux mobiles et des tablettes qui rencontrent un succès énorme de nos jours. On aperçoit de plus en plus des avis des personnes annonçant <a href="http://www.developpez.com/actu/35957/">la fin de l’ère PC</a>.</p>
<p>On assiste également à l’attrait de bon nombre de développeurs pour le développement des applications mobiles. Cependant, la distribution des applications est désormais centralisée au sein d’un seul canal de diffusion officiel pour chaque éditeur de système d’exploitation mobile : les galeries d’applications.</p>
<p>Certes, cela permet de cibler un public beaucoup plus large, et offre une plus grande lisibilité à l’application du développeur, permettant ainsi de générer de plus gros revenu pour les applications mobiles populaires.</p>
<p>Mais d’un autre côté, pour pouvoir publier son application, le développeur doit remplir plusieurs conditions et est contraint d’utiliser un langage bien précis, qui est propre à chaque système d’exploitation mobile (.NET pour Windows Phone, Objective-C  pour iOS, etc.). </p>
<p>Pour le cas de l’App Store d’Apple par exemple,  le processus de validation de l’application passe par une vérification stricte de celle-ci, qui ne doit pas avoir accès à certaines ressources système. De plus, votre pays de résidence conditionne également votre possibilité d’accès à la galerie (comme cela a été le cas pour moi avec Windows Phone).</p>
<p>En contrepartie de la visibilité offerte par la galerie et les outils misent à la disposition du développeur pour le suivi de ses publications, une bonne partie du revenu généré par l’application est versée à l’éditeur de la plateforme.</p>
<p>De plus, cette possibilité de faire tourner un système d’exploitation de son choix sur un dispositif n’est quasiment plus possible.</p>
<p>Mais là n’est pas l’aspect le plus critiquable de la chose. La violation des propriétés intellectuelles fait de plus en plus parler d’elle.</p>
<p>On se souvient encore certainement de l’affaire <a href="http://www.developpez.com/actu/32391/">Lodsys LLC</a>, cette entreprise qui avait adressé des lettres individuelles par le service de transport de fret FedEx à de nombreux éditeurs d&rsquo;applications  exigeant un dividende de 0.575 % sur les revenus générés par les applications de ceux-ci.</p>
<p>Le développeur après des efforts considérables de programmation pour mettre sur pied son application, peut à tout moment être face à des personnes faisant valoir un droit à une partie de son travail sans toutefois y avoir participé, tout simplement parce que celles-ci ont fait valider un papier décrivant théoriquement une idée.</p>
<p>Bien évidemment, le développeur ne dispose pas d’assez de ressource pour se défendre. Les frais de justice à eux seuls prendront pratiquement tout le revenu généré par l’application et peut-être même par toute son activité.</p>
<p>De ce fait, les développeurs  qui se sont lancés dans  une activité indépendante n’auront plus que comme alternative pour survivre de travailler pour des entreprises qui disposent d’assez de ressources pour pouvoir faire face à de telle situation.</p>
<p>Et le Cloud Computing ?</p>
<p>Le Cloud Computing fait également beaucoup parler de lui ses deux dernières années. Même s’il est clair que les cibles principales du Cloud sont les entreprises, les plateformes d’hébergement d’applications dans le Cloud sont aussi proposées aux développeurs.</p>
<p>L’accès à celles-ci en plus d’être conditionné une fois de plus à la zone géographique, limite également le choix des langages de développement pour le développeur.</p>
<p>Pour chaque plateforme, l’éditeur assure d’abord la promotion du langage de programmation qu’il a créé (le cas de Go pour la plateforme App Engine de Google) avant d’intégrer les autres langages de programmation les plus populaires (JAVA, PHP, Python, etc.).</p>
<p> L’adoption de ces écosystèmes pourrait tout simplement entrainer la fin de certains langages de programmation, et ne laisse pas une grande liberté au développeur dans le choix de son langage, qui est désormais limité à ceux qui sont supportés par la plateforme ciblée.</p>
<p>Pour conclure,  je me rends compte que le développement d’application pour les écosystèmes mobiles, pour les plateformes de Cloud Computing, tend à contraindre de plus en plus le développeur au respect de certaines conditions et le prive de liberté dans le choix d’outils et langages de développement, et n’encourage pas également à se lancer à son propre compte comme développeur indépendant.</p>
<p>Sans toutefois vouloir lancer un quelconque troll, ceci n’est qu’une analyse personnelle, fondée sur l’état actuel des choses, qui peut s’avérer cependant critiquable.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC 4 Developer Preview : jQuery Mobile, View Switcher et Browser Overriding</title>
		<link>https://blog.developpez.com/lilroma/p10343/net/asp_net_mvc_4_developer_preview_jquery_m</link>
		<comments>https://blog.developpez.com/lilroma/p10343/net/asp_net_mvc_4_developer_preview_jquery_m#comments</comments>
		<pubDate>Tue, 04 Oct 2011 08:59:01 +0000</pubDate>
		<dc:creator><![CDATA[Hinault Romaric]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC 4]]></category>
		<category><![CDATA[Crystal Report]]></category>
		<category><![CDATA[Mobiles]]></category>
		<category><![CDATA[Nuget]]></category>
		<category><![CDATA[RAZOR]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Dans mon précédent billet de blog, nous avons créé notre première application mobile en utilisant le nouveau Template qu’apporte ASP.NET MVC 4. Nous avons également découvert une puissance fonctionnalité introduite par le Framework Web pour le soutien des modes d’affichage. &#8230; <a href="https://blog.developpez.com/lilroma/p10343/net/asp_net_mvc_4_developer_preview_jquery_m">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Dans mon <a href="http://blog.developpez.com/lilroma/p10326/">précédent billet de blog</a>, nous avons créé notre première application mobile en utilisant le nouveau Template qu’apporte ASP.NET MVC 4. Nous avons également découvert une puissance fonctionnalité introduite par le Framework Web pour le soutien des modes d’affichage. </p>
<p>Avec ces nouveautés, nous avons sans apporter aucune modification à nos modèles et contrôleurs, créé des vues personnalisées pour les navigateurs Desktop et les navigateurs mobiles.</p>
<p>Dans ce billet, nous verrons comment procéder autrement en utilisant le package Nuget JQuery.Mobile.MVC.</p>
<p><span id="more-64"></span></p>
<p>Le package jQuery.Mobile.MVC installe la librairie JQuery Mobile qui va permettre la création des interfaces Web optimisées pour les smartphones et autres terminaux tactiles, ainsi que plusieurs autres fichiers pour faciliter la tâche au développeur.  </p>
<p>Ouvrons notre application ASP.NET MVC 4 avec votre éditeur Visual Studio 2010 SP 1 ou Visual Web Developper Express 2010 SP 1.</p>
<p>Nous allons dans un premier temps intégrer la bibliothèque JavaScript à notre projet en utilisant le gestionnaire de packages Nuget.</p>
<p>Pour cela, nous allons faire  un clic droit sur notre projet dans l’explorateur de solution. Dans le menu contextuel qui s’affiche, sélectionnons « Manage Nuget Packages ».</p>
<p>La fenêtre de gestion des packages Nuget s’affiche. Nous devons rechercher le package jQuery.Mobile.MVC en tapant son nom dans la zone de recherche.</p>
<p><img src="http://blog.developpez.com/media/JQuery.MVC.PNG" width="572" height="445" alt="" /> </p>
<p>Nous allons ensuite cliquer sur Install pour que Nuget télécharger et installe automatiquement dans notre projet le package ainsi que toutes ses dépendances.</p>
<p>Nous allons nous rendre compte que plusieurs fichiers ont été ajoutés au projet, dont un nouveau fichier <strong>_Layout.Mobile.cshtml</strong>, <strong>_ViewSwitcher.cshtml</strong> ou encore <strong>ViewSwitcherController.cs</strong>.</p>
<p><img src="http://blog.developpez.com/media/Switcher.PNG" width="287" height="400" alt="" /></p>
<p>Procédons maintenant à l’exécution de notre page pour voir ce qui sera affiché à l’écran en utilisant notre navigateur Firefox, et en définissant comme agent utilisateur iPhone (voir <a href="http://blog.developpez.com/lilroma/p10326/">mon précédent billet de blog</a> pour définir l’agent utilisateur sous Firefox).</p>
<p><img src="http://blog.developpez.com/media/runwebsite5.PNG" width="334" height="448" alt="" /></p>
<p><strong>View Switcher.</strong></p>
<p>Revenons maintenant voir ce qui se trouve sous le capot.</p>
<p>Sur la page affichée dans notre navigateur, nous remarquons qu’une bande noire s’est ajoutée en début de celle-ci avec un lien permettant de basculer sur la vue desktop de la page.</p>
<p>D’où provient cette bande ?</p>
<p>Ouvrons avec notre éditeur la page affichée à l’écran (Index.cshtml).</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">@{<br />    ViewBag.Title = <span style="color: #006080">&quot;Home Page&quot;</span>;<br />}<br /><br />&lt;h2&gt;@ViewBag.Message&lt;/h2&gt;<br />&lt;p&gt;<br />    To learn more about ASP.NET MVC visit &lt;a href=<span style="color: #006080">&quot;http://asp.net/mvc&quot;</span> title=<span style="color: #006080">&quot;ASP.NET MVC Website&quot;</span>&gt;http:<span style="color: #008000">//asp.net/mvc&lt;/a&gt;.</span><br />&lt;/p&gt;<br /><br />&lt;ul data-role=<span style="color: #006080">&quot;listview&quot;</span> data-inset=<span style="color: #006080">&quot;true&quot;</span>&gt;<br />    &lt;li data-role=<span style="color: #006080">&quot;list-divider&quot;</span>&gt;Navigation&lt;/li&gt;<br />    &lt;li&gt;@Html.ActionLink(<span style="color: #006080">&quot;About&quot;</span>, <span style="color: #006080">&quot;About&quot;</span>, <span style="color: #006080">&quot;Home&quot;</span>)&lt;/li&gt;<br />    &lt;li&gt;@Html.ActionLink(<span style="color: #006080">&quot;Contact&quot;</span>, <span style="color: #006080">&quot;Contact&quot;</span>, <span style="color: #006080">&quot;Home&quot;</span>)&lt;/li&gt;<br />&lt;/ul&gt;</pre>
<p></div>
<p>À première vue, on se rend compte qu’aucune modification n’a été effectuée dans ce fichier.</p>
<p>Puisque ce fichier est intégré dans le Layout avant d’être affiché, jetons maintenant un coup d’œil sur notre fichier _Layout.Mobile.cshtml. Nous allons apercevoir la ligne de code suivante :</p>
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; font-family: 'Courier New', Courier, Monospace; font-size: 8pt; line-height: 12pt; border: solid 1px silver; cursor: text; margin: 20px 0px 10px 0px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%; direction: ltr; text-align: left;">
<pre id="codeSnippet" style="background-color: #f4f4f4; font-family: 'Courier New', Courier, Monospace; font-size: 8pt; line-height: 12pt; border-style: none; color: black; overflow: visible; padding: 0px; width: 100%; margin: 0em; direction: ltr; text-align: left;">@Html.Partial(<span style="color: #006080;">"_ViewSwitcher"</span>)</pre>
<p></div>
<p>Qui fait référence à la vue partielle _ViewSwitcher.cshtml. C’est cette vue qui ajoute un lien sur toutes les pages mobiles permettant de basculer du mode d’affichage mobile pour Desktop et vice-versa. Par défaut, elle n’est pas incluse dans les vues Desktop. Pour remédier à cela, vous pouvez juste copier @Html.Partial(&laquo;&nbsp;_ViewSwitcher&nbsp;&raquo;) dans le fichier _Layout.Mobile.cshtml et le coller dans le fichier _Layout.cshtml.</p>
<p>Dans le code de la vue partielle ViewSwitcher, la méthode <strong>GetOverriddenBrowser()</strong> est utilisée pour retourner un objet   HttpBrowserCapabilitiesBase,  qui va donner des informations sur les capacités du navigateur qui a fait la demande. La propriété IsMobileDevice retourne une valeur booléenne permettant de savoir si c’est un navigateur mobile qui effectue la demande.</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 400px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">@<span style="color: #0000ff">if</span> (Request.Browser.IsMobileDevice &amp;&amp; Request.HttpMethod == <span style="color: #006080">&quot;GET&quot;</span>)<br />{<br />    &lt;div <span style="color: #0000ff">class</span>=<span style="color: #006080">&quot;view-switcher ui-bar-a&quot;</span>&gt;<br />        @<span style="color: #0000ff">if</span> (ViewContext.HttpContext.GetOverriddenBrowser().IsMobileDevice)<br />        {<br />            @: Displaying mobile view<br />            @Html.ActionLink(<span style="color: #006080">&quot;Desktop view&quot;</span>, <span style="color: #006080">&quot;SwitchView&quot;</span>, <span style="color: #006080">&quot;ViewSwitcher&quot;</span>, <span style="color: #0000ff">new</span> { mobile = <span style="color: #0000ff">false</span>, returnUrl = Request.Url.PathAndQuery }, <span style="color: #0000ff">new</span> { rel = <span style="color: #006080">&quot;external&quot;</span> })<br />        } <br />        <span style="color: #0000ff">else</span> <br />        {<br />            @: Displaying desktop view<br />            @Html.ActionLink(<span style="color: #006080">&quot;Mobile view&quot;</span>, <span style="color: #006080">&quot;SwitchView&quot;</span>, <span style="color: #006080">&quot;ViewSwitcher&quot;</span>, <span style="color: #0000ff">new</span> { mobile = <span style="color: #0000ff">true</span>, returnUrl = Request.Url.PathAndQuery }, <span style="color: #0000ff">new</span> { rel = <span style="color: #006080">&quot;external&quot;</span> })<br />        }<br />    &lt;/div&gt;<br />}</pre>
<p></div>
<p><strong>Browser Overriding</strong></p>
<p>Penchons-nous maintenant sur le contrôleur qui est associé à cette vue.</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 300px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><br /><span style="color: #0000ff">using</span> System.Web.Mvc;<br /><span style="color: #0000ff">using</span> System.Web.WebPages;<br /><br /><span style="color: #0000ff">namespace</span> MvcApplication3.Controllers<br />{<br />    <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> ViewSwitcherController : Controller<br />    {<br />        <span style="color: #0000ff">public</span> RedirectResult SwitchView(<span style="color: #0000ff">bool</span> mobile, <span style="color: #0000ff">string</span> returnUrl) {<br />            <span style="color: #0000ff">if</span> (Request.Browser.IsMobileDevice == mobile)<br />                HttpContext.ClearOverriddenBrowser();<br />            <span style="color: #0000ff">else</span><br />                HttpContext.SetOverriddenBrowser(mobile ? BrowserOverride.Mobile : BrowserOverride.Desktop);<br /><br />            <span style="color: #0000ff">return</span> Redirect(returnUrl);<br />        }<br />    }<br />}</pre>
<p></div>
<p>Le View Switcher utilise une nouvelle fonctionnalité &laquo;&nbsp;Browser Overriding&nbsp;&raquo;, permettant de traiter les demandes d’une application comme  si elles provenaient d’un autre navigateur (Agent utilisateur).</p>
<p>Le Browser Overriding est une caractéristique de base d’ASP.NET MVC 4, et peut de ce fait être utilisé même si vous n’avez pas installé le package jQuery.Mobile.MVC. Avec cette fonctionnalité, en fonction du lien sur lequel l’utilisateur à cliquer (Desktop view ou Mobile view), le contrôleur de la vue Switcher va simuler un agent utilisateur (BrowserOverride.Mobile ou BrowserOverride.Desktop) qui sera utilisé pour charger les vues correspondantes au choix de l’utilisateur malgré que l’agent utilisateur transmit par son navigateur ne soit pas le même.</p>
<p>Le code ci-dessous va donc permettre de substituer l’agent utilisateur du navigateur. Par défaut, les données sur l’agent utilisateur simulé sont stockées en utilisant un cookie. </p>
<p><strong>Conclusion</strong></p>
<p>Nous venons d’apercevoir une fois de plus la puissance fonctionnelle d’ASP.NET MVC 4 pour le développement d’application mobile et Web. Dans le prochain billet de blog, notre attention sera portée sur le Template Web du Framework.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
