← Todos los cursos
Getting started · Curso gratuito

Fundamentos

Wisej.NET te permite crear aplicaciones web reales y modernas íntegramente en C#, sin necesidad de JavaScript, HTML ni CSS para empezar. Este curso es la base: aprenderás cómo el framework mantiene perfectamente sincronizados un programa .NET en el servidor y una interfaz viva en el navegador, y después crearás, ejecutarás y depurarás tu primera aplicación, desde una solución vacía de Visual Studio hasta un panel que funciona. A lo largo de diez módulos colocarás y conectarás controles en el Designer, enlazarás datos a un DataGridView, construirás un shell de aplicación con navegación y gestionarás cuadros de diálogo, validación y trabajo en segundo plano. Los módulos posteriores tratan los temas visuales, la interoperabilidad con JavaScript mediante el control Widget, y la configuración, la seguridad y el despliegue, antes de reunirlo todo en el proyecto final Mini Helpdesk. Está pensado para desarrolladores que se inician en Wisej.NET y quieren un recorrido guiado y práctico desde los fundamentos hasta una aplicación real que puedan publicar.

Crea, ejecuta y depura tu primera aplicación Wisej.NET en tiempo real. El camino más rápido desde la instalación hasta un panel que funciona.

Empezar este curso gratuito

También disponible en: EnglishDeutschFrançaisItaliano

Temario

Módulo 1: Cómo funciona Wisej.NET

Tu primer módulo de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado de construcción, supera la evaluación de conocimientos y completa el laboratorio práctico para obtener el módulo.

  1. LecturaQué es Wisej.NET (y cuándo usarlo) · 8 min

    Una imagen clara del framework antes de escribir una sola línea de código.

    Leer la guía de la lección (PDF)

  2. LecturaPrimeros pasos con Wisej.NET · 12 min

    De un Visual Studio vacío a una aplicación en ejecución, y los hábitos que mantienen el código limpio.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoConstruye tu primera aplicación Wisej.NET · 6 min

    Mira cómo toma forma una primera aplicación Wisej.NET: proyecto, Designer, el evento de un botón y una ejecución en local. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Módulo uno. Su primera aplicación Wisej.NET. Construiremos una pequeña pantalla que solicite un nombre y muestre un saludo. Esto presenta el flujo de trabajo básico: diseñar la interfaz, manejar un evento y probar el resultado en un navegador.

    Comience en Visual Studio y elija Crear un nuevo proyecto. Wisej.NET utiliza el flujo de trabajo de proyecto familiar, con plantillas que proporcionan los archivos de aplicación iniciales. La interfaz se ejecutará en el navegador, mientras que nuestro código de evento se ejecutará en el servidor.

    Busque Wisej.NET. Este tutorial utiliza la plantilla de aplicación web Wisej.NET 4 con C#. Seleccione esa plantilla y continúe. Si falta en su propia instalación, verifique que la extensión Wisej.NET y las plantillas de proyecto estén instaladas antes de continuar.

    Elija un nombre de proyecto y una ubicación, luego haga clic en Crear. Visual Studio genera el proyecto y su ventana de inicio. Mire Solution Explorer: aquí es donde encontrará los archivos de la aplicación y regresará a la ventana a medida que construye la pantalla.

    Construya el proyecto antes de abrir el diseñador. La compilación compila la aplicación para que el diseñador pueda cargar sus tipos. Mire la ventana de Salida y espere a que la compilación se haya realizado correctamente. Si la compilación falla, resuelva los errores antes de continuar con el diseño.

    En Solution Explorer, haga doble clic en Window1 para abrir su vista de diseño. Esta es la superficie donde disponemos los controles. El diseñador registra su diseño en Window1.Designer.cs. Mantenga ese archivo generado bajo el control del diseñador; escriba el comportamiento de la pantalla en Window1.cs.

    Arrastre los controles del Toolbox a la ventana. Una etiqueta solicita el nombre del usuario, un cuadro de texto acepta la respuesta y un botón ejecutará el saludo. Agregue una segunda etiqueta para el resultado. Cada control ahora tiene un papel claro en la interacción.

    Configure Name y Text de cada control en la ventana Propiedades. Name es el identificador utilizado por su código; Text es lo que ve el usuario. Utilice txtName para la entrada, btnSayHello para el botón y lblStatus para el resultado. La etiqueta del título es lblTitle.

    Haga doble clic en el botón para crear su controlador Click. Lea txtName.Text y recorte los espacios. Si el resultado está vacío, configure lblStatus.Text como un mensaje que solicite un nombre y luego regrese. En caso contrario, pon el saludo en la etiqueta. La validación ocurre antes de la respuesta exitosa.

    Presione Inicio para ejecutar la aplicación localmente. Cuando se abra el navegador, ingrese un nombre y haga clic en Saludar. El controlador Click se ejecuta y la etiqueta del resultado muestra el saludo. Ha conectado una pantalla diseñada visualmente al código C# y ha visto la respuesta en el navegador.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 1 · 10 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Crea tu primera aplicación Wisej.NET · 25 min

    Objetivo: Una aplicación Wisej.NET de una sola pantalla: escribe un nombre, haz clic en un botón y una etiqueta te saluda; el ciclo completo «diseñar → nombrar → gestionar el evento → ejecutar».

