ntro.ca

        • Contrats de classe
        • Liens utiles
        • Calendrier
        • Calendrier groupe 2
        • Calendrier groupes 1, 3
        • Structure du cours
        • Évaluations
        • Matériel à se procurer
        • Les profs
          • Marc-Olivier Tremblay
          • Mathieu Bergeron
        • Module 1.1: installation + trier des cartes
        • Module 1.2: rappels POO
        • Module 1.3: tableau d'objets
        • Examen 1
        • Module 2.1: données JSON
        • Module 2.2: données en Java
        • Module 2.3: récursivité
        • Examen 2
        • Module 3.1: structure générique
        • Module 3.2: efficacité (1)
        • Module 3.3: efficacité (2)
        • Examen 3
        • Module 4.1: liste naïve
        • Module 4.2: liste par tableau
        • Module 4.3: liste chaînée
        • Examen 4
        • Module 5.1: mappage naïf
        • Module 5.2: mappage par hachage
        • Module 5.3: mappage par arbre
        • Examen 5
        • Équipes
          • Horaire groupe 1
          • Horaire groupe 2
          • Horaire groupe 3
          • Groupe 1
          • Groupe 2
          • Groupe 3
        • Projets vedettes 2022
        • Projets vedettes 2023
        • Projets vedettes 2024
        • Projets vedettes 2025
        • Survol
        • Structure
        • Calendrier
        • Calendrier des séances
        • Évaluations
        • Exemples de jeu
        • Exemples de pages
        • Réponses à vos questions
        • Module 1: créer le projet
        • Module 2: concevoir l'application
        • Module 3: vues NtroFx
        • Module 4: modèle et navigation
        • Module 5: ajouter le dorsal, modifier le modèle
        • Module 7: améliorer l'affichage
        • Module 8: jeu en 2d
        • Module 9: client/serveur
        • Module 10: plusieurs instances du même modèle
        • TP1
        • Examen 1
        • TP2
        • Examen 2
        • Projet de fin de session
        • Calendrier
        • Structure du cours
        • Évaluations
        • Contrat de classe
        • Le prof
        • 01: Windows et Word
          • Astuces et raccourcis
        • 02: Word
        • 03: Word
          • Exercice Word: insertion d'éléments spéciaux
          • Exercice Word: tableaux
        • 04: Word
          • Exercice Word: références
          • TP01: Word (15%)
        • 05: PowerPoint
          • TP02: PowerPoint (10%)
        • 06: Examen Word (20%)
        • 07: Excel
        • 08: Excel
        • 09: Excel
          • TP03: Excel (15%)
        • 10: Excel
        • 11: Examen Excel (20%)
        • 12: Access
        • 13: Access
        • 14: Access
        • 15: Examen Access
      • Sondage H2023 (dept. info)
      • Vision H2023 (dept. info)
      • P1) exercices interactifs de lecture
      • P2) transition Excel vers Python
        • Atelier 2: un exemple
      • Jquery
      • Jquery Ui
      • Point de vue sur l'IA
    Dorsal01
    • Théorie: créer un dorsal
      • Créer un dorsal local
      • Créer un dorsal distant
      • Déclarer le dorsal
      • Ajouter des tâches au dorsal

    Théorie: créer un dorsal #

    1. Notre client doit obligatoirement déclarer un dorsal

    2. Si le dorsal est dans le client, on va déclarer un dorsal local

    3. Si le dorsal s’exécute sur le serveur, on va déclarer un dorsal distant

    Créer un dorsal local #

    1. Un dorsal local hérite de LocalBackendNtro
    public class DorsalPong extends LocalBackendNtro {
    
    1. Un dorsal local doit déclarer des tâches
    public class DorsalPong extends LocalBackendNtro {
    
        @Override
        public void createTasks(BackendTasks tasks) {
    
    
        }
    
    }
    
    1. On utilise un BackendTasks pour créer les tâches du dorsal

      • ce n’est pas le même genre de tâches qu’un frontal
    2. On va aussi faire un import static différent

      • import static ca.ntro.app.tasks.backend.BackendTasks.*;

    Créer un dorsal distant #

    1. Un dorsal distant hérite de RemoteBackendNtro
    public class DorsalPong extends RemoteBackendNtro {
    
    1. Un dorsal distant doit déclarer un serveur auquel se connecter
    public class DorsalPong extends RemoteBackendNtro {
    
        @Override
        public void registerServer(ServerRegistrar registrar) {
    
    
        }
    
    }
    
    1. Le client se connecte alors à un seveur où s’exécute le vrai dorsal

      • les modèles sont entroposés et modifiés sur le serveur

    Déclarer le dorsal #

    1. Qu’il soit local ou distant, le client doit déclarer le dorsal:
    
    public class AppPong implements NtroAppFx {
    
        // ...
        
    
        @Override
        public void registerBackend(BackendRegistrar registrar) {
    
            registrar.registerBackend(DorsalPong.class);
    
        }
    

    Ajouter des tâches au dorsal #

    1. Les tâches d’un dorsal sont typiquement plus simples que celles du frontal

    2. Typiquement, le dorsal va recevoir un message et modifier le modèle:

    3. Pour pong, le backend complet va être

    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Théorie: créer un dorsal
      • Créer un dorsal local
      • Créer un dorsal distant
      • Déclarer le dorsal
      • Ajouter des tâches au dorsal