Resulta que, estoy "trabajando", desarrollando web....
Desde mi casa, si es cierto, pero igual es un trabajo, para entregar a una gente ahi.
Haciendo eso, descubrí la verdadera mejor actitud de un informático: la investigación.
Resulta que, todo este tiempo he hecho las cosas en .Net de una manera. Mi manera de hacer las cosas, que era diferente a la de Gilberth, y a la de David. Pues bien, funcionaba la mayoria de las veces y las que no, lo adaptaba.
Ahora, esta semana anterior por cierto, descubrí que, investigando un poco sobre las cosas que uno hace, puede aprender mucho: descubrí que mi manera de programar, aun siendo funcional, le atinaba una estocada al corazón de las "best Practices"(Mejores prácticas). Pues si, luego de al menos 10 horas de leer por todo lado, al volver al VS, sentí verguenza.
Verguenza tal, que lo cerré, y cree un proyecto nuevo, para volver a comenzar.
Como ya algunos saben, he estado usando el framework ASP.NET MVC, y bueno, una de las ideas principales de éste, es la separación de conceptos, o separación en capas. Pues resulta que mis anteriores códigos, funcionaban, pero si por ejemplo, queria en algun momento cambiar de gestor de BD, era mejor escribir todo de nuevo. Ahora, puedo cambiarlo en menos de 20 minutos, contando el tiempo que dura instalando.
Estoy utilizando un modelo de separación de capas que copié de unos maes ahi, entre ellos Scoth Guthrie, que son los que 1. Desarrollaron ASP.net y 2. Desarrollan ASP.NET mvc... Osea, esos maes se la comen toda!!!
Para explicarles como va, es en principio simple, y luego, al hacerlo verán que lo es aún mas (y funciona con todo tipo de aplicaciones, no sólo web):
- Se crea la "capa" de acceso a datos
- Se crea la capa intermedia
En la capa intermedia, simplemente creamos una clase nueva, que, entre otras cosas, separe de la mayor parte de la aplicacion posible, la lógica de extraccion de datos. Osea, que sólo la capa intermedia haga uso de la capa de acceso de datos. Es tan simple como un repositorio.
Finalmente, si alguien desea aprender o tener un ejemplo, se los mando, o les hago uno(en realidad, con LINQ se hacen en 5 minutos), o si desean aprender LINQ, me avisan, que estoy deseando dedicarle más tiempo (el problema es que es tan pichudo, que en 5 minutos hice todo lo que tenia que hacer).
Para darles una muestra, el siguiente código, extraerá de la base de datos, todas las facturas de el cliente "Beto", le actualizará el estado, y la guardará, utlizando LINQ:
var x = from fact in db.Facturas
where fact.Cliente == "Beto"
orderby fact.Fecha
select fact;
eso es C#, en VB se supone es igual.
bueno, cuando ya tenemos x con datos, hacemos lo siguiente para cambiar la factura más nueva (esto no tiene sentido lógico, sino simplemente es ilustrativo):
Facturas factura = x.First<factura>();
factura.Estado = 2;
db.SubmitChanges();
y Voilá! Cambios persisten en la BD....
Saludos!

No hay comentarios:
Publicar un comentario