Módulo 2: Controles, eventos y el Designer

Módulo 2 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado del dashboard, supera la evaluación de conocimientos y construye el dashboard en el laboratorio práctico.

  1. LecturaColocar controles con el Designer de Wisej · 9 min

    Construye una pantalla de forma visual en el Designer: coloca, nombra y organiza los controles antes de añadir comportamiento.

    Leer la guía de la lección (PDF)

  2. LecturaPropiedades, eventos y código generado por el Designer · 11 min

    Qué genera el Designer, dónde va tu código y cómo conectar limpiamente el evento de un botón.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoConstruye un dashboard con Wisej.NET · 4 min

    Mira cómo toma forma un dashboard: controles del Designer, propiedades con nombre, un evento Click de botón y una ejecución en local. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    En esta lección, crearemos un panel Wisej.NET en Visual Studio Designer. Organizaremos sus controles, les daremos nombres significativos y conectaremos un botón a un controlador Click. Verás qué trabajo pertenece al diseño generado y cuál pertenece a tu propio código.

    Abra DashboardWindow en la vista de diseño. Esta ventana recopilará el estado del servicio, los comandos y el historial de eventos en un solo lugar, para que los usuarios puedan comprender el resultado de cada acción sin cambiar de pantalla.

    Utilice el diseñador para organizar los controles, el Toolbox para agregarlos y la ventana Propiedades para configurarlos. Estas tres superficies funcionan juntas: seleccione un control en el lienzo antes de cambiar sus propiedades.

    Agregue un encabezado y una etiqueta de estado separada, luego coloque las tres etiquetas de servicio dentro de un panel. El panel agrupa información relacionada, mientras que el estado general sigue siendo fácil de encontrar encima de él.

    Agregue los botones Iniciar, Detener, Restablecer y Actualizar, seguidos de la lista de eventos. Los botones inician acciones; la lista explica lo que pasó. Mantener ese historial visible hace que las acciones repetidas sean más fáciles de seguir.

    Configure Text para las palabras que ve el usuario y Name para el identificador que utiliza su código. Un nombre como btnStart debería identificar el propósito del control, de modo que su controlador de eventos sea fácil de localizar más adelante.

    Haga doble clic en Inicio para crear su controlador de clic. Actualice las etiquetas de estado allí y llame a un ayudante para agregar el evento. La reutilización del asistente de registro mantiene el historial de eventos coherente en los cuatro comandos.

    Comportamiento de escritura en el archivo C# normal de la ventana. El diseñador mantiene su propio archivo generado para la creación y el diseño de controles. Mantener esas responsabilidades separadas evita que un cambio de diseño posterior sobrescriba su lógica escrita a mano.

    Ejecute el proyecto y espere a que se abra el navegador. La pantalla que diseñó ahora es la interfaz de usuario de la aplicación en ejecución. Comprueba su estado inicial antes de probar los botones.

    Click Inicie y observe cómo las tres etiquetas de servicio cambian a En línea. El estado general pasa a ser En ejecución y la lista de eventos registra la acción. Esos cambios visibles deberían concordar entre sí.

    Click Deténgase a continuación. Cada servicio pasa a estar fuera de línea y una nueva entrada registra la parada. Mantener la entrada de inicio anterior permite al usuario ver la secuencia de acciones en lugar de solo el estado actual.

    Click Restablecer para devolver la demostración a su estado inicial. Las entradas del registro anterior desaparecen y el estado pasa a estar inactivo. Registre el reinicio para que el historial vacío tenga una explicación comprensible.

    Finalmente, haga clic en Actualizar para leer nuevamente el estado actual y agregar una entrada de registro. Actualizar comprueba el estado; no significa Iniciar o Restablecer. Los comandos distintos deberían producir resultados distintos y comprensibles.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 2 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Crea una página de panel con Wisej · 30 min

    Objetivo: Una página de dashboard en Wisej.NET: un título y una etiqueta de estado, tres indicadores de servicio, botones Start / Stop / Reset / Refresh y un registro de eventos que se actualiza con cada clic.

