Fonctionnement de la détection de changement dans une application Angular

Angular from scratch Les composants Les composants enfant Mécanisme de détection de changements Pourquoi effectuer une détection de changements ? Zone.js Cycle de vie des composants Lien entre la détection des changements et le cycle de vie des composants Erreur “ExpressionChangedAfterItHasBeenCheckedError” Ivy Compilation Ahead-of-Time (AOT) Tree-shaking Compilation d’un composant Exemple du code généré pour un…

Continuer à lire

Les composants enfant (Angular)

Angular from scratch Les composants Les composants enfant Interactions avec les composants enfant Injection du composant parent @ViewChild() et @ViewChildren() @Input() @Output() + EventEmitter Paramètres inputs et outputs Content projection Projection de contenu sur plusieurs niveaux Multi-content projection Paramètre providers vs viewProviders Contenu projeté vs contenu non projeté Paramètre viewProviders Ordre d’exécution des callbacks du…

Continuer à lire

Les directives Angular

Angular from scratch Les composants Les composants enfant Mécanisme de détection de changements Injection de dépendances Les directives Configuration des directives Paramètre selector Paramètre inputs @Input() Paramètre outputs @Output() Paramètre providers @HostBinding() @HostListener() Attribute directives ElementRef et Renderer2 Exemple de directive attribut Structural directives <ng-template> ngTemplateOulet et ngTemplateOutletContext Utiliser ngTemplate avec une directive Implémentation d’une…

Continuer à lire

Injection de dépendances dans une application Angular

Angular from scratch Les composants Les composants enfant Mécanisme de détection de changements Injection de dépendances Notion de “provider” Exemples d’implémentation pour indiquer le “provider” En utilisant le paramètre “providers” En utilisant le paramètre “providedIn” dans @Injectable() Exemples d’implémentation de l’injection En utilisant @Inject() En utilisant @Injectable() Injecter des services Pour résumer… Les directives Angular…

Continuer à lire

Trouver l’origine d’une fuite mémoire avec WinDbg

Lors de l’exécution d’une application, des fuites mémoires peuvent subvenir y compris dans un cadre managé. Dans les pires cas, trouver l’origine de ces fuites peut s’avérer compliqué car elles peuvent se produire dans des circonstances qu’on a du mal à identifier ou reproduire. Par exemple, ces fuites peuvent se produire dans un environnement de…

Continuer à lire

Angular CLI en 5 min

Le CLI Angular (i.e. Command Line Interface) permet de faciliter l’exécution de nombreuses tâches sur un projet Angular. Il n’est, cependant, pas facile de se rappeler de toutes les commandes. Cet article a pour but d’expliciter quelques-unes des commandes principales et de leurs options. Angular from scratch Les composants Les composants enfant Mécanisme de détection…

Continuer à lire

Aide-mémoire sur les pointeurs et références en C++

Le but de cet article est de rappeler quelques éléments de syntaxe sur les pointeurs et références en C++. Sommaire Déclaration par valeur Référence Pointeur Référence managée (en C++/CLI) Pointeur et réference dans les appels de fonctions Arguments de fonctions Retour de fonction Membres d’une classe Comparaison d’objets On considère la classe suivante: Point.h Point.cpp…

Continuer à lire

Appeler des dépendances C++ à partir d’un exécutable .NET AnyCPU

Il existe différentes méthodes pour appeler des dépendances natives à partir de .NET (cf. Appeler des DLL natives à partir de .NET). Ces méthodes ont en commun de devoir charger la bibliothèque native de façon à exécuter le code qui s’y trouve. Le chargement de DLL par l’application appelante implique que l’architecture de cette dernière…

Continuer à lire

Installer une assembly native dans WinSxS

Plusieurs méthodes sont possibles pour référencer des dépendances natives: consommer des dépendances en utilisant des bibliothèques statiques, des bibliothèques dynamiques, référencer un objet avec une interface COM etc… Suivant le cas d’utilisation, chacune de ces méthodes peut s’avérer plus intéressante qu’une autre. Par exemple, utiliser des bibliothèques dynamiques a le grand avantage d’apporter une modularité…

Continuer à lire

Appeler des DLL natives à partir de .NET

Parfois quand on veut effectuer un traitement particulier, utiliser un middleware propriétaire ou simplement utiliser une bibliothèque tiers, on ne dispose pas forcément d’assembly .NET permettant d’effectuer ce traitement et il peut être nécessaire d’effectuer des appels à une bibliothèque codée en C++. Cette bibliothèque native peut être livrée sous forme d’une bibliothèque statique (fichier…

Continuer à lire