… como les comente ayer… la tarea consiste en:

- disenhar y desarrollar una aplicacion en c# que interactue con siguiente tabla (en microsoft access):

tabla mensajes

nombre de la tabla: mensajes
campos en la tabla: creado, conversacion, nick, mensaje

La mecanica de la aplicacion (y con lo cual se basara la calificacion de la asignacion) es usar esta tabla para guardar mensajes cortos (maximo 255 caracteres) y poder recuperar mensajes existentes para mostrarlos al usuario.

La implementacion ( * funcionamiento y opciones que hacen a tu aplicacion destacar de las demas) esta abierta a tu imaginacion.

Algunas consideraciones para el correcto uso de la aplicacion en la clase del martes:

- La informacion para conectarse a la base de datos (ConnectionString) debe ser configurable y no estar “dentro” del codigo. (esta informacion no puede estar dentro de la base de datos ya que es necesaria para poderte conectar a la base de datos :P , es decir, no puedes guardar la llave dentro de la caja fuerte y cerrarla…)
- el concepto de “conversacion” es poder clasificar mensajes por tema; en algunos sistemas de chat se conoce como “room”.

buena suerte! ponganle creatividad!

Siguen un grupo de posibles respuestas al post anterior

http://progra3ene2007.wordpress.com/2007/08/31/ejercicio-de-preparacion-para-parcial/

se expuso un caso con 3 entregables. 

  • a) un modelo de clases 
  • b) sentencias sql 
  • c) principios para la definicion de una clase

Para el modelo de clases, este es un posible escenario que puede servirnos de inicio para empezar a disenhar los objetos de la solucion…

Modelo de clases

Para las sentencias sql, les presento unas tentativas al modelo anterior

*: SELECT * FROM Articulo WHERE (cantidad <= cantidad_minima)
*: SELECT quien FROM Movimiento WHERE (nombre_articulo = ‘Tornillo 1/4′)
*: SELECT * FROM Movimiento WHERE (hora >= Now() – 4/24)

Para los principios de definicion de una clase:

public class Articulo {

     #region Miembros Privados

    private string _nombre = “”;
    private double _cantidad = 0;
    private double _minima = 0;

    #endregion

    #region Propiedades Publicas

    public string Nombre {
        get { return _nombre; }
        set { _nombre = value; }
    }

    public double Cantidad {
        get { return _cantidad; }
        set { _cantidad = value; }
    }

    public double CantidadMinima {
        get { return _minima; }
        set { _minima = value; }
    }

    #endregion

}

- Ejercicio de Analisis Sustantivo/Verbo -

” Controlar inventario de articulos, entradas y salidas, quien y a que hora sucede el movimiento.  Cuando algun articulo llegue a cierta cantidad de inventario, se dara aviso al encargado.
Tambien se avisara (al encargado) cada dia de los 5 articulos con menor cantidad.
Todos los avisos se haran por correo electronico especificando nombre y cantidad del articulo. “

[ Entregable (1) Modelo de clases ]

 == Verificacion de Modelo de clases ==

Ejercitar las siguientes peticiones SQL contra el modelo de clases elaborado de la situacion anterior:

SQL–
 
 * mostrar articulos con cantidad menor o igual a su cantidad minima
 * mostrar personas que han utilizado el articulo “Tornillo 1/4″
 * mostrar todos los movimientos de las ultimas 4 horas

[ Entregable (2) Sentencias SQL ]

Codigo para Clase

    Empezar el codigo para una clase identificada completando las declaraciones de miembros privados y propiedades publicas.

[ Entregable (3) Codigo para la clase ]

 

En un post posterior se proporcionaran posibles entregables…

SQL statements – Sentencias SQL

