BT

JSINQ, uma implementação JavaScript do LINQ

| por Abel Avram Seguir 7 Seguidores , traduzido por Felipe Rodrigues Seguir 0 Seguidores em 13 fev 2009. Tempo estimado de leitura: 1 minuto |

JSINQ significa JavaScript INtegrated Query, um projeto beta que implementa LINQ to Objects em JavaScript e que foi recentemente liberado no CodePlex pelo Kai Jäger. JSINQ contém 2 módulo, Enumerable e implementação de Query, System.Linq.Enumerable e System.Linq.Queryable respectivamente, permitindo enumerar arrays, listas de nós DOM ou outros objetos.

O dois módulos são jsinq.Enumerable e jsinq.Query. Um exemplo de uma query é:

var query = new jsinq.Query('\
    from order in $1 \
    group order by order.customerId into g \
    select {customerId: g.getKey(), items: g.sum(function(g) { return g.items; })} \
    into h \
    join customer in $0 on h.customerId equals customer.id \
    where h.items > 10 \
    orderby h.items descending \
    select {lastname: customer.lastname, items: h.items} \
');
query.setValue(0, customers);
query.setValue(1, orders);
var result = query.execute();

An example of enumerating is:

var enumerator = namesThatStartWithAnA.getEnumerator();
while (enumerator.moveNext()) {
  var name = enumerator.current();
  document.write(name + '<br  />');
}

De acordo com Kai, JSINQ pode:

  • Escrever queries arbitráriamente complexas baseadas em arrays JAvaScript, listas de nós DOM ou seus próprios objetos enumeráveis
  • Encontrar Elementos na árvore DOM do HTML usando queries SQL
  • Criar HTML dinamicamente a partir de respostas JSON que você receba via XMLHttpRequest de forma declarativa
  • Manipular XML e convertê-lo para algo
  • Combinar de forma interessante com os frameworks Ajax/JavaScript que você já usa
  • Escrever menos código através da exploração da força da programação declarativa
  • e para os ambiciosos: escrever raytracers, monadic parser combinators, etc.

Kai disponibilizou uma página de playground que permite a qualquer um testar o JSINQ. O código fonte pode ser baixado gratuitamente do CodePlex sob a MIT License.  Outro projetos similares: JSLINQ e JLINQ.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT