# Fundamentos de programación con Devkron
Modalidad: Virtual
Objetivo: El participante conocerá los fundamentos del lenguaje Devkron, al conculuir será capaz de escribir programas útiles que incorporen
los conceptos aprendidos desarrollando como proyecto final integrador una aplicación Web con acceso a bases de datos.
Dirigido a: Interesados en aprender a programar con Devkron que cuenten con alguna formación previa en programación.
Duración: 22 horas efectivas
## Contenido
El lenguaje Devkron, o simplemente DKL [DevKron Language] es completamente traducible a XML; capaz de definir datos u otros dialectos;
con interpretación imperativa y procedural para la generación dinámica de sí mismo y la realización de procesos.
**Sesión 1 (2hrs)**
### Primeros pasos
* Configurar el entorno de desarrollo
* Ejecutar el primer programa "Hola mundo"
### Lenguaje imperativo
- Variables y tipos de datos
- Expresiones y operadores
- Sentencias de control de flujo (if/switch/break/#include/include/return/do/)
- Ciclos (for/while/repeat)
- Registros de datos (new/using y operadores morsa :=)
**Sesión 2 (2hrs)**
- Funciones definidas por el usuario
- Funciones
- Funciones abiertas
- Referencias a funciones
- Organización y estructura de programas (namespaces, funciones y alias)
**Sesión 3 (2hrs)**
### Bibliotecas de funciones incluídas
- Funciones incorporadas
- functions.dkh
- serialize.dkh
- webcl.dkh
**Sesión 4 (2hrs)**
### Acceso a bases de datos
- Configurar conexiones
- Funciones básicas (dbr.dkh)
- Conectarse a una base de datos
- Obtener datos (consultas)
- Insertar y actualizar
- Ejecutar SQL con parámetros
- Manejar transacciones
**Sesión 5 (2hrs)**
### Desarrollo Web
- La pila de Devkron Applications Server
- El flujo de una solicitud HTTP
- Sintaxis declarativa, imperativa y la conmutación de contextos
**Sesión 6 (2hrs)**
- Configurar como servidor de aplicaciones
- Responder XML y HTML
- Responder texto y JSON
- Responder un archivo
**Sesión 7 (2hrs)**
- Enrutamientos
**Sesiones 8,9,10 y 11 (2hrs cada una = 8horas)**
### Proyecto integrador
Considerando una empresa que requiere implementar un buzón de quejas y sugerencias, surge la necesidad de:
- Crear un sitio Web con un formulario para recibir las quejas o sugerencias
- Crear una aplicación (backoffice) que permita administrar usuarios, consultar las quejas o sugerencias recibidas y marcarlas como atendidas incluyendo un mensaje de respuesta
Se considerarán dos tablas:
mensajes
- nombre varchar(100)
- correo varchar(80)
- telefono varchar(15)
- empresa varchar(100)
- mensaje text
- respuesta text
- atendio string(32)
- queja bool
usuarios
- id varchar(32)
- pwd varchar(32)
- nombre varchar(100)
Actividades:
1. Diseñar la base de datos
2. Configurar los sitios (admin.localhost, buzon.localhost)
3. Estructurar buzon.localhost
- Maquetar formulario de quejas y sugerencias
4. Estructurar admin.localhost
- Programar UsuarioModel
- Programar UsuarioController
- Maquetar lista de usuarios
- Maquetar formulario de usuarios
- Programar MensajeModel
- Programar MensajeController
- Maquetar lista de mensajes
- Maquetar formulario para atender los mensajes
- Maquetar login
5. Maquetar página de inicio
6. Programar index.dkl