Comment AlloCiné a réussi à réduire sa dettetechnique grâce à CodeFluent Entities,le MDA pragmatique et exécutable
Retour d’expérience sur  CodeFluent Entities Jean-Michel TEXIER Chief Technology Officer, AlloCiné
AlloCiné en 3 points 1er média sur le secteur entertainment en France  (univers du cinéma et des séries TV) Présence mul...
AlloCiné en 3 Chiffres 5 millions d’utilisateurs iPhone / Android  (première applications lancées en février 2010) 80 mi...
Le Contexte (la problématique)                                Historique                      Expansion          Développe...
Les Enjeux Réduire la dette technique liée à la maintenance de  l’existant Basculer progressivement vers une approche  m...
Les bénéfices observés avec CodeFluent Entities   Fonctionnalités prêtes à l’emploi performantes   Documentation consist...
Bilan à date Une douzaine de développeurs équipés   – 6 à Paris, formés selon le cursus « standard »   – 6 en Ukraine, ac...
Attentes et prochaines étapes Exploitation du nouveau modeleur graphique dans  Visual Studio 2010 Augmentation du nombre...
DémonstrationCarl AndersonIngénieur développement - R&D
Modeling           Generation             Customize             ExecuteQu’est-ce que CodeFluent Entities?Enjoy!Entities Pr...
Modeling          Generation      Customize         ExecuteCycleProperties d’une application CodeFluent EntitiesEntities d...
Modeling            Generation          Customize                                                             ExecuteCodeF...
Modeling            Generation          Customize                                                             ExecuteCodeF...
Modeling            Generation          Customize                                                             ExecuteCodeF...
Modeling            Generation          Customize                                                             ExecuteCodeF...
Modeling            Generation          Customize                                                             ExecuteCodeF...
Modeling            Generation          Customize                                                      ExecuteCodeFluent E...
Modeling            Generation                                               Customize                                    ...
Modeling                     Generation                                  Customize                                        ...
Modeling            Generation  Customize                                                                               Ex...
Modeling            Generation                    Customize                 ExecuteCodeFluent EntitiesCode JavaEntities Pr...
Modeling            Generation        Customize           ExecuteQuestions / RéponsesEntities PropertiesMethodsRules      ...
Modeling             Generation               Customize           ExecuteRessources en lignes CodeEntities Properties Temp...
Modeling            Generation   Customize                   ExecuteMerci Pour Votre Attention .NET Custom rulesEntities P...
Prochain SlideShare
Chargement dans…5
×

Soft fluent@md day2011

