locked
WebClient extendo em app windows phone RRS feed

  • Pergunta

  • Olá pessoal,

    estou desenvolvendo um leitor de rss que consome o xml do seguinte site: http://jovemnerd.com.br/categoria/nerdcast/feed/ até então está tudo tranquilo, consigo ler as notícias e tal, porém pelo fato do conteúdo disponibilizado no xml ser muito extenso, o aplicativo demora um pouco mais de um minuto para exibir as informações (o que não é muito bom para o usuário). O código que estou utilizando é este:

    WebClient nerdcastfeed = new WebClient();
    
    nerdcastfeed.DownloadStringCompleted += nerdcastfeed_DownloadStringCompleted;
    
    Uri uri = new Uri("http://jovemnerd.com.br/categoria/nerdcast/feed/rss");
                
    nerdcastfeed.DownloadStringAsync(uri);

    estou procurando uma forma de agrupar os itens desse xml para que sejam exibidos em uma lista de tamanho 10, enfim fico no aguardo e desde já agradeço a atenção.


    domingo, 15 de fevereiro de 2015 05:00

Respostas

  • Jorge, aí infelizmente não tem jeito. Qualquer tentativa de leitura só será possível se vc baixar todo o arquivo.

    Como sugestão, vc não pode criar um Web Service que faz a leitura desse XML e devolve apenas parte dele, conforme as necessidades da aplicação? Acredito que assim vc deixaria de ter esse problema num dispositivo móvel, deixando a cargo do serviço hospedado num servidor (IIS, por exemplo) todo esse trabalho de recuperação dos dados e, eventualmente, até de cache seguindo suas necessidades.

    Como disse é uma sugestão. Se optar por este caminho, recomendo o uso de Web API. No link abaixo tem um post que escrevi a respeito desta tecnologia:

    http://www.devmedia.com.br/asp-net-web-api-implementando-servicos-restful/31024

    • Marcado como Resposta Jorge Kleber terça-feira, 17 de fevereiro de 2015 12:46
    terça-feira, 17 de fevereiro de 2015 01:22

Todas as Respostas

  • Jorge,

    Uma sugestão que te dou é utilizar as classes Task e Parallel para o download e leitura do RSS de forma assíncrona, além de efetuar o processamento paralelo disto.

    Eu escrevi um post a respeito disto recentemente. Embora a aplicação no exemplo seja baseada no uso de WPF, acredito que a solução encontrada também é válida para Windows Phone:

    http://social.technet.microsoft.com/wiki/pt-br/contents/articles/29709.processamento-paralelo-e-assincrono-no-net-framework.aspx

    Espero ter ajudado.

    Abs.

    domingo, 15 de fevereiro de 2015 14:44
  • Blz Renato vou verificar.
    segunda-feira, 16 de fevereiro de 2015 18:58
  • Olá Renato,

    Poxa cara usando o método assíncrono ainda não conseguir fazer a divisão do arquivo, o que quero fazer é o seguinte: como o xml é muito pesado (nele estão todos os 460 podcasts), gostaria de recuperar somente uma parte do arquivo, ou seja, quero fazer o download de somente 10 itens que estão no arquivo xml, porém usando o DownloadStringAsync(uri) sempre vou baixar todo o arquivo (com seus 460 itens).

    terça-feira, 17 de fevereiro de 2015 00:48
  • Jorge, aí infelizmente não tem jeito. Qualquer tentativa de leitura só será possível se vc baixar todo o arquivo.

    Como sugestão, vc não pode criar um Web Service que faz a leitura desse XML e devolve apenas parte dele, conforme as necessidades da aplicação? Acredito que assim vc deixaria de ter esse problema num dispositivo móvel, deixando a cargo do serviço hospedado num servidor (IIS, por exemplo) todo esse trabalho de recuperação dos dados e, eventualmente, até de cache seguindo suas necessidades.

    Como disse é uma sugestão. Se optar por este caminho, recomendo o uso de Web API. No link abaixo tem um post que escrevi a respeito desta tecnologia:

    http://www.devmedia.com.br/asp-net-web-api-implementando-servicos-restful/31024

    • Marcado como Resposta Jorge Kleber terça-feira, 17 de fevereiro de 2015 12:46
    terça-feira, 17 de fevereiro de 2015 01:22