Busqueda local

Loading

jueves, 24 de febrero de 2011

Dilema EF o SP

EF (Entity Framework) o SP (Store Procedures).
En este punto es necesario hacer algunos comentarios en relación con la pregunta más compleja que me han hecho sobre el uso del EF.
Programar usando EF, Es mejor que usar Store Procedures con DataSets?
La respuesta no es simple, sobre todo porque no quiero ser parcial al respecto o responder tendenciosamente, así que analicemos algunos aspectos que preocupan:
Desempeño
Si nuestra aplicación debe realizar las tareas básicas de una aplicación o sea el CRUD, podemos decir que el desempeño me ha parecido similar, es casi imperceptible. Si por el contrario la aplicación debe atender un gran número de acciones de actualización o inserción de registros de forma masiva, entonces les recomendaría sin temor a equivocarme que usaran Store Procedures, sin el EF.
Velocidad al Codificar
Si has codificado sin EF y descubres lo que puede hacer por ti, no hay ni punto de comparación; el EF representa un ahorro en tiempo de codificación y en depuración de errores, que no puede compararse con la codificación usando SP. Las actualizaciones a la base de datos, no afectan tu tiempo de desarrollo, ya que solo debes actualizar el Model.
Flexibilidad
Este punto me parece un poco tramposo, porque si al programar SP escribiste lógica de la aplicación ahí y debes cambiar algo en el SP, que no sea la estructura de datos, esto no representa ningún cambio en tu aplicación. En el EF este escenario no existe, o al menos no puedo imaginarme como podría suceder.
Pero por otra parte si el cambio es en la estructura de las tablas, en ambos casos deberás volver a compilar, pero en el de SP, incluso debes escribir código, y en EF, solo actualizar el Model.
Nivel de Abstracción
Este punto no podemos pasarlo por alto, ya que representa la mayor ventaja del EF sobre el modelo con SP. El EF, nos evita tener que realizar el código de más bajo nivel para acceder a los datos, ya que es automático. Y a pesar de que es una ventaja, cuando todo sale bien; resulta una desventaja si hay algún problema y no sabemos qué ocurre por debajo.
 

Conclusión

Como pueden leer no es fácil determinar por cual inclinarse; sin embargo en los últimos tres proyectos que he desarrollado, he usado el EF y los resultados han sido sorprendentes. Después de todo, cada quien habla de la feria como le fue en ella.

No hay comentarios:

Publicar un comentario