aprendiendo a desarrollar aplicaciones con tecnologías Microsoft

Desde hace 7 sabados el profesor  dalalberto  en el centro de la manufactura avanzada nos orienta con la materia de desarrollo de aplicaciones web y para ello comenzó  con el tema de c# y luego ASP.

primero que todo hay que entender  que es el Framework y  la infrastructura de .NET Framework.

Framework es un conjunto de herramientas que nos permiten agilizar la contrucción de aplicaciones.

//   Un ejemplo es una constructora  ….. Muchas personas necesitan de ella para poner a correr sus obras , por ejemplo una urbanización, un puente,   a esta no le interesa contruir todo los materiales y herramientas   para hacer la obra,  si no escoger los materiales y herramientas adecuados, por que ya estan hechos, solo es integrarlos pero hay casos donde la contructora hace sus materiales  por que no existen pero solo es si es necesario.

cuales son esas herramiestas del framework o SDK?

  • la herramientas de contrución  !Los lenguajes de programación¡
  • Libreria de clases     ….  BCL, FCL
  • Rutime (Maquina virtual )  ….CLR
Aunque existen gran cantidad de herramientas de contrución,  El profesor nos enseñó uno que es uno de los mas importantes c#.
El framework hace parte de la plataforma de desarrollo de microsoft  que a su vez se le suman
  • herramientas de desarrollo (IDE )
  • compiladores
nosotros trabajamos en el curso con visual studio 2010
Pero ahora bien, que es lo que pasa desde que uno escribe el codigo fuente hasta que uno ejecuta la aplicación….
cabe anadir que en el codigo IL también va los metadatos que sirvern para cargar y localizar clases.
 El CLR trabaja con assembly que en si es el codigo generado al compilar el codigo fuente, metadatos y otros ficheros
ahora que sabemos la estructura ahora si ingresamos a programar los ficheros fuentes y para ello hacemos uso de visual studio 2010
antes de entrarnos en ASP primero vamos a ver  un lenguaje de programación llamado c# que es  un lenguaje de programacion orientado a objetos.
 vamos a ver unos conceptos clave
los assembly es una agrupación fisica de clases, y los namespaces es una agrupación logica de clases
al crear una aplicación se crea una clase principal y de allí se hace el llamado a otras clases que contienen herramientas o material  usando namespaces para contruir  este proyecto, tambien se contruyen clases propias la cual se agrupa en un namespace propio.
TIPOS DE DATOS
hay dos tipos de datos uno que son primitivos y otros que son generados por el programador.
  • tipos por valor
  • tipos por referencia
