viernes, 14 de diciembre de 2018

Entrenamiento - Curso de ASP.NET MVC & JavaScript Sábados Tardes

Curso de Desarrollo Web ASP.NET MVC & JavaScript Sábados Tardes

A los interesados les comunico el inicio del Curso de ASP.NET MVC & JavaScript los días Sábados en las Tardes y será exclusivamente para alumnos nuevos.

En el curso se verá mi Arquitectura Desconectada Sin Capas orientada a Performance y sobre todo se hará muchas aplicaciones en Tiempo Real usando Web Sockets todo en forma nativa solo con C# en el servidor y JavaScript puro en el cliente.

Beneficios de mi Arquitectura Web Desconectada Sin Capas y con Actualización en Tiempo Real

1. Desarrollo en menos tiempo al no usar Capas.
2. En Producción es la mas veloz por no usar Frameworks ni Librerías y pocos archivos.
3. El mantenimiento es muy simple ya que solo basta cambiar el Store Procedure, no el código C# ni JavaScript que son genéricos.

Contenido del Curso

1. Arquitecturas de Desarrollo Web en ASP.NET
1.1. Arquitectura con Capas: N Conexiones, N Comandos, N Cursores
1.2. Arquitectura con Capas: 1 Conexion, N Comandos, N Cursores
1.3. Arquitectura con Capas: 1 Conexion, 1 Comando, N Cursores
1.4. Arquitectura sin Capas: 1 Conexion, 1 Comando, 1 Cadena (Mi creación)

2. Llamadas Asíncronas del Cliente al Servidor Web
2.1. Usando jQuery y JSON
2.2. Usando Angular.js y JSON (Nuevo)
2.3. Usando Vue.js y JSON (Nuevo)
2.4. Usando XHR y Cadenas (Mi creación)

3. Listando y Consultando Registros
3.1. Listando registros de una sola tabla
3.2. Listando registros de varias tablas
3.3. Consultando registros en forma conectada
3.4. Consultando registros en forma desconectada

4. Filtrando en forma desconectada
4.1. Filtros usando Textos
4.2. Filtros usando Listas
4.3. Filtros usando las Cabeceras de una Tabla o Grilla

5. Paginando y Ordenando en forma desconectada
5.1. Paginación simple de registros
5.2. Paginación de registros por Bloques
5.3. Paginación de Imágenes (Carrusel)
5.3. Ordenación de registros ascendente y descendente

6. Exportando datos en el Cliente y en Servidor
6.1. Creando un Archivo de Texto en el Cliente
6.2. Creando un Archivo CSV en el Cliente
6.3. Creando un Archivo XLS/HTML en el Cliente
6.4. Creando un Archivo XLSX en el Servidor
6.5. Creando un Archivo DOCX en el Servidor
6.6. Creando un Archivo PDF en el Servidor

7. Mantenimiento, Popups, Cabecera Detalle e Impresión
7.1. Mantenimiento de registros especifico
7.2. Creando Popups usando Divs
7.3. Trabajando con Cabecera Detalle
7.4. Imprimiendo datos de la página
7.5. Mantenimiento de registros genérico (Nuevo)

8. Presentación Personalizada y Reportes con JavaScript
8.1. Vista Tablas
8.2. Vista Jerárquica Horizontal
8.3. Vista Jerárquica Vertical
8.4. Vista Tabla Cruzada

9. Gráficos con HTML5 y JavaScript
9.1. Creando Gráficos de Datos con Canvas
9.2. Creando Gráficos de Datos con SVG
9.3. Creando Gráficos Interactivos

10. Trabajando con Servicios WCF
10.1. Creando un Servicio WCF alojado en IIS
10.2. Creando un Servicio WCF alojado en su propio Servidor
10.3. Creando un Cliente WCF usando Proxys
10.4. Creando un Cliente WCF usando ChannelFactory

11. Trabajando con Servicios Web API (Servicios HTTP o REST)
11.1. Creando un Servicio Web API
11.2. Creando un Cliente desde .NET
11.3. Creando un Cliente JavaScript
11.4. Creando un Cliente WinForms (Nuevo)
11.5. Creando un Cliente Android (Nuevo)

12. Creando Web Sockets en el Servidor para Actualizar en Tiempo Real
12.1. Creando un Servidor WebSocket usando Fleck
12.2. Actualizando en Tiempo Real una App Web usando WebSockets
12.3. Actualizando en Tiempo Real una App Windows usando WebSockets (Nuevo)
12.4. Actualizando en Tiempo Real una App Android usando WebSockets (Nuevo)

13. Creando Web Sockets en el Cliente para Controlar Dispositivos de la Red Local
13.1. Usando Web Sockets para Explorar Archivos y Directorios
13.2. Usando Web Sockets para Impresión de Documentos

14. Trabajando con Mapas
14.1. Usando Google Maps
14.2. Usando Open Layer
14.3. Usando Mapas en Aplicaciones Windows Forms (Nuevo)
14.4. Actualizando Mapas en Tiempo Real

15. Trabajando con Archivos Gigantes en la Aplicación Web
15.1. Subir Archivos Gigantes desde la App Web al Sistema de Archivos
15.2.  Bajar Archivos Gigantes desde el Sistema de Archivos al Cliente

16. Manejando Miles de Registros en la Aplicación Web
16.1. Mostrar Miles de Registros desde el Servidor de Datos al Cliente
16.2. Grabar Miles de Registros desde la App Web al Servidor de Datos

Observaciones sobre el Contenido

- No Uso Frameworks ni Librerías de Terceros Ni en el Servidor Ni en el Cliente
- 10 % del código está en el servidor en C#
- 90% del código está en el cliente en JavaScript (APIs nativas multi navegador)
- Todo los ejemplos son reales del día a día del programador.
- En todos los ejemplos el código esta basado en alto rendimiento (performance)
- A partir de la mitad del curso se resuelven los problemas mas comunes que presenta el Desarrollo Web debido al ancho de banda.

Horario

- Sábados de 3:00 pm a 9:00 pm

Fecha de Inicio

- Sábado 12 de Enero del 2019

Duración del Curso

Total: 144 horas
Tiempo: 6 meses
Frecuencia: 6 horas semanales (24 horas mensuales)

Inversión

- Mensual: 250 nuevos soles
- Total 6 meses: 1500 nuevos soles

Forma de Pago

- En efectivo, al inicio de cada mes (250 soles)

Contacto

Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:

Asunto: Curso ASP.NET MVC & JavaScript Sabados Tarde
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio

Registro

Solo se considerará a los 25 primeros que envíen su correo ya que la capacidad del lugar es limitada.

Lugar del Curso

Será en la Zona Norte de Lima, se le enviará la dirección exacta a todos los registrados una semana antes de iniciar el curso.

domingo, 2 de diciembre de 2018

Entrenamiento - Los Nuevos Cursos del 2019

Nuevo Programa de Entrenamiento del 2019

Módulo 1: Computer Science
Curso 1 - Estructuras de Datos y Algoritmos en JavaScript
Curso 2 - Estructuras de Datos y Algoritmos en C#
Curso 3 - JavaScript Avanzado
Curso 4 - C# Avanzado

Módulo 2: Web Development
Curso 1 - Web Mobile con JavaScript
Curso 2 - WebRTC & WebSockets (JavaScript)
Curso 3 - Web Performance Optimization (WPO)
Curso 4 - Web Application Security (WAS) -> OWASP

