Bueno... lo del carro de la compra y sobre la pregunta de si es óptimo almacenar los datos en un DataTable mi respuesta es que no es para nada lo más optimo.
Un DataTable supone mucha memoria para la poca información que estimo vas a usar... Es una solución sencilla y si estas empezando con .NET lo veo bueno para ir empezando.
Sin embargo, si lo que quieres es saber si tu código es óptimo, lamentablemente tengo que decirte que en absoluto. Deberias usar tus clases para gestionar tu cesta de la compra.
Por ejemplo algo asi:
Código:
[Serializable]
public Class ClsProducto
{
public int CodigoProducto{ get; set; }
public string NombreProducto{ get; set; }
public decimal ImporteProducto{ get; set; }
//Esta sería la cantidad de productos iguales que ha agregado el usuario.
public int CantidadProducto{ get; set; }
public decimal ImporteTotalProducto{ return (this.CantidadProducto * this.ImporteProducto); }
}
[Serializable]
public Class ClsCesta
{
public List<ClsProductos> ProductosCesta{ get; set; }
public decimal ImporteTotal
{
//Aqui meter una sentencia LinQ para que te devuelva el importe total de todos los productos que tienes en this.ProductosCesta.
}
}
Bueno, te comento esto, por si tu idea es mejorar y perfeccionar tu desarrollo. Espero te sirva de utilidad. Yo hice relativamente poco una aplicación de compras online con su respectiva cesta y su pasarela de pago con el banco y usé clases mejor que DataTables, ya que bueno... cuanto menos recursos se consuman mejor.
Por si te interesa, puedes verla aqui:
http://www.sequeldenim.com (Espero os guste.... y que no encontreis bugs, jajaja)
Un saludo amigos.