974 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
974
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
22
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Soft fluent@md day2011

  1. 1. Comment AlloCiné a réussi à réduire sa dettetechnique grâce à CodeFluent Entities,le MDA pragmatique et exécutable
  2. 2. Retour d’expérience sur CodeFluent Entities Jean-Michel TEXIER Chief Technology Officer, AlloCiné
  3. 3. AlloCiné en 3 points 1er média sur le secteur entertainment en France (univers du cinéma et des séries TV) Présence multi-devices / multi-écrans (Mobiles, Smart phones, Tablettes, IPTV, Consoles, TV) Présence internationale majeure (Numéro 1 sur son secteur en France, Allemagne, Russie, Chine, et Brésil)
  4. 4. AlloCiné en 3 Chiffres 5 millions d’utilisateurs iPhone / Android (première applications lancées en février 2010) 80 millions de visiteurs uniques par mois (dont 20 millions sur allocine.fr) Bientôt 1 milliard de pages vues par mois (combinaison web / tablettes / mobiles)
  5. 5. Le Contexte (la problématique) Historique Expansion Développement Internationale et Innovation Un vaste existant agglomérant 10 ans d’historique Une expansion internationale par acquisition conditionnée par une rationalisation technologique Une intégration continue de nouvelles fonctionnalités et services
  6. 6. Les Enjeux Réduire la dette technique liée à la maintenance de l’existant Basculer progressivement vers une approche méthodologique nouvelle, tout en gérant certaines contraintes techniques (base de données, …) Optimiser la durée des cycles de développement Permettre de faire contribuer une équipe « off-shore » sans nuire à la qualité et la productivité Mieux gérer les contraintes de performance et de montée en charge
  7. 7. Les bénéfices observés avec CodeFluent Entities Fonctionnalités prêtes à l’emploi performantes Documentation consistante et cohérente Intégration à Microsoft Visual Studio Suivi de l’évolution des technologies Microsoft Meilleur pilotage des développements Homogénéité de la qualité et de la performance Intégration facilitée des nouveaux développeurs Réduction significative de la dette technique
  8. 8. Bilan à date Une douzaine de développeurs équipés – 6 à Paris, formés selon le cursus « standard » – 6 en Ukraine, accompagnés en support à distance Une équipe off-shore efficace, malgré l’éloignement et l’approche d’autoformation + support à distance Une réduction des coûts de maintenance de 25% observée dès les premiers mois de mise en œuvre Un retour sur investissement en 4 mois Une approche « AMDD »
  9. 9. Attentes et prochaines étapes Exploitation du nouveau modeleur graphique dans Visual Studio 2010 Augmentation du nombre de producteurs / sous- producteurs « maison » pour les couches graphiques Extension de la prise en main CodeFluent à l’ensemble de l’équipe de développement Divers travaux de R&D sur le développement de patterns/producers/sub-producers à des fins de générations de tests fonctionnels (semi-)automatisés et extension à la partie développement mobile (HTML 5)
  10. 10. DémonstrationCarl AndersonIngénieur développement - R&D
  11. 11. Modeling Generation Customize ExecuteQu’est-ce que CodeFluent Entities?Enjoy!Entities PropertiesMethodsRules TemplatesCode C#, T-SQL, PL-SQL .NET Custom rules UI Screens ……Patterns …… CodeFluent Entities est un outil piloté par les modèles, intégré à Visual Studio 2008/2010, pour générer de manière continue toutes les couches et leur tuyauterie : base de données, métier, service et interface utilisateur. Définissez votre logique métier, choisissez vos plateformes cibles, générez, ajoutez vos règles métier et compiler. Faîtes-le autant de fois qu’il faut jusqu’à ce que cela sente bon . CodeFluent Entities fournit une formule qui vous aide à construire rapidement des fondations solides, et à créer avec succès le reste de votre application .NET, vous permettant de vous concentrer sur ce qui compte vraiment. (i.e. s’amuser et coder des trucs cool)
  12. 12. Modeling Generation Customize ExecuteCycleProperties d’une application CodeFluent EntitiesEntities de vieMethodsRules Templates Code .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… 1 Créez vos entités métier et leurenums, ressources, (propriétés, règles, méthodes, comportements vues, instances, etc.) Pas besoin d’UML. Modéliser 2 Choisissez votre producteurs en ajoutant des architecture qui vont traduire votre Validez que l’application se comporte comme 6 Tester Générer modèle en du code prévue. spécifique à la plateforme. Aucun template requis. Exécuter Etendre 3 Ajoutez du codeetc.).main (écrans, règles, fait Déployez et utilisez votre application. 5 Développement .NET standard. Pas besoin d’ORM. Compiler 4 Compilez votre application avec Microsoft Visual Studio. Développement .NET standard.
  13. 13. Modeling Generation Customize ExecuteCodeFluent EntitiesCodeEntities PropertiesMethodsRules Templates Application Lifecycle .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… 1 Créez vos entités métier et leurenums, ressources, (propriétés, règles, méthodes, comportements vues, instances, etc.) Pas besoin d’UML. Modéliser 2 Choisissez votre producteurs en ajoutant des architecture qui vont traduire votre Validez que l’application se comporte comme 6 Tester Générer modèle en du code prévue. spécifique à la plateforme. Aucun template requis. Exécuter Etendre 3 Ajoutez du codeetc.).main (écrans, règles, fait Déployez et utilisez votre application. 5 Développement .NET standard. Pas besoin d’ORM. Compiler 4 Compilez votre application avec Microsoft Visual Studio. Développement .NET standard.
  14. 14. Modeling Generation Customize ExecuteCodeFluent EntitiesCodeEntities PropertiesMethodsRules Templates Application Lifecycle .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… 1 Créez vos entités métier et leurenums, ressources, (propriétés, règles, méthodes, comportements vues, instances, etc.) Pas besoin d’UML. Modéliser 2 Choisissez votre producteurs en ajoutant des architecture qui vont traduire votre Validez que l’application se comporte comme 6 Tester Générer modèle en du code prévue. spécifique à la plateforme. Aucun template requis. Exécuter Etendre 3 Ajoutez du codeetc.).main (écrans, règles, fait Déployez et utilisez votre application. 5 Développement .NET standard. Pas besoin d’ORM. Compiler 4 Compilez votre application avec Microsoft Visual Studio. Développement .NET standard.
  15. 15. Modeling Generation Customize ExecuteCodeFluent EntitiesCodeEntities PropertiesMethodsRules Templates Application Lifecycle .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… 1 Créez vos entités métier et leurenums, ressources, (propriétés, règles, méthodes, comportements vues, instances, etc.) Pas besoin d’UML. Modéliser 2 Choisissez votre producteurs en ajoutant des architecture qui vont traduire votre Validez que l’application se comporte comme 6 Tester Générer modèle en du code prévue. spécifique à la plateforme. Aucun template requis. Exécuter Etendre 3 Ajoutez du codeetc.).main (écrans, règles, fait Déployez et utilisez votre application. 5 Développement .NET standard. Pas besoin d’ORM. Compiler 4 Compilez votre application avec Microsoft Visual Studio. Développement .NET standard.
  16. 16. Modeling Generation Customize ExecuteCodeFluent EntitiesCodeEntities PropertiesMethodsRules Templates Application Lifecycle .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… 1 Créez vos entités métier et leurenums, ressources, (propriétés, règles, méthodes, comportements vues, instances, etc.) Pas besoin d’UML. Modéliser 2 Choisissez votre producteurs en ajoutant des architecture qui vont traduire votre Validez que l’application se comporte comme 6 Tester Générer modèle en du code prévue. spécifique à la plateforme. Aucun template requis. Exécuter Etendre 3 Ajoutez du codeetc.).main (écrans, règles, fait Déployez et utilisez votre application. 5 Développement .NET standard. Pas besoin d’ORM. Compiler 4 Compilez votre application avec Microsoft Visual Studio. Développement .NET standard.
  17. 17. Modeling Generation Customize ExecuteCodeFluent EntitiesCodeEntities PropertiesMethodsRules Templates Application Lifecycle .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… 1 Créez vos entités métier et leurenums, ressources, (propriétés, règles, méthodes, comportements vues, instances, etc.) Pas besoin d’UML. Modéliser 2 Choisissez votre producteurs en ajoutant des architecture qui vont traduire votre Validez que l’application se comporte comme 6 Tester Générer modèle en du code prévue. spécifique à la plateforme. Aucun template requis. Exécuter Etendre 3 Ajoutez du codeetc.).main (écrans, règles, fait Déployez et utilisez votre application. 5 Développement .NET standard. Pas besoin d’ORM. Compiler 4 Compilez votre application avec Microsoft Visual Studio. Développement .NET standard.
  18. 18. Modeling Generation Customize ExecuteCodeFluent EntitiesCodeEntities PropertiesMethodsRules Templates Application Lifecycle .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns ……Quelque chose a besoin d’être changé ? 1 Ajouter/Editer/Supprimer des entités, propriétés, règles, fonctionnalités,Modifiez le modèle et générez à nouveau ! instances, etc.CodeFluent Entities permet de générercontinuellement tout en gardant vos donnéeset votre code personnalisé. Modéliser 2 Re-générer les couches de jour toutes pour mettre à votre application sans perdre de données ni de Tester Générer code fait main. Ajout de nouvelles technologies si besoin est. Exécution et test. 5 Exécuter Etendre 3 Ajout ou modification de code si besoin est. Compiler 4 Nouvelle compilation.
  19. 19. Modeling Generation Customize ExecuteCe que vous n’avez Code vuEntities PropertiesMethodsRules Templates pas .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… Génération automatique des membership, role et profile providers en un clique. Identité, Authentification, Tirez parti de la sécurité via l’attribut .NET “PermissionAtttibute” sans aucun code. Permissions Génération automatique des méthodes de tri et de pagination côté server. La liaison de donnée est possible Tri, Pagination, Liaison de dans toutes les couches voulues (Winforms, WPF, ASP.NET, etc.) données Localisation automatique de propriétés en base de données. Prise en charge du modèle de localisation .NET standard (ressources). Internationalisation Activation de « caching » sur des entités ou méthodes choisies sans code. Caching Activation de « Middle-Of-Word Text Search » sur quelques entités ou sur tout le projet sans code. Middle-Of-Word Text Search Génération des contrats WCF, services, et fichiers de configuration sans interaction. Prise en charge Automatique de Créez des clients (.NET, Silverlight, WP7) sur l’unique « CodeFluent enhanced proxy ». WCF Manipulez facilement fichiers, documents, photos, vidéos et leurs métadonnées (taille, date, nom, etc.) Streaming de BLOB à travers toutes les couches avec une gestion de mémoire performante et du streaming de bout-en-bout. Créez via les “Aspects CodeFluent” des fonctionnalités applicables sur l’intégralité du modèle de l’application. “CodeFluent Aspects” Réutilisez les sur tous vos projets. Réutilisez la librairie de contrôles CodeFluent : Librairie de Contrôles Moteur de Template, Utilitaires, Contrôles ASP.NET Tirez parti du producteur de listes Office pour utiliser Intégration à Office Microsoft Excel ou Access (2007/2010) comme des clients connectés/déconnectés de votre application.
  20. 20. Modeling Generation Customize ExecutePoints ClésEntities PropertiesMethodsRules TemplatesCode .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… Don’t Repeat Yourself (DRY) Tirez parti du modèle centralisé décrivant votre application et lisible par des fonctionnels. Modèle Centralisé Générer continuellement pendant vos développements, sans jamais perdre vos données ni votre code. Génération continue Prise en charge de multiples bases de données (SQL Server 2005/2008/R2, Oracle 9/10/11), services (WCF) ou d’architectures clientes (WPF, Winforms, Web, SmartClient, Silverlight, SharePoint) Evolutivité Créez vos propres producteurs, étendez le produit grâce à son API. Développez des patterns réutilisables pour implémenter des fonctionnalités sur l’ensemble de l’application. Extensibilité et Cohérence Importez des bases existantes et créez des applications .NET par-dessus ou migrez les vers une nouvelle base. Migration et interopérabilité
  21. 21. Modeling Generation Customize ExecuteComment le vendreCodevotre n+1 ?Custom rulesEntities PropertiesMethodsRules Templates à .NET Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… Augmentez votre contrôle sur les coûts et délais tout en garantissant une qualité de code homogène. Minimisez d’important travaux de fondations et de développement de Framework internes. Maîtrise des développements Garantissez la cohérence des développements au sein des équipes de développements. Définissez implicitement comment les choses doivent-être faites. Evitez le syndrome « Superman ». Structurer le travail d’équipe Absorbez les changements fonctionnels grâce au processus de génération continue. Améliorez votre flexibilité et renforcez vos relations avec vos partenaires commerciaux. Agilité fonctionnelle Pérennisez vos investissements par rapport à l’innovation technologique. Découplez-vous de la technologie Moins de code, c’est moins de bugs, et moins de maintenance. Réduisez votre « IT Debt » Diminution des risques Le modèle structurant de CodeFluent Entities aide à créer une usine logicielle pragmatique. Utilisez la métrique qu’elle fournit. Créez de la prédictibilité
  22. 22. Modeling Generation Customize ExecuteCodeFluent EntitiesCode JavaEntities PropertiesMethodsRules Templates & .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… Nous avons eu plusieurs questions l’an dernier de participants motivés par le Modeleur CodeFluent Entities mais souhaitant du code généré en Java. http://www.softfluent.com/documentation/webframe.html?Generating_Java%20_Using_ CFE_Hibernate.html Voici un article technique qui démontre que c’est possible et que cela fonctionne ! C’est bien l’un des intérêts d’une approche pilotée par les modèles, que de pouvoir supporter différentes technologies, existantes ou futures. Protégez vos investissements d’aujourd’hui ! 
  23. 23. Modeling Generation Customize ExecuteQuestions / RéponsesEntities PropertiesMethodsRules Templates Code .NET Custom rules Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… Questions et Réponses
  24. 24. Modeling Generation Customize ExecuteRessources en lignes CodeEntities Properties Templates .NET Custom rules Enjoy!MethodsRules C#, T-SQL, PL-SQL UI Screens ……Patterns …… Site http://www.softfluent.com Documentation http://www.softfluent.com/documentation Forums http://forums.softfluent.com Webcasts http://www.softfluent.com/community-support/webcasts Blog http://blog.codefluententities.com
  25. 25. Modeling Generation Customize ExecuteMerci Pour Votre Attention .NET Custom rulesEntities PropertiesMethodsRules Templates Code Enjoy! C#, T-SQL, PL-SQL UI Screens ……Patterns …… Téléchargez votre licence personnelle illimitée et gratuite sur http://www.softfluent.com/products/codefluent-entities Suivez SoftFluent sur les réseaux sociaux Retrouvez les meilleures pratiques de développement .NET sur http://blog.softfluent.com

×