<!-- .slide: class="splash" data-background="https://image.slidesdocs.com/responsive-images/background/nature-meteor-simple-starry-sky-blue-planet-powerpoint-background_e815352821__960_540.jpg" data-background-opacity="0.5" --> [go.epfl.ch/formation-meteor-angular](https://go.epfl.ch/formation-meteor-angular) <img src="https://upload.wikimedia.org/wikipedia/commons/a/a4/Meteor-logo.png"/> <br/> (+&nbsp;<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Angular_full_color_logo.svg/2048px-Angular_full_color_logo.svg.png" style="height: 30vh;"/>) <!-- .element: class="fragment" data-fragment-index="1" --> ---- # Démo ! <span style="font-size: 50pt !important;">http://128.179.183.44:3000/</span> ---- # Meteor : en quelques mots <!-- .slide: data-background="https://d2n4wb9orp1vta.cloudfront.net/cms/can-you-draw-seven-parallel-lines.jpg" data-background-opacity="0.6" --> Un framework full-stack pour JavaScript / TypeScript ---- ## Cible : les applications «intranet» <p class="fragment"> Exemples de réalisations : <ul> <li class="fragment">Back-offices WordPress <ul> <li class="fragment">WP-Veritas</li> <li class="fragment">Polylex</li> </ul> </li> <li class="fragment">Évaluation des doctorants</li> </ul> </p> ---- ## Architecture ![](https://i.imgur.com/WmICGTW.png) ---- ## Opinionations <!-- .slide: data-background="https://cdn.thewirecutter.com/wp-content/uploads/2017/10/tools-and-toolbox-2x1-fullres-.jpg" data-background-opacity="0.2" --> - <!-- .element: class="fragment" -->Modèle de données : DDP, publish/subscribe, CQRS... <span class="fragment">MongoDB</span> - <!-- .element: class="fragment" -->Programmation fonctionnelle : <code>Tracker</code> - <!-- .element: class="fragment" -->Isométrie des APIs : MiniMongo - <!-- .element: class="fragment" -->Packaging : Babel ---- # En retard ! ... <!-- .slide: data-background="https://freepngimg.com/download/disney/127489-wonderland-alice-rabbit-in-free-download-png-hd.png" data-background-opacity="0.4" --> - <!-- .element: class="fragment" -->Versions de Node (⇐ <code>Fibers</code>) - <!-- .element: class="fragment" -->Modules ESM ... Tout cela arrivera dans la branche <code>3.O</code>.<!-- .element: class="fragment" --> --- <table class="comparaison"> <tr> <td class="definition"><img src="https://upload.wikimedia.org/wikipedia/commons/a/a4/Meteor-logo.png"/></td> <td><ul> <li class="fragment">JavaScript portable client/serveur (<b>«isométrique»</b>)</li> <li class="fragment">Modèle de données (MiniMongo, DDP, Tracker)</li> <li class="fragment">Sessions, sécurité</li> </ul></td> </tr> <tr class="fragment"> <td class="definition"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Angular_full_color_logo.svg/2048px-Angular_full_color_logo.svg.png" style="height: 30vh;"/></td> <td><ul> <li class="fragment">Affichage (DOM)</li> <li class="fragment">Expérience utilisateur (événements, animations)</li> </ul></td> <tr class="fragment"> <td id="ingredients-code-epfl" class="definition"><img src="https://epfl-si.github.io/elements/svg/epfl-logo.svg"></td> <td><ul> <li class="fragment">Authentification (Tequila)</li> <li class="fragment">... Quelque chose d'utile pour le métier&nbsp;?&nbsp;😂</li> </td> </tr> </table> --- # On plonge ! https://www.meteor.com/tutorials/angular/ ```bash npm install -g meteor meteor create --blaze angular.starterkit cd angular.starterkit meteor npm i meteor ``` <!-- .slide: data-background="https://raw.githubusercontent.com/epfl-idevfsd/hackmd.angularjs/master/uploads/upload_b3ddda2b449c1f972b630f70cc139edb.png" --> Note: - `--blaze` parce qu'on ne veut pas de React. - `meteor npm i` : voir slide suivant... --- <!-- .slide: data-background="https://ychef.files.bbci.co.uk/976x549/p07fxjpk.jpg" data-background-color="black" data-background-opacity="0.6" --> ```bash cat package.json; cat .meteor/packages cat package-lock.json; cat .meteor/versions node --version; meteor node --version ``` --- https://atmospherejs.com/meteor/angular-compilers ```bash git clone https://github.com/epfl-si/angular.starterkit cd angular.starterkit git checkout exercices meteor npm i git checkout -b mabranche ``` Note: nous allons suivre les commits un par un. (gitk et `git cherry-pick` si besoin) --- # ... AOT ? <!-- .slide: data-background="https://www.forbes.fr/wp-content/uploads/2022/12/gettyimages-151814127.jpg" --> [Seulement avec Angular 12](https://github.com/Urigo/angular-meteor/issues/1988) Note: - ... Ou bien la branche `fuxxture/webpack - Voir aussi : - https://redfin.engineering/node-modules-at-war-why-commonjs-and-es-modules-cant-get-along-9617135eeca1 - https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c <style> body { --epfl-red: #FF0000; --epfl-red-dark: #B51F1F; } .reveal { background-image: url('https://epfl-si.github.io/elements/svg/epfl-logo.svg'); background-repeat: no-repeat; background-position: 5px 5px; } .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { color: black; } .reveal code { padding-top: 0.2em; padding-bottom: 0.2em; margin: 0; font-size: 85%; color: dimgray; background-color: rgba(255, 255, 255, 0.76); border-radius: 3px; } .reveal cite:before { content: "\2009 \2015 \2009"; } .reveal cite { font-size: 80%; } section { padding: 1.5em 15px; } section[data-contrast="on-"] { background-color: #ffffff20; } section[data-contrast="on"] { background-color: #ffffff50; } section[data-contrast="on+"] { background-color: #ffffff99; } .reveal [data-background] > div { background-color: #ffffff94; border-radius: 20px; padding: 0.3em; } .reveal section.splash p.fragment { font-size: 30vh; } .reveal section.splash a { font-size: 40pt; font-weight: bold; color: var(--epfl-red-dark); } table.comparaison, table.comparaison td { border: 1px solid; } table.comparaison td { border: 1px solid; font-size: 0.8ex; padding: 1ex; } table.comparaison td.definition { text-align: center; } table.comparaison img { max-height: 20vh; } td#ingredients-code-epfl { background-image: url(https://s42814.pcdn.co/wp-content/uploads/2020/01/Workshop_0919-HS-40Something_Ask-studio_TommyCorner-1.0-scaled.jpg.webp); background-size: cover; background-position: center 30%; } td#ingredients-code-epfl img { padding: 20px; border-radius: 20px; background-color: rgba(100%, 100%, 100%, 0.6); transform: rotate(-10deg); } </style>
{"metaMigratedAt":"2023-06-18T03:08:44.080Z","metaMigratedFrom":"YAML","title":"Meteor (+ Angular)","breaks":true,"description":"Présentation Meteor + Angular à l'équipe ISCS-MD","slideOptions":"{\"transition\":\"convex\",\"theme\":\"white\",\"spotlight\":{\"enabled\":false},\"progress\":true}","contributors":"[{\"id\":\"35350d9c-aeac-41da-82de-65dc5010a23b\",\"add\":9629,\"del\":2279}]"}
    364 views