En las primeras clases el profesor explicó algunos conceptos, con una aplicacion en la cual se calculaba el area del cuadrado y rectangulo, nosotros debiamos complementar colocando el volumen del cubo, el area del triangulo y  volumen de la esfera, aplicando el polimorfismo con las dos librerias que se crearon.
primero se creo una libreria con las clases abstractas
ahora la libreria rectangulo con la siguiente estructura
como se ve en la figura hay una herencia de la anterior libreria
clsRectangulo:clsFigurageoometrica
se crearon unas regiones con  los miembros de la clase y este es el codigo
#region "constructores"
        public clsRectangulo(double lado)
        {
            dbla = lado;
            dblb = lado;
            dblc = lado;
            dblArea = 0;
            dblPerimetro = 0;
            dblvolumen=0;
            strError = "";

        }

        public clsRectangulo(double ladoa, double ladob)
        {

            dbla = ladoa;
            dblb = ladob;
            dblArea = 0;
            dblPerimetro = 0;
            dblvolumen=0;
            strError = "";

        }

         public clsRectangulo(double ladoa, double ladob, double ladoc)
        {

            dbla = ladoa;
            dblb = ladob;
            dblc= ladoc;
            dblArea = 0;
            dblPerimetro = 0;
             dblvolumen=0;
          strError = "";

         }

        #endregion;

        #region"atributos"
        private double dbla, dblb, dblArea, dblPerimetro,dblc,dblvolumen;
        private string strError;
        #endregion

        #region"propiedades"
        public double vlrArea
        {
            get { return dblArea; }

        }
        public double vlrperimetro
        {
            get { return dblPerimetro; }
        }

        public double vlrvolumen
        {
            get { return dblvolumen; }
        }

        public string Error
        {
            get { return strError; }
        }

        #endregion

        #region"metodos privados"

        public bool validar()
        {
            if (dbla <= 0 || dblb <= 0 )
            {
                strError = "se deben de ingresar valores mayores a cero (0)";
                return false;
            }
            else
            {
                return true;
            }
        }

        public bool validartresparametros()
        {
            if ( dbla <= 0 || dblb <= 0  || dblc <=0 )
            {
                strError = "se deben de ingresar valores mayores a cero (0)";
                return false;
            }
            else
            {
                return true;
            }
        }

        #endregion

        #region "metodos publicos"

        public override bool Area()
        {
            try
            {
                if (validar())
                {
                    dblArea = dbla * dblb;
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                strError = "error calculando el area " + ex.Message;
                return false;
            }
        }

        public override bool Perimetro()
        {
            try
            {
                if (validar())
                {
                    dblPerimetro = (2 * dbla) + (2 * dblb);
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception e)
            {
                strError = "ERROR calculando el perimetro " + e.Message;
                return false;
            }
        }

        public override bool Volumen()
        {
            try
            {
                if (validartresparametros())
                {
                    dblvolumen = dbla * dblb * dblc;
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception e)
            {
                strError = "ERROR calculando el volumen " + e.Message;
                return false;
            }
        }

        #endregion

se crea el formulario

con el siguiente codigo
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LibRectangulo;
using LibFiguraGeoometrica;

namespace figuras
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        double dbllamadoa, dbladob, dblado;
        private void btncalcularc_Click(object sender, EventArgs e)
        {
            lblperimetro.Text = "";
            lblarea.Text = "";
            lblvolumen.Text = "";

            try
            {
                dbllamadoa = Convert.ToDouble(txtlado.Text);
                clsRectangulo objcuadrado = new clsRectangulo(dbllamadoa);
                if (objcuadrado.Area() && objcuadrado.Perimetro())
                {
                    lblarea.Text = Convert.ToString(objcuadrado.vlrArea);
                    lblperimetro.Text = Convert.ToString(objcuadrado.vlrperimetro);
                }
                else
                {

                    MessageBox.Show(objcuadrado.Error);
                }
                objcuadrado = null;
            }
             catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        double dbllamadobase, dbllamadoaltura;
        private void button1_Click(object sender, EventArgs e)
        {

            lblperimetro.Text = "";
            lblarea.Text = "";
            lblvolumen.Text = "";

            try
            {
                dbllamadobase = Convert.ToDouble(txtBase.Text);
                dbllamadoaltura = Convert.ToDouble(txtAltura.Text);

                clsRectangulo objrectangulo = new clsRectangulo(dbllamadobase, dbllamadoaltura);
                if (objrectangulo.Area() && objrectangulo.Perimetro())
                {
                    lblperimetro.Text = Convert.ToString(objrectangulo.vlrArea);
                    lblarea.Text = Convert.ToString(objrectangulo.vlrperimetro);
                }
                else
                {

                    MessageBox.Show(objrectangulo.Error);
                }
                objrectangulo = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
        double dbllamadocubo;
        private void btncubo_Click(object sender, EventArgs e)
        {

            lblperimetro.Text = "";
            lblarea.Text = "";
            lblvolumen.Text = "";

            try
            {
                dbllamadocubo = Convert.ToDouble(txtladocubo.Text);

                clsRectangulo objcubo = new clsRectangulo(dbllamadocubo);
                if (objcubo.Volumen())
                {
                    lblvolumen.Text = Convert.ToString(objcubo.vlrvolumen);

                }
                else
                {

                    MessageBox.Show(objcubo.Error);
                }
                objcubo = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
       double dbllamadotriangulob, debllamadotrianguloa ;
        private void button2_Click(object sender, EventArgs e)
        {

            lblperimetro.Text = "";
            lblarea.Text = "";
            lblvolumen.Text = "";

            try
            {
                dbllamadotriangulob = Convert.ToDouble(txtbaset.Text);
                debllamadotrianguloa = Convert.ToDouble(txtalturat.Text);

                clsRectangulo objtriangulo = new clsRectangulo(dbllamadotriangulob, debllamadotrianguloa);
                if (objtriangulo.Area() && objtriangulo.Perimetro())
                {
                    lblperimetro.Text = Convert.ToString(objtriangulo.vlrArea /2) ;
                    lblarea.Text = Convert.ToString(objtriangulo.vlrperimetro  /2);
                }
                else
                {

                    MessageBox.Show(objtriangulo.Error);
                }
                objtriangulo = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
        double dbllamadoesfera;
        private void button3_Click(object sender, EventArgs e)
        {
            lblperimetro.Text = "";
            lblarea.Text = "";
            lblvolumen.Text = "";

            try
            {
                dbllamadoesfera = Convert.ToDouble(txtradio.Text);
                clsRectangulo objesfera = new clsRectangulo(dbllamadoesfera);
                if (objesfera.Volumen() )
                {
                    lblvolumen.Text = Convert.ToString((objesfera.vlrvolumen * 4 * 3.1416)/3);

                }
                if (objesfera.Area())
                {
                    lblarea.Text = Convert.ToString((objesfera.vlrArea * 4 * 3.1416));
                }

                else
                {

                    MessageBox.Show(objesfera.Error);
                }
                objesfera = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

    }
}

pero en esta clase se hace referencia de las librerias que se crearon



la clase principal 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace figuras
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s