2010-09-01 14 views
8

¿Alguien sabe si existe un contenedor de .NET de código abierto que pueda analizar confiablemente el OData protocol Uri?¿Existe un contenedor de clase .NET para el protocolo OData Uri

No estoy buscando punteros a WCF Data Services ... Estoy creando un servicio de consulta de datos basado en WCF que (por razones complicadas) no puede ser un servicio Atom/OData real, pero realmente me gusta la expresividad de OData Uri para identificar un origen de datos y parámetros de consulta. Además, podemos exponer un punto final OData en el futuro.

Miré (cursoralmente) a través de la API del Servicio de datos WCF y no parece haber una clase ODataUri prolijamente envuelta que exhiba el host del servicio, la ruta del recurso y los parámetros de consulta. Puedo escribir uno, pero antes de hacerlo, preferiría ver si alguien ya lo ha hecho.

+1

yo también estaría interesado en esto, se las arregló para encontrar/crear un contenedor? ¿Puedes compartir tus hallazgos? – Alex

+0

Claro, lea esta publicación en el blog como entrada: http://tirania.org/blog/archive/2010/Mar-22.html –

+0

Así que, a menos que me falta algo, este artículo analiza la necesidad de que MS abra- fuente el código del servidor de servicios de datos (¡lo que necesito!). Estoy de acuerdo con el sentimiento, pero no me ayuda porque MS no ha utilizado el código del servidor y por lo tanto no puedo acceder a su analizador uri (creo que podría probar el reflector, pero es probable que sea mucho de problemas). –

Respuesta

6

Sé que dijiste que mirabas la API, pero has mirado el código real. La .Net Client Library se ha abierto de origen, http://odata.codeplex.com/, por lo que si no puede encontrar una, puede usar su código como punto de partida (y con suerte, contribuirlo de nuevo a la comunidad).

Básicamente, lo que necesita es un proveedor LINQ to OData Uri. Si mal no recuerdo, uno de los apodos de Astoria fue LINQ to REST. Lo que tiene que hacer es del lado del cliente, convierta un árbol de expresiones LINQ en el formato URI de OData, y en el servidor, convierta el URI en un árbol de expresiones LINQ. Creación de proveedores LINQ personalizados no es lo más fácil de hacer, pero Matt Warren tiene una gran serie (largo) en la construcción de Proveedores IQueryable http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx

+0

Eso es mucho * exactamente * lo que quiero hacer. Voy a ver esto. –

Cuestiones relacionadas