Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/03/2014, 17:49
MarkiiAk
 
Fecha de Ingreso: enero-2011
Ubicación: Del otro lado del monitor
Mensajes: 43
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Eficiencia a la hora de programar

Cita:
Iniciado por Malenko Ver Mensaje
Bueno, voy a indicar más o menos lo mismo. Hay dos tipos de "eficiencias":
- La velocidad de ejecución
- La capacidad para mantener el programa


La primera puede parecer obvia, pero no lo es tanto. Se entiende que al tener que llamar a una función más, el código puede tardar más en ejecutarse, pero mientras sea imperceptible para el usuario no hay problema. Hay un problema de tiempo de ejecución cuando una consulta a una base de datos te tarda medio minuto, pero por una decimas de segundo en mostrar un MessageBox nadie se va a llevar las manos a la cabeza.

El tema de mantener y adaptar el código es más delicado. Imaginate que imprimes todos tus mensajes con los MessageBox directamente. Si el día de mañana tus jefes o tu decidiis que es mejor mostrar los mensajes de otra forma, vas a tener que ir por cada MessageBox y modificando el código. Ahora imaginate que, además, descubres que hay un bug en ese nuevo código, vas a tener que ir otra vez mensaje por mensaje para solucionar el bug, y eso con cuidado de no dejarte ninguno. Pero si tienes una función (o mejor, una clase) que se encargue de pasarle un mensaje de texto y ella misma escriba el mensaje, todos los cambios irá centralizados a una única función. Así sería mucho más fácil hacer los cambios de antes, no? Pues igual pasa con todo el programa. De ahí aparece la forma de programación mediante capas, separando por un lado el acceso a los datos, por otro la utilización de ellos y por otro la parte de presentación de los datos.


Saludos a ambos muchas gracias por las respuestas, el messagebox era solo un ejemplo pues burdo, para no ser tan largo en la pregunta, ahora respecto a esto me surge otra duda o problema, estuve viendo el siguiente código que tengo en un login (yo se que de momento es inseguro, pero la duda no va por ahí) la duda es la siguiente. Tengo este codigo en mi Form1 (el cual tiene los textbox para el login y una liga para registrarse)

Código:
System.Data.SqlClient.SqlConnection con;

public void conectarbd()
        {
            con = new SqlConnection();
            con.ConnectionString = "Integrated Security=SSPI;Initial Catalog=Empleados;Data Source=CRISTINA\\SQLEXPRESS";
            try
            {
                con.Open();

            }
            catch (Exception)
            {
                MessageBox.Show("Conexion Fallida");
            }
        }
Con esto me conecto a mi base de datos, al dar clic en registrarse abre otro form en el cual tengo lo siguiente

Código:
System.Data.SqlClient.SqlConnection con;
  private void Form2_Load(object sender, EventArgs e)
        {
            Form1 conecta = new Form1
            conecta.conectarbd();            
        }

private void button1_Click(object sender, EventArgs e)
        {
            SqlDataAdapter da = new SqlDataAdapter("INSERT INTO Users (Nombre,Correo) Values ('" + textBox1.Text + "', '" + textBox2.Text + "')",con);
            DataSet ds = new DataSet();
            da.Fill(ds);
        }
El problema es que la variable "con" siempre queda como null entonces no se ve reflejado el insert to en mi base de datos, entonces tuve que volver a escribir la cadena de conexion completa en el segundo form en vez de solo mandarla a llamar, esto como lo puedo evitar, pues me esta generando codigo repetititvo.

Saludos.