viernes, 11 de mayo de 2012

Clases en C#


Clases en C#
Por Diógenes Amaury MS 
Para entender el concepto de clase, debemos iniciar por la definición de objeto. Un objeto es un agregado de datos y de métodos que permiten manipular dichos datos, y un programa en C#  es  un conjunto de objetos que interaccionan unos con otros a través de sus métodos.
    Una clase es la definición de las características concretas de un determinado tipo de objetos. Es decir, de cuáles son los datos y los métodos de los que van a disponer todos los objetos de ese tipo. Por esta razón, se suele decir que el tipo de dato de un objeto es la clase que define las características del mismo.
Una clase es un contenedor de uno o más datos (variables o propiedades miembro) junto a las operaciones de manipulación de dichos datos (funciones/métodos

 Creación de una clase en c#
1    Ir a el Nombredel Proyecto pulsamos clic derecho y nos ubicamos en la opción Add, luego  seleccionamos la opción que dice Class.
2       Sustituimos Class1 por el nombre que le vamos a asignar en nuestro caso la llamaremos Estudiante.



  class Estudiante
    {
    }

Como hemos visto simplemente hemos creado el nombre de la clase, ahora procederemos a declarar los miembros de la clase, que para nuestro ejemplo seran los datos generales del estudiante que serán almacenados en  variables
Para tal caso procedemos a declarar la variable recordando que para esto necesitamos la siguiente sintaxis.

<tipovariable> <nombrevariable>;

public class Estudiante
{
  public static  string Matricula;
  public static string Nombre;
  public static string Apellido;
  public static int Edad;
  public static string Direccion;
  public static string Carrera;
}

 Llenando una clase, de forma directa.
Imaginemos que deseamos llenar la clase estudiante sin tener que utilizar objetos adicionales, tales como textbox u otros.
    private void btnllenaclase_Click(object sender, EventArgs e)
        {
            Estudiante.Matricula = "00-0001";
            Estudiante.Nombre = "Juan Mariano";
            Estudiante.Apellido = "Lora Peralta";
            Estudiante.Edad = 19;
            Estudiante.Direccion = "Las Colinas, calle #25";
            Estudiante.Carrera = "Inegieria de Software";
        }

Llenando una clase desde textbox u otro objeto.
        private void btnllenaclase_Click(object sender, EventArgs e)
        {
            Estudiante.Matricula = TXTMATEST.Text;
            Estudiante.Nombre = TXTNOMEST.Text;
            Estudiante.Apellido = TXTAPEEST.Text;
            Estudiante.Edad = Convert.ToInt32(TXTEDAEST.Text);
            Estudiante.Direccion = TXTDIREST.Text;
            Estudiante.Carrera = TXTCAREST.Text;
        }
Si queremos llamar la clase anterior desde otro formulario el procedimiento sería inverso al anterior:
TXTMATEST.Text =Estudiante.Matricula ;
TXTNOMEST.Text = Estudiante.Nombre ;
TXTAPEEST.Text = Estudiante.Apellido;
TXTEDAEST.Text = Convert.ToString (Estudiante.Edad);
TXTDIREST.Text =Estudiante.Direccion;
TXTCAREST.Text =Estudiante.Carrera ;


Herencia de una clase:
La herencia es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos. 
Sintaxis.
class Clasehija : ClasePadre
     {


     }

Aquí mostramos un ejemplo de la clase nota que hereda de la clase Estudiantes todos sus atributos.
   public class nota : Estudiante
     {
       
     }

Los métodos son un bloque de código que contiene una serie de instrucciones. En C#, cada instrucción se ejecuta en el contexto de un método.
Los métodos se declaran en una clase o estructura especificando el nivel de acceso, el valor devuelto, el nombre del método y los parámetros de método. Los parámetros de método se incluyen entre paréntesis y separados por comas. Los paréntesis vacíos indican que el método no requiere ningún parámetro.
public class nota : Estudiante
  {
  public static double promedio(double nota1, double nota2, double nota3)
   {
   return (nota1 + nota2+ nota3)/3;
   }
  }

Instancia de Clase:
Una vez que tenemos una clase definida, lo único de lo que disponemos es de una especie de plantilla o molde a partir del cual podemos crear objetos en memoria. Logramos estos Mediante la instrucción new que es la encargada de crear el objeto en la memoria y asignar la dirección del mismo a la variable usada en la parte izquierda de la asignación
      
   Form fomulario = new Form2();
   fomulario.Show();

En el ejemplo anterior instanciamos a la variable fomulario el objeto tipo Form llamado Form2, para luego ser llamado con el metdodo Show.

Ejemplo: Instanciando la clase Estudiante

Estudiante estu = new Estudiante();
En este caso, la variable estu adquiere todas las características de la clase Estudiante, ya que es una copia en memoria de dicho Objeto.




domingo, 29 de abril de 2012

Desarrollo ágil de software


¿Qué es el desarrollo ágil de software?
Por: Diógenes Amaury MS

El desarrollo ágil de software, es una metodología de gestión adaptativa, que te permite llevar a cabo, proyectos de desarrollo de software, adaptándote a los cambios y evolucionando en forma conjunta con el software. Es muy importante dejar claro que no se trata de una herramienta o aplicación, sino más bien de un conjunto de métodos utilizado en el desarrollo de software, que consiste en la convención de prácticas, métodos, principios, y técnicas cuya principal utilidad es la de proveer un mejor rendimiento del equipo de trabajo y  sobre todo, permitir la producción de mejores resultados en lo que se produce durante el proyecto. Esta metodología no es únicamente utilizada en el desarrollo de software, ya que diferentes empresas de otra naturaleza también los manejan, como es el caso de la Toyota.

Existen muchos tipos de metodología agiles de desarrollo de software como son:
eXtreme Programming (XP), Kanban, Scrum, entre otros. Nuestro contenido del dia de hoy, será enfocado en la metodología Scram.

¿Qué es Scrum?
Scrum es una metodología ágil de gestión de proyectos de desarrollo de software, basada en un proceso de trabajo constante, iterativo e incremental, que toma su nombre y principios de los estudios realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80.
Jeff Sutherland aplicó el modelo Scrum al desarrollo de software en 1993 en Easel Corporation (Empresa que en los macro-juegosde compras y fusiones se integraría en VMARK,luego en Informix y finalmente en Ascential Software Corporation)

 Scrum, propone una serie de características que deben guardarse a fin de lograr resultados óptimos en el desarrollo de sistemas de alta complejidad. La propuesta de Scrum, consiste en realizar entregas potencialmente utilizables de forma iterativa e incremental, en períodos de 2 a 4 semanas denominados "Sprints". Para lograrlo, establece ciertas pautas organizativas, a simple modo de guía y no de reglamento invasivo.

Scrum es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto.

Se comienza con la visión general del producto,especificando y dando detalle a las funcionalidades o partes que tienen mayor prioridad de desarrollo y que pueden llevarse a cabo en un periodo de tiempo breve (normalmente de 30 días).
Cada uno de estos periodos de desarrollo es una iteración que finaliza con la producción de un  incremento operativo del producto.
Estas iteraciones son la base del desarrollo ágil, y Scrum gestiona su evolución a través de reuniones breves diarias en las que todo el equipo revisa el trabajo realizado el día anterior y el previsto para el día siguiente.

 Los roles en Scrum:
Scrum organiza  el trabajo utilizando estos roles : Dueño de Producto (o Product Owner), Scrum Master y Scrum Team.

Dueño de Producto (o Product Owner):
El Dueño de Producto es la única persona autorizada para decidir sobre cuáles funcionalidades y características funcionales tendrá el producto. Es quien representa al cliente, usuarios del software y todas aquellas partes interesadas en el producto.
Funciones:
Canalizar las necesidades del del negocio, sabiendo "escuchar" a las partes interesadas en el producto y transmitirlas en "objetivos de valor para el producto", al scrum team.
Maximizar el valor para el negocio con respecto al Retorno de Inversión (ROI), abogando por los intereses del negocio.
Revisar el producto e ir adaptándole sus funcionalidades, analizando las mejoras que éstas puedan otorgar un mayor valor para el negocio.

Aptitudes que debe tener un Dueño de Producto:
Excelente facilicidad de comunicación en las relaciones interpersonales Excelente conocimiento del negocio Facilidad para análisis de relaciones costo/beneficioVisión de negocios

Scrum Master:
El Scrum Master es el alma mater de Scrum. Un error frecuente es llamarlo "líder", puesto que el Scrum Master no es un líder típico, sino que es un un auténtico Servidor neutral, que será el encargado de fomentar e instruir sobre los principios ágiles de Scrum.
Funciones:
  • Garantizar la correcta aplicación de Scrum. Esto incluye, desde la correcta trasmición de sus principios a las altas gerencias, hasta la prevención de la inversión roles (es decir, guardar especial cuidado en que el dueño de producto no actúe en nombre del Scrum Team y viceversa, o que la audencia se inmiscuya en tareas que no le son propicias)
  • Resolver los conflictos que entorpezcan el progreso del proyecto.
  • Incentivar y motivar al Scrum Team, creando un clima de trabajo colaborativo, fomentar la auto-gestión del equipo e impedir la intervensión de terceros en la gestión del equipo.


Aptitudes que debe tener un Scrum Master:
  • Excelentes conocimientos de Scrum
  • Amplia vocación de servicio
  • Tendencia altruista
  • Amplia capacidad para la resolución de problemas
  • Analítico y observador
  • Saber incentivar y motivar
  • Capacidad docente e instructiva
  • Buen carisma para las negociaciones
El Scrum Team:
El Scrum Team (o simplemente "equipo"), es el equipo de desarrolladores multidisciplinario, integrado por programadores, diseñadores, arquitectos, testers y demás, que en forma auto-organizada, será los encargados de desarrollar el producto.
Funciones y responsabilidades
  • Llevar el Backlog de producto, a desarrollos potencialmente funcionales y operativos.
  • Aptitudes que deben tener los integrantes de un Scrum Team:
  • Ser profesionales expertos o avanzados en su disciplina
  • Tener "vocación" (la buena predisposición no alcanza) para trabajar en equipo
  • Capacidad de auto-gestión

Backlog de Producto
El Backlog de Producto es un listado dinámico y públicamente visible para todos los involucrados en el proyecto.
En él, el Dueño de Producto, mantiene una lista actualizada de requerimientos funcionales para el software. Esta lista, representa "qué es lo que se pretende" pero sin mencionar "cómo hacerlo", ya que esta última, como vimos en el capítulo anterior, será tarea del Scrum Team.
El Backlog de Producto, es creado y modificado únicamente por el Dueño de Producto. Durante la ceremonia de planificación, el Scrum Team obtendrá los items del producto, que deberá desarrollar durante el Sprint. Formato del Backlog de Producto
El Backlog de producto, es una lista de items que representan los requerimientos funcionales esperados para el software.
Para cada uno de estos ítem, será necesario especificar:
  • El grado de prioridad
  • Esfuerzo que demanda
  • Granulidad
  • Criterios de aceptación
Ejemplo
Prioridad                    Item                            Estimación     Estado            Criterios de aceptación
1                                  Descripcion de ítem    tiempo en        criterio de lo propuesto.
                                                                        Semana o días
2                                  “ ”                                “”                     “”
3                                  “”                                 “”                     “”

Tableros de Scrum :
Con la lista de tareas ya armada, estamos en condiciones de crear el tablero. Un Scrum Taskboard, básicamente se divide en 3 columnas: pendientes, en curso y terminadas y se complementa la información con un Diagrama de Burndown que mostrará el esfuerzo restante para concluir el Sprint.



           

                       

domingo, 22 de abril de 2012

Formato a datos numéricos en .Net


Resulta frustrante para programadores que venimos de otros lenguajes de programación trabajar con algunos detalles, que nuestro lenguaje de origen resultaba bastante sencillo.
Hoy mostraremos la forma de aplicar formato  a datos numéricos, con el objetivo de separarlo con coma (,) y punto decimal, o incluir signo de moneda a la cantidad.
Para ellos utilizaremos dos texbox, uno para que el  usuario digite el valor que desea aplicarle el formato,  a este lo llamaremos TXTVALORI, y otro que será el encargado de mostrar el valor con formato y un Button, el cual contiene el código para aplicar formato.
Si queremos solo separadores de mil, y punto decimales la sentencia es esta:
variable.ToString("N")
En el caso de desear incluir el signo de moneda de su computador, la sentencia es esta:
variable.ToString("C")

Ejemplo en VB.net:
Este código debes pegarlo en el evento clic del botton.

        Dim valor As Double
        valor = Convert.ToDouble(TXTVALORI.Text)
        TXTVALNUE.Text = Convert.ToString(valor.ToString("N"))

Ejemplo en C#:
        double valor;
        valor = Convert.ToDouble(TXTVALORI.Text);
        TXTVALNUE.Text =Convert.ToString(valor.ToString("N"));


Recuerda si desea incluir el signo de Moneda, sustituye “N” por “C”

La Figura 1.1 Muestra el resultado del código anterior



Adelante, aprender es un camino sin fin, copiar y pegar es solo una técnica que puede sacarte de un apuro, pero no te da la confianza de sentirte  un profesional, copia y pega, pero también analiza, aprende y busca una mejor solución a lo que copiaste.

Diógenes Amaury MS

martes, 3 de abril de 2012

Llamar Aplicaciones desde .Net

Saludos Amig@s
Hoy les presento la forma de llamar una aplicación desde .Net, el ejemplo que voy a mostrar en con la calculadora de windows pero ustedes pueden seleccionar cualquier otro programa.

Escriba el siguiente código en un Botton desde donde se llamará la aplicación.

En Visual basic.net:

        Dim Proceso As New Process()
        Proceso.StartInfo.FileName = "calc.exe"
        Proceso.StartInfo.Arguments = ""
        Proceso.Start()

En C#:

            System.Diagnostics.Process proceso = new System.Diagnostics.Process();
            proceso.StartInfo.FileName = "calc.exe";
            proceso.StartInfo.Arguments = "";
            proceso.Start();







martes, 27 de marzo de 2012

DataGrid en vb y c#


Saludos Ami@s
Hoy hablaremos sobre la creaciones de consultas en c· y Vb.net, en este artículos mostrare paso como hacerla en los dos lenguajes de programación, ustedes elegirán cuál  van a aplicar dependiendo del lenguaje de preferencia.

Bien después de haber iniciando  un Proyecto Nuevo, procedemos  insertar el Objeto DataGridView que se encuentra dentro de la Ficha Data del ToolBox. Como se muestra en la figura siguiente:

Lo dibujamos en e el formulario tomando en cuento la cantidad de campos que deseamos mostrar.

Estando seleccionado el objeto DataGridview procedemos a ponerle un nombre para poder hacer referencia a él más adelante, lo denominaremos dgvestudiantes
Ahora entremos a lo que a mí más me gusta…  Los Códigos.
Lo primero que debemos hacer es indicarle al .net con cual proveedor de datos vamos a trabajar, esto lo pulsando doble clic en el formulario y posicionándonos en la parte superior donde inician los códigos que se generan por defecto.
En Vb.net
Imports System.Data
Imports System.Data.OleDb

En C#
using System.Data;
using system.Data.OleDb;


En el evento Load escribimos el siguiente código para que cuando se cargue el formulario automaticamente muestre los datos en el datagrid View.




En Vb.Net
 REM Creo la cadena de conexion para Office 2007
 Dim cadena As String
cadena = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Sistema\Pratcicas\Estudiantes.accdb;Persist Security Info=False" REM Objeto conexion
        Dim conexion As OleDbConnection = New OleDbConnection(cadena)
        REM declaro una variable que va a contener la sentencia sql para mostrar los campos
        Dim strsql As String
        strsql = "SELECT TOP 15 MATEST AS Matricula, NOMEST AS Nombre, APEEST AS Estudiante, DIREST as Direccion, TELEST AS Telefono FROM TblEstudiantes"
        REM TOP 15 es para que solo me muestre los primeros 15 registros y asi no tardar tanto cargando los registros.

        REM Abro la conexion
        conexion.Open()
        REM Creo el adaptador y selecciono los datos de la tabla
        Dim adap As OleDbDataAdapter = New OleDbDataAdapter(strsql, conexion)
        REM Creo el DataSet
        Dim dsDatos As DataSet = New DataSet()
        REM Relleno el adaptador con los datos en memoria
        adap.Fill(dsDatos, "TblPrueba")
        REM Creo el miembro de datos del DataGridView
        dvgestudiantes.DataMember = "TblEstudiantes"
        REM muestro los datos al DataGridView
        dvgestudiantes.DataSource = dsDatos




ahora vermeos el código en  En C#
//Creo la cadena de conexion para Office 2007
            string cadena = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Sistema\Pratcicas\Estudiantes.accdb;Persist Security Info=False";
            //Objeto conexion
            OleDbConnection conexion = new OleDbConnection(cadena);
            //Abro la conexion
            conexion.Open();
            // declaro una variable que va a contener la sentencia sql para mostrar los campos
            string strsql;
strsql = "SELECT TOP 15 MATEST AS Matricula, NOMEST AS Nombre, APEEST AS Estudiante, DIREST as Direccion, TELEST AS Telefono FROM TblEstudiantes";
            // TOP 15 es para que solo me muestre los primeros 15 registros y asi no tardar tanto cargando los registros.
           
            //Creo el adaptador y selecciono los datos de la tabla
            OleDbDataAdapter adap = new OleDbDataAdapter(strsql, conexion);
            //Creo el DataSet
            DataSet dsDatos = new DataSet();
            //Relleno el adaptador con los datos en memoria
            adap.Fill(dsDatos, "TblEstudiantes");
            //Creo el miembro de datos del DataGridView
            this.dvgestudiantes.DataMember = "TblEstudiantes";
            //Muestro los datos al DataGridView
            this.dvgestudiantes.DataSource = dsDatos;


Como pueden ver la forma para hacerlo es muy parecida, algunos cambios en cuanto a la declaración de variable y el punto y coma para c#.
Ahora le muestro como quedaría la consulta utilizando el DataGridview.







viernes, 23 de marzo de 2012

Cursos Virtuales


Introducción a  Base de Datos (Curso Gratis!!)

El curso se basa en un enfoque teórico y práctico, e incluye la realización de numerosos ejercicios para una mejor comprensión de los conceptos expuestos.
Introducción a base de datos proporciona toda la documentación y materiales necesarios para lograr el entendimiento y crear los conocimientos imprescindibles para adentrarse al desarrollo y administración de base de datos, el curso  será impartido por un programador con experiencia real tanto en gestión de proyectos como en diseño y  administración de base de datos.

Para solicitar este curso envia los siguientes datos:
Nombre y Apellido, Cedula, Telefono o celular.
e mail:  formaterd@gmail.com

Att.
Diognees Amaury Ms
Director

FormateRD, Formación Virtual, Con calidad Presencial.