Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Pour être dans les meilleures conditions, le Code Behind a été introduit pour que le projet ne comporte plus que des classes TypeScript.
Au sens Divalto One, les fichiers de type Script deviennent obsolètes et nous ne manipulons que des librairies.

Pour être surchargeable, les classes doivent être préfixées par les mots clé : export default.
C'est le moyen de rendre votre classe visible aux autres.

Spécialisation

Dans ce contexte, la librairie standard n’est plus dupliquée, elle ne contiendra que le code surchargé.

...

Vous avez entièrement le contrôle sur le moment auquel le traitement de base sera exécuté. Vous avez la possibilité d’exécuter du code avant ou après le traitement de base, ou décider de ne pas l’exécuter du tout.

Import de librairies

Dans les versions précédentes, pour pouvoir utiliser une librairie, il fallait appeler avec le service $library

Bloc de code
languagetypescript
const helper = await $library.getLibraryAsync('helper');
helper.callMe();

Dans cette nouvelle version, il suffit d’utiliser la même mécanique que pour l’import de la classe standard qu’on souhaite surcharger

Bloc de code
languagetypescript
import helperClass from '@Standard/Default/helper';

export default class mylib {
  async callMeAsync() {
    const helper = new helperClass();
    helper.callMe();
  }
}

Importer la bonne version de librairie

Rappel, lorsqu’un fichier de configuration est demandé au runtime, la version qui sera finalement chargée suit l’ordre de priorité suivante

  1. Fichier dans l’espace du projet selon le DeviceType

  2. Fichier dans l’espace du projet dans Common

  3. Fichier dans l’espace standard selon le DeviceType

  4. Fichier dans l’espace standard dans Common

L’import de librairie décloisonne ces niveaux en permettant de cibler la bonne librairie.

Le format de l’import est défini comme suit

Bloc de code
languagetypescript
import libClass from '@Space/DeviceType/libName';

Ainsi, nous pouvons avoir par exemple les déclinaisons suivantes

Bloc de code
languagetypescript
import libClassFromStandardCommon from '@Standard/Common/libName';
import libClassFromStandardDefault from '@Standard/Default/libName';
import libClassFromStandardExtranet from '@Standard/extranet/libName';
import libClassFromProjectCommon from '@Project/Common/libName';
import libClassFromProjectDefault from '@Project/Default/libName';
import libClassFromProjectExtranet from '@Project/extranet/libName';

Pour importer une librairie tout en respectant l’ordre de priorité, il faut utiliser l’espace @Global sans préciser le DeviceType

Bloc de code
languagetypescript
import libClass from '@Global/libName';