Curso de integración de aplicaciones
Tarde o temprano necesitarás un widget de JavaScript de terceros (una cuadrícula avanzada, una biblioteca de gráficos, un editor especializado) dentro de tu aplicación Wisej.NET. Este curso te enseña a hacerlo al estilo de Wisej.NET: componentes gestionados por el servidor con adaptadores de cliente ligeros y un contrato claro entre ambos, en lugar de apaños frágiles con scripts. Diez módulos construyen tu vocabulario de integración y los fundamentos de JavaScript que realmente necesitas, y después recorren la integración rápida con el control Widget, las clases de widget reutilizables y compatibles con el Designer, los controles personalizados y los temas, las llamadas cliente-servidor y la serialización, los contratos de eventos, el postback y los endpoints de datos, y los widgets complejos enlazados a datos (con ejemplos de Kendo y DevExtreme), para cerrar con la preparación para producción, la resolución de problemas y un proyecto final. Está pensado para desarrolladores avanzados que necesitan integrar y publicar interfaces reales de terceros.
Integra widgets de JavaScript de terceros al estilo de Wisej.NET: componentes gestionados por el servidor, adaptadores de cliente, contratos cliente/servidor claros, endpoints de datos y empaquetado listo para producción.
- Nivel: Advanced
- Duración: 15 h
- Módulos: 10
Temario
Módulo 1: Arquitectura y vocabulario de la integración
Módulo 1 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre la arquitectura y el vocabulario, crea la muestra con un asistente de IA, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Comprende el modelo componente/widget/control y el pipeline de renderizado y eventos de Wisej.NET. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoAsigna widgets al modelo de componente/widget · 7 min
Asigna widgets al modelo de componente/widget — un recorrido guiado del Módulo 1 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Siga una integración entre el servidor y el navegador. Wisej.NET posee el estado del componente, mientras que un widget del navegador lo presenta. Mantener ese límite explícito evita que la biblioteca del proveedor se convierta en la capa empresarial de la aplicación.
Distinguir el componente de su widget. El componente posee el estado de la aplicación; el widget gestiona el comportamiento del navegador. Los eventos los conectan al informar cambios significativos, en lugar de copiar cada interacción del navegador al servidor.
Rastree los datos hacia afuera como JSON compacto y luego hacia las opciones del proveedor. Rastree eventos importantes hasta el servidor. Este límite de adaptador permite que el código del servidor funcione con un contrato estable en lugar de detalles específicos del proveedor.
Inspeccione TemperatureGauge en el diseñador. Value es la propiedad que cambia la aplicación; ThresholdExceeded es el evento que maneja. El indicador del proveedor permanece dentro de esta interfaz de componente familiar Wisej.NET.
Observe cómo el servidor cambia Value y el indicador lo representa. En el umbral mostrado, regresa un evento con información útil. La aplicación responde al cruce del umbral, no a cada cuadro de animación visual.
Clasifique el indicador, el editor y la cuadrícula antes de escribir el código de integración. Sus necesidades de recursos, datos y eventos difieren. Comparar esas necesidades primero ayuda a elegir una superficie de integración que sea suficiente sin complejidad innecesaria.
Escriba un registro de decisión arquitectónica explicando su elección. Incluya restricciones de reutilización, temática, seguridad y mantenimiento. El punto es preservar el razonamiento, para que otro desarrollador pueda juzgar más adelante si la elección es adecuada.
Envíe el diagrama, la tabla de comparación y el registro de decisión juntos. Deben contar una historia consistente: dónde vive el estado, cómo se comunica el widget y por qué el enfoque de integración seleccionado coincide con sus requisitos.
Ahora tiene un diseño de integración que otra persona puede revisar. Utilice ese conocimiento compartido como punto de partida para la implementación y las pruebas, en lugar de tratar una imagen funcional como toda la integración.
- LecturaEjercicio de programación con IA · 20 min
Construye el Sensor Monitor de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la guía del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 1 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Registros de decisiones de integración de widgets · 40 min
Objetivo: Crea un registro de decisiones de integración para tres widgets candidatos: un pequeño indicador (gauge), un editor enriquecido y una cuadrícula de datos. Decide qué tipo de integración merece cada uno y explica por qué. Entregables: Diagrama de arquitectura de la integración; Tabla de clasificación de widgets; Primer ADR: enfoque de integración elegido para cada widget candidato.
Módulo 2: Fundamentos de JavaScript para integraciones fiables
Módulo 2 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre JavaScript esencial, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Domina los patrones de JavaScript que aparecen una y otra vez en las integraciones de terceros. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoEscribe JavaScript de integración fiable · 7 min
Escribe JavaScript de integración fiable — un recorrido guiado del Módulo 2 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Pruebe el comportamiento de JavaScript antes de envolverlo en Wisej.NET. Un pequeño ejemplo aislado ayuda a distinguir un error de biblioteca o de idioma de un problema introducido por la propia integración.
Dentro de la devolución de llamada del proveedor, inspeccione a qué se refiere this. Puede ser el objeto proveedor, que no tiene ningún método fireWidgetEvent. Falta el método porque el receptor está equivocado, no porque Wisej.NET haya perdido el evento.
Mantenga una referencia explícita al widget en un cierre, vincule la devolución de llamada o llame a un método de widget. Cada solución proporciona a la devolución de llamada una ruta confiable a la instancia correcta cuando el proveedor la invoca.
Declare las dependencias en el orden requerido: biblioteca de soporte, estilos, script del proveedor y luego inicialización. Packages hace explícito ese orden, evitando que la inicialización se ejecute antes de que existan los recursos necesarios.
Mueva la inicialización probada al InitScript del Widget y declare sus recursos en Packages. Mantenga los mismos supuestos de dependencia del ejemplo aislado, para que la integración no cambie silenciosamente la forma en que se inicia la biblioteca.
Utilice las herramientas de desarrollo del navegador para inspeccionar la instancia del proveedor almacenada y siga valueChanged. Un sourceURL le da al código inyectado un nombre reconocible; una declaración del depurador ayuda a detener el lugar donde realmente se ejecuta la devolución de llamada.
Mantenga juntos el ejemplo aislado, trabajando con InitScript y las notas de depuración. Luego, se puede reproducir una falla futura fuera de la integración y compararla con la configuración real del widget.
La integración ahora tiene un punto de partida probado, dependencias explícitas y un contexto de devolución de llamada confiable. Estos fundamentos hacen que el código contenedor posterior sea más fácil de depurar porque ya se comprende el comportamiento básico de JavaScript.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 2 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — JavaScript de integración fiable · 40 min
Objetivo: Toma un ejemplo en JavaScript puro de un widget de indicador o de mando giratorio (knob) y haz que funcione primero en una página HTML aislada. Después reescríbelo como InitScript de un Widget de Wisej.NET. Entregables: Prueba funcional en JavaScript puro; InitScript de Wisej.NET seguro respecto al contexto; Notas de depuración que muestran dónde se guarda la instancia del widget.
Módulo 3: Integración rápida con Wisej.Web.Widget
Módulo 3 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre la integración rápida de widgets, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Usa Wisej.Web.Widget para integraciones puntuales, prototipos y la validación rápida de bibliotecas de proveedores. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoIntegra un widget rápidamente con Wisej.Web.Widget · 7 min
Integra un widget rápidamente con Wisej.Web.Widget — un recorrido guiado del Módulo 3 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Comience con un Widget para probar la integración rápidamente. Esto le da a la biblioteca del proveedor un lugar dentro de Wisej.NET antes de invertir en un control reutilizable con una interfaz pública más grande.
Coloque el Widget en el tablero y mantenga pequeño el primer ejemplo. La pregunta inmediata es si los recursos se cargan y el objeto del proveedor puede ejecutarse en su contenedor, no si la abstracción ha finalizado.
Asigne trabajos separados a Packages, Options y InitScript. Packages carga las dependencias, Options transporta los datos actuales y InitScript crea el objeto visual. Mantener esos roles claros hace que una integración fallida sea más fácil de diagnosticar.
Cree la instancia del proveedor durante la inicialización y luego actualice esa instancia existente cuando cambien las opciones. Recrearlo en cada actualización puede duplicar los controladores o perder el estado que pertenece al widget actual.
Utilice el botón del servidor para cambiar Options y observe cómo la actualización actualiza la imagen. Una llamada en cola maneja un comando imperativo. Distinga entre cambiar el estado del widget persistente y solicitar una acción única del cliente.
Envíe las declaraciones de recursos, la inicialización, la lógica de actualización y la interacción del servidor juntas. Deben demostrar tanto la primera creación como los cambios posteriores. La reutilización en múltiples pantallas es la siguiente razón para introducir un contenedor.
El prototipo ahora ha establecido que la biblioteca puede cargar, renderizar y responder dentro de Wisej.NET. Lleve esos comportamientos comprobados a un envoltorio reutilizable en lugar de copiar el prototipo en cada página.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 3 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Integración rápida de un widget · 40 min
Objetivo: Crea una página de dashboard con dos widgets puntuales: un indicador sencillo y un mando giratorio al estilo jQuery. Ambos deben actualizarse cuando cambien las propiedades del servidor. Entregables: Paquetes del widget configurados; InitScript e implementación de update; Botón de servidor que cambia las opciones del widget y llama al cliente.
Módulo 4: Clases de widget reutilizables y propiedades compatibles con el Designer
Módulo 4 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre las clases de widget reutilizables, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Pasa de instancias puntuales de Widget a clases de servidor reutilizables con propiedades tipadas y una configuración controlada. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoCrea una clase de widget reutilizable y apta para el diseñador · 7 min
Crea una clase de widget reutilizable y apta para el diseñador — un recorrido guiado del Módulo 4 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Mueva la configuración repetida del widget a una clase reutilizable. Cuando las rutas de recursos o la inicialización cambian, una implementación mantenida debe servir a todas las pantallas en lugar de requerir ediciones en varios scripts copiados.
Deje que SimpleGauge herede el comportamiento de Wisej.NET Widget y sea dueño de sus Packages, Options y InitScript. La página debería solicitar el comportamiento del indicador a través de la clase, sin saber cómo está ensamblada la biblioteca del proveedor.
Exponga Value, Minimum, Maximum y Caption como propiedades escritas. Las descripciones y categorías ayudan al usuario diseñador a elegir configuraciones válidas, mientras que el contenedor traduce esas configuraciones en las opciones del proveedor internamente.
Mantenga públicas las propiedades admitidas y oculte los detalles de implementación cuando corresponda. Si quienes llaman pueden reemplazar la inicialización o las opciones sin procesar libremente, pueden eludir las garantías que hacen que el contenedor sea confiable.
Coloque la clase en una página de demostración y cámbiela a través de las propiedades normales. La ausencia de InitScript específico de la página es una prueba útil: el conocimiento de integración realmente vive dentro de la clase reutilizable.
Entregue la clase con propiedades documentadas, valores predeterminados y una página de ejemplo limpia. Un revisor debería poder crear una instancia y comprender las configuraciones admitidas sin abrir el script de inicialización del proveedor.
Un buen envoltorio facilita el funcionamiento normal y dificulta el mal uso accidental. Evalúe la interfaz pública desde la perspectiva del autor de la página, no solo desde el punto de vista de la persona que creó la integración.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 4 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Clase de widget reutilizable · 40 min
Objetivo: Refactoriza el prototipo del indicador en `IntegrationLab.Controls.SimpleGauge`, con propiedades tipadas y registro predeterminado de recursos. Entregables: Clase reutilizable derivada de Widget; Propiedades tipadas con valores predeterminados; Página de demostración que usa la clase sin InitScript personalizado en la página.
Módulo 5: Controles Wisej personalizados, clases de cliente y temas
Módulo 5 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre los controles personalizados y los temas, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Crea controles con aspecto nativo mediante clases de servidor, clases de widget de cliente, claves de apariencia y recursos incrustados. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoCrea un control personalizado, una clase de cliente y un tema · 7 min
Crea un control personalizado, una clase de cliente y un tema — un recorrido guiado del Módulo 5 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Cree un control personalizado cuando la integración deba comportarse como parte del propio Wisej.NET. El objetivo es un componente reutilizable que participe en el comportamiento y la temática en tiempo de diseño, no solo un objeto visual alojado.
Compare un contenedor Widget con un Control a nivel de plataforma. Elija la integración más fuerte cuando el comportamiento nativo y la participación en el tema lo justifiquen; el trabajo de implementación adicional debería responder a un requisito de reutilización real.
Empareje el servidor SimpleGaugeControl con su clase de cliente en Platform. Las dos clases tienen diferentes responsabilidades: el servidor expone el estado de la aplicación, mientras que el cliente implementa cómo aparece y se comporta ese estado en el navegador.
Utilice OnWebRender para crear una configuración de cliente deliberada. Incluya las propiedades necesarias para representar el indicador, en lugar de serializar objetos de servidor no relacionados. Es más fácil razonar y mantener un límite pequeño y explícito.
Conecte la clave de apariencia a la definición del tema. Esto permite que el tema controle las opciones visuales en lugar de codificar una apariencia separada en cada pantalla que usa el control.
Inspeccione el control en el diseñador y pruebe su tamaño y configuración de tema. La representación en tiempo de diseño es parte de la integración: otros desarrolladores deben organizar el control sin ejecutar primero toda la aplicación.
Envíe ambas clases, la entrada de apariencia y la evidencia en tiempo de diseño. Juntos demuestran la ruta completa desde la propiedad del servidor hasta un control temático que otro desarrollador puede colocar visualmente.
Observe cómo varias instancias comparten la misma implementación de control en el panel. Sus valores varían, pero su comportamiento y la integración temática siguen siendo consistentes. Esa coherencia es la recompensa de encapsular la integración una vez.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 5 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Control personalizado, clase de cliente y tema · 40 min
Objetivo: Crea un control personalizado `SimpleGaugeControl` con una clase de servidor y una clase de cliente en `/Platform`. Añade una clave de apariencia básica y haz que se renderice en modo de diseño. Entregables: Clase de control de servidor; Esqueleto de la clase qx de cliente; Entrada de tema/apariencia; Captura de pantalla o notas en tiempo de diseño.
Módulo 6: Llamadas cliente-servidor, serialización y acceso a objetos
Módulo 6 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre las llamadas cliente-servidor, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Mueve datos y comandos de forma segura entre los componentes .NET y los widgets del navegador. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoConecta llamadas cliente-servidor y serialización · 7 min
Conecta llamadas cliente-servidor y serialización — un recorrido guiado del Módulo 6 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Decide si cada interacción envía un comando o necesita un resultado. Esa distinción determina cómo continúa el código del servidor, qué datos cruzan el límite y si deben esperar una respuesta del navegador.
Utilice Llamar cuando el navegador deba realizar una acción y no se necesite ningún valor de retorno. El comando está en cola, por lo que el código de servidor posterior no debe asumir que el navegador ya terminó de ejecutarlo.
Utilice CallAsync o EvalAsync cuando el siguiente paso dependa del resultado del navegador. Espere la operación antes de usar ese resultado, para que el flujo de trabajo siga la respuesta en lugar de avanzar rápidamente con datos faltantes.
Defina un pequeño objeto de transferencia de datos y verifique los nombres de sus propiedades serializadas. El navegador recibe el contrato serializado, no el objeto C# original. Los campos explícitos evitan exponer estados no relacionados y reducen las discrepancias en los nombres.
Compare las operaciones en vivo: un comando cambia el indicador, una llamada esperada lee su tamaño renderizado y un objeto compacto devuelve el estado de selección. Cada intercambio conlleva sólo lo que requiere esa interacción particular.
Proporcione ejemplos de comandos unidireccionales y resultados esperados, además del contrato de datos de retorno. Un revisor debería poder identificar dónde espera la ejecución y qué campos puede devolver el navegador.
Mantenga los límites organizados en torno a comandos, resultados y contratos de datos explícitos. Esto hace visibles los tiempos y la responsabilidad, lo cual es más confiable que tratar el código del navegador como una extensión sincrónica del servidor.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 6 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Llamadas cliente-servidor y serialización · 40 min
Objetivo: Añade comandos al indicador reutilizable: establecer el valor, leer el tamaño renderizado, reiniciar la animación y devolver al servidor el estado seleccionado del cliente. Entregables: Llamadas a métodos de servidor a cliente; Un ejemplo de `CallAsync` o `EvalAsync`; DTO usado para devolver el estado del cliente.
Módulo 7: Eventos, controladores y contratos de eventos de los widgets
Módulo 7 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre los eventos y contratos, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Convierte los callbacks del proveedor en eventos .NET estables sin trasladar la complejidad del proveedor a la aplicación. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoDefine eventos de widget y contratos de manejadores · 7 min
Define eventos de widget y contratos de manejadores — un recorrido guiado del Módulo 7 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Trate las devoluciones de llamadas de los proveedores como una entrada sin procesar para la integración. La aplicación necesita un conjunto estable de eventos significativos, por lo que el adaptador debe decidir qué reenviar en lugar de exponer cada notificación del proveedor directamente.
Separe la actividad visual de las decisiones de aplicación. El movimiento del puntero o la animación pueden permanecer locales, mientras que una selección significativa o un cambio de estado pueden necesitar el servidor. El filtrado en este límite evita el tráfico innecesario y el trabajo del controlador.
Registre la devolución de llamada del proveedor una vez durante la inicialización y reenvíe un evento con nombre compacto. Registrarlo nuevamente en cada actualización puede hacer que una acción del usuario active múltiples controladores de servidor inesperadamente.
Utilice la ruta del evento que coincida con la superficie de integración. Widgets reenviados a través de fireWidgetEvent y WidgetEvent; Los controles personalizados utilizan sus eventos de cliente y OnWebEvent. Mezclar las rutas envía datos al mecanismo de manejo incorrecto.
Defina cada nombre de evento y carga útil antes de cablear los controladores. Los cruces de umbrales, los cambios de valores y las selecciones de puntos necesitan información diferente. Los pequeños contratos explícitos dejan claro en qué puede confiar un administrador de servidores.
Interactúe con el indicador, la perilla y el gráfico y siga los eventos que llegan al servidor. Verifique que cada carga útil contenga los valores relevantes y que la actividad visual local no se haya convertido en un flujo de mensajes de servidor innecesarios.
Envíe controladores de cliente y servidor emparejados con la tabla de contratos. Un revisor debería poder rastrear cada evento desde el activador de su navegador hasta la decisión del servidor, incluyendo exactamente qué datos cruzan el límite.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 7 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Contratos de eventos de los widgets · 40 min
Objetivo: Añade eventos de servidor para el cruce de umbral del indicador, el cambio de valor del mando giratorio y el clic en un punto del gráfico. Normaliza todas las cargas útiles de los eventos en DTO sencillos. Entregables: Tres manejadores de eventos de cliente; Tres manejadores de eventos de servidor; Tabla del contrato de cargas útiles.
Módulo 8: Postback, WebRequest, WebMethod y endpoints de datos
Módulo 8 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre los endpoints de datos, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Alimenta widgets de JavaScript que obtienen datos mediante Ajax, manteniendo las peticiones en el contexto del componente Wisej.NET correcto. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoCrea endpoints de datos con Postback y WebMethod · 7 min
Crea endpoints de datos con Postback y WebMethod — un recorrido guiado del Módulo 8 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Algunos widgets de proveedores obtienen sus propios datos en lugar de recibirlos todos a través de Options. Asigne a esas solicitudes un punto final explícito y conserve el contexto correcto del componente, de modo que la respuesta pertenezca al usuario y al widget previstos.
Utilice getPostbackUrl cuando un widget espere una dirección de datos. Enruta la solicitud a la sesión y a la instancia de componente apropiadas. La dirección proporciona contexto, pero el controlador aún debe validar la operación solicitada.
En WebRequest, verifique la acción solicitada antes de generar datos. Establezca el tipo de contenido JSON y escriba la forma de respuesta esperada. Una respuesta de transporte válida no es suficiente si el widget no puede interpretar su contenido.
Utilice un WebMethod para una operación escrita que su código de cliente llama directamente. Los argumentos y el valor devuelto forman el contrato, por lo que la persona que llama puede esperar un resultado en lugar de administrar una solicitud de datos propiedad del widget.
Elija el estilo del punto final según quién inicia y controla la solicitud. Una fuente de datos de proveedor utiliza naturalmente su dirección; El código de aplicación que llama a una operación con nombre se beneficia de un método escrito y un resultado explícito.
Siga la solicitud de la cuadrícula al controlador de devolución de datos y regrese a las filas representadas. Verifique la estructura de respuesta en ese límite; una cuadrícula en blanco puede indicar una discrepancia en el contrato incluso cuando la solicitud en sí tuvo éxito.
Ofrezca ejemplos de ambos puntos finales y explique a quiénes están destinados los llamantes. Revise la autorización y la validación de entrada para cada ruta. La elección de un mecanismo de punto final conveniente nunca elimina la responsabilidad del servidor de proteger la operación.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 8 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Endpoints de datos (Postback / WebMethod) · 40 min
Objetivo: Implementa un endpoint de postback y un endpoint WebMethod para el mismo conjunto de datos de solo lectura. Conecta un widget sencillo a cada uno y compara sus ventajas e inconvenientes. Entregables: Manejador WebRequest de postback; WebMethod con argumentos y valor de retorno; Nota comparativa: origen de datos por URL frente a callback de cliente.
Módulo 9: Widgets complejos enlazados a datos: patrones generales con ejemplos de Kendo y DevExtreme
Módulo 9 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre los widgets de datos complejos, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Integra widgets de datos avanzados sin que el curso dependa de una única biblioteca de proveedor. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoIntegra un widget complejo enlazado a datos · 7 min
Integra un widget complejo enlazado a datos — un recorrido guiado del Módulo 9 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Utilice los ejemplos de cuadrícula y pivote para identificar el patrón de integración debajo de la sintaxis específica del proveedor. La aplicación aún necesita carga de recursos, operaciones de datos, eventos y una interfaz Wisej.NET estable independientemente de la biblioteca elegida.
Otorgue al adaptador la propiedad de la creación, las opciones, los eventos y el acceso a los datos. Mantener juntos estos detalles de cara al proveedor evita que páginas individuales desarrollen sus propias versiones incompatibles de la misma integración.
Compare DataSource y CustomStore por las operaciones que solicitan, no solo por su sintaxis. Ambos necesitan una ruta para cargar y cambiar datos; el adaptador traduce sus argumentos en el contrato de su servidor.
Defina paginación, clasificación y filtrado en GridOperationRequest antes de implementar controladores. Valide esas entradas en el servidor y luego asígnelas a la operación admitida. Las instrucciones de consulta proporcionadas por el navegador siguen siendo entradas que no son de confianza.
Especifique cargas útiles separadas para cambios de fila, inserción, eliminación y eventos de selección. Cada uno debe identificar la operación prevista y los valores necesarios, sin enviar un componente completo ni exponer el estado del servidor no relacionado.
Siga la paginación, clasificación y edición a través del mismo contrato de servidor mientras el pivote carga sus datos. El límite común mantiene las operaciones de la aplicación comprensibles incluso cuando los widgets del navegador utilizan interfaces de diferentes proveedores.
Envíe el contrato de operación, los controladores, las cargas útiles de eventos y el plan dinámico como un diseño coherente. Un revisor debería poder conectar cada acción de datos visible con una operación de servidor explícita y validada.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 9 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Widgets complejos enlazados a datos · 40 min
Objetivo: Crea dos ejemplos avanzados: un widget de solo lectura de tipo tabla dinámica (pivot) y un widget editable de tipo cuadrícula. Uno puede usar la semántica de DataSource al estilo Kendo y el otro la semántica de CustomStore al estilo DevExtreme. Entregables: Plan de integración de la tabla dinámica de solo lectura; Contrato de operaciones de la cuadrícula editable; Manejadores de servidor o stubs para load/update/insert/delete; Contratos de carga útil de eventos para el clic en celda y la actualización de fila.
Módulo 10: Preparación para producción, resolución de problemas y proyecto final
Módulo 10 del Curso de integración de aplicaciones — el itinerario de integración de Wisej.NET. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado sobre la producción y el proyecto final, supera la evaluación de conocimientos y, después, completa el laboratorio práctico.
- LecturaGuía de la lección · 12 min
Prepara las integraciones para aplicaciones reales: rendimiento, diagnóstico, actualizaciones en segundo plano, empaquetado, versionado y mantenibilidad. Qué significa esto para un desarrollador de integraciones con Wisej.NET — y cómo leer este módulo.
- LecturaGuía del laboratorio / examen · 10 min
Lo que construirás en el laboratorio práctico, el flujo de trabajo recomendado, los entregables requeridos y la autoevaluación antes de entregar.
- Lección en vídeoEntrega un proyecto final de integración listo para producción · 7 min
Entrega un proyecto final de integración listo para producción — un recorrido guiado del Módulo 10 que puedes seguir aquí mismo, en el reproductor.
Transcripción de la narración
Revise la integración como algo que debe sobrevivir al uso y la implementación repetidos. Un primer renderizado exitoso demuestra sólo un camino; La preparación para la producción también depende del manejo de fallas, las actualizaciones, la limpieza y los contratos mantenibles.
Inspeccione las rutas de los recursos, el volumen de eventos, la limpieza del ciclo de vida, los tiempos y los tamaños de datos realistas. Estas preocupaciones pueden permanecer ocultas en una pequeña demostración y luego convertirse en fallas cuando el mismo widget se reutiliza o implementa en otro lugar.
Name inyectó scripts con sourceURL y falla claramente cuando faltan requisitos previos. Compare el ejemplo del proveedor aislado con la versión integrada. Eso le brinda evidencia sobre dónde comienza el fracaso en lugar de depender de conjeturas.
Actualice la instancia del proveedor existente y destrúyala cuando se elimine el control. Los ciclos repetidos de creación y cierre no deberían dejar vivos a los controladores ni a los objetos después de que su pantalla haya desaparecido.
Inicie el trabajo en segundo plano a través de Application.StartTask. Cuando el resultado esté listo, actualice el cliente y llame a Application.Update. El flujo de trabajo no se completa hasta que el navegador pueda mostrar el nuevo estado del servidor.
Integre un widget desconocido utilizando los mismos límites: un contenedor reutilizable, comandos del servidor, un evento significativo y un punto final de datos protegido. El ejercicio prueba si puedes transferir el patrón más allá de los ejemplos del curso.
Revise el panel como varias integraciones trabajando juntas. Rastree eventos, llamadas, carga y eliminación de cada widget. El espacio visual compartido no debe desdibujar a qué contenedor pertenece cada recurso e interacción.
Termine con un contenedor que otro desarrollador pueda entender, probar y reutilizar. Explique su contrato público y su ciclo de vida, incluido el comportamiento de falla. El resultado duradero es una integración sostenible, no simplemente una demostración impresionante.
- LecturaEjercicio de programación con IA · 20 min
Construye el ejemplo IntegrationLab de este módulo con ChatGPT o Claude a partir de un prompt listo para usar que dirige al modelo a la especificación del módulo, y después revisa, ejecuta y amplía lo que te devuelva — incluso comparándolo con nuestra propia solución de referencia en GitHub.
- CuestionarioEvaluación de conocimientos — Módulo 10 · 12 min · Nota mínima 80%
- Laboratorio prácticoLaboratorio — Preparación para producción y proyecto final · 40 min
Objetivo: Proyecto final: integra un widget de terceros que no conozcas como wrapper reutilizable de Wisej.NET, con llamadas al servidor, al menos un evento y carga de datos mediante postback o WebMethod. Entregables: Implementación del proyecto final; ADR de integración; Lista de comprobación de recursos y seguridad; Guion de demostración y notas de resolución de problemas.