Foros del Web » Programando para Internet » ASPX (.net) »

Uso de clases en asp.net

Estas en el tema de Uso de clases en asp.net en el foro de ASPX (.net) en Foros del Web. Hola, lo que sucede es que no comprendo muy bien esto de las clases y debo desarrollar una página referente a una bolsa de empleo ...
  #1 (permalink)  
Antiguo 22/11/2012, 14:12
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Uso de clases en asp.net

Hola, lo que sucede es que no comprendo muy bien esto de las clases y debo desarrollar una página referente a una bolsa de empleo y además de todo lo que esta lleva me piden tener en cuenta las siguientes consideraciones

1. Deben agruparse en proyectos diferentes las clases de entidad, de control y las de interfaz.

2. La lógica de negocio debe estar centralizada en las clases de control.


y en verdad no se q hacer, o q tipos de datos puede almacenar cada clase...
Estaria muy agadecida me aclararan un poco esto

  #2 (permalink)  
Antiguo 22/11/2012, 16:11
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
De acuerdo Respuesta: Uso de clases en asp.net

Mira este articulo te puede ayudar en algo:
Usar clases de VB y C# en una misma aplicación Web de Visual Studio 2005

Por ejemplo, quiero tener un clase que pueda listar los datos de BD y retornar a un DataTable:

Código Javascript:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Text;
  6. using System.Data;
  7. using System.Data.SqlClient;
  8.  
  9. namespace Objetos_Perdidos
  10. {
  11.     public class Lista
  12.     {
  13.         private static SqlConnection GetConnection()
  14.         {
  15.             SqlConnection con = new SqlConnection();
  16.             con.ConnectionString = "Data Source = NOMBRE_SERVIDOR; Initial Catalog = NOMBRE_BD; User ID = USUARIO; Password = CONTRASEÑA";
  17.             return con;
  18.         }
  19.  
  20.         public static DataTable GetArticulos()
  21.         {
  22.             SqlConnection con = GetConnection();
  23.             SqlCommand comando = new SqlCommand();
  24.             comando.Connection = con;
  25.             comando.CommandType = CommandType.Text;
  26.             comando.CommandText = "SELECT * FROM TABLA_1";
  27.             using(con)
  28.             {
  29.                 con.Open();
  30.                 SqlDataReader reader = comando.ExecuteReader();
  31.                 DataTable tabla = new DataTable();
  32.                 tabla.Load(reader);
  33.                 return tabla;
  34.             }
  35.         }
  36.     }
  37. }

Ahora como hago para llamar esa clase, simplemente hago lo siguiente:

Código Javascript:
Ver original
  1. GridView1.DataSource = Lista.GetArticulos();
  2. GridView1.DataBind();

Es como mantener separados lo que es las operaciones y conexiones a la base de datos de una manera mas ordenada y separada de la interfaz.
  #3 (permalink)  
Antiguo 22/11/2012, 16:29
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Uso de clases en asp.net

Entonces si entiendo bien por ejemplo la clase de tipo interfaz seria la que controlaria las bases de datos donde se guarda la información del usuario que se inscriba, y tambien de las empresas que oferecen vacantes cierto?
Y en la de tipo Entidad según comprendo por esta definición que dice: Clase Entidad: Se utilizan para modelar la información que posee una larga vida y que es a menudo persistente , se podria poner información que guardara cuando alguien aplica a una oferta
y en la de Control que dice según la definición Encapsulan la lógica del negocio, actúan como unión entre clase entidad e interfaz , esta no la comprendo muy bien, pero creo que en mi caso podria ser aplicada a cuando ya la empresa eligio quien va a trabajar con ellos, y ya se actualiza en la Base de datos, que esa vacante no existe

Podria como poner en practica algo asi de lo que escribi, ps guiandome por los parametros que me piden. ?

Dame porfa tu opinión para saber si estoy bien enfocada


Y en cuanto a la estructura de la clase, ya me quedo mas claro sobre como se usan

Gracias
  #4 (permalink)  
Antiguo 22/11/2012, 16:36
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Respuesta: Uso de clases en asp.net

Exacto, lo entiendes mejor que yo, pero si es como tu dices ya tu le das en fin de cada uno, que en la interfaz se manejara lo relacionado a la conexión de la BD, en la de control estaría lo relacionado a lo que es el almacenamiento de los datos y su modificación o consulta y lo de entidad lo que tu dices. estas mas clara que el agua.
  #5 (permalink)  
Antiguo 22/11/2012, 18:03
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Uso de clases en asp.net

Jjeje gracias, y una preguntica más donde es aconsejable poner las clases en la carpeta App_Data o se puede en la carpeta donde tengo las paginas como tal
  #6 (permalink)  
Antiguo 23/11/2012, 04:40
 
Fecha de Ingreso: octubre-2012
Ubicación: España
Mensajes: 30
Antigüedad: 12 años
Puntos: 2
Respuesta: Uso de clases en asp.net

Hola, por lo que yo he entendido en el primer mensaje, tienes que hacer una aplicación en capas. te creas una solución nueva y dentro de esta solución te creas los siguientes proyectos:

- Biblioteca de clases para las entidades. Dentro de este proyecto te creas una clase para cada entidad con sus métodos get y set. por ejemplo la clase Usuarios con los get y set para los datos del usuario.