Durante clase estuvimos haciendo ejemplos de consultas a unas tablas ejemplo en internet.  La tabla bbc(name,region,population,gdp) y la tabla nobel(yr,subject,winner).  Ejercitamos el uso de las palabras de SQL ‘SELECT’, ‘FROM’, ‘WHERE’, ‘IN’, ‘LIKE’ y lo que cada una de ellas nos proporciona.  Aqui les muestro ejemplos de lo esperado para el proximo examen del martes

TABLA: Articulo(precio,descripcion,imagen,categoria,nombre)

 * mostrar los articulos que empiecen con “R” y no cuesten mas de 100 pesos
 * mostrar los articulos que pertenezcan a la categoria “Bebidas” que cuesten mas de 20 pesos

TABLA: Cliente(frc,ape_paterno,ape_materno,nombres,telefono)

 * mostrar nombre completo de cliente con apellido paterno “Lopez”
 * mostrar rfc de clientes con area de telefono 656

…explicare uno de los metodos mas sencillos, con el cual podemos desarrollar nuestra habilidad para “pensar” orientado a objetos…

Este metodo se conoce como “Noun/Verb Analysis” o analisis sustantivo/verbo y requiere que los requerimientos/especificaciones para nuestra solucion sean redactados de una manera clara especificando lo mas posible los detalles a considerar.  A partir de este texto, se comienza por identificar los sustantivos relevantes.  Despues de esto, se sigue por identificar verbos (o acciones).  Una vez idenficados estos dos grupos de palabras o frases, se prosigue a ver la lista de sustantivos para empezar a identificar posibles objetos y propiedades pertinentes para nuestra solucion, y bosquejar clases tentativas a desarrollar en nuestro proyecto (aplicacion orientada a objetos).

 Ya con este primer bosquejo, podemos tambien asignarle acciones (metodos) a nuestras clases a partir de las acciones/verbos identificados en los requerimientos de la solucion. 

Con este ejercicio, podemos ”terminar” con un diagrama/modelo de clases que deberian ser consideradas para “interactuar” entre si y asi desarrollar la solucion que satisfaga los requerimientos establecidos. 

** terminar no necesariamente es definitivo ya que el modelo puede ir cambiando para considerar faltantes o cosas de mas que le hayamos puesto

Requerimientos (pizzeria)  <- mi tarea

La liga de arriba muestra un ejemplo sencillo del ejercicio.

Publico el codigo para la aplicacion MyNotepad desarrollada en las primeras clases del curso

MyNotepad

Nota*: el archivo debe descargarse y ser renombrado a .zip para poder utilizarlo !!

…. a Agosto-Diciembre 2007

UrlImage Control 

Como proposito, se intenta tener un control que pueda cargar una imagen en un PictureBox pasandole una direccion de internet (url) de donde tomarla.

Elementos en disenho del control de usuario

 urlImage en disenho

El control consta de 3 PictureBoxes. Dos de ellos se van a usar como ayudas para que guarden una imagen cada uno, en pbxLoading vamos a poner una imagen que represente que el control esta trabajando y en pbxNotFound vamos a poner una imagen para representar un error en el cargado de la imagen solicitada.  Estos controles siempre permaneceran ocultos (Visible = false) y tomaremos de ellos las imagenes para ponerlas en el pictureBox1 cuando las requiramos.

Codigo detras del control

urlImage codigo

Aqui en codigo podemos ver que estamos utilizando el evento Resize del UserControl para hacer que pictureBox1 cubra toda la superficie de nuestro control.  Y ademas agregando un metodo publico llamado GetImage(string url) con el cual podremos pedirle al control que intente cargar la imagen de internet que le proporcionemos con el parametro url

En GetImage(), primero pasamos la imagen que esta en pbxLoading al PictureBox principal, y despues intentamos (por medio de un try) cargar la imagen desde internet a nuestro PictureBox.  Esto lo logramos con la ayuda de la clase HttpWebRequest, donde especificamos la direccion de internet, y obtenemos su ResponseStream para pasarselo al PictureBox e intente mostrarlo a pantalla; en caso de algun error | excepcion, lo indicaremos cargando la imagen que se encuentra en pbxNotFound.

