Quand l’agilité n’est pas une option Nicolas Roux Fredy Fadel Aspectize.com
Mon profil Développeur Entrepreneur Plus de 35 ans de programmation Winwise Aspectize
Votre profil Développeur curieux et autonome d’abord fier du résultat motivé par la vitesse de développement motivé pour produire des fonctionnalités sans se répéter : DRY qui développe sans cahier des charges en collaboration directe avec son client (motivé par la conception et UX)
Que peut-on développer avec? Des applications Web métier 100 % sur mesure : UX et Data modernes : Single Page Application, Cloud, Azure Produits sophistiqués Front office, Back office, Distribués, multi-langue, multi-tenant, déconnectable, sécurisés, scalable, API (REST) des BackEnd pour des applications mobiles dans Azure IoT, Objets Connectés
Pourquoi Aspectize Parce que : Et nous, on n’aime pas Nos clients ne savent pas écrire des cahiers des charges Ils veulent un Time to Market court (quelques semaines) Leurs besoins évoluent vite Ils ne veulent pas que la technique soit sur leur chemin Et nous, on n’aime pas se répéter les cérémonies être le goulot d’étranglement
Comment : un cycle de 1-2 heure Concevoir un bout de modèle logique Imaginer l’expérience utilisateur (HTML, CSS) Ecrire le minimum de code nécessaire Javascript (client) et .net (serveur ) Configurer les bindings Tester Déployer dans Azure Montrer Retirer de la satisfaction
Comment : Modèle / Vue / Service Lecture Data Paiement Ecriture Data LinkedIn Connect Séparation totale Vue - Data Vue - Services Liens dynamiques configurés Vues dynamiques
Quoi (outils) : deux DSL Intégrés à VisualStudio Un DSL graphique pour décrire les données Entités, Relations, Enums Un DSL textuel (6 verbes) pour décrire les bindings Data Binding (Simple, List, Grille, Arbre) Command Binding (Appels automatiques des services client et serveur Ajax, CORS, XDM et Locaux avec paramètres bindés) Layout Binding (Composition dynamique et déclarative des vues)
Quoi (services) Accès aux données (lecture/écriture) : 100 % automatique Relationnelles : SQL Azure Storage (Tables, Blobs, Queue…) : NoSQL Cache client et serveur Sécurité (Authentification, Autorisation) Exceptions, Trace, Log CRUD sur les données en mémoire côté client en Javascript et côté serveur en .net Manipulation de vues Validations, conversions, formatage, traductions…
Quoi (approche) Une approche AOP dynamique Don't call us we'll call you Séparation à 100 % entre le code technique (déjà écrit) ou les extensions (à écrire) et le code métier (à écrire) A base d’extensions (Services et Controles) qui s’intègrent au modèle de binding déclaratif
Quoi (Portail Devops) Aspectize.com le portail de gestion des applications Versions Déploiement Configurations Monitoring des hosts dans Azure ou ailleurs
Agile parce que : On ne perd pas de temps, on n’écrit pas de code pour La lecture L’écriture Le transport La conversion des types L’affichage La manipulation du DOM Les communications client/serveur Les contrôleurs La gestion des exceptions Pour l’orchestration du flux de l’information Maîtriser le SDK d’Azure
Agile parce que : Avec peu de code on peut changer le comportement du logiciel et l’adapter facilement aux besoins du client sans trop craindre des régressions.