domingo, 15 de julio de 2012

<Microsoft Entity Framework/ LinQ>


Recientemente me vi en la necesidad de realizar un pequeño administrador de archivos dentro de uno de mis proyectos, Visual Studio 2011 dispone de una habida cantidad de funciones disponibles para usarlas desde su framework.

Bajo la sombra de las nuevas tecnologías de programación me pude dar cuenta de muchas opciones que han sido optimizadas por Visual Studio 2010, con el actual Microsoft Entity Framework que viene integrado al actual .NET Framework 3.5 se encarga de organizar la información tus bases de datos dándoles el nombre de entidades dentro de su marco de desarrollo de tal manera que se pueden aprovechar los recursos de consultas estructuradas dentro de nuestro lenguaje de programación Visual Basic o C#.


Al inicio parece confuso el darse cuenta de que este tipo tecnologías colaboran en gran manera a ahorrar grandes cantidades de tiempo si se desean desarrollar aplicaciones de mediano tamaño pero utilizando la modesta programación por capas.

En mi caso, decidí crear una base de datos de muestra para verificar si dicha herramienta dentro del entorno de Visual Studio llenaba los requisitos de estructurar los datos desde las base de datos con nuevas sentencias y funciones de sintaxis que parecen traídas desde el planeta Marte.

El resumen del ejemplo siguiente será el de desarrollar un pequeño formulario que contemple la información desde una base de datos con nuestro motor de base de datos SQL Server 2012 o versión anterior y conectarlo a un modelo .edmx desde un proyecto de Visual Studio 2010.

Esta herramienta puede ser realmente útil si se toma en cuenta de que algunas de las tareas principales y cotidianas que realiza una base de datos se basan en el ingreso, modificación, eliminación y selección de datos.

Trabajamos ahora con algunas nuevas instrucciones integrados bajo el nombre de LinQ.-

Instrucciones para el experimento:

1- Crear una base de datos con el nombre que desees, en mi caso la denominé "DB_ExampleEntity"

2- Agregar una tabla denominada TabInformationData el primer campo será nuestra llave primaria de tipo autonumerico.

                                                IdPersonalNumber     int 
                                                Nombre                       nvarchar(50)
                                                Direccion                    nvarchar(50)
                                                Telefono                      nvarchar(100)


3- Abrimos Visual Studio 2010 y crearemos un nuevo proyecto denominado ProjExampleEntities a nuestra solución


4- Agregaremos un nuevo elemento, esta vez seleccionaremos un ADO.NET Entity Data Model.




Este elemento sera el encargado de crear de manera automática la estructura de nuestra base de datos, y actualizará cada uno de los elementos si estos han sufrido modificaciones el cual bajo el nombre de



5- Seleccionamos Generate form Database, y terminamos nuestra conexión




6- Inmediatamente se generará el modelo de entidades que llevará consigo heredadas todas las referencias para pode operar con nuestra base de datos de manera inmediata.

7- Dentro del formulario default, necesitaremos las siguientes librerías para poder operar con la información, pero primero debemos de crear el formulario que contendrá el diseño de nuestros campos de dicha base de datos.


No olvidar agregar el siguiente  código para nuestras librerías que necesitan LinQ y datos de consulta.-

Imports System.Linq
Imports System.Data
Imports System.Linq.Expressions


En este momento deberemos de instanciar nuestro modelo desde el editor de código, así como la entidad que contendrá nuestros datos.

- Debido a que haciendo uso de internet muchas veces es difícil encontrar código específico para poder trabajar LinQ mediante código de Visual Basic, tomé a bien ponderarle un poco más de importancia a este lenguaje con el que también se puede trabajar de manera modesta.

En el evento clic del botón escribiremos las siguientes líneas de código que autogenerarán un nuevo registro, el cual puedes hacer presente con validaciones y otro estilo de reglas que mas creas convenientes para poder darle una forma mas integrada a tu aplicación.