Módulo 3: Shell de la aplicación y navegación

Módulo 3 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado del shell de navegación, supera la evaluación de conocimientos y construye un shell de navegación reutilizable en el laboratorio práctico.

  1. LecturaDiseñar el shell de la aplicación · 10 min

    Diseña la estructura exterior de una aplicación real (cabecera, navegación, área de contenido y barra de estado) y haz que se redimensione correctamente.

    Leer la guía de la lección (PDF)

  2. LecturaNavegación reutilizable y permisos · 9 min

    Las cuatro vistas que vas a construir, un único shell que gestiona la navegación y una primera aproximación a los permisos.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoConstruye un shell de aplicación reutilizable en Wisej.NET · 5 min

    Mira cómo toma forma un shell de navegación: cabecera, navegación a la izquierda, un método NavigateTo compartido que carga las vistas en el panel de contenido, actualizaciones de la ruta de navegación y del estado, y una vista Settings de solo lectura. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Construiremos un shell compartido para la aplicación para que cada página utilice la misma navegación y diseño. El encabezado, el área de navegación, la región de contenido y la barra de estado tienen cada uno una función clara. Centralizar los cambios de página también nos brinda un lugar para reflejar los permisos del usuario actual en la navegación.

    Observe cómo el marco exterior permanece en su lugar mientras cambia la vista central. Este shell compartido le da a cada función un hogar consistente y evita reconstruir la navegación en cada pantalla.

    Organice el encabezado, la navegación, el área de contenido y la barra de estado como regiones separadas. Cada uno tiene una responsabilidad diferente: orientación, elección de una característica, realización del trabajo e informe del resultado.

    Coloque el encabezado en la parte superior, la navegación a la izquierda y la barra de estado en la parte inferior. Deje que el contenido llene el espacio restante para que el cambio de tamaño preserve la estructura general.

    Enrute cada botón de navegación a través de NavigateTo. Un único método puede aplicar las mismas reglas de cambio de página de forma coherente; Las implementaciones separadas en cada botón variarían a medida que se agreguen funciones.

    Siga a NavigateTo a través del cambio de página: elimine el contenido anterior, cargue la vista seleccionada y luego actualice la ruta de navegación y el estado. Los comentarios de navegación deben describir la vista realmente mostrada.

    La configuración permanece visible para el agente de soporte, pero Guardar está deshabilitado en esta demostración. Esto ilustra un permiso en la interfaz; el trabajo de autenticación posterior también debe hacer cumplir la autorización real.

    El shell ahora separa la navegación compartida de las vistas de funciones reutilizables. Al agregar una página, conéctela a través del mismo método de navegación y verifique que su ubicación y estado permanezcan claros.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 3 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Construye un shell de navegación reutilizable · 35 min

    Objetivo: Un shell de navegación reutilizable en Wisej.NET: una cabecera fija, una ruta de navegación y una barra de estado con botones Dashboard / Tickets / Customers / Settings que cargan vistas UserControl en un único panel de contenido, además de una vista Settings de solo lectura para un Support Agent.

Módulo 4: Enlace de datos y el DataGridView

