viernes, 31 de octubre de 2014

El Libro del Día: MCTS Exam 70505

El Libro del Día: 2014-10-31

Titulo: MCTS Exam 70505. NET Framework 3.5 Windows Forms Application Development
Autor: Matthew A. Stoecker, Steve J. Stein
Editorial: Microsoft
Nro Paginas: 774

Capítulos:
CHAPTER 1 Windows Forms and the User Interface
CHAPTER 2 Configuring Controls and Creating the User Interface
CHAPTER 3 Advanced Windows Forms Controls
CHAPTER 4 Tool Strips, Menus, and Events
CHAPTER 5 Configuring Connections and Connecting to Data
CHAPTER 6 Working with Data in a Connected Environment
CHAPTER 7 Create, Add, Delete, and Edit Data in a Disconnected Environment
CHAPTER 8 Implementing Data-Bound Controls
CHAPTER 9 Working with XML
CHAPTER 10 Printing in Windows Forms
CHAPTER 11 Advanced Topics in Windows Forms
CHAPTER 12 Enhancing Usability
CHAPTER 13 Asynchronous Programming Techniques
CHAPTER 14 Creating Windows Forms Controls
CHAPTER 15 Deployment

Descarga:
MCTS_SelfPaced_TrainingKit_Exam70505

jueves, 30 de octubre de 2014

El Libro del Día: MCTS Exam 70529

El Libro del Día: 2014-10-30

Titulo: MCTS Exam 70529. NET Framework 2.0 Distributed Application Development
Autor: Sara Morgan, Bill Ryan, Shannon Horn
Editorial: Microsoft
Nro Paginas: 749

Capítulos:
1. Creating an XML Web Service
2. Extending XML Web Services with SOAP Formatting, Custom Headers, and Extensions
3. Configuring and Publishing XML Web Services
4. Creating a Remoting Server Application
5. Creating a Remoting Client Application
6. Debugging and Deploying Remote Applications
7. Method Invokations and Event Managament with .NET Web Services
8. Method Invokations and Event Managament with .NET Remoting
9. Web Services Enhancements 3.0 in Client and Server Applications
10. WSE Security
11. Messaging and Routing
12. Creating Serviced Components
13. Serviced Component Management

Descarga:
MCTS_SelfPaced_TrainingKit_Exam70529

miércoles, 29 de octubre de 2014

El Libro del Día: MCTS Exam 70528

El Libro del Día: 2014-10-29

Titulo: MCTS Exam 70528. NET Framework 2.0 Web Based Client Development
Autor: Glenn Johnson, Tony Northrup
Editorial: Microsoft
Nro Paginas: 936

Capítulos:
1. Introducing the ASP.NET 2.0 Web Site
2. Adding and Configuring Server Controls
3. Exploring Specialized Server Controls
4. Using ADO.NET and XML with ASP.NET
5. Creating Custom Web Controls
6. Input Validation and Site Navigation
7. ASP.NET State Management
8. Programming the Web Application
9. Customizing and Personalizing a Web Application
10. Globalization and Accessibility
11. Implementing Authentication and Authorization
12. Creating ASP.NET Mobile Web Applications
13. Monitoring, Deploying, and Caching Applications

Descarga:
MCTS_SelfPaced_TrainingKit_Exam70528

martes, 28 de octubre de 2014

El Libro del Día: MCTS Exam 70526

El Libro del Día: 2014-10-28

Titulo: MCTS Exam 70526. NET Framework 2.0 Windows Based Client Development
Autor: Matthew A. Stoecker, Steve J. Stein
Editorial: Microsoft
Nro Paginas: 793

Capítulos:
1. Windows Forms and the User Interface
2. Configuring Controls and Creating the User Interface
3. Advanced Windows Forms Controls
4. Tool Strips, Menus, and Events
5. Configuring Connections and Connecting to Data
6. Working with Data in a Connected Environment
7. Create, Add, Delete, and Edit Data in a Disconnected Environment
8. Implementing Data Bound Controls
9. Working with XML
10. Printing in Windows Forms
11. Advanced Topics in Windows Forms
12. Enhancing Usability
13. Asynchronous Programming Techniques
14. Creating Windows Forms Controls
15. Deployment

Descarga:
MCTS_SelfPaced_TrainingKit_Exam70526

lunes, 27 de octubre de 2014

El Libro del Día: MCTS Exam 70536

El Libro del Día: 2014-10-27

Titulo: MCTS Exam 70536. NET Framework 2.0 Application Development Foundation
Autor: Tony Northrup, Shawn Wildermuth, Bill Ryan
Editorial: Microsoft
Nro Paginas: 1078

Capítulos:
1 Framework Fundamentals
2 Input/Output (I/O)
3 Searching, Modifying, and Encoding Text
4 Collections and Generics
5 Serialization
6 Graphics
7 Threading
8 Application Domains and Services
9 Installing and Configuring Applications
10 Instrumentation
11 Application Security
12 User and Data Security
13 Interoperation
14 Reflection
15 Mail
16 Globalization

Descarga:
MCTS_SelfPaced_TrainingKit_Exam70536

domingo, 26 de octubre de 2014

El Libro del Día: La Biblia de Visual Basic .NET (Cap 6)

El Libro del Día: 2014-10-26

Titulo: La Biblia de Visual Basic .NET (Capítulo 6)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 147

Capítulo 6: Desarrollando Aplicaciones con WPF
1. Creando Aplicaciones Básicas con WPF
1.1. Introducción a WPF
1.2. Trabajando con Ventanas
1.3. Trabajando con Páginas
1.4. Usando Cuadros de Diálogo
2. Usando Enlace de Datos
2.1. Introducción al Enlace de Datos
2.2. Usando Enlace de Datos
2.3. Usando Conversión de Datos
2.4. Usando Plantillas de Datos
2.5. Usando el Control DataGrid
3. Manejando Documentos
3.1. Introducción al Manejo de Documentos
3.2. Trabajando con Documentos Fijos
3.3. Creando Anotaciones en Documentos
3.4. Trabajando con Documentos Dinámicos
4. Manejando Multimedia
4.1. Introducción al Manejo de Multimedia
4.2. Implementando Voz
4.3. Trabajando con Audio y Video
Indice de Ejemplos del Libro
Enlaces de Referencia

Descarga:
Biblia_VisualBasicNET_Capitulo6

El Libro del Día: jQuery For Dummies

El Libro del Día: 2014-10-26

Titulo: jQuery For Dummies
Autor: Lynn Beighley
Editorial: Wiley
Nro Paginas: 364

