páginas pagina dinamica con javascript json linq

con - pagina web dinamica javascript



¿Cuál es la biblioteca líder de LINQ para JavaScript? (10)

¿ Ya viste Rx para Javascript ? Eso es lo que quieres.

Estoy buscando una biblioteca de JavaScript que me permita consultar objetos JSON complejos utilizando una sintaxis tipo LINQ. Una búsqueda rápida encontró un par de opciones prometedoras que parecen ofrecer lo que necesito:

LINQ a JavaScript y jLinq

  • ¿Alguien tiene alguna experiencia usándolos?
  • ¿Cuáles son algunos pros y contras?
  • Es el rendimiento comparable?
  • ¿La sintaxis de paso de funciones de LINQ a JavaScript ofrece algún beneficio oculto (personalmente encuentro la sintaxis de jLinq más atractiva a primera vista)?
  • ¿Qué has encontrado falta en cualquiera de los proyectos?
  • ¿Alguna vez intentaste contactar a los autores? ¿Qué tan receptivos fueron?
  • ¿Qué proyecto se usa más ampliamente?

EDITAR:

Acabo de ver esto hoy: jslinq .

Creo que será el primero en realizar una prueba exhaustiva.


Es posible que desee comprobar linq.js. Sigue la sintaxis .NET lambda y parece estar bien integrado en un entorno de Microsoft.

LINQ para JavaScript - http://linqjs.codeplex.com/

Pros

  • Implementa todos los métodos .NET 4.0
  • Evaluación perezosa completa
  • Soporte completo de IntelliSense para VisualStudio
  • Admite jQuery
  • Admite Windows Script Host
  • Enlace para Extensiones Reactivas para JavaScript (RxJS) y IntelliSense Generator
  • Soporte de instalación NuGet
  • Actualizado recientemente (último lanzamiento, enero de 2011)
  • La sintaxis se ajusta a la sintaxis lambda en C #

Contras

  • La biblioteca linq.js es un poco grande.
  • Si ya está utilizando jQuery u otra biblioteca js, la funcionalidad más comúnmente utilizada probablemente ya esté disponible. Consulte especialmente el filter de jQuery y los métodos "Cualquiera".

Estoy buscando algo como esto y me encontré ...

http://www.hugoware.net/Projects/jLinq

¡Esto se ve realmente genial! Tal vez simplemente no entiendo el punto de Rx y observables en comparación con el establecimiento de controladores de eventos a través de algo como jQuery.


Existen algunas bibliotecas de duplicación que intentan portar LINQ a JavaScript con una sintaxis y nombres de método similares. Sin embargo, en la comunidad JS, la biblioteca que se está volviendo realmente popular y que proporciona la misma funcionalidad es underscore.js .


Hace poco hice una biblioteca LINQ para JavaScript. Implementó la mayoría de las funciones LINQ provistas por .NET y es la más rápida de todas las bibliotecas LINQ.

http://fromjs.codeplex.com/


He probado la mayoría de estos, y realmente me gusta $ linq: http://jscriptlinq.codeplex.com/ el mejor. Simplemente funciona de la manera en que esperaría que c # linq funcione, incluida la capacidad de la cadena.


Los operadores de Linq más básicos y de uso frecuente se definen muy comúnmente en las bibliotecas JS ampliamente utilizadas. Simplemente tienen diferentes nombres (de hecho, tienen nombres más tradicionales que en Linq). Select convierte en map , Where convierte en filter , First y FirstOrDefault convierten en [0] .

Casi ninguna biblioteca que conozco (incluyendo creo que a las que se vinculó) se molesta en hacer que la implementación sea floja como en .NET Linq, simplemente evalúan de inmediato el uso de matrices.

Para obtener un conjunto completo de operaciones de listas funcionales, prueba: http://osteele.com/sources/javascript/functional/


Personalmente, encuentro las operaciones de LINQ / set Union, Intersect, Except y Distinct en enumerables en .NET. muy útil. Existe un plugin jquery llamado jQuery Array Utilities que proporciona estos métodos para ser usados ​​en arreglos.

Ejemplos de código:

$.distinct([1, 2, 2, 3])

devuelve [1,2,3]

$.union([1, 2, 2, 3], [2, 3, 4, 5, 5])

vuelve [1,2,3,4,5]

$.instersect([1, 2, 2, 3], [2, 3, 4, 5, 5])

devuelve [2,3]

$.except([1, 2, 2, 3], [3, 4, 5, 5])

devuelve [1, 2]


Recomiendo echar un vistazo a underscore.js . No es un puerto LINQ directo como algunos de los otros, pero es una experiencia muy cómoda de "LINQ". Es compatible con todas las opciones de filtro, clasificación y proyecto que necesito y tiene una excelente documentación y apoyo de la comunidad.

Como una ventaja para los usuarios de Knockout , existe UnderscoreKO que agrega los métodos de matriz de Underscore a las matrices observables de Knockout. Demo


$ linq: http://jscriptlinq.codeplex.com/

var users = [{username: "asmith", domain: "north_america"}, {username: "tmcfarland", domain: "europe"}, {username: "cdeckard", domain: "nort_america"}]; var groups = [{user: "ASMITH", groupName: "base_users"}, {user: "TMCFARLAND", groupName: "admins"}, {user: "CDECKARD", groupName: "base_users"}, {user: "CDECKARD", groupName: "testers"}]; var results = $linq(users).join(groups, function (x) { return x.username; }, // key for ''users'' "x => x.user", // key for ''groups'' function (outer, inner) // function to generate results { return "user: " + outer.username + ", domain: " + outer.domain + ", group: " + inner.groupName; }, "(x, y) => x.toLowerCase() == y.toLowerCase()"); // compare keys case-insensitively