<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://aspectize.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Les news d&amp;#39;Aspectize</title><link>http://aspectize.com/blogs/corp/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>DataBinding et CommandBinding</title><link>http://aspectize.com/blogs/corp/archive/2008/05/20/databinding-relationnel.aspx</link><pubDate>Tue, 20 May 2008 07:15:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:20</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=20</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2008/05/20/databinding-relationnel.aspx#comments</comments><description>&lt;p id="wu131"&gt;Le DataBinding est l’art de connecter de façon bi-directionnelle des contrôles à leur source de données. C&amp;#39;est une solution pour éviter d&amp;#39;écrire du code fastidieux de mise à jour de données entre une des propriétés des controles de l&amp;#39;IHM et des données métiers. Microsoft a apporté cette fonctionnalité avec le framework 2.0, et c&amp;#39;est une technique éprouvée, pour réaliser des IHM de façon efficace.&lt;/p&gt;
&lt;p id="e0_40"&gt;Pourtant, il y a quelques limitations, qui font que cette technique est assez peu utilisée:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Tous les contrôles ne sont pas concernés; si on peut binder tous les contrôles simples, et les liste ou les grilles, il manque les arbres, les listview ou les Menus.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Le Designer de Visual Studio n&amp;#39;invite pas à l&amp;#39;utiliser.&amp;nbsp;Personnellement, je n&amp;#39;ai jamais pu définir correctement un DataBinding avec leur interface, même avec un tutorial bien fait.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Le DataBinding n&amp;#39;est pas immédiat non plus à faire avec du code.&amp;nbsp;Il est nécessaire d&amp;#39;écrire beaucoup de code, en implémentant des Interfaces diverses, qu&amp;#39;il faut bien comprendre pour le faire correctement.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Avec Aspectize, le DataBinding que nous proposons est particulièrement enrichi et devient très facile à utiliser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div id="jo4n0"&gt;Toutes les propriétés de tous les contrôles sont bindables. En particulier les arbres, pour lesquels cela relève presque de la magie, tant il est facile de réaliser un arbre complexe, de façon déclarative. Cela permet aussi de binder des propriétés habituellement dédiée à la présentation, comme un BackColor ou un Enabled (exemple courant d&amp;#39;une BackColor Red pour un montant négatif). Cela permet de réaliser des interfaces riches sans écrire une seule ligne de code.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;Le DataBinding est déclaratif; il n&amp;#39;y a pas une seule ligne de code à écrire. Il se définit en quelques clics de souris avec BindingStudio, qui porte bien son nom.&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;Toutes les conversions de données standard sont prises en charge automatiquement. Si votre donnée est un numérique, vous n&amp;#39;avez rien à faire pour la binder dans un TextBox. Les formats standards sont pris en charge, notamment pour les dates et les numériques.&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Le DataBinding&amp;nbsp;prend en charge les relations entre les données. Réaliser des contrôles Parent/Child fonctionne avec tous les contrôles. C&amp;#39;est particulièrement efficace pour les arbres, dont les noeuds sont des liens Parent/Child entre des données, mais aussi pour des applications MDI (la relation MDI/MDIChild s&amp;#39;appuie sur une relation entre des données), des TabControl (les TabPages sont les Child d&amp;#39;une donnée commune parent) ou encore les ComboBox (qui permet de modifier des associations entre 2 entités).&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Il est enrichi aux Commandes. De la même manière que les propriétés reflètent des données, les événements sont associés aux commandes. Là encore, pas une seule ligne de code n&amp;#39;est nécessaire, et BindingStudio vous permet en 2 clics de souris, d&amp;#39;associer une commande Server à un clic de bouton. Nous parlons alors de CommandBinding.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p id="pd0h0"&gt;Le DataBinding est une technique&amp;nbsp;très intéressante pour éliminer du code, mais néanmoins un peu difficile à utiliser, et qui reste limitée. En l&amp;#39;étendant et en&amp;nbsp;la généralisant, nous la rendons accessible à tous, pour l&amp;#39;ensemble des IHM. Nous l&amp;#39;avons déjà fait pour les interfaces WinForms, nous sommes en train de le faire pour Asp.Net/Ajax, et nous la porterons vers WPF et SilverLight dans un avenir proche. &lt;/p&gt;
&lt;p&gt;Nous verrons également, comment associer une validation de données, qui devient, elle aussi, déclarative.&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=20" width="1" height="1"&gt;</description></item><item><title>Entity Designer pour VS 2008</title><link>http://aspectize.com/blogs/corp/archive/2008/05/06/entity-designer-pour-vs-2008.aspx</link><pubDate>Tue, 06 May 2008 07:21:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:17</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=17</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2008/05/06/entity-designer-pour-vs-2008.aspx#comments</comments><description>&lt;p&gt;Pour être tout à fait complet sur l&amp;#39;intégration à Visual Studio, il manquait encore la version d&amp;#39;Entity Designer pour VS 2008.&lt;/p&gt;
&lt;p&gt;C&amp;#39;est désormais chose faite, elle est disponible dans la version d&amp;#39;évaluation, en téléchargement.&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=17" width="1" height="1"&gt;</description><category domain="http://aspectize.com/blogs/corp/archive/tags/Product/default.aspx">Product</category><category domain="http://aspectize.com/blogs/corp/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://aspectize.com/blogs/corp/archive/tags/EntityDesigner/default.aspx">EntityDesigner</category></item><item><title>Architecture des applications Aspectize</title><link>http://aspectize.com/blogs/corp/archive/2008/04/28/architecture-des-applications-aspectize.aspx</link><pubDate>Mon, 28 Apr 2008 18:44:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:16</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=16</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2008/04/28/architecture-des-applications-aspectize.aspx#comments</comments><description>&lt;p&gt;L&amp;#39;Architecture d&amp;#39;une application Aspectize peut se présenter ainsi:&lt;/p&gt;
&lt;p&gt;&lt;img height="480" alt="" src="http://aspectize.com/sitefiles/1000/Images/Architecture.png" width="640" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;Elle est composée de 2 Applications logiques distinctes :&lt;/p&gt;
&lt;p&gt;- l&amp;#39;Application Server, qui a pour fonction : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;la lecture/écriture des données dans une ou plusieurs bases (SQL Server 2000/2005, Oracle 10) ou fichiers XML&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;les calculs métiers complexes&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;- l&amp;#39;Application Client, qui a pour fonction :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;l&amp;#39;affichage des données dans les contrôles de l&amp;#39;IHM&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;la validation des données&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;L&amp;#39;ensemble des éléments de l&amp;#39;application sont dans des Dll:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;le Schéma de l&amp;#39;application, réalisé avec&amp;nbsp;Aspectize Entity Designer (DSL de Visual Studio). Il permet de définir graphiquement le modèle Entités/Relations de l&amp;#39;application, avec des &lt;strong&gt;attributs haut niveaux&lt;/strong&gt;, comme la &lt;strong&gt;validation&lt;/strong&gt;, le calcul de données, la &lt;strong&gt;temporalité&lt;/strong&gt; ou la &lt;strong&gt;multiplicité&lt;/strong&gt;, ainsi que des &lt;strong&gt;événements logiques&lt;/strong&gt; sur la modification de données, &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;les contrôles de l&amp;#39;&lt;strong&gt;IHM&lt;/strong&gt;, réalisés avec le designer de Visual Studio, &lt;strong&gt;sans écriture de code&lt;/strong&gt;. Tous les contrôles standards de Microsoft sont supportés.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;le code métier, écrit dans des&amp;nbsp;&lt;strong&gt;Commandes .Net standards&lt;/strong&gt;, en privilégiant le comportement métier et en &lt;strong&gt;excluant tout code technique&lt;/strong&gt; (SQL, traitement d&amp;#39;erreurs, log/trace, distribution, fail over, sécurité, intercepteurs&amp;nbsp;pour l&amp;#39;application serveur, data-binding, conversion de données, drag &amp;amp; drop, appels serveurs, bouchons&amp;nbsp;pour l&amp;#39;application client)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Les liens entre ces différents éléments sont déclaratifs et sont faits en quelques clics dans Aspectize Binding Studio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Configuration du &lt;strong&gt;Data Binding&lt;/strong&gt; relationnel des Contrôles sur les Entités du Schéma&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;une propriété d&amp;#39;un contrôle est associé à une Entité du Schéma&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;le Validateur de données est configuré pour afficher l&amp;#39;erreur et/ou empêcher le contrôle de mettre à jour la donnée&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;Configuration du &lt;strong&gt;Command Binding&lt;/strong&gt; des Contrôles sur les Commandes Métiers&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;un événement d&amp;#39;un contrôle est associé à une Commande client ou serveur&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;les paramètres d&amp;#39;appels sont bindés sur les Entités du Schémas, ou les autres propriétés des contrôles, ou encode le profil utilisateur&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;Configuration des Services&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;accès aux données (ConnectionString ou FileName)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;sécurité/trace/log de l&amp;#39;application&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;intercepteurs&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;Aucune référence n&amp;#39;est nécessaire entre les autres composants de l&amp;#39;application, à l&amp;#39;exception des Dll du schéma qui sont référencées dans le code métier, car celui-ci manipule les entités du schéma. Aucune référence à un quelconque élément physique (serveur, stockage, contrôles physiques) n&amp;#39;est utilisée dans l&amp;#39;écriture de code.&lt;/p&gt;
&lt;p&gt;Aucun code n&amp;#39;est nécessaire dans les contrôles de l&amp;#39;IHM. Les contrôles ne sont pas liés ni aux données, ni aux traitements.&lt;/p&gt;
&lt;p&gt;Il en résulte une &lt;strong&gt;souplesse&lt;/strong&gt; et un &lt;strong&gt;gain de productivité&lt;/strong&gt; tout à fait remarquable. Nous verrons, étape par étape, comment mettre en oeuvre l&amp;#39;application exemple sur la base AdventureWorks, et obtenir une &lt;strong&gt;application riche et complexe en quelques minutes de travail&lt;/strong&gt;.&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=16" width="1" height="1"&gt;</description><category domain="http://aspectize.com/blogs/corp/archive/tags/Tutorial/default.aspx">Tutorial</category><category domain="http://aspectize.com/blogs/corp/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Aspectize en Images</title><link>http://aspectize.com/blogs/corp/archive/2008/03/03/aspectize-en-images.aspx</link><pubDate>Mon, 03 Mar 2008 19:54:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:12</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=12</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2008/03/03/aspectize-en-images.aspx#comments</comments><description>&lt;p&gt;A l&amp;#39;occasion des TechDays, Microsoft nous a proposé de réaliser un petit film de démonstration de nos produits.&lt;/p&gt;
&lt;p&gt;Exercice toujours difficile et intéressant, voici donc une vidéo de 4&amp;#39;30 pour présenter rapidement notre plate-forme de développement.&lt;/p&gt;
&lt;p&gt;
&lt;object height="336" width="420"&gt;
&lt;embed src="http://www.dailymotion.com/swf/x4l91r&amp;amp;v3=1&amp;amp;related=1" width="420" height="336"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Un grand merci à Microsoft et&amp;nbsp;à l&amp;#39;équipe de&amp;nbsp;Brainsonic qui a réalisé le film.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=12" width="1" height="1"&gt;</description></item><item><title>Version disponible en téléchargement</title><link>http://aspectize.com/blogs/corp/archive/2008/02/22/version-disponible-en-t-233-l-233-chargement.aspx</link><pubDate>Fri, 22 Feb 2008 19:45:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:11</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=11</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2008/02/22/version-disponible-en-t-233-l-233-chargement.aspx#comments</comments><description>&lt;p&gt;Nous mettons à disposition une version d&amp;#39;évaluation, qui vous permettra d&amp;#39;installer et de démarrer avec notre produit.&lt;/p&gt;
&lt;p&gt;Elle est accompagnée de tutoriaux qui permettent de réaliser une petite application exemple en Visual Studio 2005. L&amp;#39;application à réaliser est une petite application WinForm client/serveur qui permet de naviguer dans l&amp;#39;arborescence des produits AdventureWorks, et d&amp;#39;afficher le détail d&amp;#39;un produit. La base de données est livrée avec les tutoriaux, et est à importer dans SQL Server 2000 ou 2005 (le modèle a été légèrement retouché pour plus de souplesse !).&lt;/p&gt;
&lt;p&gt;Cette application contient en tout 7 lignes de code et est réalisée en quelques minutes. Elle vous montrera la puissance de notre plate-forme&amp;nbsp;et vous permettra&amp;nbsp;de mesurer les bénéfices de&amp;nbsp;la nouvelle approche que nous préconisons pour le développement d&amp;#39;applications métiers, à savoir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;gagner du temps en éliminant tout le code technique, qui n&amp;#39;est pas à écrire, et qui n&amp;#39;est pas non plus généré.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;diminuer les risques en ne faisant plus de choix techniques structurants. Vous développez d&amp;#39;abord, vous architecturez ensuite.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;valoriser votre métier, en livrant vos applications dès le premier jour, et en faisant participer vos utilisateurs au plus tôt dans le cycle de développement.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;pérenniser vos développements fonctionnels, en les réutilisant dans des architectures physiques variées.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;D&amp;#39;autres tutoriaux et démonstrations sont à venir, qui permettront d&amp;#39;aller encore plus loin et de réaliser des IHM complexes, des architectures distribuées, des applications sécurisées, et ceci en n&amp;#39;écrivant uniquement le code métier.&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=11" width="1" height="1"&gt;</description></item><item><title>Ce n'est pas écrit dans le cahier des charges</title><link>http://aspectize.com/blogs/corp/archive/2007/12/04/ce-n-est-pas-233-crit-dans-le-cahier-des-charges.aspx</link><pubDate>Tue, 04 Dec 2007 21:22:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:7</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=7</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2007/12/04/ce-n-est-pas-233-crit-dans-le-cahier-des-charges.aspx#comments</comments><description>&lt;p&gt;Rapide sondage autour de moi. Pratiquement tous les développeurs ont un jour été confronté à cette situation. &lt;/p&gt;
&lt;p&gt;Le client exprime, ou fait exprimer par un tiers, son besoin dans un document qu&amp;#39;il est convenu d&amp;#39;appeler un cahier des charges.&amp;nbsp;Un prestataire&amp;nbsp;s&amp;#39;engage à réaliser l&amp;#39;application selon le contenu du document. Un accord est trouvé entre le prestataire et le client sur les modalités de fonctionnement (livrables, coût et délais). Cette démarche est aujourd&amp;#39;*** la plus générale, que le prestataire soit interne ou externe n&amp;#39;y change rien d&amp;#39;ailleurs. &lt;/p&gt;
&lt;p&gt;Nous nous étonnions de la similitude avec le métier du bâtiment où Maîtrise d&amp;#39;oeuvre et Maîtrise d&amp;#39;ouvrage sont les mêmes termes utilisés pour désigner les 2 parties. Comment font d&amp;#39;ailleurs les professionnels de l&amp;#39;immobilier pour exprimer le besoin ? Ils font des plans, des dessins et des maquettes. Il est facile pour&amp;nbsp;un client final de visualiser, d&amp;#39;imaginer ce que sera son appartement à partir d&amp;#39;un plan. La taille de la salle de bain, le couloir, l&amp;#39;emplacement de la fenêtre sont des éléments à sa disposition très tôt, et qui ne bougeront plus. Là s&amp;#39;arrête l&amp;#39;analogie avec le Système d&amp;#39;Informations. Car, si l&amp;#39;usage de maquettes permet à l&amp;#39;utilisateur de visualiser son application, celle-ci a des limites. D&amp;#39;abord, il est rare de faire une maquette exhaustive&amp;nbsp;selon les besoins. Quand elle est faite - elle a un coût de réalisation non négligeable dont les prestataires essaient souvent de faire l&amp;#39;économie - elle est superficielle. D&amp;#39;autre part, le besoin sera de toute façon complété par l&amp;#39;usage. L&amp;#39;utilisateur est pragmatique, rien ne vaut l&amp;#39;expérience utilisateur pour améliorer et enrichir une application. &lt;/p&gt;
&lt;p&gt;Et quand arrive le moment où les premiers éléments sont entre les mains du client, c&amp;#39;est assez systématique.&amp;nbsp;Il y a toujours un truc, plus ou moins important, une fonctionnalité qui ne correspond pas exactement aux attentes du client. Et si le besoin mal ou pas exprimé est structurant, la correction est probablement douloureuse pour celui qui réalise.&lt;/p&gt;
&lt;p&gt;L&amp;#39;approche que nous proposons avec Aspectize permet de réaliser les applications au fur et à mesure des besoins. Dès le premier jour, le client peut avoir une application qui&amp;nbsp;est dans un état fini. Elle n&amp;#39;est pas terminée, mais elle fonctionne, et il peut tout de suite savoir si ce qui a été fait correspond à son besoin. D&amp;#39;abord, les développements sont vite faits, mais les modifications sont faciles, parce que les pièces sont découplées. Ajouter ou enlever un champ à une entité, ne casse pas l&amp;#39;existant. Modifier l&amp;#39;organisation d&amp;#39;un arbre se fait en quelques clics de souris. Sauvegarder des données en base, s&amp;#39;écrit en une ligne de code. Le besoin peut donc être implémenté au fur et à mesure de son évolution. Et l&amp;#39;architecture suit, parce que les éléments sont complètement indépendants les uns des autres. Le couplage quasi nul entre les différentes briques permet leur réorganisation et leur réutilisation. Il est facile de réorganiser un chargement de données, de déplacer un traitement sur un serveur, d&amp;#39;ajouter de la sécurité à une application.&lt;/p&gt;
&lt;p&gt;C&amp;#39;est ce que nous tenterons de montrer lors de nos démonstrations. Soyons pragmatique.&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=7" width="1" height="1"&gt;</description></item><item><title>Système d'Information Dynamique</title><link>http://aspectize.com/blogs/corp/archive/2007/11/12/syst-232-me-d-information-dynamique.aspx</link><pubDate>Mon, 12 Nov 2007 09:41:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:6</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=6</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2007/11/12/syst-232-me-d-information-dynamique.aspx#comments</comments><description>&lt;p&gt;Un Système d&amp;#39;Information Dynamique est un Système d&amp;#39;Information vivant qui évolue constamment en fonction des besoins de ses utilisateurs.&lt;/p&gt;
&lt;p&gt;Il est souple, parce que les évolutions demandées sont réalisable facilement et rapidement et parce qu&amp;#39;elles ne cassent pas l&amp;#39;existant. Vision utopique ? Peut-on ajouter facilement des fonctionnalités nouvelles sans casser du code qui fonctionne ?&lt;/p&gt;
&lt;p&gt;La première idée qui vient quand on se pose cette question, est la réponse d&amp;#39;une &amp;quot;bonne architecture&amp;quot;. Une bonne architecture permettra la définition des différentes briques du Système d&amp;#39;Informations, de façon à permettre leur évolution de façon indépendante. Le SI&amp;nbsp;peut évoluer de façon incrémentale, par ajout successif de différentes briques. Chaque brique est indépendante des autres, elle vit sa vie propre au sein du système. C&amp;#39;est pourtant la cohérence de l&amp;#39;ensemble qui donnera toute la valeur du système et permettra aux fonctionnel d&amp;#39;être implémenté. Pour ce faire, il y a des liens entre les briques, elles se connaissent les unes des autres, elles se parlent, elles échanges des informations. Elles doivent se mettre d&amp;#39;accord sur la façon d&amp;#39;échanger de l&amp;#39;information, et sur la nature de l&amp;#39;information échangée. La bonne architecture répondra à ces questions.&lt;/p&gt;
&lt;p&gt;2 remarques cependant:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;la définition d&amp;#39;une bonne architecture et sa mise en oeuvre prennent du temps. Les bonnes pratiques et les outils sont là pour réduire ce temps, mais il est difficilement réduit à zero.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;les liens qui seront mis en oeuvre entre les différentes briques du système, seront des liens qui apparaitront dans le code. Qu&amp;#39;il s&amp;#39;agisse d&amp;#39;un appel à un service, d&amp;#39;une référence à un objet, ces liens se traduisent par des opérations impératives, qui nécessitent d&amp;#39;être intégrées dans le processus de développement. Même en respectant la &amp;quot;bonne architecture&amp;quot;, le couplage entre les différentes briques a toutes les chances d&amp;#39;être présent dans le code.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Le couplage faible visera à réduire les liens entre les différentes briques. Moins il y a de liens, mieux c&amp;#39;est.&lt;/p&gt;
&lt;p&gt;Imaginez que vous pouvez maintenant développer vos différentes briques, sans vous soucier des autres, ni des liens que vous aurez à créer avec les autres. Vou souhaitez une IHM qui représente une information particulière. Seul vous importe la présentation de cette information. Le lien avec le contenu ne devrait pas être l&amp;#39;objet de votre développement. Vous souhaitez développer un service qui réaliser un traitement particulier. Seul vous importe le traitement que vous souhaitez apporter à votre information. L&amp;#39;endroit où se trouve l&amp;#39;information, la façon dont elle est stockée ne doit pas être l&amp;#39;objet de votre développement.&lt;/p&gt;
&lt;p&gt;Vous concentrez votre travail sur le métier, la présentation et le traitement. Vous vous occuperez plus tard des liens à faire entre ces briques. Vous ne ferez pas de code pour implémenter ces liens. Pas de Event Handler sur un bouton, pas de propriétés d&amp;#39;objets à introduire dans un contrôle. Non seulement vous n&amp;#39;écrirez pas ce code, mais personne d&amp;#39;autre ne le fera non plus, ni une autre personne, ni un générateur. En fait, il n&amp;#39;y aura pas de code pour décrire ces liens. Ces liens deviennent descriptifs, ils sont de l&amp;#39;information dynamique, qui peut très bien se décrire sans passer par de l&amp;#39;écriture de code.&lt;/p&gt;
&lt;p&gt;Les avantages sont considérables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;cela prend moins de temps à faire&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;cela peut se faire plus tard&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;cela est plus facilement maintenable, dans le sens où il y a moins de contrainte sur des éléments descriptifs que sur des élément impératifs (typage, ordre, référence)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Cela permet surtout la totale indépendance entre les briques, qui peuvent vivre leur vie de façon indépendante, puisqu&amp;#39;il n&amp;#39;y a plus de liens à faire avec l&amp;#39;existant. Si vous ajoutez un traitement ou un contrôle, vous n&amp;#39;avez que l&amp;#39;implémentation du traitement à inclure dans votre code, que votre contrôle à ajouter dans votre page.&amp;nbsp;Vous exprimerez plus tard que votre bouton appelle votre nouveau traitement. Vous n&amp;#39;avez plus besoin que votre traitement soit fait avant votre bouton. De fait, votre bouton ne connait même pas votre traitement, et il ne le connaitra jamais.&lt;/p&gt;
&lt;p&gt;Imaginez maintenant que l&amp;#39;infrastructure qui vous permette de travailler de cette façon existe. Seriez-vous impatient de la voir et de la tester ?&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=6" width="1" height="1"&gt;</description></item><item><title>Bienvenue sur le blog d'Aspectize</title><link>http://aspectize.com/blogs/corp/archive/2007/10/31/bienvenue-sur-le-blog-d-aspectize.aspx</link><pubDate>Wed, 31 Oct 2007 16:36:00 GMT</pubDate><guid isPermaLink="false">3d57e66d-6e97-4fde-a1fe-09655b785c0e:5</guid><dc:creator>Nico</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://aspectize.com/blogs/corp/rsscomments.aspx?PostID=5</wfw:commentRss><comments>http://aspectize.com/blogs/corp/archive/2007/10/31/bienvenue-sur-le-blog-d-aspectize.aspx#comments</comments><description>&lt;p&gt;Ce blog est destiné à communiquer et échanger sur la société et ses produits. Fil d&amp;#39;actualité de la société, il est destiné à faire partager nos idées et communiquer sur notre activité.&lt;/p&gt;
&lt;p&gt;Il y sera donc question de développement et de méthodologie, de systèmes d&amp;#39;information, de Microsoft .Net, et surtout de souplesse et d&amp;#39;agilité, puisque c&amp;#39;est l&amp;#39;approche que nous souhaitons proposer avec nos produits.&lt;/p&gt;
&lt;p&gt;Nous avons lancé notre aventure il y a maintenant presque un an. De la page blanche, les idées ont émergé, elles se sont mises en place naturellement, à notre rythme, pour aboutir à une démarche réellement innovante dans le domaine du développement de systèmes d&amp;#39;informations .Net et les outils qui permettent de la mettre en oeuvre. Aujourd&amp;#39;*** est venu le temps de communiquer, d&amp;#39;expliquer&amp;nbsp;et de montrer ce que nous sommes en train de réaliser.&lt;/p&gt;
&lt;p&gt;Nous aurons l&amp;#39;occasion de dévoiler ici les atouts de nos produits et de notre démarche, et d&amp;#39;échanger avec vous sur leur potentiel et vos retours d&amp;#39;expérience.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height="145" alt="" src="http://aspectize.com/themes/default/images/common/logo_horizontal_fait_main.png" width="489" border="0" /&gt;&lt;/p&gt;&lt;img src="http://aspectize.com/aggbug.aspx?PostID=5" width="1" height="1"&gt;</description></item></channel></rss>