03.05.10

Si el Sector de la Construcción funcionara como el de Desarrollo de Software

Posted in Personal at 5:58 pm by Miguel

Hola, buenas, quería una construcción.

Si, veamos… ¿De qué tipo? ¿Un Chalet? ¿Un bloque de pisos? ¿Un palacio de congresos?

Pues no lo sabemos. Usted empiece por el chalet y luego si eso ya lo cambia si necesitamos otra cosa…

Pero… oiga… ¿No tiene ustedes documentos sobre el proyecto? Es que sin eso, va a ser difícil hacer los planos…

Uy no, si tenemos que enseñar la construcción a unos posibles compradores en 5 semanas, no podemos perder el tiempo en esas cosas… Usted pregunte, pregunte…

¿Qué uso le van a dar?

Pues…. De todo.

¿Qué capacidad de personas necesitan?

La máxima

Oiga, así no vamos a ningún sitio, si no me dice lo que necesita, no podemos hacer nada… Tienen ustedes que detallar sus necesidades o no sabré ni qué materiales comprar, ni qué cimientos poner…

Mire, no vamos a perder un mes en decirle lo que quiere y que usted se entretenga en hacer los planos, con las técnicas modernas que hay ahora, lo hace usted así como flexible y modular y que se pueda cambiar todo en un pispás si es necesario… Parece mentira que yo, que no tengo ni idea de arquitectura, le tenga que decir cómo tiene que hacer las cosas … Y por cierto, si nos dice también qué posibles cosas podríamos necesitar para el edificio, cosas que crea que son importantes para nosotros, pues …

¿O sea, que quiere que adivine qué van a necesitar?

Bueno, sí usando las modernas tecnologías supongo que no le será complicado… En fin… ¿Cuánto tardaría?

No tengo ni idea.

Algo aproximado…

Vale 1 ó 2 años.

Vaya, pues no me imaginaba yo este proyecto de 1 ó 2 años…

Mire, sin que me diga lo que quiere, sin planos, sin que me diga qué quiere enseñar en ese piloto a sus cliente, … Pues esa es mi estimación.

¡Está bien, está bien! ¡Aquí tiene! ¡No ponéis nada de vuestra parte!

Oiga, esto es un folio en el que pone: “ALGO PARECIDO A MARINA D’OR”

Ale, ¡Ya tiene lo que necesitaba! Lo necesitamos todo para dentro de seis meses.

Rating 3.00 out of 5
[?]

03.02.10

101 Ejemplos de LINQ

Posted in .NET, Programación at 9:49 pm by Miguel

Abierto ayer el capítulo de LINQ, incorporo una interesante referencia extraida del MSN

101 Ejemplos de LINQ

Saludos.

Miguel

Rating 3.00 out of 5
[?]

03.01.10

El antes y el después de LINQ

Posted in .NET, Programación at 11:10 pm by Miguel

Problema: a partir de una lista de objetos de tipo “Coche”, quiero sumar el precio de cada uno de ellos agrupado por marca.

La clase coche tiene la siguiente forma

public class Coche
{
  public int IdCoche { get; set; }
  public string Matricula { get; set; }
  public int IdMarca { get; set; }
  public int NumeroPuertas { get; set; }
  public int Precio { get; set; }

  public Coche(int idCoche, string matricula, int idMarca, int numeroPuertas, int precio)
  {
     this.IdCoche = idCoche;
     this.Matricula = matricula;
     this.IdMarca = idMarca;
     this.NumeroPuertas = numeroPuertas;
     this.Precio = precio;
   }
}

Inicializamos una lista con objetos de la clase  Coche

List<Coche> lista = new List<Coche>();

lista.Add(new Coche(1, “3322-AAA”, 1, 3, 15000));
lista.Add(new Coche(2, “3322-EEE”, 2, 5, 25000));
lista.Add(new Coche(3, “3322-III”, 3, 3, 35000));
lista.Add(new Coche(4, “3322-OOO”, 1, 3, 18000));
lista.Add(new Coche(5, “3322-UUU”, 2, 5, 20000));
lista.Add(new Coche(6, “1111-AAA”, 3, 3, 150000));
lista.Add(new Coche(7, “1111-EEE”, 1, 3, 30000));
lista.Add(new Coche(8, “1111-III”, 1, 5, 28000));
lista.Add(new Coche(9, “1111-OOO”, 3, 5, 16000));
lista.Add(new Coche(10, “1111-UUU”, 1, 5, 9000));

Solución antes de LINQ (una de muchas)

Hashtable hash = new Hashtable();

foreach (Coche c in lista)
{
  if (!hash.ContainsKey(c.IdMarca))
  {
    hash.Add(c.IdMarca, c.Precio);
  }
  else
  {
    hash[c.IdMarca] = (int)hash[c.IdMarca] + c.Precio;
  }
}

IDictionaryEnumerator _enumerator = hash.GetEnumerator();

while (_enumerator.MoveNext())
{
  Console.WriteLine(String.Format(“Marca: {0}, Total Precio: {1}”, _enumerator.Key, _enumerator.Value));
}

Solución después de LINQ

var marcas = from m in lista
             group m by m.IdMarca into g
             select new { IdMarca = g.Key , TotalPorMarca = g.Sum (m => m.Precio) };

foreach (var marca in marcas)
{
  Console.WriteLine(String.Format(“Marca: {0}, Total Precio: {1}”, marca.IdMarca, marca.TotalPorMarca));
}

Resultado

Marca: 1, Total Precio: 100000
Marca: 2, Total Precio: 45000
Marca: 3, Total Precio: 201000

Saludos.

Rating 3.00 out of 5
[?]