Módulo 4 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado de data binding, supera la evaluación de conocimientos y construye una pantalla de tickets enlazada a datos en el laboratorio práctico.

  1. LecturaEnlace de datos y el DataGridView · 10 min

    Modela un registro de negocio, mantén la lógica de datos en un servicio y enlaza una lista de tickets a un DataGridView con controles de detalle.

    Leer la guía de la lección (PDF)

  2. LecturaDiseño — SplitContainer, Dock y AutoSize · 9 min

    Las herramientas de diseño que organizan una pantalla maestro-detalle (SplitContainer, Dock y AutoSize) sin pelearte con la página.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoConstruye una pantalla de tickets enlazada a datos en Wisej.NET · 5 min

    Mira cómo toma forma una pantalla de tickets enlazada a datos: un modelo Ticket y un servicio, un DataGridView enlazado mediante un BindingSource, controles de detalle que siguen la selección y un Save que actualiza la cuadrícula. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Mostraremos una lista de tickets en un DataGridView y conectaremos el ticket seleccionado a los controles de detalle. Un servicio proporcionará los datos, mientras la pantalla coordina la selección y visualización. Esta separación mantiene las decisiones comerciales y de bases de datos fuera del alcance de los controladores de eventos de la interfaz de usuario.

    Cree el editor de tickets en torno a un modelo de datos compartido en lugar de copiar valores entre controles no relacionados. Binding conecta el registro seleccionado a la pantalla, mientras el servicio maneja las operaciones de tickets.

    Coloque los campos de detalles a la izquierda y deje que la cuadrícula del ticket llene el lado derecho del contenedor dividido. Los usuarios pueden seleccionar un registro e inspeccionar sus detalles sin salir de la lista.

    El ticket describe los campos de un registro. TicketService proporciona operaciones como cargar y guardar. La pantalla llama a esas operaciones en lugar de convertirse en el lugar donde se implementan las reglas de persistencia.

    Conecte la lista y la cuadrícula a través de un BindingSource, luego vincule los campos de detalles a esa misma fuente. Compartir el registro actual mantiene el título, el estado, la prioridad y la descripción alineados con la selección.

    Primero guarde a través de TicketService, luego notifique al sistema de vinculación con ResetBindings. Actualizar la pantalla es independiente de guardar los datos: una cuadrícula actualizada por sí sola no prueba que la persistencia haya sido exitosa.

    Ejecute el editor y seleccione diferentes filas de tickets. Mire los campos de detalle siga la selección a través de BindingSource. Esto confirma que la cuadrícula y el editor comparten el mismo registro actual.

    Cambie el estado del ticket seleccionado y haga clic en Guardar ticket. Siga la operación hasta el servicio y regrese a la red actualizada. La fila visible ahora debería reflejar el valor que guardó.

    Mantenga separadas las responsabilidades del modelo, el servicio y la pantalla. Cuando un valor parece incorrecto, esta separación le brinda una pregunta útil: ¿el registro es incorrecto, falló el guardado o la visualización está obsoleta?

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 4 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Enlace de datos de tickets · 35 min

    Objetivo: Una pantalla de tickets enlazada a datos en Wisej.NET: un SplitContainer con un DataGridView de solo lectura enlazado a un TicketService, controles de detalle (título, estado, prioridad, fecha de creación) que siguen la fila seleccionada y un botón Save Ticket que pasa por el servicio y actualiza la cuadrícula.

Módulo 5: Cuadros de diálogo, validación y flujos de trabajo

Módulo 5 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado de los diálogos, supera la evaluación de conocimientos y construye los diálogos Create y Edit Ticket en el laboratorio práctico.

  1. LecturaCuadros de diálogo y flujos modales · 9 min

    Qué es un diálogo, cuándo usarlo en lugar de una página, el flujo modal en cinco pasos y en qué ayudan los cuadros de mensaje.

    Leer la guía de la lección (PDF)

  2. LecturaValidación y el patrón Guardar/Cancelar · 9 min

    Valida cerca de la interfaz sin encerrar ahí las reglas de negocio, escribe un manejador Save legible y aplica un patrón Save/Cancel coherente.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoConstruye un diálogo Create/Edit Ticket en Wisej.NET · 5 min

    Mira cómo toma forma el flujo de alta y edición: un TicketDialog reutilizable, una validación que bloquea los datos incorrectos, un Save que devuelve DialogResult.OK y una página padre que se actualiza con una respuesta clara. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Usaremos un cuadro de diálogo para crear un ticket o editar uno existente. El cuadro de diálogo verifica los campos obligatorios e informa que la operación se realizó correctamente solo después de que la operación se haya realizado correctamente. Las operaciones de tickets permanecen en la capa de servicio, por lo que se aplican las mismas reglas en cualquier pantalla que abra el cuadro de diálogo.

    Cree un cuadro de diálogo enfocado para ingresar un ticket y editar uno existente. Proporcione resultados distintos a Guardar y Cancelar para que cerrar el cuadro de diálogo nunca implique silenciosamente que se aceptaron los datos.

    Agrupe los campos del ticket dentro del cuadro de diálogo y mantenga Guardar y Cancelar fáciles de encontrar. El diálogo debe recopilar un cambio coherente, con suficiente información para que el usuario la revise antes de aceptarlo.

    Inicialice el mismo cuadro de diálogo de forma diferente para cada flujo de trabajo. Lo nuevo comienza con una entrada vacía; Editar carga el ticket seleccionado. La reutilización del diseño mantiene la coherencia de los dos flujos de trabajo sin confundir sus estados iniciales.

    Ejecute ValidateForm antes de devolver un resultado aceptado. Si faltan valores requeridos, mantenga el cuadro de diálogo abierto. DialogResult.OK debe comunicar una entrada aceptada válida, no simplemente que se presionó el botón Guardar.

    Abra Nuevo e intente guardar sin título. El mensaje identifica la información que falta y el cuadro de diálogo permanece abierto, dándole al usuario la oportunidad de corregir la entrada sin reiniciar la operación.

    Complete los campos requeridos y acepte el diálogo. Luego, el padre llama a TicketService y actualiza la cuadrícula. Siga ese orden para que el usuario vea el resultado del cambio aceptado y guardado.

    Seleccione un ticket existente y abra Editar. Sus valores actuales deberían aparecer en el mismo cuadro de diálogo. Cambie un campo, guárdelo y verifique que la fila correspondiente se actualice en lugar de crear otro ticket.

    Utilice la misma secuencia para ambos flujos de trabajo: validar, aceptar, guardar a través del servicio y actualizar. Mantener esas etapas explícitas hace que los errores de cancelación y validación sean más fáciles de manejar sin escrituras accidentales.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 5 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Cuadros de diálogo para crear y editar tickets · 35 min

    Objetivo: Diálogos Create y Edit Ticket reutilizables sobre la pantalla del Módulo 4: un único TicketDialog para New y Edit, un ValidateForm() que bloquea los datos incorrectos con mensajes claros, un Save que devuelve DialogResult.OK y una página Tickets que añade o actualiza a través del servicio y refresca la cuadrícula.

