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. 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. 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. 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. 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. 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. 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)
11. Modeling Generation Customize Execute
Qu’est-ce que CodeFluent Entities?Enjoy!
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
CycleProperties d’une application CodeFluent Entities
Entities de vie
MethodsRules
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. Modeling Generation Customize Execute
CodeFluent EntitiesCode
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
CodeFluent EntitiesCode
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
CodeFluent EntitiesCode
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
CodeFluent EntitiesCode
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
CodeFluent EntitiesCode
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
CodeFluent EntitiesCode
Entities Properties
MethodsRules
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érer
continuellement tout en gardant vos données
et 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. Modeling Generation Customize Execute
Ce que vous n’avez Code vu
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
Points Clés
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
Comment le vendreCodevotre n+1 ?Custom rules
Entities Properties
MethodsRules
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. Modeling Generation Customize Execute
CodeFluent EntitiesCode Java
Entities Properties
MethodsRules
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 !