Mehfuz Hossain, um MVP da Microsoft, criou um provedor LINQ-to-Twitter. Este é mais um exemplo demonstrando que o LINQ não é um framework para acessar apenas dados em um banco, mas que também pode ser utilizado com qualquer tipo de objeto, inclusive tweets.
O LINQ-to-Twitter faz uso do Yedda, a C#/.um encapsulador C#/.NET para a Twitter API. Para métodos do Twitter como Status, User, Friends, o Yedda retorna os resultandos como XML, JSON, RSS ou ATOM.
O LINQ-to-Twitter pega o XML retornado pelo Yedda e o converte em objetos filtráveis utilizando o LINQExtender LINQExtender, uma biblioteca gratuita que provê funcionalidades básicas para criar provedores LINQ. Para se criar um provedor utlizando o LINQExtender, há dois passos envolvidos, de acordo com Hossain:
Primeiramente, você deve definir um objeto filtro implementando a IQueryObject e então você deve fazer o Query
sucessor e sobrepor alguns poucos métodos.
A query example looks like this:
TwitterContext context = new TwitterConext(); var query = from twit in context where twit.Username == "myuser" && twit.Password == "mypass" && twit.Timeline == Timeline.Friends orderby twit.LastUpdated descending select twit;
Um provedor LINQ adicional baseado no LINQExtender é LINQ.Flickr utilizado para filtrar, adicionar, excluir, comentar etc. fotos no Flickr. O LINQExtender por ser utilizado segundo a licença do MIT.
Links úteis: código-fonte (ZIP) do LINQ-to-Twitter, LinqExtender, Tutorial Utilizando LinqExtender.