lunes, 9 de diciembre de 2013

Integrar WPF en Windows Forms

Integrar WPF en Windows Forms


En este tutorial se explica cómo se puede integrar Windows Presentation Foundation en un Windows Forms, lo cual puede ser conveniente realizarlo para casos específicos ya que en WPF se pueden hacer diseños muy atractivos, pero muchas de las aplicaciones ya desarrolladas están en Windows Forms.

1. Para el ejemplo se crea la siguiente estructura:
Solution Explorer
Estructura Solución Ejemplo
Tenemos 2 proyectos, uno es de tipo WindowsForms y el otro es Aplicación WPF.

2. En nuestro proyecto WpfApp agregamos un UserControl, le damos apariencia y funcionalidad requerida.

User Control WPF
Agrega UserControl
Design View
Diseñar, agrega funcionalidad


viernes, 6 de diciembre de 2013

eBook ASP.NET MVC 4 in Action

Descarga gratis eBook ASP.NET MVC 4 in Action


Libro ASP.Net MVC 4 in Action
Libro ASP.Net MVC 4 in Action
ASP.NET MVC 4 en Acción es un tutorial rápido diseñado para introducir a ASP.NET MVC . NET y mostrar cómo aplicar de forma efectiva. Todos los ejemplos en esta edición revisada se basan en ASP.NET MVC 4 , por lo que obtendrá una cobertura completa de características tales como el motor de vista Razor , ayudantes de Web Matrix , y la mejora de la extensibilidad. Verás cómo las aplicaciones ASP.NET pueden beneficiarse de los cambios en el .NET Framework .

ASP.NET MVC 4 en Acción es una guía práctica que muestra cómo aplicar ASP.NET MVC con eficacia. Después de una alta velocidad de rampa , esta nueva edición completamente revisada explora cada tema clave con un ejemplo de auto-contenido para que pueda saltar directamente a las piezas que necesita . Sobre la base de miles de horas de experiencia del mundo real , los autores muestran valiosas técnicas de alta gama que no encontrará en ningún otro lugar. Escrito para los desarrolladores, el libro que las armas con las habilidades del siguiente nivel y orientaciones prácticas para crear aplicaciones web atractivas . Necesitas un poco de conocimiento de ASP.NET y C #, pero sin experiencia previa ASP.NET MVC.


Los enlaces de descarga están al final.

Si los enlaces no funcionan por favor avisar.

miércoles, 4 de diciembre de 2013

eBook Professional ASP.NET 4.5 in C# and VB

Descarga gratis eBook Professional ASP.NET 4.5 in C# and VB


Libro ASP.Net 4.5
Libro ASP.Net 4.5
ASP.NET es un framework web gratuito de Microsoft para crear aplicaciones web utilizando HTML, CSS y JavaScript. Este aspecto totalmente actualizado en ASP.NET 4.5 explica las características de ASP.NET en un contexto más amplio. Embalado con experiencia probada en el campo que es el resultado de una amplia experiencia en la construcción de los autores y el despliegue de sitios, esta nueva edición le proporciona un nuevo conjunto fresco de herramientas para construir aplicaciones ASP.NET correctamente.

Los enlaces de descarga están al final.

Si los enlaces no funcionan por favor avisar.



sábado, 30 de noviembre de 2013

Consumir Web Services Soap en Android (2/2)

Consumir Web Services Soap en Android (parte 2)

En esta segunda parte vamos a consumir el Servicio Web que hicimos en .Net en la parte 1. Utilizaremos soap para poder establecer la comunicación con el servicio y poder realizar las transacciones.

Antes de empezar con la segunda parte veamos de que se compone un objeto soap:
soap object

Requisitos para realizar este tutorial:
Empezamos:

1. Importar las librerias ksoap2 que se descargaron de la siguiente manera:

  1. Click derecho sobre el proyecto, escoger Build Path/Configure buld path/Libreries/Add externals Jars y escoger el archivo .jar que contiene la libreria ksoap2. 
  2. Luego ir a Order and Export, dar check a la libreria ksoap y finalmente click en OK.


Consumir Web Services Soap en Android (1/2)

Consumir Web Services Soap en Android (parte 1)

En esta primera parte vamos a construir un Servicio Web en la plataforma .Net el cual utiliza el estándar SOAP como mecanismo de comunicación.

Comencemos definiendo SOAP: Según la Wikipedia, es es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML

consumir web services soap en android-1/2
De esta manera, Un Web-Service hecho en Java, puede ser utilizado y consumido por una aplicación en otro lenguaje como Perl, Visual Basic, etc. Tal como lo muestra la imagen.

Requisitos para realizar este tutorial:

  • Visual Studio 2010
  • Internet Information Services (IIS)
Consideraciones previas:
Empezamos:
1. Agregar un proyecto de tipo Aplicación web vacía de ASP.NET  con nombre "WebServices"  a la solución Visitas_SLN

proyecto webservice

martes, 19 de noviembre de 2013

Tutorial ping pong en .net

Tutorial para programar el clásico juego ping pong en C# .net

En esta ocasión les traigo un pequeño tutorial que me solicitó una persona hace unos días. los pasos son:

1. Crear una nueva solución y agregar un proyecto Windows Form Application en el lenguaje C#

2. Agregar una forma, o usar la que viene por defecto al crear el proyecto. y arrastrar los siguientes controles:

  • 2 Buttons
  • 2 Labels
  • 1 RadioButton
  • 1 Timer
El diseño es el siguiente:
diseño

Explicación del diseño;
  • Los 2 botones serán el player 1 y player 2 respectivamente, darle color con la propiedad backcolor(opcional) y nombres reconocibles "Player1, Player2".
  • Los 2 Labels serán las puntuaciones del player 1 y player 2 respectivamente, darle nombres "PuntajePlayer1 y PuntajePlayer2".
  • El RadioButton será nuestra pelota, dejar en blanco la propiedad text, centrarla y darle nombre "ball".
  • El Timer, establecer la propiedad Interval en 10 (velocidad en que la pantalla se va a refrescar)
3. Crear eventos: 
  • Del formulario: KeyPress, Load, MouseMove
  • Del Timer: Tick
4. Crear métodos:
  • TerminaJuego()
  • IniciaJuego()

jueves, 14 de noviembre de 2013

Tutorial Programacion en capas con VB.net y Enterprise Library (Parte 2)

Tutorial Programacion en capas con VB.net y Enterprise Library (Parte 2)

En  la parte 1 terminamos de definir las clases de la capa Data. Para ir a la parte 1 da click aqui

Capa Negocios

1. Crear una clase llamada "Vendedor.vb", todas las clases contenidas en esta capa pueden contener la lógica del negocio como cálculos, validaciones, etc de echo debería ser así pero, muchos programadores no siguen los patrones de diseño y colocan la lógica en la capa de Interfaz de usuario.

Para efectos del ejercicio en nuestra clase Vendedor.vb solo haremos la llamada a los métodos que queramos de nuestra capa de datos:
Imports Entidades
Imports Data
Public Class Vendedor
    Dim vd As New VendedorData
    Public Function ConsultarVendedores() As List(Of VendedorInfo)
        Return vd.ConsultarVendedores()
    End Function

    Public Function ConsultarVendedor(IdVendedor) As VendedorInfo
        Return vd.ConsultarVendedor(IdVendedor)
    End Function

    Public Sub GrabarVendedor(EsNuevo As Boolean, Vendedor As VendedorInfo)
        'Se puede poner validaciones como que el nombre no esté vacio o la edad etc.
        vd.GrabarVendedor(EsNuevo, Vendedor)
    End Sub

    Public Sub EliminaVendedor(IdVendedor As Integer)
        vd.EliminaVendedor(IdVendedor)
    End Sub
End Class

Para el método de grabar se puede incluir validaciones como que haya ingresado nombre, que la edad sea mayor de 18 años, etc, según el caso.

Completar las demás clases de manera similar Ruta.vb, Cliente.vb, TpoVisita.vb, Visita.vb. Recordar que al final del tutorial está el link de descarga de la fuente.

Capa de Interfaz de usuario

1. Diseñamos la siguiente interfaz que contiene:
  • 1 SpliContainer
  • 4 Buttons
  • 2 Labels
  • 2 TextBox
  • 1 DataGridView
diseño interfaz

Tutorial: Mantenimiento de visitas con Vb.Net y Enterprise library

Microsoft Data Access Application Block para .NET(Parte 1)


Consiste de un ensamblado denominado "Microsoft.ApplicationBlocks.Data", el cual contiene toda la funcionalidad necesaria para realizar la mayoría de las funciones de acceso a datos sobre la base de datos Microsoft SQL Server #.

Estas funciones le ayudaran a resolver las siguientes tareas:
  • Ejecutar procedimientos almacenados o sentencias SQL, incluyendo parámetros.
  • Devolver objetos SqlDataReader, DataSet, XmlReader, o valores únicos (scalar).

Inicialmente diremos que el espacio de nombres Microsoft.Applicationblocks.Data contiene la clase SQLHelper, la cual provee los siguientes métodos:
  • ExecuteNonQuery. Este método se utiliza para ejecutar Comandos que no devuelven filas o valores. Es generalmente usado para funciones de ABM con procedimientos almacenados. 
  • ExecuteReader. Devuelve un objeto SqlDataReader que contiene el resultado del comando de consulta o procedimiento almacenado. 
  • ExecuteDataset. Devuelve un DataSet que contiene el resultado del comando de consulta o procedimiento almacenado (El dataset es retornado lleno con datos). 
  • ExecuteScalar. Devuelve un valor único. Este valor es el correspondiente a la primera columna de la primera fila retornada por el comando. 
  • ExecuteXmlReader. Devuelve un documento en formato XML desde una consulta del tipo “FOR XML"

Cada uno de estos métodos soporta el uso de comandos, procedimientos almacenados y transacciones SQL y la posibilidad de utilizar parametros (de entrada y salida).

Para descargarlos: 

http://msdn.microsoft.com/en-us/library/ff648951.aspx

Elijan uno para la versión de su visual studio, para el ejercicio usaremos Enterprise Library 5.0 para Visual Studio 2010. Descargar e instalar.