Public Class Form1
    Dim DB_ExampleModel As New DB_ExampleEntityEntities
 
    Private Sub btnGuardar_Click(sender As System.Objecte As System.EventArgsHandles btnGuardar.Click
        Dim TabPersonalData As New TabPersonalData With
            {
            .Nombre = txtNombre.Text,
            .Direccion = txtDireccion.Text,
            .Telefono = txtTelefono.Text
            }
    End Sub
End Class

martes, 3 de abril de 2012

<Practicando y Codificando/ * Uso de Variables>

La vez anterior mostraba algunos consejos básicos que se pueden tomar en cuenta al momento de realizar la codificación de una aplicación.-

Ahora pondremos en práctica dichos consejos a la vida real, de tal manera que se mostraran algunos ejemplos que ayuden al lector a ser el formador de sus propios criterios dentro de su entorno de trabajo.-

- Variables 

Las variables son la base principal del engranaje de nuestras aplicaciones pues mediante ellas se hace posible interactuar con las configuraciones y operaciones que deseamos realizar con la información de nuestros programas, estas comprenden una asignación de memoria que el compilador coloca con su espacio y un tipo para poder presentar los resultados deseados en pantalla u operarlos de manera interna para obtener un resultado, es por ello que debemos de darles el mejor uso al momento de declararlas.-

En esta parte utilizaremos como ejemplos básicos el lenguaje de programación Visual Basic y  C# para demostrarlo.

Veamos la manera común de declarar variables que comúnmente se emplea para ambos lenguajes.-

Ejemplo Visual Basic


Dim V As Integer
Dim S As String

- En Visual Basic se escribe la palabra Dim para declarar una variable y se le asigna el tipo de dato que contendrá.-


Las letras V de tipo entero y S de tipo cadena de caracteres realmente no son variables significativas para comprender lo que representan dentro de la elaboración de nuestro programa. En este caso tomemos a usar palabras breves que den a entender fácilmente lo que se esta operando.-


Ejemplo C#

string strCodigo;
int NumPagos;

- En C# se asigna primeramente el tipo de variable, seguido de un ";" después del nombre de la variable

Los nombres utilizados son nombres descriptivos que dan una percepción  a posibles usuarios de comprender la finalidad de dichas variables y de esta manera comprender el código de una manera mas sencilla.

En el primer ejemplo utilizamos las primeras letras para exponer el tipo de variable utilizada dentro del programa, el prefijo "str" nos indica que esa variable es de tipo cadena y nos indica que esa variable contiene el código de algo o alguien, sin embargo podemos colocar nombres aún mas significativos para ser mas precisos a medida que las tareas de nuestro programa se hagan mas extensas como por ejemplo podemos llamarle "strCodAlumno" en donde también mezclamos letras mayúsculas y minúsculas, ya que nuestro compilador no reconoce variables compuesta por varias palabras. 

El segundo tipo de variable ser reconoce como variable implícita, en donde se asume que el usuario que analice el código, al verlo sabrá de antemano el tipo de variable al que pertenece tan solo con ver su nombre dentro del programa, en este caso hemos utilizado.

<¿Programación en español...? ¿Por que no...?>

En muchas ocasiones, las personas sienten pánico y terror en la mayoría de los casos al pensar en programación, se sienten frustrados ya que no se sienten correctamente capacitados para   solucionar problemas lógicos y tampoco conciben la idea de adaptarse a usar las palabras de un lenguaje que no es muy querido por la mayoría de nosotros como latinos.

Alguna vez te has preguntado del ¿Por qué no se enseña a programar en español...?

Pues bien, se dice que para aprender es necesario hacerlo en condiciones cómodas en el cual el estudiante pueda sentirse más seguro de lo que va haciendo. Los niveles de frustración se reducen y las cantidades de dopamina (sustancia química que el cerebro libera y provoca placidez) incrementan a medida se resuelven problemas una y otra vez.

Con este dato, podemos deducir que el hacerlo sería favorable para la mayor parte de nosotros y nuestros alumnos, sin embargo, los programas diseñados para esta finalidad se encuentran elaborados bajo términos estandarizados  con el fin de unificarlo en un solo lenguaje y el idioma inglés es el mas utilizado a nivel mundial hasta el momento.-

Los lenguajes de programación aplicados han sido adaptados bajo frameworks que trabajan bajo el inglés como lenguaje nativo.-  Pero esto tiene una limitante que resulta para muchos algo difícil de pasar debido a que no sienten mucha afinidad por estudiar otro idioma.

Esto aunado a que en algunas instituciones educativas y universidades atan su currícula educativa al uso intensivo de las matemáticas, física y estadística para alcanzar aquel nivel de desarrollo lógico que desean formar en la mayoría de los estudiantes que al final de un período o curso.

Este tipo de concepción herrada no trae nada mas que desanimo y paradigmas al estudiante que al final saldrá marcando acerca de que la programación es algo imposible de realizar por ellos mismos.

En el siguiente ejemplo simple se puede demostrar que haciendo uso de una buena explicación y la buena programación en español podemos hacer que nuestro computador resuelva los problemas típicos que van desde la suma de dos números hasta encontrar resultados estadísticos útiles para toda empresa hoy en día.

A continuación haremos uso del Visual Studio 2010 bajo el lenguaje de programación Visual C# desde consola para demostrar que programar sin estos elementos es absolutamente fácil y nada difícil de realizar, sabiendo llevar de la mano al estudiante de informática.



Veamos el siguiente problema:
Realice un programa para determinar el mayor de dos números:

Pasos lógicos
1- En este caso vemos que se hace necesario el ingreso de dos números (cantidades) para compararlos entre sí. 

2- Al final se debe determinar un resultado de salida de el cual es saber si la primera cantidad es "Mayor" o "Menor" que la segunda.-

Procedimientos
1- Abrimos Visual Studio 2010 y seleccionar Archivo.
2- Seleccionar Nuevo Proyecto
3- Seleccionar aplicación de consola, definiremos el nombre del proyecto como "ComparaCantidad", y elegimos cualquier ubicación en donde deseemos colocarlo.-



El programa generará automáticamente el cuerpo de la aplicación, nosotros nada más haremos uso de ella después de la primera llave de apertura después del static void Main(string[] args)

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

namespace ComparaCantidades
{
    class Program
    {
        static void Main(string[] args)
        {
        //Tu código aquí
        }
    }
 }

Haremos uso de programación en español tomándolo de forma similar de como se elabora un pseudo código en C++ para escribir nuestro programa.-


1-  Declarar PrimeraCantidad, SegundaCantidad
2-  Escribir línea "Digite la primera cantidad:"
3-     Convertir a entero la primera cantidad.
4-  Escribir linea "Digite la segunda cantidad"
5-    Convertir a entero la segunda cantidad.
6-          Comparar cantidades
7-  Escribir línea de resultado


Se han escrito líneas que indican la secuencia en que se deben realizar los pasos,  el espacio de las líneas 3, 5 y 6 nos indican que se debe hacer una dicha tarea antes de pasar al siguiente paso, este es el principio de lo que se conoce como identación.-


NOTA
Cuando el usuario asigna un resultado de manera manual, este resultado se envía en cadena de caracteres, por lo que deberemos acudir a hacer uso de la función conocida como Convert.ToInt32() para convertir esta cadena a números enteros.-


Creemos entonces el código del primer, segundo y tercer pasos:


//Creamos las dos variables
int intPrimCantidad, intSegCantidad; 

//Escribimos la primera línea.
Console.WriteLine("Digite la primera cantidad");

//Convertimos y asignamos el valor leído a la variable  
intPrimCantidad = Convert.ToInt32(Console.ReadLine());

Note que el nombre de las variables se han escrito con la finalidad de que el usuario pueda hacer uso de ellas sabiendo lo que contiene su valor.-


Repetimos lo mismo para la segunda variable.


//Escribimos la segunda línea
Console.WriteLine("Digite la segunda cantidad");

//Convertimos y asignamos la segunda línea
intSegCantidad = Convert.ToInt32(Console.ReadLine());  

Realizamos la comparación y escribimos el resultado


//Verificamos si la primera variable
//es mayor que la segunda.
if (intPrimCantidad > intSegCantidad)
{
    Console.WriteLine("La primera cantidad es mayor");
}
else
{
    Console.WriteLine("La segunda cantidad es mayor");
}

Ahora tenemos el código elaborado de una manera más fácil de realizar y listo para compilarlo.

lunes, 2 de abril de 2012

<Tips de programación en el desarrollo de aplicaciones>


Iniciar por el comienzo

Cuando llevamos un proyecto encaminado a la programación, se nos ocurre un sin fin de maneras sobre como iniciar uno u otro proceso y de repente pasamos por un bombardeo de ideas sobre como poder hacer esto o aquello,  de pronto se nos ocurre algo fantástico visto en la web o aparece una forma mas simple para llevarlo a cabo y de pronto nos vemos experimentando en nuestro laboratorio de aplicaciones, hurgando nuestras librerías de archivos desempolvando libros que nos den una orientación precisa de nuestras inquietudes.

Si bien es cierto, muchas veces nos dejamos llevar por la emoción y nos exponemos a que aquella chispa que comenzó como una enorme llamarada en nuestra mente termine siendo el leve fuego de un chispero, ya que al empezar algo con tanto esmero e ímpetu, nos podríamos ver en la encrucijada de abandonarlo o retrasarlo por falta de motivación repentina ante la frustración de no poder lograrlo a tiempo o mientras nos lo propusimos.-

Si estas iniciándote como programador y quieres que tus programas reflejen los mejores resultados, puedes tomar en cuenta los siguientes consejos que te presento a continuación.-

1- De la idea al papel
Nunca te dirijas directamente a la computadora a diseñar, recrear y mucho menos a codificar, antes bien, debes asimilar aquella idea que tienes en mente, dándole una solución coherente. Esta es la parte mas importante de tu proyecto, ya que este es el punto de partida que dará inicio a todo lo ideado y en donde se debe tener el mayor cuidado, ya que se debe hacer uso del razonamiento entre lo real y lo imaginario.-

Puedes valerte de instrumentos útiles como lápiz y papel o pizarra y plumones para hacer un bosquejo de como piensas hacer las tareas de tus programas. Debes pensar primeramente en el modo mas fácil de como hacer para que los usuarios se adapten y comprendan tu programa, ya que al final son ellos quienes terminarán utilizándolo o destinarlos a la casi eterna gaveta de un escritorio.

Debemos olvidarnos en este caso de la idea de utilizar el "arte abstracto" en donde solamente el autor comprende lo que refleja su obra.




El desarrollo de una aplicación novedosa no involucra estar dentro de una oficina, una silla reclinable junto a un computador de última generación, puedes hacerlo desde la comodidad de tu casa.


2- Acción y selección
Como todo buen desarrollador, puedes hacerte de la ayuda de un buen colega que previsualize escenarios de ejecución, esto puede ayudar en gran manera a prever cualquier situación inesperada y evitar un momento vergonzoso al no percatarnos nosotros mismos. Este punto no es nada fácil ya que no a muchas personas se les da el arte de programar. Sin embargo, elige a una persona con tus mismas metas y principios, no dejando de lado el respeto y la pasión hacia un fin común. No necesariamente debe de ser un analista altamente calificado, todo basta con que sea realista y ayude a poner tus pies sobre la tierra.

Si tienes suerte y existe mas de una persona en tu lista negra, puedes organizarte y asignar tareas particulares para el desarrollo de tu aplicación. Un ejemplo puede ser el de una persona encargada de organizar y realizar las citas pertinentes para reuniones y organice los puntos específicos a tratar e intervenga con elocuencia y facilidad de palabras evitando la pérdida de tiempo, otro puede ser el encargado de las actividades para levantar un cronograma continuo de las actividades que se llevan a cabo para la culminación del proyecto etc.



Pero si en realidad eres alguien autodidacta que desea emprender rumbo completamente solo, no esta demás que al menos te valgas de los consejos de tus mas allegados, un mentor experto en la materia o un docente, ya que en estas circunstancias siempre se hace necesaria la opinión de una persona que vea nuestro trabajo externamente.

Al final todo dependerá de tu desempeño y tus habilidades para elegir cual de todos estos puntos es el mas indicado para ti.


3- Honestidad y modestia
Al vender tu trabajo trata de hacerlo con modestia, deja que tu mismo trabajo hable por ti, ponga en evidencia tus conocimientos. Los hechos valen mas que mil palabras, y una aplicación bien realizada no es la excepción.

Al hacerlo estarás abriendo las puertas para futuras recomendaciones de mayor reto para tu beneficio.-



viernes, 30 de marzo de 2012

<Programación en Capas>


Hoy en día, la programación se adapta de diferentes maneras a nuestras necesidades y según sea la complejidad de cada proyecto que deseemos emprender. Es importante conocer día a día los cambios recurrentes que se van dando con el paso del tiempo junto a los nuevos cambios que se nuevos desarrolladores implementan en sus aplicaciones. Sin embargo, la mayoría de ellos basan sus fundamentos en los pilares sobre los cuales se encuentran cimentados.

El tema parece demasiado abstracto como para comprenderlo a groso modo. Sin embargo, probablemente la primera pregunta que el lector refleje sea la siguiente:

¿Por qué programar en capas? 
Pues bien, para responder a esta interrogante, busquemos en cualquiera de los motores de búsqueda de internet una aplicación con código necesario para crear una aplicación que adicione, recoja, modifique y elimine los registros de nuestras tablas dentro de una base de datos. Al percatarnos de ello, podemos apreciar las cantidades de líneas necesarias para hacer funcionar una aplicación que manipule los datos de esta manera, sin decir que muchas veces en estos ejemplos hacen falta gestionar las validaciones pertinentes, autenticar permisos de acceso y crear objetos e instancias necesarias para administrar los datos dentro de una base de datos.

Si nos enfrascamos en la idea de que nuestras aplicaciones son y deben realizarse "sin complicaciones" realmente estaríamos dificultando aún mas nuestra situación cuando llevemos este modelo de trabajo a expectativas mas amplias y ostentosas.

Sin su implementación, realmente todo se volverá un verdadero caos de código apilado dentro de nuestro editor a medida que avancemos mas y mas veremos que si no organizamos correctamente nuestro trabajo y no tomamos en cuenta las herramientas y consejos de profesionales expertos, nuestro proyecto puede que termine en los confines de la maravillosa papelera de reciclaje una y otra vez.


¿Cómo me beneficia el modelo de programación por capas?
Al realizar una aplicación, tomando en cuenta este método podremos tener organizado nuestro código de una manera mas eficiente. legible y ordenado de manera que los procesos no se centralizarán ni recaerán en una sola instancia de código.

Otro punto importante a tomar en cuenta, es que este método conlleva a dinamizar un trabajo dentro de un equipo de desarrollo, dividiendo los procesos que van desde las tareas mas fáciles hasta aquellas que requieran la intervención integrada de dos o mas integrantes del equipo desarrollador, los cuales puede que trabajen de manera conjunta dentro de una oficina o diversas partes del mundo haciendo uso del desarrollo en línea.


Crea un esquema estandarizado de trabajo que permite comprender mas fácilmente aquello que se desea solucionar, de modo que Juan pueda entender el código de Luís en una tasa de tiempo menor.




¿Cómo comprender este modelo?

Una función importante de programación por capas es que se ocupa de colocar el código en  "niveles" de esta modo se hace más fácil la búsqueda de errores (bugs) en la depuración.- 

Los desarrolladores profesionales utilizan "muchas capas"  para desarrollar aplicaciones complejas y bien estructurada según su finalidad y el tipo de proyecto que desean llevar a cabo. 

En este caso, se ha estandarizado el modelo de tres capas como el modelo inicial de trabajo que desarrollaremos paso a paso para comprenderlo de una mejor manera. 

1-  Capa de Datos: Es la capa que contiene el código que hace trabajar directamente el motor de base de datos el cual puede ser cualquiera de los ya conocidos (SQL Server, Oracle, MySql etc) y sera quien manipulara nuestros datos según se desee.  

2- Capa de Negocios: La capa de negocios es la que gestiona todos los procedimientos que deseamos hacer desde nuestro lenguaje de programación y encierra los datos dentro de propiedades, las cuales son una especie de variables que contienen una copia de los datos de entrada o salida según sean su naturaleza.

3- Capa de Presentación: Esta capa contiene la presentación, como su nombre lo dice, es la que contiene los objetos utilizados que le dará aquel toque elegante a nuestra aplicación, el cual puede ser web o local. 

En los siguientes post llevaremos a cabo ejemplos sencillos y prácticos que simplifacará todo lo contextualizado hasta el momento.-

Tu participación es importante, propón ideas y comenta este contenido para poder enseñar a otros el potencial que llevamos dentro.-


Bendiciones.-

jueves, 29 de marzo de 2012

<Código 27-1>

Con el paso del tiempo, las diferentes herramientas de desarrollo y la lógica de programación elaboran intrincados códigos que por su nomenclatura son difíciles de comprender, en este blog asumiremos la tarea de traer para ti la comprensión desenmarañada de códigos fuente útiles para tu uso cotidiano.

«Hazlo simple: tan simple como sea posible, pero no más»
Albert Einstein