Mostrando entradas con la etiqueta .NET. Mostrar todas las entradas
Mostrando entradas con la etiqueta .NET. Mostrar todas las entradas

jueves, 25 de agosto de 2016

Tutorial: Sistema de login y registro de usuarios VB.NET (Parte 1)

Importante

El código fuente se puede descargar en el enlace que está al final del tutorial.

Objetivos

Mostrar un desarrollo básico de una ventana de login de usuario, usando modelo de desarrollo en capas, Visual Basic.Net, Sql Server, acceso a datos usando Entity framework, Linq, lenguaje de predicados, que permita ingresar a un sistema de restaurante proporcionando un usuario y contraseña válidos.

Alcance

Este desarrollo fue pensado y realizado para poder crecer al punto de hacer un sistema para gestión de restaurante, por lo que este proyecto será reutilizado en futuras entradas del blog, para ir añadiendo funcionalidades como ventas, mesas, inventario y reportes. 

Vista Previa

Ventana de Login
Login

Ventana del Sistema de Restaurante (MDI Form)
MDI Form


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


sábado, 30 de noviembre de 2013

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: 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.

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

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.

miércoles, 29 de mayo de 2013

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