Capítulos:
Part I: Getting Started with jQuery
Chapter 1: Getting Up and Running with jQuery
Chapter 2: Accessing HTML Elements
Chapter 3: Selecting HTML Elements, Attributes, and Positions
Chapter 4: Managing Events
Part II: Affecting Elements with Effects
Chapter 5: Playing Hide-and-Seek with Web Page Elements
Chapter 6: Sliding and Fading Web Page Elements
Chapter 7: Animating Web Page Elements
Part III: Manipulating Your Web Page
Chapter 8: Making Web Page Content Dynamic
Chapter 9: Replacing, Removing, and Copying Web Page Elements
Part IV: Using Plug-ins and Widgets
Chapter 10: Understanding Plug-ins
Chapter 11: Playing with Image Effects
Chapter 12: Jazzing Up Forms
Chapter 13: Toying with Page Layout
Chapter 14: Incorporating a User Interface
Part V: Building AJAX Applications
Chapter 15: Understanding How AJAX Works with jQuery
Chapter 16: Using AJAX Plug-ins
Part VI: Integrating jQuery with Content Management Systems
Chapter 17: Cool Image Effects with jQuery and Drupal
Chapter 18: Integrating jQuery and Joomla
Chapter 19: Building Better Blogs with jQuery and WordPress
Part VII: The Part of Tens
Chapter 20: Ten Don’t-Miss Plug-ins
Chapter 21: Ten Design and Code Tricks
Chapter 22: Ten jQuery Resources

Descarga:
jQuery_For_Dummies

sábado, 25 de octubre de 2014

El Libro del Día: La Biblia de Visual Basic .NET (Cap 5)

El Libro del Día: 2014-10-25

Titulo: La Biblia de Visual Basic .NET (Capítulo 5)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 112

Capítulo 5: Desarrollando Aplicaciones Web con ASP .NET
1. Trabajando con el Formulario y los Controles Web
1.1. Introducción a ASP .NET
1.2. Creando un Simple Sitio Web
1.3. Usando Controles Web Intrínsecos
1.4. Usando Controles Web de Imágenes
1.5. Usando el Control FileUpload y Controles de Validación
2. Mejorando el Diseño y Navegabilidad del Sitio Web
2.1. Creando y usando Hojas de Estilos en Cascada
2.2. Paginas Principales y Controles de Navegación
2.3. Usando Controles de Vistas MultiView y Views
3. Usando el Control GridView
3.1. Personalizando Columnas en el GridView
3.2. Paginando en el GridView
3.3. Ordenando en el GridView
3.4. Mantenimiento de Datos en el GridView
4. Creando Plantillas en Controles Enlazados a Datos
4.1. Trabajando con el Control Repeater
4.2. Trabajando con el Control DataList
4.3. Creando Plantillas Jerárquicas

Descarga:
Biblia_VisualBasicNET_Capitulo5

El Libro del Día: jQuery 1.4 Animation Techniques

El Libro del Día: 2014-10-25

Titulo: jQuery 1.4 Animation Techniques
Autor: Dan Wellman
Editorial: Packt
Nro Paginas: 344

Capítulos:
Chapter 1: Introduction
Chapter 2: Fading Animations
Chapter 3: Managing Animations
Chapter 4: Sliding Animations
Chapter 5: Custom Animations
Chapter 6: Extended Animations with jQuery UI
Chapter 10: Canvas Animations
Pop Quiz Answers

Descarga:
jQuery_1.4_Animation_Techniques

viernes, 24 de octubre de 2014

El Libro del Día: La Biblia de Visual Basic .NET (Cap 4)

El Libro del Día: 2014-10-24

Titulo: La Biblia de Visual Basic .NET (Capítulo 4)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 158

Capítulo 4: Desarrollando Aplicaciones Windows Forms
1. Trabajando con el Formulario y los Controles Windows
1.1. Trabajando con el Formulario Windows
1.2. Usando Controles Básicos
1.3. Usando Controles de Listas
1.4. Usando Controles de Vistas
2. Creando Formularios MDIs, Menús, Diálogos y Barras
2.1. Creando Formularios MDIs
2.2. Creando Menús
2.3. Usando Dialogos de Windows
2.4. Agregando Barras
3. Usando el Control DataGridView
3.1. Personalizando Columnas en el DataGridView
3.2. Mostrando una Imagen en una Columna
3.3. Personalizando las Cabeceras de las Columnas
3.4. Graficando en el DataGridView
3.5. Paginando en un DataGridView
4. Creando una Biblioteca de Controles Windows
4.1. Creando Controles Extendidos
4.2. Creando Controles de Usuario
4.3. Creando Controles Personalizados
5. Creando Reportes e Impresiones en Windows Forms
5.1. Usando PrintDocument
5.2. Informes de Microsoft
5.3. Trabajando con Word
5.4. Trabajando con Excel
5.5. Usando el Control Chart

Descarga:
Biblia_VisualBasicNET_Capitulo4

El Libro del Día: jQuery Game Development Essentials

El Libro del Día: 2014-10-24

Titulo: jQuery Game Development Essentials
Autor: Selim Arsever
Editorial: Packt
Nro Paginas: 244

Capítulos:
Chapter 1: jQuery for Games
Chapter 2: Creating Our First Game
Chapter 3: Better, Faster, but not Harder
Chapter 4: Looking Sideways
Chapter 5: Putting Things into Perspective
Chapter 6: Adding Levels to Your Games
Chapter 7: Making a Multiplayer Game
Chapter 8: Let's Get Social
Chapter 9: Making Your Game Mobile
Chapter 10: Making Some Noise

Descarga:
jQuery_Game_Development_Essentials

jueves, 23 de octubre de 2014

El Libro del Día: La Biblia de Visual Basic .NET (Cap 3)

El Libro del Día: 2014-10-23

Titulo: La Biblia de Visual Basic .NET (Capítulo 3)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 152

Capítulo 3: Accediendo a Datos con ADO .NET
1. Trabajando en Forma Conectada
1.1. Introducción al Acceso a Datos con ADO .NET
1.2. Conectarse a un Origen de Datos
1.3. Ejecutando Comandos de Selección
1.4. Realizando un Mantenimiento Conectado
2. Trabajando en Forma Desconectada con DataSet
2.1. Trabajando con Tablas y Relaciones
2.2. Trabajando con Vistas
2.3. Mantenimiento Desconectado con DataSet
3. Trabajando en Forma Desconectada con Listas de Objetos
3.1. Llenando una Lista de Objetos
3.2. Filtrando Datos en una Lista de Objetos
3.3. Ordenando y Buscando datos en una Lista de Objetos
3.4. Mantenimiento con Objetos
4. LINQ
4.1. LINQ a DataSet
4.2. LINQ a SQL
4.3. LINQ a Entidades

Descarga:
Biblia_VisualBasicNET_Capitulo3

El Libro del Día: Beginning JavaScript Charts

El Libro del Día: 2014-10-23

Titulo: Beginning JavaScript Charts
Autor: Fabio Nelli
Editorial: Apress
Nro Paginas: 602