contactAdmin

 codigo del proyecto para administracion de contactos desarrollado en clase hasta el jueves 26 de abril…

 la base de datos esta dentro de la carpeta [/clases]

hay que darle click-derecho a la liga y seleccionar la opcion de guardar…
despues renombrar a .zip

Espero que se la pasen bien en las dos semanas de vacaciones que tendremos…. por lo pronto, si le dedican algo de tiempo a la universidad, y quieren aparte dedicarle a esta materia (seria fenomenal), pueden ir bosquejando el primer draft para su proyecto final.

El proyecto final constara en desarrollar una aplicacion (en c# por supuesto) que contenga las siguientes caracteristicas:

  • Disenho orientado a objetos (clases con propiedades, metodos [, eventos (opcional)]
  • Programacion en Windows Forms (Ventanas de Windows)
  • Acceso a bases de datos con ADO.NET
  • Uno o mas User controls

En la sesion antes de salir de vacaciones, se vieron algunas alternativas para desarrollarlas como proyecto final, siguen:

Aplicaciones para registrar, y mantener lo siguiente:

  • Calificaciones de alumnos por materia (Popularidad: minima)
  • Catalogo de Peliculas (Popularidad: Maxima)
  • Catalogo de Libros (Popularidad: Minima)
  • Casas/Depas/Oficinas en Venta/Renta (Popularidad: Algo)
  • Venta de Automoviles (Popularidad: Algo)

Las explicare por orden de popularidad… cabe mencionar que pueden proponer su aplicacion para asi trabajar sobre algo que les pueda ayudar en su trabajo o alguna otra materia.

Catalogo de Peliculas – proyecto tentativo

Manejar los siguientes datos:

  • Nombre
  • Anho
  • Director
  • Sinopsis/Resumen
  • Idioma (permitir solo idiomas del catalogo de idiomas)
  • Duracion (minutos)
  • Productora
  • Clasificacion (permitir solo las del catalogo clasificaciones)
  • Pais
  • Generos[] (arreglo/coleccion de generos existentes en el catalogo de generos)
  • Actores[] (arreglo/coleccion de actores existentes en el catalogo de actores)
    • Los actores deben de registrar por lo menos
      • nombre
      • nacionalidad

Venta de Automoviles – proyecto tentativo

Manejar los siguientes datos:

  • Marca (permitir solo marcas existentes en catalogo de marcas)
  • Modelo (permitir solo modelos existentes en catalogo de modelos, y relacionados a la marca)
  • Anho
  • Color
  • Numero de puertas
  • Numero de pasajeros
  • Numero de serie
  • Cilindros
  • Numero de duenhos
  • Precio
  • Contactos[] (arreglo/colec. de contactos existentes en catalogo de contactos)
    • nombre
    • telefono
    • email
  • Fotos[] (arreglo/coleccion de fotos)

Venta/Renta de Inmuebles (Casas/Depas/Oficinas…)

Manejar los sig> datos:

  • Direccion
    • Estado
    • Ciudad
    • Sector
  • Precio | Mensualidad
  • Numero de Recamaras
  • Numero de Banhos
  • Numero de Estacionamientos
  • Cuenta con …
    • cocina integral
    • muebles
    • boiler
    • telefono
    • luz
    • agua
    • gas
  • Numero de plantas/pisos
  • Contactos[] (arreglo/colec. de contactos existentes en catalogo de contactos)
    • nombre
    • telefono
    • email
  • Fotos[] (arreglo/coleccion de fotos)

- – - – - – - – - – -

Importante!! cabe mencionar que estas son opciones para elaborar, pero puedes proponer tu aplicacion para trabajar sobre algo que mas te interese, o te sirva para tu trabajo u otra materia… Importante!!!

../../../

Entradas siguientes »