Cours d’intégration d’applications
Tôt ou tard, vous aurez besoin d’un widget JavaScript tiers — une grille sophistiquée, une bibliothèque de graphiques, un éditeur spécialisé — dans votre application Wisej.NET. Ce cours vous enseigne la manière Wisej.NET de le faire : des composants gérés par le serveur, avec de fins adaptateurs client et un contrat clair entre les deux, plutôt que des bricolages de scripts fragiles. Dix modules construisent votre vocabulaire de l’intégration et les bases de JavaScript dont vous avez réellement besoin, puis abordent l’intégration rapide avec le contrôle Widget, les classes de widgets réutilisables et compatibles avec le Designer, les contrôles personnalisés et les thèmes, les appels client–serveur et la sérialisation, les contrats d’événements, le postback et les endpoints de données, et les widgets complexes liés aux données (avec des exemples Kendo et DevExtreme) — pour conclure sur la préparation à la production, le dépannage et un projet de synthèse. Il s’adresse aux développeurs avancés qui doivent intégrer et livrer de vrais composants d’interface tiers.
Intégrez des widgets JavaScript tiers à la manière de Wisej.NET — composants gérés par le serveur, adaptateurs client, contrats client/serveur clairs, endpoints de données et packaging prêt pour la production.
- Niveau: Advanced
- Durée: 15 h
- Modules: 10
Programme
Module 1: Architecture et vocabulaire de l’intégration
Module 1 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur l’architecture et le vocabulaire, construisez l’exemple avec un assistant IA, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Comprendre le modèle composant/widget/contrôle ainsi que le pipeline de rendu et d’événements de Wisej.NET. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoRelier les widgets au modèle composant/widget · 7 min
Relier les widgets au modèle composant/widget — une vidéo pas à pas guidée du Module 1, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Suivez une intégration sur le serveur et le navigateur. Wisej.NET possède l'état du composant, tandis qu'un widget de navigateur le présente. Garder cette limite explicite empêche la bibliothèque du fournisseur de devenir la couche métier de l’application.
Distinguez le composant de son widget. Le composant possède l'état de l'application ; le widget gère le comportement du navigateur. Les événements les connectent en signalant des changements significatifs, plutôt que de copier chaque interaction du navigateur sur le serveur.
Suivez les données vers l'extérieur sous la forme compacte JSON, puis dans les options du fournisseur. Retracez les événements importants jusqu'au serveur. Cette limite d'adaptateur permet au code du serveur de fonctionner avec un contrat stable au lieu de détails spécifiques au fournisseur.
Inspectez TemperatureGauge dans le concepteur. Value est la propriété modifiée par l'application ; ThresholdExceeded est l’événement qu’il gère. La jauge du fournisseur reste à l’intérieur de cette interface de composant Wisej.NET familière.
Regardez le serveur changer Value et la jauge le restitue. Au seuil affiché, un événement revient avec des informations utiles. L'application répond au franchissement du seuil, pas à chaque image d'animation visuelle.
Classez la jauge, l'éditeur et la grille avant d'écrire le code d'intégration. Leurs besoins en ressources, données et événements diffèrent. Comparer ces besoins permet d’abord de choisir une surface d’intégration suffisante sans complexité inutile.
Rédigez un dossier de décision d'architecture expliquant votre choix. Incluez les contraintes de réutilisation, de thème, de sécurité et de maintenance. Le but est de conserver le raisonnement, afin qu'un autre développeur puisse juger plus tard si le choix est toujours pertinent.
Soumettez le diagramme, le tableau de comparaison et le dossier de décision ensemble. Ils doivent raconter une histoire cohérente : où vit l'État, comment le widget communique et pourquoi l'approche d'intégration sélectionnée correspond à ses exigences.
Vous disposez désormais d’une conception d’intégration que quelqu’un d’autre peut réviser. Utilisez cette compréhension partagée comme point de départ pour la mise en œuvre et les tests, au lieu de traiter un visuel fonctionnel comme l’intégralité de l’intégration.
- LectureExercice de code avec l’IA · 20 min
Construisez le Sensor Monitor de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers le guide de ce module, puis relisez, exécutez et étendez ce qu’il vous fournit — y compris en le comparant à notre propre build de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 1 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Registres de décisions d’intégration de widgets · 40 min
Objectif: Créez un registre des décisions d’intégration pour trois widgets candidats : une petite jauge, un éditeur de texte enrichi et une grille de données. Décidez quel type d’intégration mérite chacun et expliquez pourquoi. Livrables : Schéma d’architecture de l’intégration ; Tableau de tri des widgets ; Premier ADR : approche d’intégration retenue pour chaque widget candidat.
Module 2: L’essentiel de JavaScript pour des intégrations fiables
Module 2 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur les bases de JavaScript, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Maîtriser les patterns JavaScript qui reviennent sans cesse dans les intégrations tierces. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoÉcrire un JavaScript d’intégration fiable · 7 min
Écrire un JavaScript d’intégration fiable — une vidéo pas à pas guidée du Module 2, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Prouvez le comportement de JavaScript avant de l'envelopper dans Wisej.NET. Un petit exemple isolé permet de distinguer une erreur de bibliothèque ou de langage d'un problème introduit par l'intégration elle-même.
Dans le rappel du fournisseur, inspectez à quoi fait référence this. Il peut s'agir de l'objet fournisseur, qui n'a pas de méthode fireWidgetEvent. La méthode manque parce que le récepteur est erroné, et non parce que Wisej.NET a perdu l'événement.
Conservez une référence explicite au widget dans une fermeture, liez le rappel ou appelez une méthode de widget. Chaque solution donne au rappel un itinéraire fiable vers la bonne instance lorsque le fournisseur l'invoque.
Déclarez les dépendances dans l'ordre requis : bibliothèque de prise en charge, styles, script du fournisseur, puis initialisation. Packages rend cet ordre explicite, empêchant l'initialisation de s'exécuter avant que les ressources requises n'existent.
Déplacez l'initialisation éprouvée dans le InitScript du Widget et déclarez ses ressources dans Packages. Conservez les mêmes hypothèses de dépendance que celles de l'exemple isolé, afin que l'intégration ne modifie pas silencieusement la façon dont la bibliothèque démarre.
Utilisez les outils de développement du navigateur pour inspecter l'instance de fournisseur stockée et suivez valueChanged. Un sourceURL donne au code injecté un nom reconnaissable ; une instruction du débogueur permet d'arrêter l'endroit où le rappel s'exécute réellement.
Conservez l'exemple isolé, le travail InitScript et les notes de débogage ensemble. Un échec futur peut alors être reproduit en dehors de l’intégration et comparé à la configuration réelle du widget.
L'intégration dispose désormais d'un point de départ testé, de dépendances explicites et d'un contexte de rappel fiable. Ces fondations facilitent le débogage du code wrapper ultérieur, car le comportement de base de JavaScript est déjà compris.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 2 · 12 min · Note de réussite 80%
- Lab pratiqueLab — JavaScript d’intégration fiable · 40 min
Objectif: Prenez un exemple en JavaScript pur d’un widget jauge ou bouton rotatif et faites-le d’abord fonctionner dans une page HTML isolée. Réécrivez-le ensuite sous forme d’InitScript de Widget Wisej.NET. Livrables : Preuve fonctionnelle en JavaScript pur ; InitScript Wisej.NET qui préserve le contexte ; Notes de débogage indiquant où l’instance du widget est stockée.
Module 3: Intégration rapide avec Wisej.Web.Widget
Module 3 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur l’intégration rapide de widgets, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Utiliser Wisej.Web.Widget pour les intégrations ponctuelles, les prototypes et la validation rapide des bibliothèques tierces. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoIntégrer rapidement un widget avec Wisej.Web.Widget · 7 min
Intégrer rapidement un widget avec Wisej.Web.Widget — une vidéo pas à pas guidée du Module 3, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Commencez avec un Widget pour prouver rapidement l’intégration. Cela donne à la bibliothèque du fournisseur une place dans Wisej.NET avant d'investir dans un contrôle réutilisable avec une interface publique plus grande.
Placez le Widget sur le tableau de bord et gardez le premier exemple petit. La question immédiate est de savoir si les ressources se chargent et si l'objet fournisseur peut s'exécuter dans son conteneur, et non si l'abstraction est terminée.
Donnez des tâches distinctes à Packages, Options et InitScript. Packages charge les dépendances, Options transporte les données actuelles et InitScript crée le visuel. Garder ces rôles clairs facilite le diagnostic d’un échec d’intégration.
Créez l'instance du fournisseur lors de l'initialisation, puis mettez à jour cette instance existante lorsque les options changent. Le recréer à chaque mise à jour peut dupliquer les gestionnaires ou perdre l'état qui appartient au widget actuel.
Utilisez le bouton du serveur pour modifier Options et regarder la mise à jour actualiser le visuel. Un appel en file d'attente gère une commande impérative. Faites la distinction entre la modification de l’état persistant du widget et la demande d’une action client unique.
Soumettez ensemble les déclarations de ressources, l’initialisation, la logique de mise à jour et l’interaction du serveur. Ils doivent démontrer à la fois la première création et les modifications ultérieures. La réutilisation sur plusieurs écrans est la prochaine raison d'introduire un wrapper.
Le prototype a maintenant établi que la bibliothèque peut charger, restituer et répondre dans Wisej.NET. Transférez ces comportements éprouvés dans un emballage réutilisable au lieu de copier le prototype sur chaque page.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 3 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Intégration rapide d’un widget · 40 min
Objectif: Construisez une page de tableau de bord avec deux widgets ponctuels : une jauge simple et un bouton rotatif de style jQuery. Les deux doivent se mettre à jour lorsque les propriétés côté serveur changent. Livrables : Packages des widgets configurés ; Implémentation de l’InitScript et de update ; Bouton serveur qui modifie les options du widget et appelle le client.
Module 4: Classes de widgets réutilisables et propriétés compatibles avec le Designer
Module 4 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur les classes de widgets réutilisables, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Passer d’instances ponctuelles de Widget à des classes serveur réutilisables, avec des propriétés typées et une configuration maîtrisée. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoConstruire une classe de widget réutilisable et adaptée au Designer · 7 min
Construire une classe de widget réutilisable et adaptée au Designer — une vidéo pas à pas guidée du Module 4, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Déplacez la configuration répétée du widget dans une classe réutilisable. Lorsque les chemins de ressources ou l'initialisation changent, une implémentation maintenue doit servir chaque écran au lieu de nécessiter des modifications sur plusieurs scripts copiés.
Laissez SimpleGauge hériter du comportement Wisej.NET Widget et posséder ses Packages, Options et InitScript. La page doit demander le comportement de la jauge à travers la classe, sans savoir comment la bibliothèque du fournisseur est assemblée.
Exposez Value, Minimum, Maximum et Caption en tant que propriétés saisies. Les descriptions et les catégories aident l'utilisateur concepteur à choisir des paramètres valides, tandis que le wrapper traduit ces paramètres en options du fournisseur en interne.
Gardez les propriétés prises en charge publiques et masquez les détails d’implémentation le cas échéant. Si les appelants peuvent remplacer librement les options d’initialisation ou brutes, ils peuvent contourner les garanties qui rendent le wrapper fiable.
Placez la classe sur une page de démonstration et modifiez-la via les propriétés normales. L'absence de InitScript spécifique à la page est une preuve utile : les connaissances d'intégration vivent réellement à l'intérieur de la classe réutilisable.
Fournissez la classe avec des propriétés documentées, des valeurs par défaut et une page d'exemple propre. Un réviseur doit être capable de l'instancier et de comprendre les paramètres pris en charge sans ouvrir le script d'initialisation du fournisseur.
Un bon emballage rend le fonctionnement normal simple et rend difficile une mauvaise utilisation accidentelle. Évaluez l’interface publique du point de vue de l’auteur de la page, et pas seulement du point de vue de la personne qui a construit l’intégration.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 4 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Classe de widget réutilisable · 40 min
Objectif: Refactorisez le prototype de jauge en `IntegrationLab.Controls.SimpleGauge`, avec des propriétés typées et un enregistrement des ressources par défaut. Livrables : Classe réutilisable dérivée de Widget ; Propriétés typées avec valeurs par défaut ; Page de démonstration utilisant la classe sans InitScript personnalisé sur la page.
Module 5: Contrôles Wisej personnalisés, classes client et thèmes
Module 5 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur les contrôles personnalisés et les thèmes, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Construire des contrôles d’apparence native avec des classes serveur, des classes de widget client, des clés d’apparence et des ressources incorporées. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoConstruire un contrôle personnalisé, une classe client et un thème · 7 min
Construire un contrôle personnalisé, une classe client et un thème — une vidéo pas à pas guidée du Module 5, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Créez un contrôle personnalisé lorsque l'intégration doit se comporter comme une partie de Wisej.NET elle-même. L'objectif est un composant réutilisable qui participe au comportement et à la thématique au moment de la conception, et pas seulement un visuel hébergé.
Comparez un wrapper Widget avec un Control au niveau de la plate-forme. Choisir l'intégration la plus forte lorsque le comportement natif et la participation thématique le justifient ; un travail de mise en œuvre supplémentaire devrait répondre à une réelle exigence de réutilisation.
Associez le serveur SimpleGaugeControl à sa classe client sous Platform. Les deux classes ont des responsabilités différentes : le serveur expose l'état de l'application, tandis que le client implémente la manière dont cet état apparaît et se comporte dans le navigateur.
Utilisez OnWebRender pour créer une configuration client délibérée. Incluez les propriétés nécessaires au rendu de la jauge, plutôt que de sérialiser des objets serveur sans rapport. Une petite limite explicite est plus facile à raisonner et à maintenir.
Connectez la clé d'apparence à la définition du thème. Cela permet au thème de contrôler les choix visuels au lieu de coder en dur un aspect distinct dans chaque écran qui utilise le contrôle.
Inspectez le contrôle dans le concepteur et essayez ses paramètres de taille et de thème. Le rendu au moment de la conception fait partie de l'intégration : les autres développeurs doivent organiser le contrôle sans exécuter au préalable l'intégralité de l'application.
Soumettez les deux classes, l’entrée d’apparence et les preuves au moment de la conception. Ensemble, ils démontrent le chemin complet depuis la propriété du serveur jusqu'à un contrôle thématique qu'un autre développeur peut placer visuellement.
Regardez plusieurs instances partager la même implémentation de contrôle sur le tableau de bord. Leurs valeurs varient, mais leur comportement et leur intégration thématique restent cohérents. Cette cohérence est la récompense de l’encapsulation de l’intégration une fois.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 5 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Contrôle personnalisé, classe client et thème · 40 min
Objectif: Créez un contrôle personnalisé `SimpleGaugeControl` avec une classe serveur et une classe client `/Platform`. Ajoutez une clé d’apparence de base et faites-le s’afficher en mode design. Livrables : Classe serveur du contrôle ; Squelette de la classe client qx ; Entrée de thème/d’apparence ; Capture d’écran ou notes en mode design.
Module 6: Appels client-serveur, sérialisation et accès aux objets
Module 6 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur les appels client-serveur, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Faire circuler données et commandes en toute sécurité entre les composants .NET et les widgets du navigateur. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoCâbler les appels client-serveur et la sérialisation · 7 min
Câbler les appels client-serveur et la sérialisation — une vidéo pas à pas guidée du Module 6, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Déterminez si chaque interaction envoie une commande ou doit obtenir un résultat. Cette distinction détermine comment le code serveur poursuit son exécution, quelles données franchissent la frontière et s’il doit attendre une réponse du navigateur.
Utilisez Call lorsque le navigateur doit effectuer une action et qu’aucune valeur de retour n’est nécessaire. La commande est mise en file d'attente, le code serveur ultérieur ne doit donc pas supposer que le navigateur a déjà fini de l'exécuter.
Utilisez CallAsync ou EvalAsync lorsque l'étape suivante dépend du résultat du navigateur. Attendez l'opération avant d'utiliser ce résultat, afin que le flux de travail suive la réponse au lieu de se précipiter avec les données manquantes.
Définissez un petit objet de transfert de données et vérifiez ses noms de propriétés sérialisés. Le navigateur reçoit le contrat sérialisé, pas l'objet C# d'origine. Les champs explicites évitent d’exposer des états non liés et réduisent les incompatibilités de noms.
Comparez les opérations en direct : une commande modifie la jauge, un appel dont on attend le résultat lit sa taille après rendu, et un objet compact renvoie l’état de la sélection. Chaque échange transporte uniquement les données nécessaires à cette interaction.
Fournissez des exemples de commandes sans retour et d’appels dont on attend le résultat, ainsi que le contrat des données renvoyées. Une personne qui examine le code doit pouvoir identifier où l’exécution attend et quels champs le navigateur est autorisé à renvoyer.
Gardez la frontière organisée autour des commandes, des résultats et des contrats de données explicites. Cela rend visibles le timing et la responsabilité, ce qui est plus fiable que de traiter le code du navigateur comme une extension synchrone du serveur.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 6 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Appels client-serveur et sérialisation · 40 min
Objectif: Ajoutez des commandes à la jauge réutilisable : définir la valeur, lire la taille rendue, réinitialiser l’animation et renvoyer au serveur une partie de l’état côté client. Livrables : Appels de méthodes du serveur vers le client ; Un exemple de `CallAsync` ou `EvalAsync` ; DTO utilisé pour renvoyer l’état client.
Module 7: Événements, gestionnaires et contrats d’événements des widgets
Module 7 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur les événements et les contrats, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Transformer les callbacks de la bibliothèque tierce en événements .NET stables, sans laisser sa complexité se propager dans l’application. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoDéfinir les événements des widgets et les contrats des gestionnaires · 7 min
Définir les événements des widgets et les contrats des gestionnaires — une vidéo pas à pas guidée du Module 7, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Traitez les rappels des fournisseurs comme une entrée brute de l'intégration. L'application a besoin d'un ensemble stable d'événements significatifs, l'adaptateur doit donc décider quoi transférer plutôt que d'exposer directement chaque notification du fournisseur.
Séparez l’activité visuelle des décisions d’application. Le mouvement ou l'animation du pointeur peut rester local, tandis qu'une sélection significative ou un changement d'état peut nécessiter le serveur. Le filtrage à cette limite évite le trafic inutile et le travail des gestionnaires.
Enregistrez le rappel du fournisseur une fois lors de l'initialisation et transférez un événement nommé compact. L'enregistrer à nouveau à chaque mise à jour peut faire en sorte qu'une action utilisateur déclenche plusieurs gestionnaires de serveur de manière inattendue.
Utilisez la route des événements qui correspond à la surface d'intégration. Widgets transmis via fireWidgetEvent et WidgetEvent ; les contrôles personnalisés utilisent leurs événements client et OnWebEvent. Le mélange des routes envoie les données au mauvais mécanisme de traitement.
Définissez le nom de chaque événement et la charge utile avant de câbler les gestionnaires. Les franchissements de seuils, les changements de valeurs et les sélections de points nécessitent des informations différentes. Les petits contrats explicites indiquent clairement sur quoi un gestionnaire de serveur peut s'appuyer.
Interagissez avec la jauge, le bouton et le graphique et suivez les événements atteignant le serveur. Vérifiez que chaque charge utile contient les valeurs pertinentes et que l'activité visuelle locale n'est pas devenue un flux de messages serveur inutiles.
Soumettez les gestionnaires client et serveur appariés avec la table de contrat. Un réviseur doit être capable de retracer chaque événement depuis le déclencheur de son navigateur jusqu'à la décision du serveur, y compris exactement quelles données franchissent la frontière.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 7 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Contrats d’événements des widgets · 40 min
Objectif: Ajoutez des événements côté serveur pour le franchissement du seuil de la jauge, le changement de valeur du bouton rotatif et le clic sur un point du graphique. Normalisez toutes les charges utiles d’événements en DTO simples. Livrables : Trois gestionnaires d’événements côté client ; Trois gestionnaires d’événements côté serveur ; Tableau du contrat des charges utiles.
Module 8: Postback, WebRequest, WebMethod et endpoints de données
Module 8 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur les points de terminaison de données, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Alimenter des widgets JavaScript qui chargent leurs données en Ajax, tout en gardant les requêtes dans le contexte du bon composant Wisej.NET. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoConstruire des points de terminaison de données avec Postback et WebMethod · 7 min
Construire des points de terminaison de données avec Postback et WebMethod — une vidéo pas à pas guidée du Module 8, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Certains widgets de fournisseurs récupèrent leurs propres données plutôt que de tout recevoir via Options. Donnez à ces requêtes un point de terminaison explicite et conservez le contexte de composant correct, afin que la réponse appartienne à l'utilisateur et au widget prévus.
Utilisez getPostbackUrl lorsqu'un widget attend une adresse de données. Il achemine la demande vers la session et l'instance de composant appropriées. L'adresse fournit le contexte, mais le gestionnaire doit quand même valider l'opération demandée.
Dans WebRequest, vérifiez l'action demandée avant de produire des données. Définissez le type de contenu JSON et écrivez la forme de réponse attendue. Une réponse de transport valide ne suffit pas si le widget ne peut pas interpréter son contenu.
Utilisez un WebMethod pour une opération typée que votre code client appelle directement. Les arguments et la valeur renvoyée forment le contrat, de sorte que l'appelant peut attendre un résultat au lieu de gérer une demande de données appartenant au widget.
Choisissez le style de point de terminaison en fonction de la personne qui initie et contrôle la demande. Une source de données fournisseur utilise naturellement son adresse ; le code d'application qui appelle une opération nommée bénéficie d'une méthode typée et d'un résultat explicite.
Suivez la demande de la grille au gestionnaire de publication et revenez aux lignes rendues. Vérifiez la structure de réponse à cette limite ; une grille vierge peut indiquer une inadéquation de contrat même lorsque la demande elle-même a abouti.
Fournissez les deux exemples de points de terminaison et expliquez leurs appelants prévus. Vérifiez l’autorisation et la validation des entrées pour chaque chemin. Le choix d’un mécanisme de point de terminaison pratique ne supprime jamais la responsabilité du serveur de protéger l’opération.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 8 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Endpoints de données (Postback / WebMethod) · 40 min
Objectif: Implémentez à la fois un point de terminaison postback et un point de terminaison WebMethod pour le même jeu de données en lecture seule. Connectez un widget simple à chacun et comparez les compromis. Livrables : Gestionnaire WebRequest en postback ; WebMethod avec arguments et valeur de retour ; Note comparative : source de données par URL ou callback client.
Module 9: Widgets complexes liés aux données : modèles généraux avec des exemples Kendo et DevExtreme
Module 9 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur les widgets de données complexes, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Intégrer des widgets de données riches sans rendre le cours dépendant d’une seule bibliothèque tierce. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoIntégrer un widget complexe lié aux données · 7 min
Intégrer un widget complexe lié aux données — une vidéo pas à pas guidée du Module 9, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Utilisez les exemples de grille et de pivot pour identifier le modèle d'intégration sous la syntaxe spécifique au fournisseur. L'application a toujours besoin de chargement de ressources, d'opérations de données, d'événements et d'une interface Wisej.NET stable quelle que soit la bibliothèque choisie.
Donnez à l'adaptateur la propriété de la création, des options, des événements et de l'accès aux données. Le fait de conserver ensemble ces informations destinées aux fournisseurs empêche les pages individuelles de développer leurs propres versions incompatibles de la même intégration.
Comparez DataSource et CustomStore en fonction des opérations qu'ils demandent, et pas seulement de leur syntaxe. Les deux ont besoin d’un chemin pour charger et modifier les données ; l'adaptateur traduit leurs arguments dans le contrat de votre serveur.
Définissez la pagination, le tri et le filtrage dans GridOperationRequest avant d'implémenter les gestionnaires. Validez ces entrées sur le serveur, puis mappez-les à l'opération prise en charge. Les instructions de requête fournies par le navigateur ne sont toujours pas des entrées fiables.
Spécifiez des charges utiles distinctes pour les événements de modification de ligne, d’insertion, de suppression et de sélection. Chacun doit identifier l’opération prévue et les valeurs nécessaires, sans envoyer un composant entier ni exposer l’état du serveur sans rapport.
Suivez la pagination, le tri et l'édition via le même contrat de serveur pendant que le pivot charge ses données. La limite commune maintient les opérations des applications compréhensibles même lorsque les widgets du navigateur utilisent des interfaces de fournisseurs différents.
Soumettez le contrat d'exploitation, les gestionnaires, les charges utiles d'événement et le plan pivot comme une seule conception cohérente. Un réviseur doit être capable de connecter chaque action de données visible à une opération de serveur explicite et validée.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 9 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Widgets complexes liés aux données · 40 min
Objectif: Construisez deux exemples avancés : un widget de type tableau croisé en lecture seule et un widget de type grille modifiable. L’un peut utiliser la sémantique DataSource de Kendo, l’autre la sémantique CustomStore de DevExtreme. Livrables : Plan d’intégration du tableau croisé en lecture seule ; Contrat des opérations de la grille modifiable ; Gestionnaires serveur ou stubs pour load/update/insert/delete ; Contrats des charges utiles d’événements pour le clic sur une cellule et la mise à jour d’une ligne.
Module 10: Préparation à la production, dépannage et projet de synthèse
Module 10 du Cours d’intégration d’applications — le parcours d’intégration Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas sur la production et le projet de synthèse, réussissez la vérification des connaissances, puis réalisez le lab pratique.
- LectureGuide de la leçon · 12 min
Préparer les intégrations pour de vraies applications : performances, diagnostics, mises à jour en arrière-plan, packaging, gestion des versions et maintenabilité. Ce que cela signifie pour un développeur qui intègre avec Wisej.NET — et comment aborder ce module.
- LectureGuide du lab / de l’examen · 10 min
Ce que vous allez construire dans le lab pratique, la démarche recommandée, les livrables attendus et l’auto-vérification avant la remise.
- Leçon vidéoLivrer un projet de synthèse d’intégration prêt pour la production · 7 min
Livrer un projet de synthèse d’intégration prêt pour la production — une vidéo pas à pas guidée du Module 10, que vous pouvez suivre directement ici dans le lecteur.
Transcription de la narration
Considérez l’intégration comme quelque chose qui doit survivre à une utilisation et un déploiement répétés. Un premier rendu réussi ne prouve qu'un seul chemin ; la préparation à la production dépend également de la gestion des pannes, des mises à jour, du nettoyage et des contrats maintenables.
Inspectez les chemins de ressources, le volume des événements, le nettoyage du cycle de vie, la synchronisation et les tailles de données réalistes. Ces soucis peuvent rester cachés dans une petite démonstration, puis se transformer en échecs lorsque le même widget est réutilisé ou déployé ailleurs.
Name a injecté des scripts avec sourceURL et échoue clairement lorsque les conditions préalables sont manquantes. Comparez l'exemple du fournisseur isolé avec la version intégrée. Cela vous donne des preuves de l’endroit où commence l’échec au lieu de vous fier à des conjectures.
Mettez à jour l’instance de fournisseur existante et détruisez-la lorsque le contrôle est supprimé. Les cycles répétés de création et de fermeture ne doivent pas laisser les gestionnaires ou les objets en vie après la disparition de leur écran.
Démarrez le traitement en arrière-plan via Application.StartTask. Lorsque le résultat est prêt, mettez à jour le client et appelez Application.Update. Le flux de travail n’est pas terminé tant que le navigateur n’est pas en mesure d’afficher le nouvel état du serveur.
Intégrez un widget inconnu en utilisant les mêmes limites : un wrapper réutilisable, des commandes de serveur, un événement significatif et un point de terminaison de données protégé. L’exercice teste si vous pouvez transférer le modèle au-delà des exemples du cours.
Examinez le tableau de bord comme plusieurs intégrations travaillant ensemble. Suivez les événements, les appels, le chargement et l'élimination pour chaque widget. L'espace visuel partagé ne doit pas brouiller le wrapper qui possède chaque ressource et interaction.
Terminez avec un wrapper qu'un autre développeur peut comprendre, tester et réutiliser. Expliquez son contrat public et son cycle de vie, y compris le comportement en cas d'échec. Le résultat durable est une intégration maintenable, pas seulement une démonstration impressionnante.
- LectureExercice de code avec l’IA · 20 min
Construisez l’exemple IntegrationLab de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.
- Quiz de connaissancesVérification des connaissances — Module 10 · 12 min · Note de réussite 80%
- Lab pratiqueLab — Préparation à la production et projet de synthèse · 40 min
Objectif: Projet de synthèse : intégrez un widget tiers inconnu sous forme de wrapper Wisej.NET réutilisable, avec des appels serveur, au moins un événement et un chargement de données par postback ou par WebMethod. Livrables : Implémentation du projet de synthèse ; ADR de l’intégration ; Check-list des ressources et de la sécurité ; Script de démonstration et notes de dépannage.