lunes, 2 de abril de 2012

Modelo de 3 Capas en .Net C# Parte I

Un poco de teoría sobre las 3 capas:



Existen diferentes tipos de patrones a seguir para desarrollar un software, en este caso voy a explicar en que consiste la aqruitectura de 3 Capas , que ami parecer es la mas basica para desarrollar un sistemas.

La arquitectura de 3 capas ,como su nombre lo dice, se divide en tres partes:
  • La Capa de Presentación : Donde se encuentran los formularios y la parte visual de la aplicación.

  • La Capa de Negocios  : Donde se encuentra toda la logica del negocio y clases que las componete es decir, Entidades y controladoras)

  • La Capa de Acceso a Datos: Donde se encuentra las conexiones y las transacciones que se utilizan para comunicarse con la base de datos.

Teoria tomada del siguiente blog, para verlo pulsa AQUI:


A continuación presentare un pequeño ejemplo sobre la construcción de una pequeña aplicación con el modelado de 3 capas (Presentación-Negocio-Datos), en el cual se muestra la manera de implementar este "patrón" en .Net.

En este Ejemplo manejo Listas de entidades ( List<Autos> ), muestro la manera de llenar un gridview con columnas autogeneradas y una pequeña consulta Linq a una List<Autos>.

También creamos la base de datos, una tabla y store procedure "Basico" insert, delete, update, selectAll y SelectByID.

El codigo tanto de C# como los scripts para BD lo puedes descargar de AQUI:

En lugar de imprimir "pantallazos" que al final del dia resultaban ser un poco tediosos o enrredados he tomado la decisión de capturar la pantalla de mi "escritorio" mientras estuve desarrollando el "sistema" de ejemplo, para ver el VIDEO.

Esta el la primera parte del video, posteriormente en la segunda parte haremos un gridview editable y generar las columnas nosotros mismo "AutoGenerateColumns = false".

Esta Idea de los videos surgio por iniciativa de: Antonio Valenzuela (Pachuca), Fernando Cortes(Veracruz), Ramiro Morales(Puebla), Fernando Sosa (Puebla) aquienes tuve el gusto de impartir una pequeña capacitación del entorno .Net.

Sobre todo agradezco a dios por brindarme la oportunidad de estar con mi familia y el darme la oportunidad de encaminar en el mundo de la programación .Net a nuevos Talentos.


Sigan a la espera de nuevos videos en los cuales abordaremos temas como, WCF, LinqToSQL, WebService, SerializacionmJson,MVP, Facade y las nuevas "cosas" que vaya aprendiendo en el mundo Net.

Ademas un nuevo reto sera el publicar información sobre el examen de certificacion 70-515 (Aplicaciones web con el Framework 4)

NOTA: Lo publicado tanto en este blog como en youtube o skydrive son sin fines de lucro.




12 comentarios:

  1. Muchas Gracias por el ejemplo estoy a la espero de los otros temas.

    ResponderEliminar
  2. cuando descargar el script de la base de datos no esta
    esta pero no hay nada en blanco

    ResponderEliminar
    Respuestas
    1. create database AgenciaAutos
      use AgenciaAutos
      create table Autos
      (
      IDAuto int not null identity(1,1),
      Marca nvarchar (20),
      Precio decimal(18,2),
      constraint PK_IDAuto primary key (IDAuto)
      )


      --/procedures----------------------------------
      --/procedure para dar de alta un auto
      create procedure AltasAutos
      (
      @Marca nvarchar(20),
      @Precio decimal(18,2)
      )

      as
      insert Autos (Marca,Precio) values (@Marca,@Precio)


      --/procedure para hacer un Delete
      create procedure BorrarAuto(
      @IDAuto int
      )as delete Autos where IDAuto=@IDAuto


      --/procedure para obtener el auto
      create procedure ObtenerAuto
      as select IDAuto, Marca, Precio from Autos

      --/procedure para obtener el auto por ID
      create procedure ObtenerAutoByID
      (
      @IDAuto int
      )as select IDAuto, Marca, Precio from Autos where IDAuto=@IDAuto


      --/procedure para hacer un update

      create procedure ActualizarAuto
      (
      @IDAuto int,
      @Marca nvarchar(20),
      @Precio decimal(18,2)
      )as update Autos set Marca=@Marca, Precio=@Precio where IDAuto=@IDAuto

      Eliminar
  3. HOLA DISCULPA HICE TODOS LOS PASOS Y AL EJECUTAR EL PROYECTO DICE:
    NO SE ENCONTRO PROCEDIMIENTO DE ALMACENADO 'ObtenerAuto'
    que puede ser?. saludos
    P.MORALES.LOBOS@GMAIL.COM ES MI CORREO

    ResponderEliminar
  4. quiera saber como insertar imagenes a la base de datos y mostrarlas en proyecto 3 capas visual basic

    ResponderEliminar
  5. mi correo es moises.taipe@gmail.com
    agradesco su ayuda

    ResponderEliminar
  6. hey te lo agradesco.. me salio a la perfeccion. de casualidad no podras hacer en de modificar y eliminar y buscar.. seria todo un retos. Ing. Sistemy

    ResponderEliminar
  7. Estimado, estoy implementando tus ideas en una aplicación de 3 capas... pero estoy trabajando con VISUAL 2013 y no puedo implementar la conexión en la capa de acceso donde se usa el ConfigurationManager.ConnectionString... tengo agregado el namespace System.Configuration, pero aún asi no puedo usar el ConfigurationManager... el nombre no existe en el contexto actual, tendré que declararlo antes?? NECESITO AYUDA URGENTE, es para un trabajo del instituto... ENORMES GRACIAS!!! mi correo es baileytorch@hotmail.com

    ResponderEliminar
  8. Cuál es la url del segundo video?

    ResponderEliminar
  9. Excelente aporte amigo. Muchas gracias por compartir.

    ResponderEliminar