Capítulos:
Chapter 1: Charting Technology Overview
Chapter 2: jQuery Basics
Chapter 3: Simple HTML Tables
Chapter 4: Drawing a Line Chart
Chapter 5: Drawing a Bar Chart
Chapter 6: Drawing a Pie Chart
Chapter 7: Creating a Library for Simple Charts
Chapter 8: Introducing jqPlot
Chapter 9: Line Charts with jqPlot
Chapter 10: Bar Charts with jqPlot
Chapter 11: Pie Charts and Donut Charts with jqPlot
Chapter 12: Candlestick Charts with jqPlot
Chapter 13: Scatter Charts and Bubble Charts with jqPlot
Chapter 14: Funnel Charts with jqPlot
Chapter 15: Adding Controls to Charts
Chapter 16: Embedding jqPlot Charts in jQuery Widgets
Chapter 17: Handling Input Data
Chapter 18: Moving from jqPlot to Highcharts
Chapter 19: Working with D3
Chapter 20: Line Charts with D3
Chapter 21: Bar Charts with D3
Chapter 22: Pie Charts with D3
Chapter 23: Candlestick Charts with D3
Chapter 24: Scatterplot and Bubble Charts with D3
Chapter 25: Radar Charts with D3
Chapter 26: Handling Live Data with D3
Appendix A: Guidelines for the Examples in the Book
Appendix B: jqPlot Plug-ins

Descarga:
Beginning_JavaScript_Charts

miércoles, 22 de octubre de 2014

El Libro del Día: La Biblia de Visual Basic .NET (Cap 2)

El Libro del Día: 2014-10-22

Titulo: La Biblia de Visual Basic .NET (Capítulo 2)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 111

Capítulo 2: Programando con Visual Basic .NET 2010
1. Trabajar con el Entorno de Windows y el Sistema
1.1. Obtener Información del Sistema
1.2. Obtener Directorios Especiales de Windows
1.3. Acceder al Registro de Windows
1.4. Trabajar con Procesos o Tareas del Sistema
2. Manejo de Entrada y Salida
2.1. Manejar Unidades, Directorios, Rutas y Archivos
2.2. Leer y Escribir en un Archivo
2.3. Dividir y Unir Archivos
2.4. Comprimir y Descomprimir un Archivo
3. Programación Orientada a Objetos (POO)
3.1. Introducción a la POO y MDD
3.2. Creando Bibliotecas de Clases
3.3. Creando una Aplicación que use las Bibliotecas de Clases
4. Programación Asíncrona y Paralelismo
4.1. Threads
4.2. Eventos Asíncronos
4.3. Delegados CallBacks
4.4. Programación Paralela
5. Criptografía o Cifrado de Datos
5.1. Cifrado Simétrico por Caracter
5.2. Cifrado Simétrico por Bloques
5.3. Valores Hash Criptográficos

Descarga:
Biblia_VisualBasicNET_Capitulo2

El Libro del Día: Pro JavaScript Performance

El Libro del Día: 2014-10-22

Titulo: Pro JavaScript Performance
Autor: Tom Barker
Editorial: Apress
Nro Paginas: 219

Capítulos:
Chapter 1: What is Performance
Chapter 2: Tools and Technology to Measure and Impact Performance
Chapter 3: WPTRunner - Automated Performance Monitoring and Visualization
Chapter 4: perfLogger - JavaScript Benchmarking and Logging
Chapter 5: Looking Forward, a Standard for Performance
Chapter 6: Web Performance Optimizations
Chapter 7: Runtime Performance
Chapter 8: Balancing Performance with Software Engineering Best Practices

Descarga:
Pro_Javascript_Performance

martes, 21 de octubre de 2014

El Demo del Día: Capturar y Reproducir Pantallas en WinForms

Capturar y Reproducir Pantallas en WinForms

En este post veremos como crear una aplicación que permita lanzar cualquier aplicación o programa (archivo exe) y como capturamos la pantalla (en realidad las ventanas) de dicha aplicación hasta que esta finalice, ya sea en forma normal (por el cierre del usuario) o por una excepción No controlada por la aplicación.

Requerimiento

A veces no tenemos el código fuente de un programa que presenta problemas en su funcionamiento y no se sabe porque se cae, ya que No tiene Log de errores o una forma de saber porque se cerró.

Solución

Para resolver el problema vamos a construir una aplicación en Windows Forms que permita lanzar la aplicación o programa, luego capturar sus pantallas y finalmente mostrar la secuencia de pantallas como si fuera un video, aunque no lo sea (por el momento).

La técnica consiste en crear un objeto Pantalla con un par de propiedades: Fecha y Hora de Captura e Imagen a Capturar, luego lanzaremos la aplicación con Process.Start y habilitaremos un Timer que cada segundo verifique si el proceso esta en ejecución y si lo esta enviaremos la tecla capturar ventana y recuperaremos del Clipboard la imagen guardándola en el objeto y agregándola a una lista de objetos.

Si se salio de la aplicación analizada, se serializará en forma binaria y se guardará la lista de objetos en un archivo llamado "PrintScreen.dll" e inmediatamente se habilitará otro Timer que permite mostrar cada imagen de la lista de imagen.

Crear la Aplicación Windows en Windows Forms

Crear un Nuevo Proyecto "Aplicación de Windows Forms" en C# llamado: "CapturaPantalla" y agregar la clase "bePantalla" como sigue:

using System;
using System.Collections.Generic;
using System.Drawing;

namespace CapturaPantalla
{
    [Serializable]
    public class bePantalla
    {
        public DateTime FechaHora { get; set; }
        public Image Imagen { get; set; }
    }
}

Nota: Se usa el atributo Serializable sobre la clase bePantalla porque vamos a guardarlo en un archivo binario serializando.

Cambiar de nombre al formulario por: "frmCaptura" y arratrar los siguientes controles:
- Panel: pnlCaptura
- Label: lblTitulo con el Text="Selecciona el Programa a Capturar la Pantalla"
- TextBox: txtArchivo
- Button: btnIniciar con Text="Iniciar"
- Timer: tmrCaptura con Interval=1000
- Timer: tmrReproduce con Interval=1000

El diseño de la pantalla debe quedar como se muestra a continuación:


Escribir el siguiente código en el formulario "frmCaptura":

using System;
using System.Collections.Generic; //List
using System.Windows.Forms; //Form, SendKeys, Clipboard, etc
using System.Drawing; //Image, Bitmap, Size
using System.Diagnostics; //Process
using System.IO; //FileStream, FileMode, FileAccess, FileShare
using System.Runtime.Serialization.Formatters.Binary; //BinaryFormatter

namespace CapturaPantalla
{
    public partial class frmCaptura : Form
    {
        private Process proceso;
        private List<bePantalla> lbePantalla;
        private int c;

        public frmCaptura()
        {
            InitializeComponent();
        }

        private void mostrarDialogoAbrir(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "Selecciona un archivos de programa";
            ofd.Filter = "Archivos de programa|*.exe";
            if (ofd.ShowDialog().Equals(DialogResult.OK))
            {
                txtArchivo.Text = ofd.FileName;
            }
        }

        private void iniciarCaptura(object sender, EventArgs e)
        {
            this.Visible = false;
            pnlCaptura.Visible = false;
            lbePantalla = new List<bePantalla>();
            proceso = Process.Start(txtArchivo.Text);
            tmrCaptura.Enabled = true;
            tmrCaptura.Start();
        }

