none
Persistir la información RRS feed

  • Pregunta

  • Hola a todos!

    Estoy empezando con window phone, y tengo la siguente duda:

    Suponiendo que tenemos una aplicación WP que lee un "un cojunto de fichas" por ejemplo peliculas, estas "fichas" películas son solo para leer su infomación y mostrarla por pantalla el usuario no tiene que editarla. La duda es la siguiente: A la hora de persistir la información que sería mejor (rendimiento...) persistir esa fichas en ficheros XML o utilizar la BD SQL Server CE. En el suspuesto la aplicación no necesita internet para obener la información por lo que no consumo ningún servicio web). Tal vez la pregunta sea  absurda considerando que una BD relacional es mejor que guardar la información en ficheros. La duda me surje a raiz de la potencia de Linq To XML.  

    Un saludo y gracias


    Santiago Pomar

    sábado, 19 de mayo de 2012 7:52

Respuestas

  • Hola Santiago

    Entramos un poco en el terreno del rendimiento. Todo depende de cuantas fichas vayas a tener. Linq To XML funciona muy bien, pero para poder trabajar con el, tienes que cargar tu xml guardado en disco en un XDocument, normalmente esto implica leer el archivo de disco, pasar su contenido (xml) a un string y luego usar XDocument para parsear dicho contenido, una vez hecho esto podrás usar Linq To XML, el problema viene cuando el xml en disco ocupa varios Mb, la parte de abrir, leer y parsear el documento puede ser muy pesada y llevar un tiempo considerable (he observado el rendimiento con archivos de más de 5Mb caer hasta casi el minuto)

    En este caso SQL CE es mucho más rápida, sobre todo teniendo en cuenta que solo necesitas lectura, no escritura, puedes precompilar las querys de linq to sql para que sean más efectivas e incluso "desnormalizar" la base de datos para realizar lecturas planas.

    Si por el contrario me dices que vas a tener 100 fichas, que la información es muy pequeña, entonces no necesitarías quizas un SQL CE, con XML te funcionaría perfecto.

    Al final, depende de analizar un poco lo que tienes entre manos y ver cual de los dos métodos se ajusta mejor a tu situación actual.

    Un saludo!


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    • Marcado como respuesta Santiago Pomar sábado, 19 de mayo de 2012 9:58
    sábado, 19 de mayo de 2012 9:34
    Moderador

Todas las respuestas

  • Hola Santiago

    Entramos un poco en el terreno del rendimiento. Todo depende de cuantas fichas vayas a tener. Linq To XML funciona muy bien, pero para poder trabajar con el, tienes que cargar tu xml guardado en disco en un XDocument, normalmente esto implica leer el archivo de disco, pasar su contenido (xml) a un string y luego usar XDocument para parsear dicho contenido, una vez hecho esto podrás usar Linq To XML, el problema viene cuando el xml en disco ocupa varios Mb, la parte de abrir, leer y parsear el documento puede ser muy pesada y llevar un tiempo considerable (he observado el rendimiento con archivos de más de 5Mb caer hasta casi el minuto)

    En este caso SQL CE es mucho más rápida, sobre todo teniendo en cuenta que solo necesitas lectura, no escritura, puedes precompilar las querys de linq to sql para que sean más efectivas e incluso "desnormalizar" la base de datos para realizar lecturas planas.

    Si por el contrario me dices que vas a tener 100 fichas, que la información es muy pequeña, entonces no necesitarías quizas un SQL CE, con XML te funcionaría perfecto.

    Al final, depende de analizar un poco lo que tienes entre manos y ver cual de los dos métodos se ajusta mejor a tu situación actual.

    Un saludo!


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    • Marcado como respuesta Santiago Pomar sábado, 19 de mayo de 2012 9:58
    sábado, 19 de mayo de 2012 9:34
    Moderador
  • Hola Josue!

    Gracias por tu respuesta has sido de gran ayuda. Si aproximademente son unas 100 fichas pero las información pesa poco por lo que pensé uilizar xml y linq to xml.

    Precisamente estaba leyendo tu libro de windows phone (buen libro) jeje que casualidad que nos veamos  en el foro :-)

    Gracias!


    Santiago Pomar


    sábado, 19 de mayo de 2012 10:02