Tutorial Instalar y Configurar IIS en Windows 8

Tutorial Instalar IIS en Windows 8 y Publicar WebSites aspx


iis8

Este es un pequeño tutorial de como instalar y configurar Internet Information Services (IIS) en nuestro sistema operativo Windows 8. Al final aprenderemos a publicar WebSites aspx en nuestro servidor IIS

Instalar IIS

1. Vamos al panel de búsqueda y escribimos "caracteristicas", seleccionamos "Programas y características"
Buscar

2. Seleccionamos "Activar o desactivar las características de Windows"
seleccion

3. Chekar las siguientes casillas como muestra la imagen:
Instalar iis
Es muy importante chekar manualmente ASP, ASP.NET, CGI, Filtros ISAPI, son necesarios para que el IIS pueda reconocer y ejecutar paginas web con extensión .asp, .aspx y webservices con extensión .asm, .asmx. Ya que por default estos no se instalan y solo reconocería .html.

4. Ahora hay que darle en Aceptar y esperar a que instale.

jueves, 24 de octubre de 2013

Tutorial GPS en Android con Eclipse

Tutorial GPS en Android Utilizando Adt Bundle Eclipse

Al final de este tutorial tendremos una pantalla que capture y muestre la latitud, longitud y presición de nuestra posición actual.

Pasos:
1. Tener instalado lo siguiente:
  • SDK Adt Bundle Eclipse, descarga la ultima versión de aquí.
  • JDK: (Java Development Kit), descarga la ultima versión de aquí
2. Crear un proyecto nuevo con nombre "CoordenadasGPS" y dar click en Next

3. Elegir un icono para el aplicativo, pueden buscar en google cualquier imagen y para escogerlo le dan en el botón "browse", luego dar click en Next, Next, y Finish.


jueves, 17 de octubre de 2013

Calculadora en Android

Tutorial Android Studio - Calculadora Android en 10 Pasos


1. Tener instalado lo siguiente:
  • Android Studio, descarga la ultima versión de aquí y escoja uno para tu sistema operativo.
  • JDK: (Java Development Kit), descarga la ultima versión de aquí

2. Abrir Android Studio y escoger New Project...
Entorno (IDE) de Android Studio

3. Configurar el nuevo proyecto, para el ejercicio solo ponemos el nombre de la aplicación "MiCalculadora", está aplicación corre en Android 2.1 hasta 4.2.
Nuevo Proyecto Android

viernes, 26 de julio de 2013

eBook Manual de Java con Eclipse

Professional Eclipse 3 for Java Developers


libro java

  • Guía paso a paso que introduce principiantes a usar todas las funciones de Eclipse 3
  • Eclipse es un entorno de desarrollo integrado extensible de código abierto (IDE) que ayuda a los programadores de Java construir herramientas integradas mejor de su clase, que cubren todo el ciclo de vida del software, desde el modelado conceptual hasta la implementación
  • Eclipse se está convirtiendo en la plataforma de desarrollo de elección para la comunidad Java
  • Repleto de código ricos en ejemplos del mundo real que muestran los programadores de la forma de acelerar el desarrollo de aplicaciones mediante la reutilización y ampliación de componentes de Eclipse existente
  • Describe SWT y JFace (alternativa de Eclipse para Java AWT y Swing) y les demuestra en la práctica en un reproductor de MP3 basado JavaLayer
  • Muestra cómo Eclipse se puede utilizar como una plataforma de herramienta y marco de aplicación
Para descargar el libro, dale clic al siguiente enlace:

martes, 16 de julio de 2013

Pivot Tables en SQL Server

La característica PIVOTE  de SQL Server, permite girar una expresión con valores de tabla convirtiendo los valores únicos de una columna en varias columnas en la salida. En este tip vamos a ver esta característica que permite producir resultados cruzados.

Esta es la tabla tbVentas con algunos datos:

CrossTable

Usando Pivot se obtiene una lista de los productos en la parte superior de cada vendedor, como lo siguiente:

PivotTable

SELECT VENDEDOR, [MANZANA] AS MANZANAS, [NARANJA] AS NARANJAS
FROM 
(
 SELECT VENDEDOR, PRODUCTO, MONTOVENTA
 FROM TBVENTAS
) AS PS
PIVOT
(
 SUM (MONTOVENTA)
 FOR PRODUCTO IN ( [MANZANA], [NARANJA]) 
) AS PVT

¿Cómo funciona?

Hay tres partes que necesitan ser comprendidas con el fin de construir la consulta Pivot.
  • (1) La sentencia SELECT
SELECT VENDEDOR, [MANZANA] AS MANZANAS, [NARANJA] AS NARANJAS
Esta parte de la consulta selecciona las tres columnas de la serie final resultado (VENDEDOR, MANZANA, NARANJA)

  • (2) La consulta que extrae los datos en bruto
(SELECT VENDEDOR, PRODUCTO, MONTOVENTA  FROM TBVENTAS) AS PS
Esta consulta extrae todas las filas de datos que necesitamos para crear los resultados cruzados. El (PS) después de la consulta es la creación de una tabla temporal de los resultados que luego pueden ser utilizados para satisfacer la consulta para el paso 1.

  • (3) La expresión PIVOTE