        private void capturarPantalla(object sender, EventArgs e)
        {
            if (proceso != null && !proceso.HasExited)
            {
                SendKeys.SendWait("%{PRTSC}");
                Image img = Clipboard.GetImage();
                if (img != null)
                {
                    bePantalla obePantalla = new bePantalla();
                    obePantalla.FechaHora = DateTime.Now;
                    obePantalla.Imagen = img;
                    lbePantalla.Add(obePantalla);
                }
            }
            else
            {
                this.Visible = true;
                tmrCaptura.Stop();
                tmrCaptura.Enabled = false;
                using(FileStream fs=new FileStream("PrintScreen.dll",
                    FileMode.Create, FileAccess.Write,FileShare.Write))
                {
                    BinaryFormatter bf = new BinaryFormatter();
                    bf.Serialize(fs, lbePantalla);
                }
                tmrReproduce.Enabled = true;
                tmrReproduce.Start();
                c = 0;
            }
        }

        private void reproducirCaptura(object sender, EventArgs e)
        {
            if (lbePantalla.Count>0)
            {
                if (c < lbePantalla.Count)
                {
                    this.Text = String.Format("{0} de {1} - {2}",c+1,
                        lbePantalla.Count,lbePantalla[c].FechaHora);
                    this.BackgroundImage = new Bitmap(lbePantalla[c].Imagen,
                        new Size(this.ClientRectangle.Width,this.ClientRectangle.Height));
                    c++;
                }
                else c = 0;
            }
        }
    }
}

Nota: La asociación de funciones controladoras de eventos es la siguiente:
- mostrarDialogoAbrir: Evento Click del botón "btnAbrir"
- iniciarCaptura: Evento Click del botón "btnIniciar"
- capturarPantalla: Evento Tick del timer "tmrCaptura"
- reproducirCaptura: Evento Tick del timer "tmrReproduce"

Ejecutar y Probar la Aplicación Windows Forms

Grabar la aplicación, ejecutarla y se mostrará la siguiente ventana:


Seleccionar un archivo de programa a ejecutar y capturar sus pantallas, por ejemplo seleccione el archivo llamado: "AppCapturar.exe" que viene en la carpeta bin\debug del Demo y se mostrará la ventana con dicha aplicación.

Nota: En ese momento el panel con el archivo seleccionado se ha ocultado para después mostrar en toda la ventana o formulario las pantallas capturadas.

Esta aplicación permite ingresar los datos del Empleado: Código (string), Nombre (string) y Sueldo (decimal) en un objeto, pero No hay una validación para el tipo de datos.

Ingresar unos cuantos empleados, como se muestra en la figura:


Después de ingresar correctamente varios, probar ingresar textos en el sueldo y al grabar la aplicación se caerá e inmediatamente finalizará regresando a la aplicación anterior (CapturaPantalla).

Se creará un archivo llamado "PrintScreen.dll" con la lista de objetos (pantallas) serializadas y se mostrará el contenido de la lista en el mismo formulario como si fuese un video, tal como se muestra a continuación:


Nota: La imagen de la pantalla capturada se ha ajustado al tamaño del formulario o ventana.

Comentario

Si bien es cierto, existen muchos programas que capturan pantalla, lo graban en un video y lo reproducen, en este demo, hemos visto que es relativamente sencillo capturar y reproducir mediante poco código.

En nuestro caso hemos usado los métodos "SendKeys.SendWait" para capturar la ventana activa, "Clipboard.GetImage" para recuperar de la memoria la imagen y una Lista de Objetos para almacenar las pantallas y luego reproducirlas.

En un post futuro la secuencia de imágenes o pantallas capturadas la grabaremos en un formato de video, como un archivo AVI, MPEG o MP4. Inténtelo desde ahora y diviértanse en el intento.

Descarga:
Demo22_CapturaReproducePantalla

El Libro del Día: La Biblia de Visual Basic .NET (Cap 1)

El Libro del Día: 2014-10-21

Titulo: La Biblia de Visual Basic .NET (Capítulo 1)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 64

Capítulo 1: .NET Framework 4, Visual Studio 2010 y Visual Basic .NET 2010
1. Introducción a Microsoft .NET Framework 4
1.1. Componentes de Microsoft .NET Framework
1.2. Biblioteca de Clases de .NET Framework (BCL)
1.3. Motor de Ejecución de Lenguaje Común (CLR)
1.4. Novedades del .NET Framework 4
2. Visual Studio .NET 2010
2.1. Descripción del Entorno Integrado de Desarrollo (IDE)
2.2. Novedades de Visual Studio 2010
3. Visual Basic .NET 2010
3.1. Estructuras de Control de Flujo
3.2. Tipos de Datos en Visual Basic
3.3. Operadores y Expresiones en Visual Basic
3.4. Variables en Visual Basic
3.5. Novedades de Visual Basic 2010

Descarga:
Biblia_VisualBasicNET_Capitulo1

El Libro del Día: Accelerated DOM Scripting with Ajax, APIs, and Libraries

El Libro del Día: 2014-10-21

Titulo: Accelerated DOM Scripting with Ajax, APIs, and Libraries
Autor: Jonathan Snook
Editorial: Apress
Nro Paginas: 243

Capítulos:
CHAPTER 1 The State of JavaScript
CHAPTER 2 HTML, CSS, and JavaScript
CHAPTER 3 Object-Oriented Programming
CHAPTER 4 Libraries
CHAPTER 5 Ajax and Data Exchange
CHAPTER 6 Visual Effects
CHAPTER 7 Form Validation and JavaScript
CHAPTER 8 Case Study: FAQ Facelift
CHAPTER 9 A Dynamic Help System

Descarga:
Accelerated_DOM_Scripting_Ajax_APIs_Libraries

lunes, 20 de octubre de 2014

El Libro del Día: JavaScript Programmer's Reference

El Libro del Día: 2014-10-20

Titulo: JavaScript Programmer's Reference
Autor: Jonathan Reid, Thomas Valentine
Editorial: Apress
Nro Paginas: 289

Capítulos:
Chapter 1: JavaScript Basics
Chapter 2: JavaScript Nuts and Bolts
Chapter 3: The DOM
Chapter 4: JavaScript in Action
Chapter 5: JavaScript Global Objects Reference
Chapter 6: JavaScript Control Statements Reference
Chapter 7: JavaScript Operators Reference
Chapter 8: The DOM Reference

Descarga:
JavaScript_Programmers_Reference

domingo, 19 de octubre de 2014

El Libro del Día: Data Push Apps with HTML5 SSE

El Libro del Día: 2014-10-19

Titulo: Data Push Apps with HTML5 SSE
Autor: Darren Cook
Editorial: O'Reilly
Nro Paginas: 221

Capítulos:
1. All About SSE...And Then Some
2. Super Simple Easy SSE
3. A Delightfully Realistic Data Push Application
4. Living in More Than the Present Moment
5. No More Ivory Tower: Making Our Application Production-Quality
6. Fallbacks: Data Push for Everyone Else
7. Fallbacks: There Has to Be a Better Way
8. More SSE: The Rest of the Standard
9. Authorization: Who’s That Knocking at My Door
A. The SSE Standard
B. Refactor: JavaScript Globals, Objects, and Closures
C. PHP

Descarga:
DataPushApps_HTML5_SSE

viernes, 17 de octubre de 2014

El Libro del Día: Data Structures & Algorithms with JavaScript

El Libro del Día: 2014-10-17