Módulo 3: Machine Learning
Curso 1 - Microsoft Cognitive Services
Curso 2 - Azure Machine Learning
Curso 3 - Google Machine Learning
Curso 4 - AWS Machine Learning

Horario e Inicio de Clases
Horario: Domingos de 9:00 am a 2:00 pm
Inicio: Domingo 13 de Enero del 2019

Materiales de Cada Curso
- PDFs: Manuales, Libros, Tutoriales, Documentación, Especificación
- MP4s: Cursos, Eventos, Tutoriales, Demos de Clases
- Fuentes: C#, JavaScript de los Demos de Clases

Inversión x Mes
- Alumnos Regulares (que participan en casi todos los Cursos): 250 soles
- Alumnos No Regulares (que han participado en algunos Cursos): 300 soles
- Alumnos Nuevos (que nunca han participado o no terminaron un Curso): 350 soles

Reserva de Matrícula
- Enviar mail a: Luis.duenash@gmail.com
- Asunto: Entrenamiento 2019
- Datos: Nombres Completos, Lugar de Estudio y/o Trabajo, Alumno Regular o Nuevo

lunes, 3 de septiembre de 2018

Entrenamiento - Quinto Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Quinto Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Este Sábado se desarrollará el Quinto Seminario y los temas a tratar serán Compresión de Archivos y Cifrado de Datos en .NET.
Como ya es costumbre se les copiará Manuales, Libros y Papers en pdfs con los temas, además de los Demos (rar) y Videos (avi).

Seminario 5: Compresión de Archivos y Cifrado de Datos en .NET

1. Compresión de Archivos en .NET
1.1. Historia de la Compresión de Datos
1.2. Tipos y Algoritmos de Compresión
1.3. Clases para Comprimir Archivos en .NET
1.4. Comprimir y Descomprimir usando ZipFile, ZipArchive y ZipArchiveEntry
1.5. Comprimir y Descomprimir usando DeflateStream y GZipStream

2. Introducción a la Criptografía
2.1. Historia de la Criptografía
2.2. Criptografía, Criptología, Criptoanálisis y Cifrado
2.3. Tipos y Algoritmos de Cifrado
2.4. Modelo de Criptografía de .NET Framework

3. Cifrado Simétrico en .NET
3.1. Cifrar usando Data Encryption Standard (DES)
3.2. Cifrar usando Triple DES (TDES o 3DES)
3.3. Cifrar usando Advanced Encryption Standard (AES)

4. Cifrado Asimétrico en .NET
4.1. Cifrar usando RSA
4.2. Cifrar usando Algoritmo de Firmas Digitales (DSA)
4.3. Cifrar elementos XML con Certificados X.509

5. Usando Valores Hash en .NET
5.1. Valores Hash con MD5
5.2. Valores Hash con SHA1
5.3. Valores Hash con SHA256

Información
Día: Sábado 08 de Setiembre del 2018
Horario: 4:00 pm a 10:00 pm.
Registro y Pago: 4:00 pm a 4:30 pm.
Duración: 6 horas

Inversión
- 100 Soles solo para Alumnos que estan llevando actualmente Cursos los Sábados y/o Domingos
- 200 Soles para el resto (ex-alumnos y público en general)

Vacantes y Lugar
Participantes: 15 Mínimo - 25 Máximo
Lugar: Mi Domicilio (Zona Norte de Lima)
Nota: A los que no conocen el lugar solo si se registran les enviaré la dirección exacta.

Contacto
Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:
Asunto: Quinto Seminario de Desarrollo Web ASP.NET MVC & JavaScript
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Alumno Regular de Talleres: Si / No

domingo, 29 de julio de 2018

Videos - Cuarto Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Videos del Seminario 4 Programando Mapas con Google Maps

Demo 01: Simple Mapa


Demo 02: Eventos, Marcadores, Ventanas de Información


Demo 03: Grabar y Recuperar Zonas en un Mapa


Demo 04: Controles del Mapa


Demo 05: Controles Personalizados


Demo 06: Estilos en Mapas


Demo 07: Superposiciones - Símbolos


Demo 08: Superposiciones - Iconos y Animaciones


Demo 09: Superposiciones - Polilíneas


Demo 10: Superposiciones - Polígonos, Círculos y Rectángulos


Demo 11: Agrupación de Marcadores (Markers Cluster)


Demo 12: Cargando Datos GeoJson


Demo 13: Cargar Datos UTM de Excel


miércoles, 18 de julio de 2018

Conferencia CEPS UNI - Aplicaciones Web en Tiempo Real con WebSockets

Conferencia sobre Aplicaciones Web en Tiempo Real con WebSockets

Comparto con ustedes la conferencia que di el Martes 17 de Julio del 2018 en el CEPS UNI por su 50 Aniversario. Gracias a Cesar Oceda por la invitación y a mis alumnos que asistieron.

En esta conferencia muestro algunos de mis utilitarios desarrollados en .NET como Generadores de Código, Compresores de Imágenes, Manejadores de Archivos de Office: xlsx, docx, pdf, etc.

También muestro la aplicación de búsqueda de RUCs de la SUNAT con Archivos de texto y ejemplos de WebSockets como Chats, Paint, Sheets, Mantenimientos de Tablas y Gráficos en Tiempo Real.

Al final se ve un ejemplo con Google Maps y una Carga Masiva de archivos CSV en Base de Datos de SQL Server (genérico).



viernes, 13 de julio de 2018

Entrenamiento - Cuarto Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Cuarto Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Continuando con los Seminarios de una vez al mes el tema a tratar será como Programar Mapas con Google Maps. Se verán muchos ejemplos reales con ubigeo, geolocalización, tiempo real, etc.

Seminario 4: Programando Mapas con Google Maps

1. Trabajar con Mapas
1.1. Crear un Simple Mapa
1.2. Aplicar Estilos al Mapa
1.3. Trabajar con Eventos

2. Dibujar Marcadores en el Mapa
2.1. Agregar Marcadores
2.2. Agrupar Marcadores en Clusteres
2.3. Agregar Marcadores Personalizados

3. Dibujar Ventanas y Símbolos
3.1. Agregar Ventanas de información
3.2. Agregar Símbolos

4. Dibujar Formas en el Mapa
4.1. Agregar Polilineas y Poligonos
4.2. Agregar Rectangulos y Círculos
4.3. Editar y Arrastrar Formas

5. Importar Datos a Mapas
5.1. Usando el formato GeoJson
5.2. Usando el formato TopoJson
5.3. Cargando Coordenadas UTM de Excel

6. Visualizar Datos en Mapas
6.1. Trabajar con Capa de Datos
6.2. Trabajar con Capa de Mapas de Calor
6.3. Trabajar con Capas KML y GeoRSS
6.4. Trabajar con Capas de tráfico, transporte y circulación en bicicleta

Información
Día: Sábado 21 de Julio del 2018
Horario: 4:00 pm a 10:00 pm.
Registro y Pago: 4:00 pm a 4:30 pm.
Duración: 6 horas

Inversión
- 100 Soles solo para Alumnos que estan llevando actualmente Cursos los Sábados y/o Domingos
- 200 Soles para el resto (ex-alumnos y público en general)

Vacantes y Lugar
Participantes: 15 Mínimo - 25 Máximo
Lugar: Mi Domicilio (Zona Norte de Lima)
Nota: A los que no conocen el lugar solo si se registran les enviaré la dirección exacta.