- Biblioteca de clases de Acceso a Datos. Con este proyecto te conectas a la base de datos. Por ejemplo te creas dentro de este proyecto una clase Usuario y dentro de esta clase te creas los procedimientos para insertar usuario, modificarlo... Previamente debes agregarle referencia a las entidades. La cadena de conexión a la bd creo que lo correcto es definirla en el web.config de la capa de presentación (la de interfaz) y en esta capa llamas a la cadena de conexión usando System.ConfigurationManager que si no te aparece en el Intellisense deberás agregar otra referencia de System.Configuration.

-Bibioteca de clases de Negocio. Con este proyecto conectas la capa de interfaz con la de acceso a datos. Le agregas referencias a Entidades y a AccesoDatos y los pasos los mismos, te creas una clase usuario y te creas los procedimientos que a su vez llaman a los procedimientos de la capa de AccesoDatos.

- La última capa es la de Presentación. Esta es la interfaz que va a manejar el usuario, aquí te pones los formularios, en la carpeta app_data estará la bd, en el web.config defines la cadena de conexión (y más cosas que necesites como pej si usarás roles de usuario). En los formularios que vayas haciendo pues vas llamando a los métodos que has definido en la capa de negocio y éstos llaman a los que has definido en la capa de acceso a datos. Debes agregarle referencias a la capa negocio y a entidades. De esta manera separas la lógica de la aplicación.

No sé si es correcto porque yo ahora estoy estudiando lo mismo. Pero más o menos creo que va así. Espero que te sirva
  #7 (permalink)  
Antiguo 23/11/2012, 07:15
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Respuesta: Uso de clases en asp.net

y una preguntica más donde es aconsejable poner las clases en la carpeta App_Data o se puede en la carpeta donde tengo las paginas como tal

Podrías ponerlas en un carpeta aparte no en la misma donde están las paginas, pues no tendrás un orden de las clases, ya que lo que intentas es separar cada clase como tal y como dice thanos en la carpeta App_Data estará la BD.
  #8 (permalink)  
Antiguo 23/11/2012, 20:02
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Uso de clases en asp.net

Gracias a ambos por su ayuda, y si tienes razon thanos, es algo así lo q debo hacer espero no tener problemas con esto.
Y una nueva pregunta que me surgio... a cualquiera de los dos que me pueda responder, como la base datos la debo es hacer es local, es decir usando SQL server 2008, pero desde la opcion que trae le mismo visual para crearla, entonces de que manera puedo despues de realizar la conexión, guardar los datos en esta

Y gracias por todo nuevamente
  #9 (permalink)  
Antiguo 24/11/2012, 04:09
 
Fecha de Ingreso: octubre-2012
Ubicación: España
Mensajes: 30
Antigüedad: 12 años
Puntos: 2
Respuesta: Uso de clases en asp.net

Puedes crear procedimientos almacenados en la bd que vayan en función de parámetros que le pasarás desde la aplicación. Algo así:

CREATEPROCEDURE insertarUsuario
@Nombre varchar(25),
@Apellidos varchar(50)
AS
insert into Usuarios (Nombre,Apellidos) values(@Nombre,@Apellidos)

en la capa de Acceso a Datos te creas una clase para los usuarios que se llame por ejemplo AccUsuarios y creas un método que abra la conexión, defina los parámetros y ejecute el procedimiento almacenado:

public string insertarUsuario(AccUsuarios user)
{
string rpta = "";
SqlConnection cn = new SqlConnection();

try
{
///Se abre la conexión con bd y se dice que proc. almacenado usar
cn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
cn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "insertarUsuario";
cmd.CommandType = CommandType.StoredProcedure;

///Se definen los parámetros y tipos de datos del proc.
SqlParameter pmNombre = new SqlParameter();
pmNombre.ParameterName = "@Nombre";
pmNombre.SqlDbType = SqlDbType.VarChar;
pmNombre.Size = 25;
pmNombre.Value = user.Nombre;
cmd.Parameters.Add(pmNombre);

SqlParameter pmApellidos = new SqlParameter();
pmApellidos.ParameterName = "@Apellidos";
pmApellidos.SqlDbType = SqlDbType.VarChar;
pmApellidos.Size = 50;
pmApellidos.Value = user.Apellidos;
cmd.Parameters.Add(pmApellidos);

//Se ejecuta el proc.
rpta = cmd.ExecuteNonQuery() == 1 ? "OK" : "No se insertó el usuario correctamente";
}

catch (Exception ex)
{
rpta = ex.Message;
}

finally
{
//Se cierra la conexión
if (cn.State == ConnectionState.Open)
cn.Close();
}

return rpta;
}

La parte donde abres la conexión y pone ["ConnectionString"], ese es el nombre de tu cadena de conexión definida en el webconfig. En la capa de Negocio te creas una clase para los usuarios que se llame NegUsuarios y te creas el método que has hecho antes:

public static string insertarUsuario(string Nombre, string Apellidos)
{
AccUsuarios user = new AccUsuarios();
user.Nombre = Nombre;
user.Apellidos = Apellidos;

return user.insertarUsuario(user);
}

Luego en la capa de interfaz imagina que tienes un formulario con 2 textbox y un botón que cuando lo pulsas guarda los datos en la bd. Pues al código del botón le pones esto:

NegUsuarios.insertarUsuario(textbox1.Text, textbox2.Text);

Los textbox.Text serán los @Nombre Y @Apellidos que has definido antes. La forma de ir usando la bd de datos es más o menos esa, pero no es lo único, debes crearte bien tus clases, agregar las referencias entre capas, definir tu cadena de conexión para que sólo aparezca en el webconfig...

Etiquetas: c#, clases, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:41.