Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Bajo esta premisa surge la necesidad de trabajar con una filosofa de programacin
orientada a objetos. Ahora bien, en este momento se preguntaran, una filosofa?, la
respuesta es sencilla, antes de aprender a programar en un lenguaje orientado a objeto
como C# o Vb.net, es importante aprender a pensar, bajo un modelo de desarrollo, con su
teora y su metodologa, como lo es la programacin orientada a objetos, para encontrar
una solucin a un problema que se plantee.
Conceptos Fundamentales
Clase:
Vamos a iniciar este concepto con un ejemplo: Para construir un modelo de automvil se
deben haber plasmado una serie de caractersticas y funcionalidades que estarn guiando
la construccin del mismo. Cada vez que se procede a crear este mismo modelo de auto,
se deber cumplir con las caractersticas y funcionalidades predefinidas.
Objeto:
Abstraccin:
Encapsulamiento
El objetivo es meter todo en una capsula, juntar las piezas que hacen que funcione como
un todo. Ejemplo meto el motor dentro del auto.
Polimorfismo
Lograr que un objeto se comporte como si fuese una implementacin de otra clase.
Ejemplo: Un carro comportndose como una gra.
Herencia
Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases
a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento
permitiendo a los objetos ser definidos y creados como tipos especializados de objetos
preexistentes.
Ejemplo de Clase
La clase alumno es una abstraccin con los atributos, comportamientos bases para
nuestro sistema.
using System;
using Noixno.Common;
namespace MVAEscuela.Core.BE
{
[Serializable]
public partial class Alumno : Persona //Herencia
{
#region Private fields, to hold the state of the Alumno entity
private int m_IdAlumno;
private DateTime m_FechaDeNacimiento;
#endregion
#region Public properties, to expose the state of the entity
public int IdAlumno
{
get
{
return m_IdAlumno;
}
set
{
m_IdAlumno = value;
IsModified = true;
}
}
public DateTime FechaDeNacimiento
{
get
{
return m_FechaDeNacimiento;
}
set
{
m_FechaDeNacimiento = value;
IsModified = true;
}
}
#endregion
}
}
Ejemplo de Herencia
using System;
using Noixno.Common;
namespace MVAEscuela.Core.BE
{
[Serializable]
public partial class Instructor : Persona //Herencia
{
#region Private fields, to hold the state of the Instructor entity
private int m_IdInstructor;
private DateTime m_FechaIngreso;
#endregion
#region Public properties, to expose the state of the entity
public int IdInstructor
{
get
{
return m_IdInstructor;
}
set
{
m_IdInstructor = value;
IsModified = true;
}
}
public DateTime FechaIngreso
{
get
{
return m_FechaIngreso;
}
set
{
m_FechaIngreso = value;
IsModified = true;
}
}
#endregion
}
}
Ejemplo Polimorfismo
En los ejemplos anteriores pudimos analizar las Clases Alumno e Instructor. En este
ejemplo veremos que se desarrollo un formulario para enviar notificaciones. En este caso
tanto alumno como instructor se comportaran como persona. Esto es lo que se conoce
como Polimorfismo.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using MVAEscuela.Core.BE;
using MVAEscuela.Core.BLL;
public partial class Notificacion : System.Web.UI.Page
{
Alumno_BLL m_Alumno_BLL = new Alumno_BLL();
Instructor_BLL m_Instructor_BLL = new Instructor_BLL();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Done_Click(object sender, ImageClickEventArgs e)
{
if (chkAlumnos.Checked)
{
Noixno.Common.CommonList<Instructor> Instructores = m_Instructor_BLL.GetAll(null);
foreach (Instructor instructor in Instructores)
{
Notificar(instructor);
}
}
if (chkInstructor.Checked)
{
Noixno.Common.CommonList<Alumno> Alumnos = m_Alumno_BLL.GetAll(null);
foreach (Alumno alumno in Alumnos)
{
Notificar(alumno);
}
}
}
//Polimorfismo ya quede recibir un instructor o un alummo ya que ambos heredan de persona
protected void Notificar(Persona persona)
{
string Cuerpo = @"<HTML><body><table border =1><tr><td>Estimado: " + persona.Nombre +
"</td></tr> <tr><td>Estimado: " + Notificacion.Text + "</td></tr> </table></body></HTML>";
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("server@noixnogroup.com");
mail.To.Add(persona.CorreoElectronico);
mail.IsBodyHtml = true;
mail.Priority = MailPriority.High;
mail.Body = Cuerpo;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("Server@noixnogroup.com", "AmericaA00*");
SmtpServer.EnableSsl = true;
try
{
SmtpServer.Send(mail);
}
catch (SmtpException ex)
{
info.Text = ex.Message;
}
catch (Exception ex)
{
info.Text = ex.Message;
}
}
}
Ejemplo Introduccion a la Programacion Orientada a Objeto en .NET
Con la finalidad de entender todos los conceptos explicados en este blog sobre Introduccin a la
Programacin Orientada a Objetos se les coloca a continuacin un link con el cdigo completo de un
programa para hacerle tanto mantenimiento a las tablas de Alumnos e Instructores, como ejecutar el envo de
notificaciones a ambos.
La estructura del programa cumple con el modelo en capas donde se separan claramente las entidades de
negocio, las reglas, las capas de persistencia, presentacin.