Titulo: Data Structures & Algorithms with JavaScript
Autor: Michael McMillan
Editorial: O'Reilly
Nro Paginas: 246

Capítulos:
1. The JavaScript Programming Environment and Model
2. Arrays
3. Lists
4. Stacks
5. Queues
6. Linked Lists
7. Dictionaries
8. Hashing
9. Sets
10. Binary Trees and Binary Search Trees
11. Graphs and Graph Algorithms
12. Sorting Algorithms
13. Searching Algorithms
14. Advanced Algorithms

Descarga:
DataStructures_Algorithms_JavaScript

jueves, 16 de octubre de 2014

El Demo del Día: Programación Asíncrona en ASP .NET con XmlHttpRequest

Programación Asíncrona en ASP .NET con XmlHttpRequest

En este breve post veremos como hacer un envío asíncrono usando XmlHttpRequest, para los que no conocen que es, es el padre de AJAX y fue creado por Microsoft por el año 2000 para usarlo en Outlook Web Access (OWA) que era un cliente de correo. Uno de los integrantes y líder del equipo que desarrollo XmlHttp es Alex Hopmann, para mayor información visitar su web:
Alex Hopmann

Requerimiento

Se desea registrar el nombre y la observación de una persona en el servidor, sin hacer un Full PostBack ni refrescar toda la pagina cuando se muestre el resultado, es decir, se desea hacer un envío y recepción asíncrona en forma nativa con HTTP.

Solución

Para enviar asíncronamente datos desde el Cliente Web (Navegador o Browser) hacia el Servidor Web podemos usar XmlHttpRequest desde JavaScript, en cualquier tipo de aplicación del servidor, sea ASP .NET, Java o PHP.

Crear la Aplicación Web en ASP .NET Web Form

Crear un "Nuevo Sitio web vacío de ASP .NET" en C# o VB.NET (en mi caso esta en VB.NET) llamado "Asincrono_XmlHttpRequest":

Nota: Conseguir una imagen para la espera llamada: Progress.gif

Cambiar de nombre a la pagina por "Registro.aspx" y realizar el siguiente diseño:


Para lograr el diseño mostrado, escribir el siguiente HTML:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Registro.aspx.vb" Inherits="Registro" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script>
        function enviarDatos() {
            var nombre = document.getElementById("txtNombre").value;
            var observacion = document.getElementById("txtObservacion").value;
            var espera = document.getElementById("divEspera");
            var xhr = new XMLHttpRequest();
            xhr.open("get", "Registro.aspx?nombre=" + nombre + "&observacion=" + observacion,true);
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xhr.onloadstart = function () { espera.style.display = "inline"; }
            xhr.onloadend = function () { espera.style.display = "none";  }
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var spn = document.getElementById("lblMensaje");
                    spn.innerHTML = xhr.responseText;
                }
            }
            xhr.send();
            return false;
        }
    </script>
</head>
<body style="background-color:aqua">
    <form id="form1" runat="server">
    <div>
        <h1>Envio Asincrono con XmlHttpRequest</h1>
        <h2>Registro de Datos</h2>
        Nombre:<br />
        <asp:TextBox ID="txtNombre" Width="300" runat="server" /><br/>
        Observacion: <br />
        <asp:TextBox ID="txtObservacion" Width="300" TextMode="MultiLine"
           Rows="5" runat="server" /><p />
        <input id="btnGrabar" type="submit" value="Grabar"
           onclick="return enviarDatos();" runat="server" />
        <p />
            <asp:Label ID="lblMensaje" runat="server"></asp:Label>
    </div>
    <div id="divEspera" style="display:none;text-align:center;position:fixed;left:0px;top:0px;
       width:100%;height:100%;background-color:gray;">
        <h1>Espera un momento...</h1>
        <img src="Progress.gif" width="600" height="400" alt="" />
    </div>
    </form>
</body>
</html>

Nota: La función "enviarDatos" se esta asociando al evento "click" del botón para realizar el envio asíncrono usando el método send de la clase XMLHttpRequest. Además para recibir la respuesta del servidor se esta usando el evento "onreadystatechange" en donde se escribe HTML sobre la etiqueta "lblMensaje".

