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.