PIVOT(SUM (MONTOVENTA) FOR  PRODUCTO IN ( [MANZANA], [NARANJA]) ) AS PVT
Esta consulta hace el cruze Pivot y pone los resultados en una tabla temporal denominada PVT


Otra cosa clave a notar aquí es el uso de los corchetes [] alrededor de los nombres de las columnas, tanto en el SELECT en la parte (1) y en el IN en la parte (3). Estas son clave, ya que la operación de pivote está tratando los valores en estas columnas como nombres de columna y así es como se hace la ruptura y la agrupación para mostrar los datos.

Si quieres saber más de Pivot and UnPivot, visita la página de Microsoft: http://msdn.microsoft.com/en-us/library/ms177410(SQL.105).aspx

lunes, 15 de julio de 2013

10 preguntas a los más grandes programadores

El autor de Stifflog tuvo una buena idea: armó una serie de 10 preguntas, y se las envió por email a varios de los más grandes programadores del mundo.

La sorpresa fue grata cuando empezaron a responder y al final quedo una lista de 10 preguntas a 9 grandes programadores. El resultado es una excelente entrevista a nueve de los mejores programadores de la actualidad. A continuación Linus Torvalds, Bjarne Stroustrup, James Gosling y otros grandes nos cuentan sobre sus inicios, el rol de la universidad en el desarrollo profesional, su visión de un "buen desarrollador", libros y hasta música favorita.

Lista de los 9 programadores que respondieron:

  1. Linus Torvalds - Creador de Linux y GIT, no necesita presentación.
  2. Dave Thomas - Autor de “El programador pragmático”, “Programación en Ruby” y otros grandes libros de programación.
  3. David Heinemeier Hansson - Creador de Rails Framework(framework web), escritor y conductor de autos de carreras. Autor del weblog Loud Thinking.
  4. Steve Yegge - Uno de los menos conocidos del grupo, pero que tiene respuestas muy interesantes. Programador y blogger. Tiene unas 2 decadas de experiencia en esta industria.
  5. Peter Norvig - Director de Investigación en Google, autor de varios libros importantes de inteligencia artificial. Pueden visitar su página principal.
  6. Guido Van Rossum - Creador del lenguaje Python.
  7. Bjarne Stroustrup - Creador de C++. Pueden visitar su página principal.
  8. James Gosling - Creador del lenguaje Java.
  9. Tim Bray - Uno de los autores de la especificación de XML y Atom. Publica en su blog ongoing.

Foto de los protagonistas:
10 preguntas a los mas reconocidos programadores del mundo

viernes, 12 de julio de 2013

Visual Studio 2013

Ya está disponible para descargar el IDE Visual Studio 2013 Preview a través del enlace que pondré al final de la nota.

Visual Studio 2013 Preview

En TechEd North America 2013 hace unas semanas, se anunció la próxima versión de Visual Studio, y compartimos algunos de los avances que, se han hecho con Visual Studio 2013 y Team Foundation Server mejorando el ciclo de vida de una aplicación moderna. Destacamos algunas de las muchas funciones nuevas de la versión, como el soporte para la gestión ágil de la cartera, las pruebas de carga basado en la nube, una sala de equipo integrado con TFS, código de comentarios integración con TFS, y apoyo Git.

Emocionado de anunciar que Visual Studio 2013 Preview y .NET 4.5.1 Preview ya están disponibles para su descarga.

Algunas de las mejoras que tiene Visual Studio 2013 Preview

Básicamente, expandir las capacidades introducidas en las tres actualizaciones de Visual Studio 2012 desde que se puso en marcha, mientras que muchas de ellas son:
  • Experiencias de marca nuevas diseñadas con las aplicaciones modernas conectadas, 
  • Más robusto, y 
  • mayor rendimiento.

Mejoras de .NET 4.5.1 Preview

Junto con Visual Studio 2013, .NET 4.5.1 es una actualización altamente compatible con .NET 4.5 y viene incluido como parte de Windows 8.1. 


lunes, 8 de julio de 2013

Tutorial: Crear instalador ClickOnce

Opciones de Implementación

.NET Framework proporciona algunas características básicas que facilitan la implementación de una amplia gama de aplicaciones. 

Características de la implementación ClickOnce

En general, la implementación mediante ClickOnce simplifica enormemente el proceso de instalar y actualizar las aplicaciones.

Las aplicaciones implementadas con ClickOnce se actualizan automáticamente y son la mejor elección para aplicaciones que requieren cambios frecuentes. Los usuarios deben tener conectividad de red para aprovechar las funciones de actualización en intranet o internet.

Características de la implementación con Windows Installer

Con Windows Installer, puede agregar un proyecto de instalación a su solución para crear un archivo de instalación que se distribuya entre los usuarios; el usuario ejecuta el archivo de instalación y los pasos a través de un asistente para instalar la aplicación. Con ClickOnce, el Asistente para publicación permite empaquetar la aplicación y publicarla en un sitio Web o recurso compartido de archivos de red; el usuario instala e inicia la aplicación directamente desde esa ubicación en un solo paso.

