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

Pregunta de conceptos

Estas en el tema de Pregunta de conceptos en el foro de ASPX (.net) en Foros del Web. Buenas, Me planteo la siguiente pregunta. Qué es mejor (rendimiento, claridad de codigo, velocidad...) , crear una clase "DetallesUsuario" con varias propiedades, por ejemplo, Nombre, ...
  #1 (permalink)  
Antiguo 09/05/2006, 02:45
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Pregunta de conceptos

Buenas,
Me planteo la siguiente pregunta.
Qué es mejor (rendimiento, claridad de codigo, velocidad...) , crear una clase "DetallesUsuario" con varias propiedades, por ejemplo, Nombre, Apellidos, etc... y luego, al procedimiento "Sub ModificarUsuario" pasarle como parametro un objeto de esa clase...
O por otro lado, pasarle al "Sub ModificarUsuario" los valores por separado.

O sea, tener un Sub ModificarUsuario así:
Código:
Protected Sub ModificarUsuario (ByVal Detalles As DetallesUsuario)
O tener un Sub ModificarUsuario así:
Código:
Protected Sub ModificarUsuario (ByVal ID as Integer, Nombre As String...)
O da lo mismo una forma que la otra...

'----------------------------------------------------------------

Y otra.. la siguiente linea:

myCommand.ExecuteReader(CommandBehavior.CloseConne ction)

Un sub devuelve este DataReader con la conexión abierta para poder leer los datos, pero tengo la duda de si esta forma de hacerlo lo que hace es que cierra la conexion automáticamente, o si realmente sirve para mandar la conexion abierta, precisamente para que la cierre yo cuando termine de utilizar el DataReader..

'-----------------------------------------------------------------

Gracias pos sus opiniones.
Saludos.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 09/05/2006 a las 04:21
  #2 (permalink)  
Antiguo 09/05/2006, 11:56
 
Fecha de Ingreso: abril-2006
Mensajes: 40
Antigüedad: 18 años
Puntos: 0
En cuanto a pasar una clase o pasar parametros, creo que es mas escalable tu aplicacion si utilizas una clase como parametro, recuerdo que las clase son tipos de datos abstractos con los cuales puedes mantener la consistencia de los datos, haciendo uso de propiedades que pueden validar la entrada de datos y de funciones que realicen ciertas operaciones.

Por ejemplo si tu aplicacion en multicapa puedes pasar entre las capas al objeto detalle, el cual trae en si su logica de validacion y consistencia de datos.

Segun yo pienso
claridad de codigo, el codigo es mucho mas legible.
velocidad, posiblemente sea un poco mas lento pero mas confiable y mas seguro.
rendimiento, la velocidad afecta directamente al performance.

Simpre hay que ariesgar una cosa por otra.

'----------------------------------------------------------------

myCommand.ExecuteReader(CommandBehavior.CloseConne cction)

te evita una linea de codigo
conn.close()

pues al myCommand.close(), ejecuta internamente conn.close().
  #3 (permalink)  
Antiguo 10/05/2006, 03:17
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Consulta 1) OK. Muy agradecido por tu opinión. Pienso lo mismo.

Consulta 2) Entonces, por lo que dices, si que tendré que hacer un myCommand.close() cuando deje de utilizar el DataReader?

Gracias!
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 10/05/2006, 10:25
 
Fecha de Ingreso: abril-2006
Mensajes: 40
Antigüedad: 18 años
Puntos: 0
Mensaje

Una disculpa..es un error mio confundi las variables.
Lo que tienes que hacer es
Código:
Dim strSQL As String = "Select * from tabla"
Dim cmd As New SqlCommand(strSQL, New SqlConnection(AppSettings("cnnDB")))
Dim reader As SqlDataReader
cmd.Connection.Open()
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
If reader.Read Then
   field1 = reader.GetDecimal(0)
   field2 = reader.GetString(1)
 End If
reader.Close()
Ahora si el reader cierra automaticamente el comando, el cual a su ves cierra la coneccion.
  #5 (permalink)  
Antiguo 10/05/2006, 10:41
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Thanks men
__________________
..:: moNTeZIon ::..
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 15:32.