Módulo 6: Estado, sesiones, trabajo en segundo plano y errores

Módulo 6 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado del trabajo en segundo plano, supera la evaluación de conocimientos y construye un ejecutor de tareas en segundo plano con registro en el laboratorio práctico.

  1. LecturaEstado, sesiones y trabajo en segundo plano · 10 min

    Estado de sesión por usuario frente a estado compartido (y la trampa de los campos static), además de cómo ejecutar trabajo largo en una tarea en segundo plano que no bloquea la interfaz.

    Leer la guía de la lección (PDF)

  2. LecturaGestión segura de errores y registro · 9 min

    Captura excepciones y muestra mensajes seguros, registra el detalle útil y mantén legible el manejador de la tarea con try/catch/finally.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoEjecuta trabajo en segundo plano de forma segura en Wisej.NET · 5 min

    Mira cómo toma forma un ejecutor de tareas en segundo plano: estado por usuario, un flujo Start/Cancel, una barra de progreso y un registro, y un try/catch/finally que registra el detalle pero muestra al usuario un mensaje seguro. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Ejecutaremos una exportación o importación simulada en segundo plano y mostraremos su progreso sin bloquear la interfaz. Cada usuario conectado mantendrá su propio estado de operación. También manejaremos las fallas con un mensaje útil para el usuario mientras mantenemos los detalles del error interno fuera de la pantalla.

    Utilice la demostración de exportación e importación para seguir un trabajo a lo largo del tiempo. Una pantalla receptiva necesita más que una barra de progreso: los usuarios deben comprender si el trabajo se está ejecutando, finalizado, cancelado o fallido.

    Mantenga visibles juntos los comandos de inicio, cancelación, progreso y registro. Responden a diferentes preguntas: ¿qué puedo hacer, hasta dónde ha avanzado el trabajo y qué ha sucedido ya?

    En RunJobAsync, espere cada paso e informe su progreso. Utilice el controlador de errores para fallas y el bloque finally para limpieza, de modo que la interfaz pueda dejar su estado ocupado incluso cuando falla el trabajo.

    Inicie Importar y observe cómo cambian los controles mientras se ejecuta el trabajo. Deshabilite los comandos que entrarían en conflicto con la operación activa, pero mantenga el progreso y los comentarios disponibles para que el usuario pueda seguir el trabajo.

    Mantenga el progreso y otros valores específicos del usuario en la sesión actual. Un campo estático se comparte entre los usuarios, por lo que almacenar el estado del trabajo de una persona allí podría hacer que otra persona lo vea o lo cambie.

    Habilite Simular error y ejecute el trabajo nuevamente. Mantenga los detalles de diagnóstico en el registro para su investigación, mientras el usuario recibe un breve mensaje de seguridad. Los detalles de la excepción técnica no deben convertirse en texto de error público.

    El botón inicia la operación, el trabajo realiza el trabajo y la pantalla informa su estado. Mantenga estos roles separados para que el éxito, la cancelación y el fracaso puedan devolver la interfaz a una condición utilizable.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 6 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Tareas en segundo plano y registro · 35 min

    Objetivo: Un ejecutor de tareas en segundo plano que no bloquea la interfaz: botones Start/Cancel, una barra de progreso, una etiqueta de estado y un registro con marcas de tiempo, trabajo largo ejecutado con async/await, un try/catch/finally que registra los detalles pero muestra un mensaje seguro y un estado de la interfaz que siempre se restablece, con el estado por usuario fuera de los campos static.

