[ C# ] O poder do Yield Return
- terça-feira, 29 de junho de 2010Fiquei muito tempo sem postar, e hoje estou com pouco tempo portanto serei breve.
Resolvi postar um link muito interessante sobre o YieldReturn. Pra quem não conhece nada de YieldReturn, vale apena dar uma olhada na msdn [ http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx ].
O link que citei acima é do Joshua Flanagan [ http://flimflan.com/blog/ThePowerOfYieldReturn.aspx ], reparem que o título meu post foi inspirado no texto dele. Acredito que o uso do yield demonstrada no texto possa ser útil para muitos, assim como foi para mim.
Estou trabalhando em uma ferramenta para integração de conteúdos entre portais. O Yield foi muito útil pois não quero listar todos os conteúdos antes de começar a integração, quero que tudo seja feito por etapas.
Imagine uma abordagem de integração como a descrita abaixo:
- Select no banco com todos os conteúdos do portal1 e alimento um DataTable
- Para cada DataRow do DataTable, alimento um objeto gerado pela referência do WS que esta no portal2.
- Executo o método do WS que recebe o conteúdo e salva no portal2.
- Muda um flag no banco de dados dizendo se o conteúdo foi salvo com sucesso ou não.
Com a abordagem do Yield descrita no post do Joshua Flanagan essa rotina é feita da seguinte maneira:
- Select no banco com todos os conteúdos do portal1 e alimento um DataTable
- Para o primeiro DataRow do DataTable, alimento um objeto gerado pela referência do WS que esta no portal2.
- Executo o método do WS que recebe o conteúdo e salva no portal2.
- Muda um flag no banco de dados dizendo se o conteúdo foi salvo com sucesso ou não.
- Se existe outro objeto, volta para o passo dois e repete com o proximo DataRow.
Pra mim foi muito útil, achei mais interessante do que alguns exemplos que vejo por ai, onde yield é usado como uma simples lista.
Ultimos Posts
25/7/2010
16/7/2010
8/7/2010
29/6/2010
8/2/2010
Amigos
Navarro
Klaus
Andre
Danilo
Tomás
Carolina Andrade
Design By Carolina Andrade
Rafael da Silva Almeida, 22 Desenvolvedor;