Contacto
Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:
Asunto: Cuarto Seminario de Desarrollo Web ASP.NET MVC & JavaScript
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Alumno Regular de Talleres: Si / No

lunes, 11 de junio de 2018

Entrenamiento - Curso de ASP.NET MVC & JavaScript Domingos Mañanas

Curso de Desarrollo Web ASP.NET MVC & JavaScript Domingos Mañanas

A los interesados les comunico el inicio del último Curso de ASP.NET MVC & JavaScript los días Domingos en las Mañanas que durará hasta fin de año.
Para el próximo año dictaré otros Cursos como Desarrollo Web Móvil, Desarrollo Web IoT y Desarrollo con Inteligencia Artificial (IA) pero solo podrán asistir los que han llevado constantemente los Talleres (requisito indispensable).

En el curso se verá mi Arquitectura Desconectada Sin Capas orientada a Performance y sobre todo se hará muchas aplicaciones en Tiempo Real usando Web Sockets todo en forma nativa solo con C# en el servidor y JavaScript puro en el cliente.

Beneficios de mi Arquitectura Web Desconectada Sin Capas y con Actualización en Tiempo Real

1. Desarrollo en menos tiempo al no usar Capas.
2. En Producción es la mas veloz por no usar Frameworks ni Librerías y pocos archivos.
3. El mantenimiento es muy simple ya que solo basta cambiar el Store Procedure, no el código C# ni JavaScript que son genéricos.

Contenido del Curso

1. Arquitecturas de Desarrollo Web en ASP.NET
1.1. Arquitectura con Capas: N Conexiones, N Comandos, N Cursores
1.2. Arquitectura con Capas: 1 Conexion, N Comandos, N Cursores
1.3. Arquitectura con Capas: 1 Conexion, 1 Comando, N Cursores
1.4. Arquitectura con Capas: 1 Conexion, 1 Comando, 1 Cadena

2. Listando y Consultando Registros
2.1. Listando registros de una sola tabla
2.2. Listando registros de varias tablas
2.3. Consultando registros en forma conectada
2.4. Consultando registros en forma desconectada

3. Filtrando en forma desconectada
3.1. Filtros usando Textos
3.2. Filtros usando Listas
3.3. Filtros usando las Cabeceras de una Tabla o Grilla

4. Paginando y Ordenando en forma desconectada
4.1. Paginación simple de registros
4.2. Paginación de registros por Bloques
4.3. Paginación de Imágenes (Carrusel)
4.3. Ordenación de registros ascendente y descendente

5. Exportando datos en el Cliente y en Servidor
5.1. Creando un Archivo de Texto en el Cliente
5.2. Creando un Archivo CSV en el Cliente
5.3. Creando un Archivo XLS/HTML en el Cliente
5.4. Creando un Archivo XLSX en el Servidor
5.5. Creando un Archivo DOCX en el Servidor
5.6. Creando un Archivo PDF en el Servidor

6. Mantenimiento, Popups, Cabecera Detalle e Impresión
6.1. Mantenimiento de registros
6.2. Creando Popups usando Divs
6.3. Trabajando con Cabecera Detalle
6.4. Imprimiendo datos de la página

7. Presentación Personalizada y Reportes con JavaScript
7.1. Vista Tablas
7.2. Vista Jerárquica Horizontal
7.3. Vista Jerárquica Vertical
7.4. Vista Tabla Cruzada

8. Gráficos con HTML5 y JavaScript
8.1. Creando Gráficos de Datos con Canvas
8.2. Creando Gráficos de Datos con SVG
8.3. Creando Gráficos Interactivos

9. Trabajando con Servicios WCF
9.1. Creando un Servicio WCF alojado en IIS
9.2. Creando un Servicio WCF alojado en su propio Servidor
9.3. Creando un Cliente WCF usando Proxys
9.4. Creando un Cliente WCF usando ChannelFactory

10. Trabajando con Servicios Web API (Servicios HTTP o REST)
10.1. Creando un Servicio Web API
10.2. Creando un Cliente desde .NET
10.3. Creando un Cliente JavaScript

11. Creando Web Sockets en el Servidor para Actualizar en Tiempo Real
11.1. Creando un Servidor WebSocket usando Fleck
11.2. Actualizando en Tiempo Real una App Web usando WebSockets
11.3. Actualizando en Tiempo Real una App Windows usando WebSockets

12. Creando Web Sockets en el Cliente para Controlar Dispositivos de la Red Local
12.1. Usando Web Sockets para Explorar Archivos y Directorios
12.2. Usando Web Sockets para Impresión de Documentos

13. Trabajando con Mapas
13.1. Usando Google Maps
13.2. Usando Open Layer
13.3. Actualizando Mapas en Tiempo Real

14. Trabajando con Archivos Gigantes en la Aplicación Web
14.1. Subir Archivos Gigantes desde la App Web al Sistema de Archivos
14.2.  Bajar Archivos Gigantes desde el Sistema de Archivos al Cliente

15. Manejando Miles de Registros en la Aplicación Web
15.1. Mostrar Miles de Registros desde el Servidor de Datos al Cliente
15.2. Grabar Miles de Registros desde la App Web al Servidor de Datos

Observaciones sobre el Contenido

- No Uso Frameworks ni Librerías de Terceros Ni en el Servidor Ni en el Cliente
- 10 % del código está en el servidor en C#
- 90% del código está en el cliente en JavaScript (APIs nativas multi navegador)
- Todo los ejemplos son reales del día a día del programador.
- En todos los ejemplos el código esta basado en alto rendimiento (performance)
- A partir de la mitad del curso se resuelven los problemas mas comunes que presenta el Desarrollo Web debido al ancho de banda.

Horario

- Domingos de 9:00 am a 2:00 pm

Fecha de Inicio

- Domingo 1 de Julio

Duración del Curso

Total: 120 horas
Tiempo: 6 meses
Frecuencia: 5 horas semanales (20 horas mensuales)

Inversión

- Mensual: 300 nuevos soles
- Total 6 meses: 1800 nuevos soles

Forma de Pago

- En efectivo, al inicio de cada mes (300 soles)

Contacto

Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:

Asunto: Curso ASP.NET MVC & JavaScript Domingos Mañanas
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Ha sido Ex-Alumno (especificar PECI .NET, Web Developer, Talleres, Seminarios)

Registro

Solo se considerará a los 25 primeros que envíen su correo ya que la capacidad del lugar es limitada.

Lugar del Curso

Será en la Zona Norte de Lima, se le enviará la dirección exacta a todos los registrados una semana antes de iniciar el curso.

Comentario Final

Ya son varios años enseñando a un grupo de programadores sobre "Desarrollo Web" enfocado en Performance, para lo cual cambié mi forma de programar y cree una nueva Arquitectura Ligera sin Librerías Ni Frameworks, usando Cadenas y trabajando casi todo desconectado en JavaScript.

Quizá no tuve la dicha de que la mayoría la usara, pero cuando casi todos tengan problemas de velocidad de las paginas, problemas en el mantenimiento de la aplicación y se pasen largamente los tiempos de desarrollo usando bastantes personas y gastando mucho dinero, quizás alguno recuerde que yo luche contra los estándares actuales para ser el desarrollo mas simple.

Es la última oportunidad para los que nunca han llevado cursos conmigo, aprendan la verdadera programación, enfocada a escribir poco código, consumir poca memoria y CPU y sobre todo a resolver problemas y no a crearlos (como hacen la mayoría al desarrollar aplicaciones: automatizar problemas).