Módulo 7: Temas y modernización de la interfaz

Módulo 7 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado de modernización, supera la evaluación de conocimientos y aplica un tema y moderniza el dashboard en el laboratorio práctico.

  1. LecturaTemas y el Theme Builder · 9 min

    Aplica un tema integrado, descubre dónde encajan los archivos de tema y las opciones de estilo, y usa Theme Builder a nivel de principiante, sin tocar la lógica de negocio.

    Leer la guía de la lección (PDF)

  2. LecturaJerarquía visual y pulido sin riesgos · 9 min

    Reglas de jerarquía visual que hacen las pantallas fáciles de recorrer con la vista, y cómo pulir el diseño sin romper el binding, la navegación ni la validación.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoModerniza un dashboard de Wisej.NET · 5 min

    Mira cómo se moderniza un dashboard de negocio: un tema integrado, un selector de tema, tarjetas de métricas, comandos agrupados y un estado de navegación activo, mientras todos los flujos existentes siguen funcionando. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Actualizaremos la apariencia del panel mediante un tema integrado, tarjetas y una navegación consistente. Los servicios, la validación y el enlace de datos existentes seguirán haciendo su trabajo. Esto nos permite mejorar la forma en que los usuarios leen y navegan por la pantalla sin reescribir el comportamiento comercial de la aplicación.

    Modernice la pantalla existente sin reconstruir su comportamiento. Un tema Wisej.NET ofrece opciones visuales consistentes; Las mejoras en el diseño y la navegación hacen que la aplicación sea más fácil de entender.

    Haga que el título de la página sea fácil de identificar, agrupe métricas relacionadas y coloque comandos junto al contenido al que afectan. La jerarquía visual debería ayudar a los usuarios a decidir dónde buscar y qué hacer a continuación.

    El selector de temas cambia Application.Theme.Name, mientras que SetActiveButton marca el elemento de navegación seleccionado. Trate la apariencia y la ubicación como preocupaciones separadas para que los usuarios aún sepan dónde están después de cambiar de tema.

    Cambie entre los temas integrados y compare los mismos controles. Su apariencia cambia mientras el flujo de trabajo sigue siendo el mismo. Verifique la legibilidad y los estados activos en lugar de juzgar el tema solo por sus colores.

    Revise el panel terminado en su totalidad. El espaciado, las tarjetas y la navegación consistentes deben respaldar el enlace y la validación de datos existentes. Se produce una actualización visual cuando el flujo de trabajo familiar se vuelve más claro.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 7 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Aplica un tema y moderniza el panel · 35 min

    Objetivo: Un dashboard y un shell de navegación modernizados: un tema integrado con un selector de tema que funciona, una cabecera clara y una navegación a la izquierda con estado de página activa, tarjetas de métricas junto con comandos agrupados y actividad reciente, espaciado coherente, y todos los flujos de tickets, el binding y la validación existentes funcionando.

Módulo 8: Integración de JavaScript con Widget