Comencemos

1. Crear una solución Visual Basic de tipo WindowsFormApplication, al proyecto nombrarlo "TutoClickOnce" y a la solución: "TutoClickOnce_SLN"
Solución


2. En la forma, arrastrar un menustrip y un button.
3. Agregar un toolstripButton al menustrip y cambiar el text por "Actualizar"
Windows Forms

4. Crear eventos click para ambos controles
5. Copiar y pegar el siguiente código en los eventos creados respectivamente:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show("Hola mundo ClickOnce versión: " & My.Application.Info.Version.ToString)
    End Sub

    Private Sub ActualizarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ActualizarToolStripMenuItem.Click
        If My.Application.Deployment.CheckForUpdate Then
            If MessageBox.Show("Se ha encontrado una actualización, desea actualizar la versión?", "Mensaje del Sistema", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information) = DialogResult.Yes Then
                If My.Application.Deployment.Update Then
                    If MessageBox.Show("Actualizado exitosamente, para que los cambios tengan efectos debe reiniciar la aplicación, desea reiniciar la aplicación?", "Mensaje del Sistema", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                        Application.Restart()
                    End If
                End If
            End If
        Else
            MessageBox.Show("No hay actualizaciones disponibles", "Mensaje del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub
End Class

viernes, 5 de julio de 2013

Pro C# 5.0 and the .NET 4.5 Framework Sixth Edition



El eBook "Pro C# 5.0 and the .NET 4.5 Framework Sixth Edition" ya está disponible para descargar en mi skydrive a traves del enlace que pondrè al final de la nota.

El framework 4.5 incluye mejoras en rendimiento y soporte para windows 8 entre otras están:
  • .NET Framework para las aplicaciones del almacén de Windows
  • Bibliotecas de clases portables
  • Capacidad de reducir reinicios del sistema mediante la detección y cierre de las aplicaciones de .NET Framework 4 durante la implementación.
  • Herramientas nuevas como El generador de archivos de recursos 
  • Informática en paralelo que incluyen: Rendimiento mejorado, mayor control, mejor compatibilidad con la programación asincrónica, una nueva biblioteca de flujo de datos, y mejor compatibilidad para la depuración y el análisis de rendimiento en paralelo.
  • Compatibilidad con los nuevos tipos de formulario HTML5.
Y muchos cambios y mejoras en:
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)

domingo, 30 de junio de 2013

Tutorial: Encriptar un archivo en .Net y uso de FileSystemWatcher

Introducción:

En criptografía un cifrado, es un procedimiento que utilizando un algoritmo con cierta clave transforma un mensaje, sin atender a su estructura lingüística o significado, de tal forma que sea incomprensible o, al menos, difícil de comprender, a toda persona que no tenga la clave secreta del algoritmo que se usa para poder descifrarlo. Por tanto tenemos dos algoritmos (el de cifrado y el de descifrado) y dos claves (clave de cifrado y clave de descifrado). Estas dos claves pueden ser iguales (criptografía simétrica) o no (criptografía asimétrica).

Las diferencias entre ambas son en resumen:

Simétrica: 
  • Una misma clave para cifrado y decifrado.
  • Es más rápido.


Asimétrica:
  • Una clave pública para cifrar.
  • Una clave privada para decifrar.
  • Es más lento.
  • Es más seguro que los algoritmos simétricos.


La clase FileSystemWatcher

Escucha las notificaciones de cambio del sistema de archivos y provoca eventos cuando cambia un directorio o un archivo de un directorio. En otras palabras es un monitor de archivos.


Ejercicio práctico:

Para este tutorial de encriptar y desencriptar un archivo en .net, usaremos lo siguiente:
  • Visual Studio 2010
  • Lenguaje C#
  • Algoritmo de cifrado y decifrado DES
  • Este algoritmo necesita una clave de 8 bytes ejm: "12345678", "abcdefgh", "clave123"
  • Clase FileSystemWatcher


1. Lo primero será crear una aplicación de Consola en C# y darle nombre "ConsoleApplicationSeguro_SLN".

2. Crear 2 clases y nombrarlas: "Encriptar.cs" y "Watcher.cs".

3. La clase Watcher será nuestro monitor de archivos y tendrá el siguiente código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;

namespace ConsoleApplicationSeguro
{
    public class Watcher
    {
        public string llave { get; set; }
        public void Run(string ruta)
        {
            Console.WriteLine("Directorio a monitorear: " + ruta);

            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path = ruta;

            // Monitorea cambios como último acceso y última modificación de archivos y directorios.
            watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
               | NotifyFilters.FileName | NotifyFilters.DirectoryName;
            
            // Seteamos el filtro para todos los archivos.
            watcher.Filter = "*.*";

            // Agrego manejadores de eventos "Handlers".
            watcher.Created += new FileSystemEventHandler(OnCreated);

            // Empieza el monitoreo.
            watcher.EnableRaisingEvents = true;

            // Preguntar si desea salir del monitoreo.
            Console.WriteLine("Presione \'q\' para salir del monitoreo.");
            while (Console.ReadLine() != "q") ;
        }

        // Definir los handlers.
        private void OnCreated(object source, FileSystemEventArgs e)
        {
            // Instrucciones que se debe realizar cuando se dispara el evento:
            Encriptar en = new Encriptar();
            Console.WriteLine("Archivo: " + e.FullPath);
            
            if (e.FullPath.Substring(e.FullPath.Length - 3, 3).ToString() != "cfr")
            {
                Console.WriteLine("Encriptando el archivo: " + e.FullPath);
                FileStream archivo = new FileStream(e.FullPath, FileMode.Open, FileAccess.ReadWrite);
                en.CifrarArchivo(archivo, llave);
            }
        }
    }
}

La clase "Encriptar.cs" se encarga de cifrar y decifrar archivos de todo tipo con el siguiente código:

domingo, 23 de junio de 2013

Tutorial Entity Framework y Linq (Parte 3)

En la Entrada anterior desarrollamos la capa DataAccess de nuestra aplicación en capas, pueden ver la entrada aquí: Parte 2

En la parte 3 desarrollaremos la capa BusinessLayer

Desarrollando la capa BusinessLayer:

Lo primero será agregar 2 clases en la capa BusinessLayer con nombres:

  • FacturaCab_Bus
  • FacturaDet_Bus
La clase FacturaCab_Bus contendrá el siguiente código:

Imports DataAccess
Imports Entities
Public Class FacturaCab_Bus
    Dim data As New FacturaCab_Data
    Public Function RecuperarTodas() As List(Of FacturaCab_Ent)
        Return data.RecuperarTodas()
    End Function

    Public Function BuscarUna(ByVal codigoFactura As Integer) As FacturaCab_Ent
        Return data.BuscarUna(codigoFactura)
    End Function

    Public Function Inserta(ByVal factura As FacturaCab_Ent) As Boolean
        Return data.Inserta(factura)
    End Function

    Public Function Modifica(ByVal factura As FacturaCab_Ent) As Boolean
        Return data.Modifica(factura)
    End Function

    Public Function Elimina(ByVal CodFactura As Integer) As Boolean
        Return data.Elimina(CodFactura)
    End Function
End Class


La clase FacturaDet_Bus contendrá el siguiente código:

Imports DataAccess
Imports Entities
Public Class FacturaDet_Bus
    Dim data As New FacturaDet_Data
    Public Function BuscarUna(ByVal codigoFactura As Integer) As List(Of FacturaDet_Ent)
        Return data.BuscarUna(codigoFactura)
    End Function

    Public Function Inserta(ByVal Detfactura As List(Of FacturaDet_Ent)) As Boolean
        Return data.Inserta(Detfactura)
    End Function

    Public Function Modifica(ByVal Detfactura As List(Of FacturaDet_Ent), ByVal CodFactura As Integer) As Boolean
        Return data.Modifica(Detfactura, CodFactura)
    End Function

    Public Function Elimina(ByVal CodFactura As Integer) As Boolean
        Return data.Elimina(CodFactura)
    End Function
End Class


Lo siguiente será crear nuestra interfaz de usuario en la capa WinUI.

Tutorial Entity Framework y Linq (Parte 2)

En la Entrada anterior desarrollamos el esqueleto de nuestra aplicación en capas, pueden ver la entrada aquí:
Parte 1

En la parte 2 desarrollaremos la capa Entities y la capa DataAccess.

Desarrollando la capa Entities:

Lo primero será agregar 2 clases en la capa Entities con nombres:

  • FacturaCab_Ent
  • FacturaDet_Ent
La clase FacturaCab_Ent contendrá las siguientes propiedades privadas y públicas, recuerda escribir "prop" y luego presiona tab 2 veces para que se te genere el código automáticamente.


    Private _IdFactura As Integer
    Public Property IdFactura() As Integer
        Get
            Return _IdFactura
        End Get
        Set(ByVal value As Integer)
            _IdFactura = value
        End Set
    End Property

    Private _CodCliente As String
    Public Property CodCliente() As String
        Get
            Return _CodCliente
        End Get
        Set(ByVal value As String)
            _CodCliente = value
        End Set
    End Property

    Private _FechaFact As DateTime
    Public Property FechaFact() As DateTime
        Get
            Return _FechaFact
        End Get
        Set(ByVal value As DateTime)
            _FechaFact = value
        End Set
    End Property

    Private _ValorFact As Double
    Public Property ValorFact() As Double
        Get
            Return _ValorFact
        End Get
        Set(ByVal value As Double)
            _ValorFact = value
        End Set
    End Property

La clase FacturaDet_Ent contendrá las siguientes propiedades privadas y públicas:

Tutorial VB.NET Entity Framework y Linq (Parte 1)

Introducción:
Lo que se conoce como arquitectura en capas es en realidad un estilo de programación donde el objetivo principal es separar los diferentes aspectos del desarrollo, tales como las cuestiones de presentación, lógica de negocio, mecanismos de almacenamiento, etc.

Arquitectura en Capas

Entity Framework permite a los desarrolladores crear aplicaciones de acceso a datos programando con un modelo de aplicaciones conceptuales en lugar de programar directamente con un esquema de almacenamiento relacional. El objetivo es reducir la cantidad de código y el mantenimiento necesarios para las aplicaciones orientadas a datos.


Language-Integrated Query (LINQ) es un conjunto de características presentado en Visual Studio 2008 que agrega capacidades de consulta eficaces a la sintaxis de los lenguajes C# y Visual Basic. LINQ incluye patrones estándar y de fácil aprendizaje para consultar y actualizar datos, y su tecnología se puede extender para utilizar potencialmente cualquier tipo de almacén de datos.



Requisitos previos para este tutorial:
  • Visual Studio 2008 o superior y Sql Server 2005 o superior.
  • Se realizara con los lenguajes de VB.Net.
  • Se usara la versión 4.0 de .Net Framework

martes, 11 de junio de 2013

Cursos Microsoft Gratuitos!

Se acuerdan del Programa Desarrollador Cinco Estrellas (DCE)?, pues bueno, este programa cerró sus puertas el día 12 de abril del 2012, para dar paso a Microsoft Virtual Academy en donde podrás seguir capacitandote, encontrando carreras completas y especializaciones en las últimas tecnologías de Microsoft tales como:

Desarrollo de .Net
Carrera Visual Studio
Computación en la Nube
Windows Phone
Windows Azure
Sql Server, etc


Aprovecha todos los recursos que Microsoft nos da a nuestra disposición, a través del siguiente enlace:


Para poder hacer carrera necesitaras registrarte con una cuenta Microsoft usando tu cuenta de correo hotmail.

Según vayas avanzando con los cursos, tu puntaje se irá incrementando. A continuación una imagen de mis avances:

Al finalizar una carrera o curso, podrás descargar e imprimir un certificado de finalización del curso o carrera, tal como el siguiente:


miércoles, 29 de mayo de 2013

eBook ADO.NET 4.1 Unai Zorrilla Castro

Qué es ADO.NET?


Es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que están incluidas en el Microsoft .NET Framework. Es comúnmente usado por los programadores para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolución de la tecnología ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido como un producto enteramente nuevo.







ADO.NET




información del Libro:

Ya ha pasado mucho tiempo desde la primera versión de ADO.NET Entity Framework, así como de la primera edición de esta obra, la cual supuso el primer libro editado sobre esta tecnología en el mundo. Esta nueva entrega, además de una revisión profunda de los distintos conceptos explicados anteriormente, cubre también las nuevas funcionalidades de EF 4.0 y EF 4.1. 

Para apoyar a este libro y a los distintos recursos de ejemplos que lo acompañan, se ha incorporado una completa aplicación de referencia en .NET 4.0 en la que se pueden ver muchas de las técnicas y patrones explicados. Esta aplicación -alojada en Codeplex- incorpora también elementos adicionales como WCF, WPF, Silverlight, MVC... La actual edición de este libro se divide en seis capítulos principales más una serie de apéndices para ampliar algunos elementos. El texto comienza con un capítulo de introducción tanto a la tecnología EF 4.x como a diferentes conceptos importantes que serán manejados a lo largo del resto de libro. Los siguientes capítulos introducen paulatinamente al lector en las distintas posibilidades que la tecnología ofrece para consultar y actualizar los datos de un modelo conceptual. 

Todo ello se hace de una forma ordenada, tal y como se concibieron los distintos subsistemas que componen Entity Framework, y explicando las ventajas e inconvenientes de cada uno de ellos. Se desarrolla un ejercicio de aplicación en el mundo real, apoyándose en la mencionada aplicación de ejemplo que el usuario puede descargar y probar en Codeplex. Incluye todas las novedades de EF 4.1 haciendo especial hincapié en Code First. Dado que se profundiza conceptualmente en todos los temas, aparte de ser una herramienta fundamental de aprendizaje, este libro es también un manual de referencia que siempre querrá tener a mano.



Puedes tener acceso al libro desde aqui:

eBook Tecnologías ASP.NET 4.0 por José Manuel Alarcón

Qué es ASP.NET?



Es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores para construir sitios web dinámicos, aplicaciones web y servicios webXML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET está construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.



Cualquier persona que está familiarizada con el desarrollo de aplicaciones web sabrá que el desarrollo web no es una tarea simple. Ya que mientras que un modelo de programación para aplicaciones de uso común está muy bien establecido y soportado por un gran número de lenguajes, herramientas de desarrollo, la programación web es una mezcla de varios lenguajes de etiquetas, un gran uso de lenguajes de script y plataformas de servidor. 

Para el programador de nivel intermedio, el conocimiento y las habilidades que se necesitan para desarrollar aplicaciones web requieren de un mayor conocimiento tanto de lenguajes de programación, etiquetado y formato, como de diversas tecnologías de software relativas al desarrollo distribuido y concurrente, de las que son necesarias en el desarrollo tradicional de aplicaciones. 

ASP.NET


información del Libro

El tema central del libro: Aumenta tu productividad al desarrollar aplicaciones Web 2.0. Y con él conseguirás aprender todo lo necesario para crear aplicaciones de calidad en el menor tiempo posible. 

Esta obra está dirigida a programadores de ASP.NET 2.0 que quieren dominar las principales tecnologías que aporta la última edición de la plataforma de desarrollo Web de Microsoft, ASP.NET 4.0. Con él aprenderás a fondo todas las nuevas tecnologías aparecidas recientemente, relacionadas con el desarrollo Web. 

Puedes tener acceso al libro desde aqui: 

Tutorial Criptografía en .Net

Comencemos definiendo "Criptografía"


Literalmente significa escritura oculta, es la ciencia o arte que se ocupa de alterar las representaciones lingüísticas de mensajes mediante técnicas de cifrado y/o codificado para hacer al mensaje no comprensible ante lectores no autorizados o intrusos que puedan interceptar estos mensajes.


Un ejemplo sencillo: 


Tenemos un archivo de texto al que denominaremos Mensaje Original, el cuál queremos enviar a un amigo pero queremos asegurarnos de que solo él lo pueda ver:




Mediante técnicas criptográficas, si el mensaje llega a manos equivocadas ocurrirá lo siguiente o algo parecido al intentar abrir el archivo:



Criptografía



Únicamente! el que posea la llave o key podrá desencriptar el archivo para poder leerlo legiblemente.







Criptografía de .NET Framework


.NET Framework proporciona implementaciones de numerosos algoritmos criptográficos estándar. Estos algoritmos son fáciles de utilizar y disponen de las propiedades predeterminadas más seguras. Además, el modelo de criptografía de .NET Framework de la herencia de objetos, el diseño de las secuencias y la configuración es muy extensible.


El siguiente tutorial muestra cómo cifrar y descifrar contenido. Los ejemplos de código están diseñados para una aplicación de formularios Windows Forms. Esta aplicación no muestra escenarios reales, como el uso de tarjetas inteligentes. En su lugar, muestra los principios del cifrado y descifrado.


Tutorial Windows Presentation Foundation (WPF)

Qué es WPF?

Windows Presentation Foundation (WPF) es un sistema de presentación de la próxima generación, para crear aplicaciones cliente de Windows que proporcionen una experiencia impactante para el usuario desde el punto de vista visual.


Para qué sirve?

Es para desarrollar aplicaciones gráficas mas vistosas, elegantes, usando el motor de DirectX en ves del GDI que usa WinForms.

WPF divide la lógica de diseño y programación mas fácilmente.


Cómo funciona WPF?

Básicamente, para el diseño se usa un lenguaje llamado XAML y para el código puedes usar los lenguajes de .NET como C# y VB.


Qué es XAML?

XAML es un lenguaje de marcado basado en XML que se utiliza para implementar la apariencia de una aplicación mediante declaración. Se suele utilizar para crear ventanas, cuadros de diálogo, páginas y controles de usuario, así como para rellenarlos con controles, formas y gráficos.

También puedes generar animaciones 3D, varios efectos, e incluso enlaces de datos dinámicos usando puro XAML de forma eficiente.


A continuación una imagen de lo que se puede lograr con WPF:

wpf



A continuación un enlace Tutorial para aquellos que desean aprender de la manera más fácil WPF, donde encontrarás codigos, diseños, estilos, etc:



Nota: Requisito tener instalado Visual Studio 2010 o superior. Ya que en el tutorial, se usa un control "DataGrid" que está disponible solo en la versión 4.0 y posteriores del Framework .Net

miércoles, 22 de mayo de 2013

Tutorial Multithreading en .Net (c#)

Qué es un Hilo de Ejecución o Thread?

La creación de un nuevo hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra tarea.

Ahora un ejemplo práctico usando el lenguaje de programación C# .NET:




public void MuestraDatos()
{
    for (int i = 0; i < 100; i++)
    {
        Console.WriteLine("Hilo Secundario: Registro # {0}", i);

        // Lo siguiente suspende el subproceso actual
        // durante un período de tiempo especificado en milisegundos
        Thread.Sleep(10);
    }
}

public void HiloPrincipal()
{
    Console.WriteLine("Hilo principal: va a ejecutar hilo secundario...");
    // el constructor de la clase thread requiere que se use
    // el delegado ThreadStart y como parametro pasar el metodo
    // a ser ejecutado sobre un hilo:
    Thread t = new Thread(new ThreadStart(MuestraDatos));

    //Para ejecutar el metodo MuestraDatos se usa el metodo start:
    t.Start();
    /*
    Si usted tiene un solo procesador, el nuevo
    hilo no consigue tiempo del procesador hasta que el hilo principal
    prevalezca..  Elimine el comentario Thread.Sleep para
    permitir a t.Start() ver la diferencia.
    */
    //Thread.Sleep(0);
    for (int i = 0; i < 4; i++)
    {
        Console.WriteLine("Hilo Principal: Está trabajando.");
        Thread.Sleep(100);
    }
    Console.WriteLine("Hilo Principal: llama a t.Join(), para esperar hasta que MuestraDatos Termine.");
    t.Join();
    Console.WriteLine("Hilo Principal: t.Join() ha terminado.");
    Console.WriteLine("Presione enter para terminar el programa.");
    Console.ReadLine();
}







Si deseas ver el código fuente da clic en el siguiente enlace: