Un bel giorno ci chiama un cliente e ci chiede se è possibile migrare la loro applicazione da Silverlight a una soluzione web moderna senza toccare il database SqlServer e il backend WCF, in modo che nella transizione fossero disponibili entrambe le applicazioni. Ah, dimenticavo, la UI è dinamica e lo XAML è salvato sul db. Ecco come ci siamo riusciti con Angular e WebApi!
3. #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION
Un giorno ci chiama un cliente…
4. #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION
Requisiti
• Back end e Database non si possono toccare
• Vorremmo mantenere la stessa UI e UX
• La UI viene generata dinamicamente
• XAML (standard e verticale) sul database
• Bisogna usare il nostro «framework»
• Formare il team interno sulle tecnologie
adottate
• Dobbiamo fare una demo tra 6 mesi a un
cliente
5. #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION
Requisiti
• Back end e Database non si possono toccare
• Vorremmo mantenere la stessa UI e UX
• La UI viene generata dinamicamente
• XAML (standard e verticale) sul database
• Bisogna usare il nostro «framework»
• Formare il team interno sulle tecnologie
adottate
• Dobbiamo fare una demo tra 6 mesi a un
cliente
12. #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION
Dal Binding XAML al Binding Angular
13. #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION
Dal Binding XAML al Binding Angular
[(ngModel)]
Angular si accorge delle modifiche agli elementi
bindati con la Change Detection:
Aggiorna
automaticamente la UI
Bello, ma costoso
Si può parzialmente
disabilitare
15. #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION
Binding tra elementi e Converter
16. #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION #UGIDOTNET
APP MODERNISATION DAY 2019
#APPMODERNISATION
Binding tra elementi e Converter
I componenti devono essere
autonomi ma devono poter
comunicare tra loro:
- padre/figlio => @Input e @Output
- fratelli => il padre come
mediatore e @Input e @Output
- relazione qualsiasi => Dependency
Injection, Observable e operatori
RxJS