Módulo 8 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado del widget, supera la evaluación de conocimientos y construye un widget JavaScript conectado a datos de C# en el laboratorio práctico.

  1. LecturaControles nativos frente a Widget · 9 min

    Cuándo usar controles nativos de Wisej.NET frente a un Widget JavaScript personalizado, el archivo JavaScript que crea el widget (un ejemplo init/update completo) y cómo conectarlo desde C# mediante Packages, InitScript y Options.

    Leer la guía de la lección (PDF)

  2. LecturaC# limpio y seguridad de los widgets · 9 min

    Mantén las reglas de negocio en C# (no en JavaScript), encapsula el código de integración y reconoce los riesgos de seguridad de los scripts de terceros.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoIntegra un Widget JavaScript en Wisej.NET · 5 min

    Mira cómo toma forma la integración de un widget JavaScript: un contenedor Widget que carga JS/CSS, datos de visualización seguros enviados desde un servicio C#, un evento de servidor de actualización y una tarjeta de datos para verificar los valores. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Agregaremos una pequeña visualización del estado de JavaScript a una pantalla de Wisej.NET. Los controles nativos seguirán manejando la interacción ordinaria y C# será el propietario de los datos, las decisiones y el registro. El widget mostrará los valores que recibe, brindándonos un objeto visual especializado sin crear una segunda fuente de estado de la aplicación.

    Agregue una pequeña visualización JavaScript a la aplicación Wisej.NET existente. Mantenga la lógica principal en C# para que el elemento visual adicional no se convierta en un segundo propietario de las decisiones de la aplicación.

    Utilice etiquetas, botones y registros nativos Wisej.NET para una interacción normal. Introduzca un Widget solo para el visual especializado. Esto mantiene la integración enfocada en lugar de reemplazar los controles que ya resuelven el problema.

    Envíe al widget solo los valores de visualización que necesita: estado, recuento de tickets y carga del sistema. C# sigue siendo responsable de esos valores; la visualización del navegador los presenta sin recibir datos del servidor no relacionados.

    El controlador de botones actualiza las etiquetas nativas y envía los mismos datos a través de UpdateWidget. Usar un resultado para ambas presentaciones evita que el texto y la visualización describan estados diferentes.

    Click Actualiza los datos del servidor y compara las etiquetas con el widget. Deberían cambiar juntos desde la misma operación del servidor. Si no están de acuerdo, inspeccione los datos pasados ​​a través del límite de integración.

    Pruebe Saludable, Advertencia y Crítico por turnos. Los eventos de C# actualizan el estado visual y registran el cambio. El historial de eventos ayuda a explicar por qué el widget tiene su apariencia actual.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 8 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Construye un widget de JavaScript · 35 min

    Objetivo: Un pequeño widget visual JavaScript (indicador de estado o gráfico) conectado a datos C# del servidor: un control Widget que recibe valores de visualización seguros a través de sus opciones, una tarjeta de datos del servidor para verificarlos y un botón Refresh que actualiza los datos C# y refresca el widget, con todas las reglas de negocio y los secretos en C#.

Módulo 9: Configuración, seguridad y despliegue

Módulo 9 de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado de la revisión del despliegue, supera la evaluación de conocimientos y construye una lista de comprobación de revisión del despliegue en el laboratorio práctico.

  1. LecturaConfiguración y secretos · 9 min

    Qué archivos de configuración revisar antes de publicar, cómo distinguir depuración de producción y cómo gestionar de forma segura las claves de licencia y los secretos.

    Leer la guía de la lección (PDF)

  2. LecturaSeguridad y preparación para el despliegue · 10 min

    Autenticación frente a autorización a nivel junior, registro seguro, destinos de despliegue y una lista de comprobación obligatoria antes de publicar.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoRevisa un paquete de despliegue de Wisej.NET · 5 min

    Mira cómo toma forma una revisión controlada del despliegue: una lista de comprobación de publicación, la selección de entorno y destino, una revisión restringida por rol, un manejo seguro de los secretos, un registro de diagnóstico y un estado del paquete que pasa a listo. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Revisaremos la aplicación antes de empaquetarla para su lanzamiento. La configuración, los secretos, el registro y los permisos necesitan una verificación explícita. El flujo de trabajo de lanzamiento utilizará esas comprobaciones para decidir si el paquete está listo, manteniendo al mismo tiempo los detalles confidenciales fuera de los mensajes dirigidos al usuario.

    Utilice la pantalla de revisión para recopilar pruebas antes de su liberación. Las comprobaciones de configuración, seguridad e implementación pertenecen a un proceso repetible, por lo que la preparación depende de las comprobaciones completadas y no de una impresión tranquilizadora.

    Registre primero el entorno, el destino del alojamiento, la versión y el revisor. Estos detalles identifican exactamente lo que se está revisando; una lista de verificación completa para un entorno no cubre automáticamente un objetivo de lanzamiento diferente.

    Realice las comprobaciones de configuración requeridas por separado de las notas opcionales. Una nota puede explicar una excepción, pero no debe hacer que una verificación requerida faltante desaparezca de la decisión de preparación.

    Mantenga secretos y excepciones detalladas fuera de la pantalla de revisión. Muestre un resumen seguro y deje detalles de diagnóstico en los registros del servidor, para que el paquete de revisión se pueda compartir sin exponer las credenciales.

    Separe la preparación del permiso. Las comprobaciones requeridas determinan si la revisión está completa, mientras que una verificación de roles determina quién puede crear el paquete. Pasar la lista de verificación no otorga al usuario autoridad adicional.

    Complete los elementos requeridos restantes y observe cómo la cuenta llega a nueve de nueve. El estado cambia a Listo para revisión. Eso significa que la lista de verificación está completa, no que el despliegue ya se haya producido.

    Cree el paquete de revisión e inspeccione su resumen, incluidos los problemas conocidos y la información de reversión. Un traspaso útil le dice al revisor qué está listo, qué sigue siendo incierto y cómo recuperarse si falla la publicación.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 9 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Lista de comprobación para revisar el despliegue · 35 min

    Objetivo: Una pantalla de revisión controlada del despliegue: una lista de comprobación de publicación con elementos obligatorios y opcionales, selección de entorno y destino, una acción de revisión restringida por rol y respaldada por una comprobación en el servidor, secretos leídos de una configuración segura, un registro de diagnóstico con marcas de tiempo y un Package Status que solo pasa a listo cuando se superan todas las comprobaciones obligatorias.