Escribir código en Visual Basic (o C#) para devolver los resultados, no sin antes hacer una pausa simulando la demora del servidor, tal como sigue:

Partial Class Registro
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim Nombre As String = Request.QueryString("nombre")
        Dim Observacion As String = Request.QueryString("observacion")
        If Nombre IsNot Nothing Then
            System.Threading.Thread.Sleep(3000)
            Response.Write(String.Format("{0} escribio {1}", Nombre, Observacion))
            Response.End()
        End If
    End Sub
End Class

Nota: Para devolver los resultados del servidor al cliente estamos usando el objeto Response con sus métodos write para escribir la salida y end para enviarla al cliente.

Probar la Pagina Web

Guardar el Sitio Web, clic derecho a la Pagina "Registro.aspx" y seleccionar "Ver en el explorador".
Se mostrará una ventana similar a la mostrada en la siguiente figura:


Ingresar el nombre y la observación y luego clic al botón "Grabar" para realizar el envío de datos asíncrono al servidor. Observen que no se mueve el botón de Refresh del navegador, es decir no se hace un Full PostBack.

Luego, parecerá la pantalla de espera (div) con la imagen del progreso, tal como se muestra en la siguiente figura:


Después de los 3 segundos de espera se mostrará el resultado final sin refrescar toda la pagina, tal como se muestra en la siguiente figura:


Comentario Final

En este pequeño demo hemos visto como podemos llamar y recibir datos en forma asíncrona usando la API de HTML llamada XMLHttpRequest, la cual es nativa y actualmente es soportada por todos los navegadores modernos: Chrome, Firefox, Safari e Internet Explorer.

Esta forma de uso es mas ligera por ser nativa, pero no es tan difundido su uso por un poco de desconocimento (como todas las cosas), la mayoría conoce a los hijos de XMLHttpRequest que son jQuery ($.ajax, $.get, $.post, etc) y Microsoft AJAX Library (ScriptManager, UpdatePanel, Sys, etc).

Descarga:
Demo21_Asincrono_XmlHttpRequest

El Libro del Día: The Art of Unit Testing

El Libro del Día: 2014-10-16

Titulo: The Art of Unit Testing (Second Edition)
Autor: Roy Osherove
Editorial: Manning
Nro Paginas: 294

Capítulos:
PART 1 GETTING STARTED
1 The basics of unit testing
2 A first unit test
PART 2 CORE TECHNIQUES
3 Using stubs to break dependencies
4 Interaction testing using mock objects
5 Isolation (mocking) frameworks
6 Digging deeper into isolation frameworks
PART 3 THE TEST CODE
7 Test hierarchies and organization
8 The pillars of good unit tests
PART 4 DESIGN AND PROCESS
9 Integrating unit testing into the organization
10 Working with legacy code
11 Design and testability

Descarga:
The_Art_Of_Unit_Testing

miércoles, 15 de octubre de 2014

El Libro del Día: Windows 8 and Windows Phone 8 Game Development

El Libro del Día: 2014-10-15

Titulo: Windows 8 and Windows Phone 8 Game Development
Autor: Adam Dawes
Editorial: Apress
Nro Paginas: 499

Capítulos:
Chapter 1: Getting Started
Chapter 2: Getting Started with MonoGame
Chapter 3: Creating a Game Framework
Chapter 4: User Input
Chapter 5: Sounding Out with Game Audio
Chapter 6: Drawing with Vertices and Matrices
Chapter 7: The World of 3-D Graphics
Chapter 8: Further 3-D Features and Techniques
Chapter 9: Enhancing Your Game
Chapter 10: Application Management
Chapter 11: Getting Started with XAML
Chapter 12: XAML Controls and Pages
Chapter 13: Mixing XAML and MonoGame
Chapter 14: Distributing Your Game

Descarga:
Windows8_WindowsPhone8_GameDevelopment

martes, 14 de octubre de 2014

El Libro del Día: Oracle Database 12c Performance Tuning Recipes

El Libro del Día: 2014-10-14

Titulo: Oracle Database 12c Performance Tuning Recipes
Autor: Sam R. Alapati, Darl Kuhn, Bill Padfield
Editorial: Apress
Nro Paginas: 621

Capítulos:
Chapter 1: Optimizing Table Performance
Chapter 2: Choosing and Optimizing Indexes
Chapter 3: Optimizing Instance Memory
Chapter 4: Monitoring System Performance
Chapter 5: Minimizing System Contention
Chapter 6: Analyzing Operating System Performance
Chapter 7: Troubleshooting the Database
Chapter 8: Creating Efficient SQL
Chapter 9: Manually Tuning SQL
Chapter 10: Tracing SQL Execution
Chapter 11: Automated SQL Tuning
Chapter 12: Execution Plan Optimization and Consistency
Chapter 13: Configuring the Optimizer
Chapter 14: Implementing Query Hints
Chapter 15: Executing SQL in Parallel

Descarga:
Oracle_Database_12c_Performance_Tuning_Recipes

lunes, 13 de octubre de 2014

El Libro del Día: Head First jQuery

El Libro del Día: 2014-10-13

Titulo: Head First jQuery
Autor: Ryan Benedetti, Ronan Cranley
Editorial: O'Reilly
Nro Paginas: 538

Capítulos:
1 Getting Started with jQuery: Web Page Action
2 Selectors and Methods: Grab and Go
3 jQuery Events and Functions: Making Things Happen on Your Page
4 jQuery Web Page Manipulation: Mod the DOM
5 jQuery Effects and Animation: A Little Glide in Your Stride
6 jQuery and JavaScript: Luke jQuery, I Am Your Father
7 Custom Functions for Custom Effects: What Have You Done for Me Lately
8 jQuery and Ajax: Please Pass the Data
9 Handling JSON Data: Client, Meet Server
10 jQuery UI: Extreme Form Makeover
11 jQuery and APIs: Objects, Objects Everywhere
i Leftovers: The Top Ten Things (We Didn’t Cover)
ii Set Up a Development Environment: Get Ready for the Big Times

Descarga:
Head_First_jQuery

domingo, 12 de octubre de 2014

El Libro del Día: The Browser Hacker's Handbook

El Libro del Día: 2014-10-12

Titulo: The Browser Hacker's Handbook
Autor: Wade Alcorn, Christian Frichot, Michele Orrù
Editorial: Wiley
Nro Paginas: 650

Capítulos:
Chapter 1 Web Browser Security
Chapter 2 Initiating Control
Chapter 3 Retaining Control
Chapter 4 Bypassing the Same Origin Policy
Chapter 5 Attacking Users
Chapter 6 Attacking Browsers
Chapter 7 Attacking Extensions
Chapter 8 Attacking Plugins
Chapter 9 Attacking Web Applications
Chapter 10 Attacking Networks
Chapter 11 Epilogue: Final Thoughts

Descarga:
The_Browser_Hacker's_Handbook

sábado, 11 de octubre de 2014

El Libro del Día: Professional Mobile Application Development

El Libro del Día: 2014-10-11

Titulo: Professional Mobile Application Development
Autor: Jeff McWherter, Scott Gowell
Editorial: Wrox
Nro Paginas: 436

Capítulos:
CHAPTER 1 Preliminary Considerations
CHAPTER 2 Diving into Mobile: App or Website
CHAPTER 3 Creating Consumable Web Services for Mobile Devices
CHAPTER 4 Mobile User Interface Design
CHAPTER 5 Mobile Websites
CHAPTER 6 Getting Started with Android
CHAPTER 7 Getting Started with iOS
CHAPTER 8 Getting Started with Windows Phone 7
CHAPTER 9 Getting Started with BlackBerry
CHAPTER 10 Getting Started with Appcelerator Titanium
CHAPTER 11 Getting Started with PhoneGap
CHAPTER 12 Getting Started with MonoTouch and Mono for Android

Descarga:
Professional_Mobile_Application_Development

viernes, 10 de octubre de 2014

El Libro del Día: Fast ASP.NET Websites

El Libro del Día: 2014-10-10

Titulo: Fast ASP.NET Websites
Autor: Dean Alan Hume
Editorial: Manning
Nro Paginas: 210

Capítulos:
PART 1 DEFINING PERFORMANCE
1 High-speed websites
2 First steps toward a faster website
PART 2 GENERAL PERFORMANCE BEST PRACTICES
3 Compression
4 Caching: The sell-by date
5 Minifying and bundling static files
6 HTML optimization tips
7 Image optimization
8 ETags
9 Content Delivery Networks
PART 3 ASP.NET-SPECIFIC TECHNIQUES
10 Tweaking ASP.NET MVC performance
11 Tweaking ASP.NET Web Forms performance
12 Data caching

Descarga:
Fast_ASPNET_Websites

jueves, 9 de octubre de 2014

El Libro del Día: Microsoft ASP.NET and AJAX. Architecting Web Applications

El Libro del Día: 2014-10-09

Titulo: Microsoft ASP.NET and AJAX. Architecting Web Applications
Autor: Dino Esposito
Editorial: Microsoft
Nro Paginas: 352

Capítulos:
Part I The (Much Needed) Facelift for the Old Web
1 Under the Umbrella of AJAX
2 The Easy Way to AJAX
3 AJAX Architectures
Part II Power to the Client
4 A Better and Richer JavaScript
5 JavaScript Libraries
6 AJAX Design Patterns
7 Client-Side Data Binding
8 Rich Internet Applications

Descarga:
Microsoft_ASPNET_AJAX_Architecting_WebApplications

miércoles, 8 de octubre de 2014

El Libro del Día: ASP.NET AJAX Programmer’s Reference

El Libro del Día: 2014-10-08

Titulo: ASP.NET AJAX Programmer’s Reference
Autor: Shahram Khosravi
Editorial: Wrox
Nro Paginas: 1563

Capítulos:
Chapter 1: AJAX Technologies
Chapter 2: JavaScript Base Type Extensions
Chapter 3: Built-In and Custom Exception Types
Chapter 4: JavaScript Object-Oriented Programming and Type Reflection Extensions
Chapter 5: Event Programming Extensions
Chapter 6: DOM Extensions
Chapter 7: Component Development Infrastructure
Chapter 8: Developing Client Controls
Chapter 9: Event Bubbling and Button Client Control
Chapter 10: Type Description Extensions
Chapter 11: Data Classes
Chapter 12: Client-Server Communications
Chapter 13: Consuming Web Services Via Soap Messages
Chapter 14: Consuming Web Services Via JSON Messages
Chapter 15: Proxy Classes
Chapter 16: Behaviors
Chapter 17: Script and Extender Server Controls
Chapter 18: Web Services Bridges and Transformers
Chapter 19: UpdatePanel and ScriptManager
Chapter 20: Using UpdatePanel in User Controls and Custom Controls
Chapter 21: Page Life Cycle and Asynchronous Partial Page Rendering
Chapter 22: ASP.NET AJAX Client-Side PageRequestManager
Chapter 23: Asynchronous Partial Page Rendering: Server Side Processing
Chapter 24: Asynchronous Partial Page Rendering: Client-Side Processing
Appendix A: XML Script
Appendix B: Binding
Appendix C: Actions
Appendix D: Data Control
Appendix E: Templated Controls
Appendix F: ListView

Descarga:
ASPNET_AJAX_Programmer's_Reference

martes, 7 de octubre de 2014

El Libro del Día: Microsoft ADO.NET 4 Step by Step

El Libro del Día: 2014-10-07

Titulo: Microsoft ADO.NET 4 Step by Step
Autor: Tim Patrick
Editorial: Microsoft
Nro Paginas: 441

Capítulos:
Part I Getting to Know ADO.NET
Chapter 1 Introducing ADO.NET 4
Chapter 2 Building Tables of Data
Chapter 3 Storing Data in Memory
Chapter 4 Accessing the Right Data Values
Chapter 5 Bringing Related Data Together
Chapter 6 Turning Data into Information
Chapter 7 Saving and Restoring Data
Part II Connecting to External Data Sources
Chapter 8 Establishing External Connections
Chapter 9 Querying Databases
Chapter 10 Adding Standards to Queries
Chapter 11 Making External Data Available Locally
Chapter 12 Guaranteeing Data Integrity
Part III Entity Framework
Chapter 13 Introducing the Entity Framework
Chapter 14 Visualizing Data Models
Chapter 15 Querying Data in the Framework
Chapter 16 Understanding Entities Through Objects
Part IV LINQ
Chapter 17 Introducing LINQ
Chapter 18 Using LINQ to DataSet
Chapter 19 Using LINQ to Entities
Chapter 20 Using LINQ to SQL
Part V Providing RESTful Services with WCF Data Services
Chapter 21 Binding Data with ADO.NET
Chapter 22 Providing RESTful Services with WCF Data Services

Descarga:
Microsoft_ADONET4_StepByStep

lunes, 6 de octubre de 2014

El Libro del Día: Exam Ref 70-483 Programming in C#

El Libro del Día: 2014-10-06

Titulo: Exam Ref 70-483 Programming in C#
Autor: Wouter de Kort
Editorial: Microsoft
Nro Paginas: 379

Capítulos:
Chapter 1 Manage program flow
Chapter 2 Create and use types
Chapter 3 Debug applications and implement security
Chapter 4 Implement data access

Descarga:
ExamRef_70483_Programming_C#

domingo, 5 de octubre de 2014

El Libro del Día: Exam Ref 70-486 Developing ASP.NET MVC 4 Web Applications

El Libro del Día: 2014-10-05

Titulo: Exam Ref 70-486 Developing ASP.NET MVC 4 Web Applications
Autor: William Penberthy
Editorial: Microsoft
Nro Paginas: 386

Capítulos:
Chapter 1 Design the application architecture
Chapter 2 Design the user experience
Chapter 3 Develop the user experience
Chapter 4 Troubleshoot and debug web applications
Chapter 5 Design and implement security

Descarga:
ExamRef_70486_Developing_ASPNET_MVC4_WebApplications

sábado, 4 de octubre de 2014

El Libro del Día: Exam Ref 70485

El Libro del Día: 2014-10-04

Titulo: Exam Ref 70485 Advanced Windows Store App Development Using C#
Autor: Roberto Brunetti, Vanni Boncinelli
Editorial: Microsoft
Nro Paginas: 462

Capítulos:
Chapter 1 Develop Windows Store apps
Chapter 2 Discover and interact with devices
Chapter 3 Program user interaction
Chapter 4 Enhance the user interface
Chapter 5 Manage data and security
Chapter 6 Prepare for a solution deployment

Descarga:
ExamRef_70485_Advanced_WindowsStore_C#

viernes, 3 de octubre de 2014

El Libro del Día: Practical HTML5 Projects

El Libro del Día: 2014-10-03

Titulo: Practical HTML5 Projects
Autor: Adrian W. West
Editorial: Apress
Nro Paginas: 474

Capítulos:
Chapter 1: Moving to HTML5
Chapter 2: A Rollover Picture Gallery
Chapter 3: Backgrounds
Chapter 4: Rollover Menus
Chapter 5: Moving to CSS3
Chapter 6: Audio, Video, and Slide Shows
Chapter 7: Rounded Corners
Chapter 8: Drop Shadows
Chapter 9: Create Collages and Galleries
Chapter 10: Add PayPal
Chapter 11: Secure Feedback Methods
Chapter 12: Monitor Mayhem
Chapter 13: Appearance and Usefulness
Chapter 14: Accessibility
Chapter 15: Dump Those Deprecated Items
Chapter 16: Search Engine Optimization
Chapter 17: Printing, Counting, and Redirecting
Chapter 18: Validation
Chapter 19: Troubleshooting
Appendix: Quick Reference, Techniques, and Useful Data

Descarga:
Practical_HTML5_Projects

jueves, 2 de octubre de 2014

El Demo del Día: Gráficos de Lineas y Curvas en WinForms

Gráficos de Lineas y Curvas en WinForms

Hoy veremos como crear gráficos en .NET dinamicamente usando la clase Graphics del espacio de Nombres System.Drawing, la cual tiene métodos que permiten dibujar textos, lineas, curvas, etc.

Para el ejemplo lo haremos mediante un Timer que genera números al azar con los cuales se crearan los puntos a graficar, pero en un caso real, en vez del Timer podemos leer de una base de datos una serie de datos o también recibir por el puerto serial o via sockets leer el valor de un dispositivo conectado a la computadora, por ejemplo un termómetro, balanza electrónica, medición de latidos del corazón, pulsos, etc.

Crear la Aplicación Windows Forms

En el Visual Studio crear una aplicación en C# llamada: "GraficoLineasCurvas" y renombrar el formulario a "frmGrafico". Arrastrar solo un control Timer y llamarlo: "tmrGrafico" configurando sus propiedad Enabled en True, para que se habilite cada 100 milisegundos el gráfico.

El diseño del formulario debe quedar como se muestra en la figura:



Escribir el siguiente código en el formulario, sobre todo la función "graficarSeries" que esta asociado al evento "Tick" del timer "tmrGrafico":

using System;
using System.Drawing;
using System.Windows.Forms;

namespace GraficoLineasCurvas
{
    /*Creado por Luis Dueñas para el Blog*/
    public partial class frmGrafico : Form
    {
        private int x = 0;
        private int n = 40;
        private Point punto1Linea;
        private Point punto1Curva;

        public frmGrafico()
        {
            InitializeComponent();
        }

        private void graficarSeries(object sender, EventArgs e)
        {
            Random oAzar = new Random();
            int yLinea = oAzar.Next(this.Height-200) + 100;
            int yCurva = oAzar.Next(this.Height-200) + 100;
            if (x == 0)
            {
                punto1Linea = new Point(x,yLinea);
                punto1Curva = new Point(x, yCurva);
            }
            Point punto2Linea = new Point(x, yLinea);
            Point punto4Curva = new Point(x, yCurva);
            Graphics grafico = this.CreateGraphics();
            grafico.DrawString("Gráficos Dinámicos en .NET (Por Lduenas)",
                new Font("Arial",40),Brushes.Green,100,20);
            grafico.DrawLine(new Pen(Brushes.Red, 4), punto1Linea, punto2Linea);

            Point punto2Curva;
            Point punto3Curva;
            int c = (int)((x/n)-1)*n;
            if (punto1Curva.Y >= punto4Curva.Y)
            {
                punto2Curva = new Point(c + (n/4), punto4Curva.Y);
                punto3Curva = new Point(c+((3*n) / 4), punto1Curva.Y);              
            }
            else
            {
                punto2Curva = new Point(c+ (n / 4), punto1Curva.Y);
                punto3Curva = new Point(c+ ((3 *n) / 4), punto4Curva.Y);              
            }
            grafico.DrawBezier(new Pen(Brushes.Blue, 4), punto1Curva, punto2Curva,
            punto3Curva, punto4Curva);
         
            x += n;
            punto1Linea = punto2Linea;
            punto1Curva = punto4Curva;
            if (x >= this.Width)
            {
                x = 0;
                grafico.Clear(this.BackColor);
            }
        }
    }
}

Nota: Se crea la variable x para la posición de la columna y la variable y para la fila, ademas 2 variables punto1Linea y punto1Curva para guardar el punto anterior desde donde se iniciara el gráfico.

Para las lineas solo necesitamos 2 puntos: inicio (punto1Linea) y fin (punto2Linea), pero para la curva de Bézier necesitamos 4 puntos: punto de anclaje de inicio (punto1Curva), punto de control 1 (punto2Curva), punto de control 2 (punto3Curva), y punto de anclaje final (punto4Curva).

La variable n (por defecto 40) indica el intervalo en que aumenta las columnas o posición x.

Probar la Aplicación Creada

Grabar el proyecto y ejecutarlo con F5. Aparece una ventana maximizada como en la siguiente figura:




El texto con el título se mostrará de color verde, el gráfico de Lineas se mostrará en color rojo y el gráfico de Curvas en color azul.

Cuando llegue al final del ancho se borrará el dibujo y se creará nuevamente. Puedes experimentar modificando el tamaño del intervalo n de 40 a mas o menos.

Comentario Final

Es muy fácil crear gráficos dinámicos en .NET, ya sea de lineas o curvas, sin necesidad de recurrir a ningún Control, ya que estos solo se utilizan para graficar datos históricos (existentes den bases de datos, archivos de textos, xml, etc), pero, si deseamos graficar en tiempo real mejor es crear nuestro gráfico dinámicamente usando la clase Graphics de System.Drawing.

Descarga
Demo20_GraficoLineasCurvas


Entrenamiento - Nuevos Inicios PECI .NET ISILTECH

Nuevos Inicios PECI .NET ISILTECH

Comentario Inicial

Antes que nada un saludo cordial a todos los alumnos y amigos que ingresan diariamente al Blog. Mi intención no es fomentar la piratería publicando Libros Digitales (en PDF), sino todo lo contrario, exponer la obra de estos grandes autores y animarlos a que compren el original, sobre todo de aquellos que consideren vale la pena que formen su biblioteca.

Capacitación en .NET en ISILTECH

Como muchos saben, soy instructor en ISILTECH de ISIL y quiero comunicarles a los interesados en tener una buena capacitación (al mas alto nivel), los nuevos inicios de este ultimo trimestre:

1. Web Developer en .NET

- Programa dirigido a todos los que trabajan en Web con ASP .NET, donde se verá: ASP .NET MVC, JavaScript, jQuery, AJAX, CSS3, HTML5, Servicios WCF, Servicios Web API, ASP .NET Mobile, jQuery Mobile, Responsive Web Design, etc.

- El inicio es para este Sábado 11 de Octubre de 8:00 am a 2:00 pm y las vacantes se agotaron hace varias semanas.

- A todas las personas que se quedaron sin matricularse se agradece su preferencia, pero posiblemente el otro inicio sea al siguiente año, por ser un programa nuevo, se lleno muy rápido.

Nota: Este programa se recomienda a los que ya llevaron el Visual Studio Developer, de lo contrario sera difícil su entendimiento.

2. Visual Studio 2013 Developer

- Programa dirigido a todos los desarrolladores que quieran aprender las buenas practicas en .NET Framework, ADO .NET, WinForms, WebForms, ASP .NET MVC, WPF, WCF y WF.

- El nuevo inicio esta programado para el Sábado 15 de Noviembre de 2:30 pm a 8:30 pm y todavía quedan vacantes, pero deben asegurarse, porque el ultimo programa se lleno rápido.

Nota: Para aprovechar mejor este programa es necesario que el participante tenga una buena base en el desarrollo de aplicaciones, de preferencia que programe lo básico en .NET, ya que nos enfocamos en la optimización del código.

Comentario Final

Gracias a todos los que visitan diariamente el Blog y en esta y la siguiente semana publicare en el Demo semanal como crear gráficos dinámicos en WinForms y WebForms usando diferentes formas.

Finalmente, les dejo la URL con la programacion de cursos de ISILTECH para los interesados:
Programacion_Cursos_ISILTECH

Saludos.

El Libro del Día: HTML5 and JavaScript Projects

El Libro del Día: 2014-10-02

Titulo: HTML5 and JavaScript Projects
Autor: Jeanine Meyer
Editorial: Apress
Nro Paginas: 446

Capítulos:
Chapter 1: Building the HTML5 Logo – Drawing on Canvas, with Scaling, and Semantic Tags
Chapter 2: Family Collage: Manipulating Programmer-defined Objects on a Canvas
Chapter 3: Bouncing Video: Animating and Masking HTML5 Video
Chapter 4: Map Maker: Combining Google Maps and the Canvas
Chapter 5: Map Portal: Using Google Maps to Access Your Media
Chapter 6: Where am I: Using Geolocation, the Google Maps API, and PHP
Chapter 7: Origami Directions: Using Math-Based Line Drawings, Photographs, and Videos
Chapter 8: Jigsaw Video: Using the Mouse and Touch to Arrange Images
Chapter 9: US States Game: Building a Multiactivity Game
Chapter 10: Web Site Database: Using PHP and MySQL

Descarga:
HTML5_JavaScript_Projects