<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires sur : ALT.Net FR #10 : Aspectize, compte rendu par Gauthier</title>
	<atom:link href="http://www.altnetfr.org/2009/02/22/altnet-fr-10-aspectize-compte-rendu-par-gauthier/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.altnetfr.org/2009/02/22/altnet-fr-10-aspectize-compte-rendu-par-gauthier/</link>
	<description>I'm an adult and I'll run with scissors if I want to - yahooo!</description>
	<lastBuildDate>Tue, 09 Mar 2010 19:10:17 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Par : Nouveau site pour ALT.NET France &#171; Codingly</title>
		<link>http://www.altnetfr.org/2009/02/22/altnet-fr-10-aspectize-compte-rendu-par-gauthier/comment-page-1/#comment-6</link>
		<dc:creator>Nouveau site pour ALT.NET France &#171; Codingly</dc:creator>
		<pubDate>Mon, 02 Mar 2009 10:18:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.altnetfr.org/?p=70#comment-6</guid>
		<description>[...] dernière réunion a permis à Nicolas Roux et Frédéric Fadel de nous présenter Aspectize, et un compte rendu a déjà été posté par Gauthier. En Mars, il sera question de TDD, et c&#8217;est Djamel Zouaoui [...]</description>
		<content:encoded><![CDATA[<p>[...] dernière réunion a permis à Nicolas Roux et Frédéric Fadel de nous présenter Aspectize, et un compte rendu a déjà été posté par Gauthier. En Mars, il sera question de TDD, et c&#8217;est Djamel Zouaoui [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Approche - Les news d&#39;Aspectize</title>
		<link>http://www.altnetfr.org/2009/02/22/altnet-fr-10-aspectize-compte-rendu-par-gauthier/comment-page-1/#comment-4</link>
		<dc:creator>Approche - Les news d&#39;Aspectize</dc:creator>
		<pubDate>Sun, 01 Mar 2009 14:41:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.altnetfr.org/?p=70#comment-4</guid>
		<description>[...] à notre soirée Alt.Net, qui a suscité quelques échos dans la blogosphère (ici, ici et là), et qui était un exercice très intéressant pour nous, voici quelques explications écrites qui [...]</description>
		<content:encoded><![CDATA[<p>[...] à notre soirée Alt.Net, qui a suscité quelques échos dans la blogosphère (ici, ici et là), et qui était un exercice très intéressant pour nous, voici quelques explications écrites qui [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Nicolas</title>
		<link>http://www.altnetfr.org/2009/02/22/altnet-fr-10-aspectize-compte-rendu-par-gauthier/comment-page-1/#comment-3</link>
		<dc:creator>Nicolas</dc:creator>
		<pubDate>Thu, 26 Feb 2009 10:36:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.altnetfr.org/?p=70#comment-3</guid>
		<description>Bonjour Gauthier, Merci pour ce résumé. 

Je me permet de revenir sur l&#039;approche que nous avons présentée, car elle est fondamentale pour comprendre notre démarche. Ok, notre produit est jeune et a encore des défauts, et je souhaiterais insister sur l&#039;esprit de l&#039;approche, et la vision de l&#039;Architecture que nous proposons.

- Il est difficile de prévoir, un SI est issu d&#039;un travail intellectuel, qui se nourrit lui-même de l&#039;usage de l&#039;existant, et qui est en constante évolution.
Aujourd&#039;hui, le SI souffre d&#039;une complexité importante et l&#039;essentiel des difficultés porte:

sur la maîtrise des coûts et des délais pour le développement et la maintenance d&#039;un projet.
l&#039;adéquation entre les attentes et la réalisation.

- Certains éléments techniques sont connus d&#039;avance, on sait par exemple:

qu&#039;il y aura une base de données relationnelles qu&#039;il faudra lire et écrire des données relationnelles.
qu&#039;il y aura des écrans avec des contrôles dans lesquels il faudra afficher ces mêmes données relationnelles (ou d&#039;autres, qui seraient calculées, mais qui seront toujours relationnelles).
qu&#039;il y aura des traitements à appeler à partir de l&#039;interface utilisateur; il peut s&#039;agir de calculs, de validation, de processus, ou de transfert d&#039;informations.
qu&#039;il y aura toujours un tas de services techniques connus d&#039;avance (sécurité, trace, bouchons, log, traitements d&#039;erreurs, distribution, ...)

- De notre point de vue, une partie importante de cette complexité et de ces difficultés est lié au mélange qui est fait entre le code technique (qui effectue des taches sans grande valeur ajoutée) et les éléments métiers, qui sont fluctuant, et de nature à évoluer librement avec le temps et les usages. 

- Notre approche consiste donc à isoler ces invariants techniques pour:

ne les coder qu&#039;une seule fois (approche &lt;b&gt;DRY&lt;/b&gt;).
séparer plus clairement les éléments métiers des éléments techniques.
proposer une Architecture qui permette de bénéficier de ces éléments techniques, sans avoir à les écrire ou les modifier, quel que soit le domaine métier concerné.
faire intervenir les éléments métiers de la façon la plus light et la moins intrusive possible car ceux-ci vont bouger. Une bonne façon de faire pour répondre à ce besoin est de faire du Déclaratif plutôt que de l&#039;Impératif.

- D&#039;un point de vue des données: on est dans un schéma de &lt;b&gt;données relationnelles&lt;/b&gt;, qui exprime un besoin fonctionnel. Les notions d&#039;Entités et de Relations sont relativement faciles à comprendre et à modéliser. Notre travail consiste donc à permettre la modélisation de ces données, de façon la plus souple et la plus dynamique possible, parce que la nature de ces informations va évoluer avec le temps, et qu&#039;il faudra être capable d&#039;être réactif à ces changements. Ce point de vue privilégie naturellement l&#039;usage du DataSet vs Modélisation Objet, qui nécessite de connaître beaucoup de choses d&#039;avance, et qui s&#039;exprime par du code, coûteux à concevoir, écrire et maintenir. Nous ne décrions pas l&#039;objet, car nous l&#039;utilisons tous les jours quand nous savons que l&#039;objet ne va pas évoluer dans le temps. Par contre, dès que nous avons à faire des choses que nous ne connaissons pas d&#039;avance, l&#039;objet est mal adapté. Le DSL est là pour apporter une représentation graphique du DataSet, toujours plus conviviale et plus lisible que du code ou du XML.

- D&#039;un point de vue des traitements: on est dans une logique de &lt;b&gt;Services Stateless&lt;/b&gt;, .Net apporte tous les éléments pour les implémenter. Les Services techniques centraux sont implémentés une seule fois, et un point de passage unique permet de garantir l&#039;interception de tous les traitements par ces Services techniques. C&#039;est la configuration (tardive !) qui définiera comment cette interception est faite.
 
- D&#039;un point de vue IHM, les &lt;b&gt;contrôles&lt;/b&gt; sont développés avec le designer de Visual Studio. Nous pensons qu&#039;il est important de séparer les couches, et notamment l&#039;IHM, qu&#039;il convient de laisser indépendante du reste. C&#039;est pourquoi notre architecture permet de réaliser un DataBinding ou un CommandBinding déclaratif sans polluer l&#039;IHM avec du code.

Voilà, une fois qu&#039;on a présenté l&#039;approche, on a fait une démo de notre (jeune !) produit qui permet de s&#039;approprier facilement l&#039;architecture proposée.

On a effectivement déplacé un certain nombre de problèmes: 
- on a plus de clics qu&#039;avant (mais on a moins de frappe de touches :-)) Ce clic remplace une tâche de codage sans aucune valeur ajoutée; du coup, sa réalisation et sa maintenance sont beaucoup plus facile.

- à propos du débat sur la nécessité d&#039;exécuter les applications pour vérifier qu&#039;il n&#039;y a pas d&#039;erreurs, les services sont testables de façon tout à fait classique. Pour ce qui est de tester la configuration de l&#039;IHM, elle est testable immédiatement, et il n&#039;y a pas de test à écrire, il suffit de lancer l&#039;application. Et plus l&#039;erreur est détectée tôt, et moins elle est concernée par du code écrit, et plus elle est facile à corriger (là encore, quelques clics seront préférable à modifier du code).

- le déplacement de la complexité fonctionnelle du code impératif vers des éléments déclaratifs configurés pose effectivement quelques questions:
le nommage des éléments est fondamental pour la bonne compréhension des choses.
l&#039;évolution dans le temps et la lisibilité des versions des éléments configurés: je suis d&#039;accord que le XML est verbeux, et pas forcément facile à lire. Mais, l&#039;usage de quelques clics pour configurer fait que la configuration est faite rapidement, et que l&#039;on ne se trouvera pas dans une situation conflictuelle de configuration, contrairement à l&#039;écriture de code, qui nécessite de réfléchir, concevoir, écrire et compiler. Je ne dis pas que le problème ne se posera pas, mais il sera beaucoup moins crucial. A nous maintenant d&#039;imaginer comment compléter les outils pour le proposer de manière pratique.

Nous avons toutefois fait très attention à maintenir l&#039;intégration possible avec du code .Net dans tous les endroits de notre architecture. Il est facile d&#039;intégrer du code spécifique pour palier aux manques, car nous sommes sur un terrain qui nécessite une couverture fonctionnelle immense, que nous n&#039;avons pas la prétention d&#039;avoir couverte aujourd&#039;hui.

Nous sommes conscient de bousculer pas mal d&#039;idées reçues avec notre approche. Le fait de ne pas avoir typé les échanges de données par des classes mais par un schéma relationnel, peut poser un problème à un développeur, mais sûrement pas à un fonctionnel. Nous sommes sur le terrain du Customer Satisfaction Business, nous essayons de ne pas perdre de vue cet objectif ambitieux.

Je me permet enfin de remettre le lien vers l&#039;article précis &lt;a href=&quot;http://aspectize.com/blogs/corp/archive/2009/02/19/compte-rendu-de-la-soir-233-e-alt-net.aspx&quot; rel=&quot;nofollow&quot;&gt;du résumé&lt;/a&gt; de notre blog.</description>
		<content:encoded><![CDATA[<p>Bonjour Gauthier, Merci pour ce résumé. </p>
<p>Je me permet de revenir sur l&#8217;approche que nous avons présentée, car elle est fondamentale pour comprendre notre démarche. Ok, notre produit est jeune et a encore des défauts, et je souhaiterais insister sur l&#8217;esprit de l&#8217;approche, et la vision de l&#8217;Architecture que nous proposons.</p>
<p>- Il est difficile de prévoir, un SI est issu d&#8217;un travail intellectuel, qui se nourrit lui-même de l&#8217;usage de l&#8217;existant, et qui est en constante évolution.<br />
Aujourd&#8217;hui, le SI souffre d&#8217;une complexité importante et l&#8217;essentiel des difficultés porte:</p>
<p>sur la maîtrise des coûts et des délais pour le développement et la maintenance d&#8217;un projet.<br />
l&#8217;adéquation entre les attentes et la réalisation.</p>
<p>- Certains éléments techniques sont connus d&#8217;avance, on sait par exemple:</p>
<p>qu&#8217;il y aura une base de données relationnelles qu&#8217;il faudra lire et écrire des données relationnelles.<br />
qu&#8217;il y aura des écrans avec des contrôles dans lesquels il faudra afficher ces mêmes données relationnelles (ou d&#8217;autres, qui seraient calculées, mais qui seront toujours relationnelles).<br />
qu&#8217;il y aura des traitements à appeler à partir de l&#8217;interface utilisateur; il peut s&#8217;agir de calculs, de validation, de processus, ou de transfert d&#8217;informations.<br />
qu&#8217;il y aura toujours un tas de services techniques connus d&#8217;avance (sécurité, trace, bouchons, log, traitements d&#8217;erreurs, distribution, &#8230;)</p>
<p>- De notre point de vue, une partie importante de cette complexité et de ces difficultés est lié au mélange qui est fait entre le code technique (qui effectue des taches sans grande valeur ajoutée) et les éléments métiers, qui sont fluctuant, et de nature à évoluer librement avec le temps et les usages. </p>
<p>- Notre approche consiste donc à isoler ces invariants techniques pour:</p>
<p>ne les coder qu&#8217;une seule fois (approche <b>DRY</b>).<br />
séparer plus clairement les éléments métiers des éléments techniques.<br />
proposer une Architecture qui permette de bénéficier de ces éléments techniques, sans avoir à les écrire ou les modifier, quel que soit le domaine métier concerné.<br />
faire intervenir les éléments métiers de la façon la plus light et la moins intrusive possible car ceux-ci vont bouger. Une bonne façon de faire pour répondre à ce besoin est de faire du Déclaratif plutôt que de l&#8217;Impératif.</p>
<p>- D&#8217;un point de vue des données: on est dans un schéma de <b>données relationnelles</b>, qui exprime un besoin fonctionnel. Les notions d&#8217;Entités et de Relations sont relativement faciles à comprendre et à modéliser. Notre travail consiste donc à permettre la modélisation de ces données, de façon la plus souple et la plus dynamique possible, parce que la nature de ces informations va évoluer avec le temps, et qu&#8217;il faudra être capable d&#8217;être réactif à ces changements. Ce point de vue privilégie naturellement l&#8217;usage du DataSet vs Modélisation Objet, qui nécessite de connaître beaucoup de choses d&#8217;avance, et qui s&#8217;exprime par du code, coûteux à concevoir, écrire et maintenir. Nous ne décrions pas l&#8217;objet, car nous l&#8217;utilisons tous les jours quand nous savons que l&#8217;objet ne va pas évoluer dans le temps. Par contre, dès que nous avons à faire des choses que nous ne connaissons pas d&#8217;avance, l&#8217;objet est mal adapté. Le DSL est là pour apporter une représentation graphique du DataSet, toujours plus conviviale et plus lisible que du code ou du XML.</p>
<p>- D&#8217;un point de vue des traitements: on est dans une logique de <b>Services Stateless</b>, .Net apporte tous les éléments pour les implémenter. Les Services techniques centraux sont implémentés une seule fois, et un point de passage unique permet de garantir l&#8217;interception de tous les traitements par ces Services techniques. C&#8217;est la configuration (tardive !) qui définiera comment cette interception est faite.</p>
<p>- D&#8217;un point de vue IHM, les <b>contrôles</b> sont développés avec le designer de Visual Studio. Nous pensons qu&#8217;il est important de séparer les couches, et notamment l&#8217;IHM, qu&#8217;il convient de laisser indépendante du reste. C&#8217;est pourquoi notre architecture permet de réaliser un DataBinding ou un CommandBinding déclaratif sans polluer l&#8217;IHM avec du code.</p>
<p>Voilà, une fois qu&#8217;on a présenté l&#8217;approche, on a fait une démo de notre (jeune !) produit qui permet de s&#8217;approprier facilement l&#8217;architecture proposée.</p>
<p>On a effectivement déplacé un certain nombre de problèmes:<br />
- on a plus de clics qu&#8217;avant (mais on a moins de frappe de touches <img src='http://www.altnetfr.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) Ce clic remplace une tâche de codage sans aucune valeur ajoutée; du coup, sa réalisation et sa maintenance sont beaucoup plus facile.</p>
<p>- à propos du débat sur la nécessité d&#8217;exécuter les applications pour vérifier qu&#8217;il n&#8217;y a pas d&#8217;erreurs, les services sont testables de façon tout à fait classique. Pour ce qui est de tester la configuration de l&#8217;IHM, elle est testable immédiatement, et il n&#8217;y a pas de test à écrire, il suffit de lancer l&#8217;application. Et plus l&#8217;erreur est détectée tôt, et moins elle est concernée par du code écrit, et plus elle est facile à corriger (là encore, quelques clics seront préférable à modifier du code).</p>
<p>- le déplacement de la complexité fonctionnelle du code impératif vers des éléments déclaratifs configurés pose effectivement quelques questions:<br />
le nommage des éléments est fondamental pour la bonne compréhension des choses.<br />
l&#8217;évolution dans le temps et la lisibilité des versions des éléments configurés: je suis d&#8217;accord que le XML est verbeux, et pas forcément facile à lire. Mais, l&#8217;usage de quelques clics pour configurer fait que la configuration est faite rapidement, et que l&#8217;on ne se trouvera pas dans une situation conflictuelle de configuration, contrairement à l&#8217;écriture de code, qui nécessite de réfléchir, concevoir, écrire et compiler. Je ne dis pas que le problème ne se posera pas, mais il sera beaucoup moins crucial. A nous maintenant d&#8217;imaginer comment compléter les outils pour le proposer de manière pratique.</p>
<p>Nous avons toutefois fait très attention à maintenir l&#8217;intégration possible avec du code .Net dans tous les endroits de notre architecture. Il est facile d&#8217;intégrer du code spécifique pour palier aux manques, car nous sommes sur un terrain qui nécessite une couverture fonctionnelle immense, que nous n&#8217;avons pas la prétention d&#8217;avoir couverte aujourd&#8217;hui.</p>
<p>Nous sommes conscient de bousculer pas mal d&#8217;idées reçues avec notre approche. Le fait de ne pas avoir typé les échanges de données par des classes mais par un schéma relationnel, peut poser un problème à un développeur, mais sûrement pas à un fonctionnel. Nous sommes sur le terrain du Customer Satisfaction Business, nous essayons de ne pas perdre de vue cet objectif ambitieux.</p>
<p>Je me permet enfin de remettre le lien vers l&#8217;article précis <a href="http://aspectize.com/blogs/corp/archive/2009/02/19/compte-rendu-de-la-soir-233-e-alt-net.aspx" rel="nofollow">du résumé</a> de notre blog.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Julien</title>
		<link>http://www.altnetfr.org/2009/02/22/altnet-fr-10-aspectize-compte-rendu-par-gauthier/comment-page-1/#comment-2</link>
		<dc:creator>Julien</dc:creator>
		<pubDate>Mon, 23 Feb 2009 08:01:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.altnetfr.org/?p=70#comment-2</guid>
		<description>Merci pour ce résumé Gauthier.
Je me permets d&#039;ailleurs de pointer vers &lt;a href=&quot;http://aspectize.com/blogs/corp/default.aspx&quot; rel=&quot;nofollow&quot;&gt;le résumé&lt;/a&gt; écrit par Nicolas, d&#039;Aspectize.

Un grand merci également à Nicolas et Frédéric qui ont su présenter leur produit avec passion malgré les questions et remarques permanentes de l&#039;assemblée. Alt.net n&#039;était probablement pas l&#039;audience la plus &quot;naturellement acquise&quot; à leur approche, mais c&#039;est ce qui a rendu le débat passionnant ! Je leur souhaite ne tout cas bon courage pour le futur !</description>
		<content:encoded><![CDATA[<p>Merci pour ce résumé Gauthier.<br />
Je me permets d&#8217;ailleurs de pointer vers <a href="http://aspectize.com/blogs/corp/default.aspx" rel="nofollow">le résumé</a> écrit par Nicolas, d&#8217;Aspectize.</p>
<p>Un grand merci également à Nicolas et Frédéric qui ont su présenter leur produit avec passion malgré les questions et remarques permanentes de l&#8217;assemblée. Alt.net n&#8217;était probablement pas l&#8217;audience la plus &laquo;&nbsp;naturellement acquise&nbsp;&raquo; à leur approche, mais c&#8217;est ce qui a rendu le débat passionnant ! Je leur souhaite ne tout cas bon courage pour le futur !</p>
]]></content:encoded>
	</item>
</channel>
</rss>