Módulo 10: Proyecto final: aplicación Mini Helpdesk

El proyecto final de Wisej.NET Foundations. Lee la guía de la lección y la guía del laboratorio / examen, mira el recorrido guiado del proyecto final, supera la evaluación de conocimientos final y construye el mini helpdesk que reúne todo el curso.

  1. LecturaEl proyecto final · 9 min

    Qué debe incluir el mini helpdesk del proyecto final (navegación, CRUD, diálogos, validación, acabado del tema) y cómo encajan sus piezas.

    Leer la guía de la lección (PDF)

  2. LecturaCódigo legible y revisión entre compañeros · 9 min

    Los hábitos de desarrollo que mantienen legible el proyecto final y los aspectos de la revisión de código entre compañeros con los que se evalúa tu proyecto.

    Leer la guía de la lección (PDF)

  3. Lección en vídeoConstruye el proyecto final mini helpdesk con Wisej.NET · 5 min

    Mira cómo toma forma el proyecto final: un shell de navegación, CRUD de tickets con un DataGridView y diálogos, validación a través de un servicio, un tema pulido y notas de arquitectura, revisión y despliegue. Se reproduce aquí mismo, en el reproductor.

    Transcripción de la narración

    Módulo diez. Cree el mini servicio de asistencia técnica Wisej.NET. Este final reúne el curso en una sola aplicación. Seguiremos su navegación, flujo de trabajo de tickets y pantallas de soporte, luego veremos qué hace que el proyecto esté listo para su revisión e implementación.

    Comience con la aplicación completa y siga su capa de navegación. Los ejemplos de cursos separados ahora comparten un diseño, por lo que los usuarios pueden moverse entre funciones sin aprender un nuevo patrón de navegación cada vez.

    Siga Tickets, Clientes y Empleos a través de sus principales interacciones. Las cuadrículas presentan registros, los cuadros de diálogo recopilan cambios y los trabajos en segundo plano informan del progreso. Después de cada acción, comprueba que el resultado visible explica lo que realmente sucedió.

    Rastree un cambio de boleto a través de sus responsabilidades. El cuadro de diálogo valida la entrada, TicketService maneja la operación y la cuadrícula presenta el resultado. Etiquetas consistentes y mensajes de estado conectan esas etapas para el usuario.

    Utilice Despliegue y Arquitectura para explicar la aplicación más allá de sus pantallas. Revise la configuración, la seguridad y el registro, luego rastree los datos a través de la capa de servicio. Una manifestación de trabajo también debería hacer comprensible su organización.

    Termine con la revisión del código y los próximos pasos. Verifique los nombres específicos y las responsabilidades claras, luego registre el trabajo de producción restante. El final demuestra una aplicación funcional al mismo tiempo que hace explícitos el trabajo inacabado y las decisiones de diseño.

  4. LecturaEjercicio de programación con IA · 20 min

    Construye el ejemplo WisejTrainingApp 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.

    Leer la guía de la lección (PDF)

  5. CuestionarioEvaluación de conocimientos — Módulo 10 · 12 min · Nota mínima 80%
  6. Laboratorio prácticoLaboratorio — Proyecto final Mini Helpdesk · 60 min

    Objetivo: Una aplicación mini helpdesk completa: un shell con navegación a la izquierda (Dashboard, Tickets, Architecture, Code Review, Deployment, Next Steps), CRUD de tickets con un DataGridView y diálogos Create/Edit reutilizables validados a través de un TicketService, un tema pulido y coherente, y notas de arquitectura, revisión y despliegue; todo el curso demostrado en un único proyecto.