Recuerden que el mejor es el que "lo Complejo lo hace Simple" (Nativo, Poco Código) y no el que "lo Simple lo hace Complejo" (Frameworks, Librerías, etc).

miércoles, 16 de mayo de 2018

Entrenamiento - Tercer Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Tercer Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Continuando con los Seminarios de una vez al mes el tema a tratar será como Crear Servidores HTTP y TCP en .NET
En el seminario crearemos diferentes tipos de servidores y lo llamaremos desde aplicaciones Web y Windows en .NET, también por JavaScript desde el Browser.
En casi todos los ejemplos se verán notificaciones y actualización en tiempo real.
Solo se usarán clases de .NET Framework, es decir, sin Librerías de Terceros Ni Frameworks extras.

Seminario 3: Creando Servidores HTTP y TCP en .NET (C#)
1. Creación de un Servidor de Mensajeria
2. Creación de un Servidor de Bases de Datos NoSQL
3. Creación de un Servidor Web
4. Creación de un Servidor WebSocket

Información
Día: Sábado 26 de Mayo del 2018
Horario: 4:00 pm a 10:00 pm.
Registro y Pago: 4:00 pm a 4:30 pm.
Duración: 6 horas

Inversión
- 100 Soles solo para Alumnos que estan llevando actualmente Cursos los Sábados y/o Domingos
- 200 Soles para el resto (ex-alumnos y público en general)

Vacantes y Lugar
Participantes: 15 Mínimo - 25 Máximo
Lugar: Mi Domicilio (Zona Norte de Lima)
Nota: A los que no conocen el lugar solo si se registran les enviaré la dirección exacta.

Contacto
Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:
Asunto: Tercer Seminario de Desarrollo Web ASP.NET MVC & JavaScript
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Alumno Regular de Talleres: Si / No

lunes, 2 de abril de 2018

Entrenamiento - Segundo Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Segundo Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Continuando con los Seminarios de una vez al mes el tema a tratar será como manejar archivos de Office 2007 (xlsx, docx, pptx) desde aplicaciones .NET, tanto Windows como Web.
Este tema es muy importante ya que la mayoría de programadores diariamente trabajan con Excel y algunos con Word, sobre todo archivos xlsx y docx.
En este seminario se verán las diferentes técnicas para poder crear y leer estos archivos, ya que sino se conocen las técnicas adecuadas, se tendrán problemas de velocidad (performance) tanto para leer como para escribir.

Seminario 2: Manejando Archivos de Office desde .NET (C#)

1. Creación de un Archivo de Excel desde Windows
  1.1. Crear con Automatización COM o ActiveX (Interop)
  1.2. Crear con Archivos de Texto y OLEDB
  1.3. Crear con Archivos XML si es un Archivo xlsx

2. Lectura de un Archivo de Excel desde Windows
  2.1. Leer con OLEDB en ADO.NET
  2.2. Leer Archivos XML si es un Archivo xlsx

3. Creación de un Archivo de Word desde Windows
  3.1. Crear con Automatización COM o ActiveX (Interop)
  3.2. Crear con Archivos XML si es un Archivo docx

4. Lectura de un Archivo de Word desde Windows
  4.1. Leer Archivos XML si es un Archivo docx
  4.2. Leer un Documento Plantilla y Crear un Nuevo Documento

5. Preview de Archivos de Office desde Aplicaciones Web
  5.1. Preview de una Hoja de Excel
  5.2. Preview de un Documento de Word
  5.3. Preview de Diapositivas de Power Point

6. Creación de Archivos de Office desde Aplicaciones Web
  6.1. Crear y Descargar un Archivo de Excel
  6.2. Crear y Descargar un Archivo de Word
  6.3. Crear y Descargar Varios Archivos de Excel o Word

Día y Hora:
- Día: Sábado 7 de Abril del 2018
- Horario: 4:00 pm a 10:00 pm.
- Duración: 6 horas

Inversión:
- 100 Soles para Alumnos Regulares de Talleres
- 200 Soles para Público en General

Participantes:
- 15 Mínimo
- 25 Máximo

Lugar:
- Mi Domicilio (Zona Norte de Lima)
Nota: A los que no conocen el lugar solo si se registran les enviaré la dirección exacta.

Contacto:
Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:
Asunto: Segundo Seminario de Desarrollo Web ASP.NET MVC & JavaScript
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Alumno Regular de Talleres: Si / No

miércoles, 28 de febrero de 2018

Entrenamiento - Cierre de Inscripciones para el Seminario y Curso de los Sábados

Cierre de Inscripciones para el Seminario y Curso de los Sábados

Estimados alumnos y visitantes del Blog, quiero comunicarles que solo hasta hoy Miércoles 28 de Febrero se estará registrando para el Curso del Sábado en las Mañanas y para el Primer Seminario del Sábado en la Tarde.

La inversión para el Curso de los Sábados en las Mañanas es de 300 soles para nuevos participantes y 150 soles para alumnos que siempre participan. En cuanto al Seminario del Sábado en la Tarde la inversión es de 200 soles para nuevos participantes y 100 soles para alumnos regulares (que siempre asisten a cursos, seminarios y talleres).

La dirección del Curso se estará enviando a los registrados mañana temprano y la del Seminario será en la Asociación Kallpa - Pasaje Capri 140, Urb. Palomar Norte, La Victoria
(Cerca a Metro y Claro de la Av. Arriola).

Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:
Asunto: [Primer Seminario o Curso] de Desarrollo Web ASP.NET MVC & JavaScript
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Alumno Regular de Talleres: Si / No

Nota: Alumno regular es que participa constantemente de los Cursos, Talleres y Seminarios, no los que han ido solo una vez o los que han ido varias pero no acaban.

Los esperamos este Sábado con mucho material en castellano sobre los temas a tratar.

martes, 20 de febrero de 2018

Entrenamiento - Primer Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Primer Seminario de Desarrollo Web ASP.NET MVC & JavaScript

Para todos los alumnos que participaron en los Cursos y Talleres de Desarrollo Web con ASP.NET MVC & JavaScript les comunico el inicio de los Seminarios una vez al mes, donde se verán algunos temas que quedaron pendientes y se profundizarán otros.

Seminario 1: Programación Asíncrona
En el BackEnd con .NET
- Subprocesamiento: Threads, ThreadPool
- Modelo de Programación Asincrona (APM): Metodos Begin y End, CallBacks
- Programación Asincrona por Eventos (EAP): Metodos Async, Eventos Completed
- Programación Asincrona por Tareas (TAP): Metodos Async, Tasks, async..await
En el FrontEnd con JavaScript
- Modelos de Programación Asíncrona: CallBacks y Promises
- Clases Asincronas en JavaScript: XmlHttpRequest, FileReader, WebSocket, etc.
- Creando Funciones Asíncronas usando WebWorkers
- Creando Funciones Asíncronas usando async..await (ES6)

Información
Día: Sábado 3 de Marzo
Horario: 4:30 pm a 09:30 pm.
Registro y Pago: 4:00 pm a 4:30 pm.
Duración: 5 horas
Inversión:
- 100 Soles para Alumnos Regulares de Talleres
- 200 Soles para Público en General
Participantes: 15 Mínimo - 30 Máximo
Lugar: Asociación Kallpa - Pasaje Capri 140, Urb. Palomar Norte, La Victoria
(Cerca a Metro y Claro de la Av. Arriola)

Contacto
Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:
Asunto: Primer Seminario de Desarrollo Web ASP.NET MVC & JavaScript
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Alumno Regular de Talleres: Si / No

martes, 13 de febrero de 2018

Entrenamiento - Curso de ASP.NET MVC & JavaScript Sábados Mañanas

Curso de Desarrollo Web ASP.NET MVC & JavaScript Sábados Mañanas

A los interesados les comunico la apertura de un nuevo grupo del Curso de ASP.NET MVC & JavaScript los días Sábados en las Mañanas.

En el curso se verá mi nueva Arquitectura Desconectada Sin Capas orientada a Performance y sobre todo se hará muchas aplicaciones en Tiempo Real usando Web Sockets todo en forma nativa solo con C# en el servidor y JavaScript puro en el cliente.

Beneficios de mi Arquitectura Web Desconectada Sin Capas y con Actualización en Tiempo Real

1. Desarrollo en menos tiempo al no usar Capas.
2. En Producción es la mas veloz por no usar Frameworks ni Librerías y pocos archivos.
3. El mantenimiento es muy simple ya que solo basta cambiar el Store Procedure, no el código C# ni JavaScript que son genéricos.

Contenido del Curso

1. Entendiendo el Desarrollo Web en ASP .NET
1.1. Arquitectura de una Aplicación Web ASP.NET
1.2. Aplicaciones Web Forms y Aplicaciones MVC
1.3. El problema de la Performance en Sitios Web
1.4. Arquitectura de Alto Rendimiento de una Aplicación Web

2. Creando Aplicaciones Web Distribuidas
2.1. Creando Librerías de Entidades del Negocio
2.2. Creando Librerías de Acceso a Datos
2.3. Creando Librerías de Reglas del Negocio
2.4. Creando una Aplicación Web MVC

3. Listando Registros
3.1. Usando el control WebGrid con Listas de Objetos
3.2. Usando JQuery y JSON
3.3. Usando XHR y Strings

4. Trabajando Desconectado con JavaScript
4.1. Filtrando registros
4.2. Paginando registros
4.3. Ordenando registros
4.4. Exportando a Texto y Excel

5. Mantenimiento, Popups, Cabecera Detalle e Impresión
5.1. Mantenimiento de registros
5.2. Creando Popups usando Divs
5.3. Trabajando con Cabecera Detalle
5.4. Imprimiendo datos de la página

6. Presentación Personalizada y Reportes con JavaScript
6.1. Vista Tablas
6.2. Vista Jerárquica Horizontal
6.3. Vista Jerárquica Vertical
6.4. Vista Tabla Cruzada

7. Gráficos con HTML5 y JavaScript
7.1. Creando Gráficos de Datos con Canvas
7.2. Creando Gráficos de Datos con SVG
7.3. Creando Gráficos Interactivos

8. Trabajando con Servicios (WCF y Web API)
8.1. Creando y Consumiendo un Servicio WCF alojado en IIS
8.2. Creando y Consumiendo un Servicio WCF alojado en su propio Servidor
8.3. Creando un Servicio Web API y Consumiendo desde .NET
8.4. Creando un Servicio Web API y Consumiendo desde JavaScript

9. Programación En Tiempo Real en ASP.NET
9.1. Creando un Servidor WebSocket usando Fleck
9.2. Actualizando en Tiempo Real una App Web usando WebSockets
9.3. Actualizando en Tiempo Real una App Windows usando WebSockets
9.4. Usando Web Sockets como Sistema Manejador de Archivos (CMS)
9.5. Usando Web Sockets para Controlar Dispositivos en el Cliente (Lectoras Impresoras, etc)

10. Manejando Gran Cantidad de Datos desde la App Web
10.1. Subir Archivos Gigantes desde la App Web al Sistema de Archivos
10.2.  Bajar Archivos Gigantes desde el Sistema de Archivos al Cliente
10.3. Grabar Miles de Registros desde la App Web al Servidor de Datos
10.4. Mostrar Miles de Registros desde el Servidor de Datos al Cliente

Observaciones sobre el Contenido

- No Uso Frameworks ni Librerías de Terceros Ni en el Servidor Ni en el Cliente
- 10 % del código está en el servidor en C#
- 90% del código está en el cliente en JavaScript (APIs nativas multi navegador)
- Todo los ejemplos son reales del día a día del programador.
- En todos los ejemplos el código esta basado en alto rendimiento (performance)
- A partir de la mitad del curso se resuelven los problemas mas comunes que presenta el Desarrollo Web debido al ancho de banda.

Horario

- Sábados de 9:00 am a 2:00 pm

Fecha de Inicio

- Sábado 3 de Marzo

Duración del Curso

Total: 120 horas
Tiempo: 6 meses
Frecuencia: 5 horas semanales (20 horas mensuales)

Inversión

- Mensual: 300 nuevos soles
- Total 6 meses: 1800 nuevos soles

Forma de Pago

- En efectivo, al inicio de cada mes (300 soles)

Contacto

Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:

Asunto: Curso ASP.NET MVC & JavaScript Sábados Mañanas
Contenido del Mail:
- Nombre Completo
- Lugar de Trabajo o Estudio
- Ha sido Ex-Alumno (especificar PECI .NET, Web Developer, Talleres, Seminarios)

Registro

Solo se considerará a los 25 primeros que envíen su correo ya que la capacidad del lugar es limitada.

Lugar del Curso

Será en la Zona Norte de Lima, se le enviará la dirección exacta a todos los registrados una semana antes de iniciar el curso.

viernes, 26 de enero de 2018

El Manual del Día: ADO .NET 4.5

MSDN - Manual de ADO .NET 4.5

Titulo: Manual de ADO .NET 4.5
Fuente Original: Microsoft Developer Network (MSDN)
Compilado Por: Luis Dueñas Huaroto (Lduenas)
Año de Compilación: 2010
Número de Páginas: 266

Indice del Manual de ADO .NET 4.5

1. Novedades en ADO.NET
2. Guía Básica de ADO.NET
3. Información General Acerca de ADO.NET
  3.1. Arquitectura de ADO .NET
  3.2 Proveedores de Datos de .NET Framework
  3.3. DataSets
  3.4. Ejecución en Paralelo
  3.5. Código de Ejemplo
4. Proteger Aplicaciones de ADO.NET
  4.1. Información General de Seguridad
  4.2. Acceso Seguro a Datos
  4.3. Aplicaciones Cliente Seguras
  4.4. Seguridad de Acceso del Código y ADO.NET
  4.5. Privacidad y Seguridad de Datos
5. Trabajar con Objetos DataSet
  5.1. Crear un DataSet
  5.2. Agregar un DataTable a un DataSet
  5.3. Agregar DataRelations
  5.4. Navegar por DataRelations
  5.5. Combinar Contenido de un DataSet
  5.6. Copiar Contenido de un DataSet
  5.7. Control de Eventos del DataSet
  5.8. DataSets con Establecimiento de Tipos
    5.8.1. Generar Objetos DataSet con Establecimiento Inflexible de Tipos
    5.8.2. Anotar DataSets con Establecimiento de Tipos
  5.9. DataTables
    5.9.1. Crear un DataTable
    5.9.2. Definición de Esquema de un DataTable
      5.9.2.1. Agregar Columnas al DataTable
      5.9.2.2. Crear Columnas de Expresión
      5.9.2.3. Crear Columnas AutoIncrement
      5.9.2.4. Definir Claves Principales
      5.9.2.5. Restricciones del DataTable
    5.9.3. Manipular Datos en el DataTable
      5.9.3.1. Agregar Datos al DataTable
      5.9.3.2. Ver Datos en un DataTable
      5.9.3.3. El Método Load
      5.9.3.4. Editar el DataTable
      5.9.3.5. Estados de Fila y Versiones de Fila
      5.9.3.6. Eliminar un DataRow
      5.9.3.7. Información de Errores de Fila
      5.9.3.8. AcceptChanges y RejectChanges
      5.9.3.9. Control de Eventos del DataTable
  5.10. DataTableReaders
    5.10.1. Crear un DataReader
    5.10.2. Navegar por DataTables
  5.11. DataViews
    5.11.1. Crear DataView
    5.11.2. Ordenar y Filtrar Datos
    5.11.3. DataRows y DataRowViews
    5.11.4. Buscar Filas
    5.11.5. ChildViews y Relaciones
    5.11.6. Modificar Objetos DataView
    5.11.7. Tratamiento de Eventos del DataView
    5.11.8. Administrar DataViews
    5.11.9. Crear DataTable Desde un DataView
  5.12. Utilizar XML en un DataSet
    5.12.1. DiffGrams
    5.12.2. Cargar DataSet desde un XML
    5.12.3. Escribir Contenido del DataSet como Datos XML
    5.12.4. Cargar la Información de Esquema de un DataSet desde XML
    5.12.5. Escribir la Información de Esquema de un DataSet como XSD
    5.12.6. Sincronización del DataSet y XmlDataDocument
      5.12.6.1. Sincronizar el DataSet con el XmlDataDocument
      5.12.6.2. Realizar una Consulta de XPath en un DataSet
      5.12.6.3. Aplicar una Transformación XSL a un DataSet
    5.12.7. Anidar DataRelations
  5.13. Consumir DataSet a partir de un Servicio Web XML
6. Manipular Datos
  6.1. Conectar con un Origen de Datos
    6.1.1. Establecer la Conexión
    6.1.2. Eventos de Conexión
    6.1.3. Contadores de Rendimiento
  6.2. Cadenas de Conexión
    6.2.1. Generadores de Cadenas de Conexión
    6.2.2. Cadenas de Conexión y Archivos de Configuración
    6.2.3. Sintaxis de la Cadena de Conexión
    6.2.4. Proteger la Información de Conexión
  6.3. Agrupación de Conexiones
    6.3.1. Agrupación de Conexiones en SQL Server
    6.3.2. Agrupación de Conexiones OLE DB, ODBC y Oracle
  6.4. Comandos
    6.4.1. Ejecutar un Comando
    6.4.2. Configurar Parámetros
    6.4.3. Generar Comandos con Objetos CommandBuilder
    6.4.4. Obtener un Unico Valor de una Base de Datos
    6.4.5. Utilizar Comandos para Modificar Datos
      6.4.5.1. Actualizar Datos en un Origen de Datos
      6.4.5.2. Realizar Operaciones de Catálogo
  6.5. DataReaders
    6.5.1. Recuperar Datos Mediante DataReader
    6.5.2. Recuperar Datos Binarios
  6.6. DataAdapters
    6.6.1. Rellenar un Objeto DataSet desde un Objeto DataAdapter
    6.6.2. Parámetros DataAdapter
    6.6.3. Agregar Restricciones Existentes al DataSet
    6.6.4. Asignar DataAdapter
    6.6.5. Paginar a Través de un Resultado de Consulta
    6.6.6. Actualizar Orígenes de Datos con DataAdapters
    6.6.7. Control de Eventos del DataAdapter
    6.6.8. Realizar Operaciones por Lotes con DataAdapters
  6.7. Recuperar Valores de Identidad o Valores Autonuméricos
  6.8. Transacciones
    6.8.1. Transacciones Locales
    6.8.2. Transacciones Distribuidas
    6.8.3. Integración de System.Transactions con SQL Server
  6.9. Modificar Datos con Procedimientos Almacenados
7. ADO .NET Entity Framework
  7.1. Información general de Entity Framework
  7.2. Modelado y asignación
    7.2.1. Generador de EDM (EdmGen.exe)
    7.2.2. Definir la cadena de conexión
    7.2.3. Cómo hacer que los archivos de asignación y de modelo sean recursos incrustados
    7.2.4. Trabajar con lenguaje de definición de datos
  7.3. Trabajar con proveedores de datos
    7.3.1. Cadenas de conexión
    7.3.2. Proveedores de datos de Entity Framework
      7.3.2.1. Proveedor de EntityClient para Entity Framework
        7.3.2.1.1. Cómo generar una cadena de conexión EntityConnection
        7.3.2.1.2. Ejecutar una consulta que devuelve resultados PrimitiveType
        7.3.2.1.3. Ejecutar una consulta que devuelve resultados StructuralType
        7.3.2.1.4. Cómo: Ejecutar una consulta que devuelve resultados RefType
        7.3.2.1.5. Cómo: Ejecutar una consulta que devuelve tipos complejos
        7.3.2.1.6. Cómo ejecutar una consulta que devuelve colecciones anidadas
        7.3.2.1.7. Cómo ejecutar una consulta de Entity SQL parametrizada con EntityCommand
        7.3.2.1.8. Cómo ejecutar un procedimiento almac. parametrizado usando EntityCommand
        7.3.2.1.9. Cómo ejecutar una consulta polimórfica
        7.3.2.1.10. Cómo: Navegar por las relaciones con el operador Navigate
      7.3.2.2. SqlClient para Entity Framework
        7.3.2.2.1. SqlClient para las funciones de Entity Framework
          7.3.2.2.1.1. Asignación entre las funciones canónicas del modelo conceptual y
                             las funciones de SQL Server
          7.3.2.2.1.2. Funciones de agregado
          7.3.2.2.1.3. Funciones de fecha y hora
          7.3.2.2.1.4. Funciones matemáticas
          7.3.2.2.1.5. Funciones de cadena
          7.3.2.2.1.6. Funciones del sistema
        7.3.2.2.2. Tipos de SqlClient para Entity Framework
        7.3.2.2.3. Problemas conocidos en SqlClient para Entity Framework
    7.3.3. Escribir un proveedor de datos de Entity Framework
      7.3.3.1. Generación de SQL
        7.3.3.1.1. Forma de los árboles de comandos
        7.3.3.1.2. Generar SQL a partir de árboles de comandos: procedimientos recomendados
      7.3.3.2. Generar SQL de modificación
      7.3.3.3. Especificación del manifiesto del proveedor
  7.4. Consideraciones de desarrollo e implementación
    7.4.1. Consideraciones de seguridad
    7.4.2. Consideraciones de rendimiento
    7.4.3. Consideraciones de la migración
    7.4.4. Consideraciones de implementación
  7.5. Terminología de Entity Framework

Descarga
Manual_ADO_.NET_4.5

jueves, 25 de enero de 2018

El Manual del Día: Programación Asíncrona y Paralela en .NET 4.5

MSDN - Manual de Programación Asíncrona y Paralela en .NET 4.5

Titulo: Manual de Programación Asíncrona y Paralela en .NET 4.5
Fuente Original: Microsoft Developer Network (MSDN)
Compilado Por: Luis Dueñas Huaroto (Lduenas)
Año de Compilación: 2010
Número de Páginas: 336

Indice del Manual de Programación Asíncrona y Paralela en .NET 4.5

1. Subprocesamiento administrado
  1.1. Principios básicos del subprocesamiento administrado
    1.1.1. Subprocesos y subprocesamiento
    1.1.2. Excepciones en subprocesos administrados
    1.1.3. Sincronizar datos para subprocesamiento múltiple
    1.1.4. Estados de subprocesos administrados
    1.1.5. Subprocesos de primer y segundo plano
    1.1.6. Subprocesamiento administrado y no administrado en Windows
    1.1.7. Thread.Suspend, recolección de elementos no utilizados y puntos de seguridad
    1.1.8. Almacenamiento local de subprocesos: Campos estáticos relacionados con
              subprocesos y ranuras de datos
    1.1.9. Cancelación en subprocesos administrados
      1.1.9.1. Cómo: Realizar escuchas de solicitudes mediante sondeo
      1.1.9.2. Cómo: Registrar devoluciones de llamadas de solicitudes de cancelación
      1.1.9.3. Cómo: Realizar escuchas de solicitudes de cancelación cuando tienen
                   controladores de espera
      1.1.9.4. Cómo: Realizar escuchas de varias solicitudes de cancelación
  1.2. Utilizar subprocesos y subprocesamiento
    1.2.1. Crear subprocesos y analizar los datos en el inicio
    1.2.2. Pausar y reanudar subprocesos
    1.2.3. Destruir subprocesos
    1.2.4. Planear subprocesos
    1.2.5. Cancelar subprocesos de manera cooperativa
  1.3. Procedimientos recomendados para el subprocesamiento administrado
  1.4. Objetos y características de subprocesos
    1.4.1. Grupo de subprocesos administrados
    1.4.2. Temporizadores
    1.4.3. Monitores
    1.4.4. Controladores de espera
    1.4.5. Controladores de espera
      1.4.5.1. EventWaitHandle
      1.4.5.2. AutoResetEvent
      1.4.5.3. ManualResetEvent y ManualResetEventSlim
      1.4.5.4. CountdownEvent
    1.4.6. Exclusiones mutuas (mutex)
    1.4.7. Operaciones de bloqueo
    1.4.8. Bloqueos de lector y escritor
    1.4.9. Semaphore y SemaphoreSlim
    1.4.10. Información general sobre los primitivos de sincronización
    1.4.11. Barrier
      1.4.11.1. Cómo: Sincronizar operaciones simultáneas con una clase Barrier
    1.4.12. SpinLock
      1.4.12.1. Cómo: Utilizar SpinLock para la sincronización de bajo nivel
      1.4.12.2. Cómo: Habilitar el modo de seguimiento de subproceso en el bloqueo SpinLock
    1.4.13. Tokens de cancelación
    1.4.14. SpinWait
      1.4.14.1. Cómo: Usar SpinWait para implementar una operación de espera de dos fases
2. Modelos para la programación asincrónica
  2.1. Modelo asincrónico basado en tareas (TAP)
    2.1.1. Implementar el modelo asincrónico basado en tareas
    2.1.2. Utilizar el modelo asincrónico basado en tareas
    2.1.3. Interoperabilidad con los modelos asincrónicos y otros tipos
  2.2. Publicar datos de símbolos
    2.2.1. Programación multiproceso con el modelo asincrónico basado en eventos
      2.2.1.1. Información general sobre el modelo asincrónico basado en eventos
      2.2.1.2. Implementar el modelo asincrónico basado en eventos
      2.2.1.3. Procedimientos recomendados para implementar el modelo asincrónico
                   basado en eventos
      2.2.1.4. Decidir cuándo implementar el modelo asincrónico basado en eventos
      2.2.1.5. Tutorial: Implementar un componente que admita el modelo asincrónico
                   basado en eventos
        2.2.1.5.1. Cómo: Implementar un componente que admita el modelo asincrónico
                        basado en eventos
        2.2.1.5.2. Cómo: Implementar un cliente en un modelo asincrónico basado en eventos
      2.2.1.6. Cómo: Utilizar componentes que admitan el modelo asincrónico basado en eventos
  2.3. Modelo de programación asincrónica (APM)
    2.3.1. Llamar a métodos asincrónicos mediante IAsyncResult
      2.3.1.1. Bloquear la ejecución de una aplicación mediante AsyncWaitHandle
      2.3.1.2. Bloquear la ejecución de una aplicación al finalizar una operación asincrónica
      2.3.1.3. Sondear el estado de una operación asincrónica
      2.3.1.4. Utilizar un delegado AsyncCallback para finalizar una operación asincrónica
        2.3.1.4.1. Utilizar un delegado AsyncCallback y un objeto State
    2.3.2. Programación asincrónica mediante delegados
      2.3.2.1. Llamar a métodos sincrónicos de forma asincrónica
      2.3.2.2. Ejemplo de programación de delegados asincrónicos
3. Programación paralela en .NET Framework
  3.1. Biblioteca de procesamiento paralelo basado en tareas (TPL)
    3.1.1. Paralelismo de datos (Task Parallel Library)
      3.1.1.1. Cómo: Escribir un bucle Parallel.For simple
      3.1.1.2. Cómo: Escribir un bucle Parallel.ForEach simple
      3.1.1.3. Cómo: Detener o interrumpir un bucle Parallel.For
      3.1.1.4. Cómo: Escribir un bucle Parallel.For que tenga variables locales de subproceso
      3.1.1.5. Cómo: Escribir un bucle Parallel.ForEach que tenga variables locales de subproceso
      3.1.1.6. Cómo: Cancelar un bucle Parallel.For o ForEach
      3.1.1.7. Cómo: Controlar excepciones en bucles paralelos
      3.1.1.8. Cómo: Acelerar cuerpos de bucle pequeños
      3.1.1.9. Cómo: Recorrer en iteración directorios con la clase paralela
    3.1.2. Paralelismo de tareas (Task Parallel Library)
      3.1.2.1. Tareas de continuación
      3.1.2.2. Tareas anidadas y tareas secundarias
      3.1.2.3. Cancelación de tareas
      3.1.2.4. Control de excepciones
      3.1.2.5. Cómo: Usar Parallel.Invoke para ejecutar operaciones paralelas
      3.1.2.6. Cómo: Devolver un valor de una tarea
      3.1.2.7. Cómo: Esperar a que una o varias tareas se completen
      3.1.2.8. Cómo: Cancelar una tarea y sus elementos secundarios
      3.1.2.9. Cómo: Controlar excepciones iniciadas por tareas
      3.1.2.10. Cómo: Encadenar varias tareas con continuaciones
      3.1.2.11. Cómo: Crear tareas precalculadas
      3.1.2.12. Cómo: Recorrer un árbol binario con tareas paralelas
      3.1.2.13. Cómo: Desencapsular una tarea anidada
      3.1.2.14. Cómo: Evitar que una tarea secundaria se adjunte a su elemento primario
    3.1.3. Biblioteca de procesamiento paralelo basado en tareas (TPL)
      3.1.3.1. Cómo: Escribir y leer mensajes en un bloque de flujo de datos
      3.1.3.2. Cómo: Implementar un modelo de flujo de datos productor-consumidor
      3.1.3.3. Cómo: Realizar una acción cuando un bloque de flujos de datos recibe datos
      3.1.3.4. Tutorial: Crear una canalización de flujos de datos
      3.1.3.5. Cómo: Desvincular bloques de flujos de datos
      3.1.3.6. Tutorial: Usar flujos de datos en aplicaciones de Windows Forms
      3.1.3.7. Cómo: Cancelar un bloque de flujos de datos
      3.1.3.8. Tutorial: Crear tipos de bloques de flujos de datos personalizados
      3.1.3.9. Cómo: Usar JoinBlock para leer datos de diferentes orígenes
      3.1.3.10. Cómo: Especificar el grado de paralelismo en un bloque de flujos de datos
      3.1.3.11. Cómo: Especificar un programador de tareas en un bloque de flujos de datos
      3.1.3.12. Tutorial: Usar BatchBlock y BatchedJoinBlock para mejorar la eficacia
    3.1.4. TPL con otros modelos asincrónicos
      3.1.4.1. TPL y la programación asincrónica tradicional de .NET
      3.1.4.2. Cómo: Encapsular modelos de EAP en una tarea
      3.1.4.3. Problemas potenciales en el paralelismo de datos y tareas
  3.2. Parallel LINQ (PLINQ)
    3.2.1. Introducción a PLINQ
    3.2.2. Introducción a la velocidad en PLINQ
    3.2.3. Conservar el orden en PLINQ
    3.2.4. Opciones de combinación en PLINQ
    3.2.5. Posibles problemas con PLINQ
    3.2.6. Cómo: Crear y ejecutar una consulta PLINQ simple
    3.2.7. Cómo: Controlar la ordenación en una consulta PLINQ
    3.2.8. Cómo: Combinar consultas LINQ paralelas y secuenciales
    3.2.9. Cómo: Controlar excepciones en una consulta PLINQ
    3.2.10. Cómo: Cancelar una consulta PLINQ
    3.2.11. Cómo: Escribir una función de agregado personalizada de PLINQ
    3.2.12. Cómo: Especificar el modo de ejecución en PLINQ
    3.2.13. Cómo: Especificar opciones de combinación en PLINQ
    3.2.14. Cómo: Recorrer en iteración directorios con PLINQ
    3.2.15. Cómo: Medir el rendimiento de consultas PLINQ
    3.2.16. Ejemplo de datos de PLINQ
  3.3. Estructuras de datos para la programación paralela
  3.4. Herramientas de diagnóstico paralelo
  3.5. Particionadores personalizados para PLINQ y TPL
    3.5.1. Cómo: Implementar las particiones dinámicas
    3.5.2. Cómo: Implementar un particionador con un número estático de particiones
  3.6. Generadores de tareas
  3.7. Programadores de tareas
    3.7.1. Cómo: Crear un programador de tareas que limita el grado de simultaneidad
    3.7.2. Cómo: Programar trabajo en el subproceso de la interfaz de usuario
  3.8. Expresiones lambda en PLINQ y TPL

Descarga

lunes, 22 de enero de 2018

Entrenamiento - Primer Curso IoT con Arduino e Integración con Aplicaciones Android

Primer Curso Internet de las Cosas con Arduino e Integración con Aplicaciones Android

Comparto con ustedes el contenido de este nuevo programa de capacitación que se estará brindando para todos los interesados en aprender a programar elementos hardware. Nos enfocaremos en el entorno de programación Arduino, conoceremos los principios básicos de electrónica necesarios para comprender los conceptos que se expliquen en clase.

Este curso será presencial en la ciudad de Lima, Perú y será impartido por el consultor Eduardo Monroy Husillos de nacionalidad española, quien cuenta con amplia experiencia en el desarrollo de aplicaciones Androd/IOs sobre dispositivos electrónicos conectados a Internet.

Formación académica del expositor:

Maestría especialidad de electrónica industrial (Escuela de Ingenieros de Bilbao).
Postgrado en sistema de transmisión de datos, telecomunicaciones analógicas y digitales. (Escuela de Ingenieros de Bilbao)
Máster en programación en dispositivos móviles iOS. (Standford University)
Capacitación en programación en Android (Aula Mentor – Ministerio de Educación)
Sistemas de localización RFID Activa IP (Dusseldorf – Alemania)
Técnicas de localización mediante sensores Smartphone (Heathrow – Inglaterra)

Contenido del curso:

Marco Teórico

- Conceptos básicos de electricidad
- Circuitos eléctricos básicos
- Fuentes de alimentación
- Componentes electrónicos
- Uso de la placa de entrenamiento

- Conceptos de microcontrolador
- Qué es Arduino
- Características de la placa Arduino
- Tipos de placas Arduino
- Explicación del IDE de la plataforma Arduino

- Mi primer sketch de Arduino
- Estructura del sketch
- Comentarios
- Variables
- Constantes
- Parámetros de una instrucción
- Valores de retorno de una instrucción
- Instrucciones de gestión de tiempo
- Instrucciones matemáticas
- Instrucciones de gestión de cadenas
- Creación de funciones
- Bloques condicionales
- Bloques repetitivos
- Uso de librerías
- Uso de pantallas
- Uso de la EEPROM
- Comunicación Serie
- Comunicación I2C
- Comunicación SPI
- Uso de entradas y salidas digitales
- Uso de entradas y salidas Analógicas

- Sensores de luz
- Sensores de Infrarrojos
- Sensores de temperatura
- Sensores de distancia

- Comunicación Wifi
- Comunicación Ethernet
- Comunicaciones Bluetooth
- Comunicaciones BLE
- GPS

- Uso de motores
- Uso de servomotores
- Uso de relés

Marco Práctico

Junto a la explicación de la teoría se harán ejemplos prácticos donde los alumnos podrán ejecutar los ejemplos vistos en sus propios equipos de desarrollo.

Para el seguimiento del curso es necesario contar con el kit de desarrollo Arduino 1 cuya lista de componentes serán enviados a los interesados con las recomendaciones sobre dónde pueden adquirir los materiales. Los componentes tienen precios de centavos de dólar.

No es necesario contar con experiencia en desarrollo de aplicaciones Android dado que se hará una introducción de esta plataforma dentro del capítulo de integración con aplicaciones móviles.

Horario
Martes de 7:00 p.m. a 10:00 p.m.

Fecha de inicio
Martes 6 de febrero

Duración del curso
Total: 36 horas
Tiempo: 3 meses
Frecuencia: 3 horas semanales (12 horas mensuales)

Inversión
Mensual: 320.00 soles
Total 3 meses: 960.00 soles

Contacto
Los interesados enviar un mail a jmoreno@gctiperu.com para inscripción con los siguientes datos:

Asunto: Curso Internet de las Cosas con Arduino

Contenido del correo:
Nombre completo
Lugar de trabajo o estudio
Número de teléfono celular

Forma de Pago

Bajo depósito en cuenta bancaria, máximo 3 días previo al inicio de cada mes (320.00 soles)
Banco: SCOTIABANK
Cuenta: 027-7533832
Código Interbancario: 00921920027753383274
Moneda: Soles
Nombre: Edward Schwarz Moreno
DNI: 09564483

Registro

Sólo se considerará a los 20 primeros que envíen correo electrónico adjuntando el comprobante por el depósito realizado dado que la capacidad del lugar es limitada. La metodología del curso seguirá siendo la misma que se ha venido aplicando a los tallares de MVC-JavaScript. 

No se entregará comprobante por el pago mensual y no se hará entrega de certificado de asistencia al curso. La capacitación está dirigida especialmente a la comunidad de alumnos que he venido entrenando a lo largo de estos últimos años, a los seguidores del Blog y al público en general que desee participar.