BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias JSINQ, uma implementação JavaScript do LINQ

JSINQ, uma implementação JavaScript do LINQ

Favoritos

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

Conteúdo educacional

BT