{"id":81,"date":"2013-02-26T10:00:45","date_gmt":"2013-02-26T09:00:45","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=81"},"modified":"2013-07-16T10:08:45","modified_gmt":"2013-07-16T09:08:45","slug":"sharepoint-modulo-de-persistencia-de-datos-si-o-no","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/","title":{"rendered":"[SharePoint 2013] Como optimizar el acceso a los datos en listas"},"content":{"rendered":"<p>Para todo desarrollador\/analista\/arquitecto que <strong>NO<\/strong> haya visto SharePoint en la vida cuando se planta ante la idea de querer optimizar el acceso a los datos la primera idea que le viene es la introducir un modulo de persistencia de datos. Y cuando les comentas que eso en SharePoint no es recomendable lo\u00a0l\u00f3gico\u00a0es que te digan que es una muy mala practica no hacerlo. El no hacerlo era una practica que se hacia hace mucho tiempo (antes que existieran los lenguajes orientados a objetos aprox.), en que no se segu\u00edan ning\u00fan patr\u00f3n y su \u00fanica funci\u00f3n era hacer que las cosas funcionaran. Los desarrolladores llam\u00e1bamos desde nuestra aplicaci\u00f3n de escritorio directamente las consultas SQL o de ficheros\u00a0f\u00edsicos\u00a0para acceder a los datos, con el retardo que ello llevaba y la poca reutilizaci\u00f3n que se hacia y en el momento que se produc\u00eda un cambio en alguna tabla de la Base de Datos ya se hab\u00eda provocado un <a href=\"http:\/\/http:\/\/blogs.encamina.com\/en-las-nubes\/2013\/02\/21\/incendios\/\" target=\"_blank\">incendio<\/a>. Posteriormente ya se introdujo Linq y un paso mas los m\u00f3dulos de persistencia de datos como NHibernate.<\/p>\n<p><!--more--><\/p>\n<p>Cuando comento que NO es recomendable estos\u00a0m\u00f3dulos\u00a0de persistencias hay que desarrollar un poco m\u00e1s esta respuesta. En primer lugar las listas en SharePoint no son los mismos que la tablas de cualquier Base de Datos, las listas para que fueran igual que las tablas en primer lugar tendr\u00edan que ser relacionales y no lo son. Esta es la principal base por la que pienso que no hace falta un modulo de persistencia de datos, estos\u00a0m\u00f3dulos\u00a0se basan en la relacionalidad de las tablas por lo que hacer esto en base a lista carece de sentido. SharePoint no es relacional y no es su funci\u00f3n, no viene a sustituir al ERP o quiere que tengamos millones de registros almacenos sino a complementar aspectos de las organizaciones para mejorarlas y hacerlas m\u00e1s\u00a0productivas.<br \/>\nAhora bien que no tengamos un modulo de persistencia de datos no quiere decir que tengamos que hacer las cosas mal y hacer las cosas como hace veinte a\u00f1os. Por lo general las p\u00e1ginas de SharePoint suelen ser bastante pesadas por lo que si queremos tener una aplicaci\u00f3n web que los usuarios no se duerman entre click y click tenemos que saber bien como realizamos las llamadas, el optimizar estas consultas y el ver los puntos d\u00e9biles que tiene nuestra aplicaci\u00f3n y esto SI que es necesario que lo tengamos controlado y sepamos como mirarlo. Para empezar tambi\u00e9n tenemos una herramienta como LINQ To SharePoint que parece optima utilizar para esto no?, pero sin embargo es algo que yo personalmente no utilizo. El motivo, principalmente por rendimiento cuando estamos utilizando LINQ to SharePoint lo que esta haciendo internamente es montar la sentencia CAML Query corresponiente, por lo que en primer lugar montamos el LINQ y posteriormente genera la Consulta para obtener los datos por lo que estamos perdiendo rendimiento en nuestra aplicaci\u00f3n.<br \/>\nEntonces solo nos quedar\u00eda la soluci\u00f3n de hacer las CAML Query directamente no? Si pero no, la opci\u00f3n que empleamos para el tratamiento de datos en SharePoint es la de crear de forma manual un repositorio de datos. Antes de crear este repositorio lo que hacemos es transformar las listas de SharePoint en Objetos .Net de toda la vida. El motivo del cual devolver en objetos es que una vez tenemos el objeto ya podemos aplicar LINQ para empezar a filtrar los datos que obtenemos o realizar alguna opci\u00f3n aritm\u00e9tica. Ahora bien una vez tenemos los elementos creados el siguiente paso es ya crearnos el repositorio de estos objetos en los que tendremos las operaciones m\u00e1s comunes que vamos a realizas, por ejemplo si estamos en caso de consultar una lista de empleados pues en este repositorio, tendremos un procedimiento que nos devuelve todos los empleados de un determinado departamento, todos los empleados de la empresa, o dado un empleado devolvernos un departamento. La idea de hacer todo esto para que podamos reutilizar c\u00f3digo consultas, y no tengamos la misma consulta escrita en 80 lugares de la aplicaci\u00f3n y si por alguna de aquella queremos mejorar su rendimiento pues no te quiero contar la faena que tiene. De esta forma vamos fraccionando la aplicaci\u00f3n en diversos m\u00f3dulos y as\u00ed cualquier modificaci\u00f3n en una parte no tiene consecuencias en el resto de m\u00f3dulos.<br \/>\nLa estructura de la aplicaci\u00f3n quedar\u00eda de la siguiente forma (algo similar a lo que plantee en el <a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/2013\/02\/15\/webcast-suges-material-para-descarga\/\" target=\"_blank\">WebCast de SUGES<\/a>:<br \/>\n<a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-92\" alt=\"\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto-202x300.png\" width=\"202\" height=\"300\" \/><\/a><br \/>\nUna vez tenemos aplicada las buenas practicas queda el saber optimizar las consultas que se realizan al Objeto SPQuery, el primer fallo que se emplea es que solo a\u00f1adimos la opci\u00f3n de filtro y con eso\u00a0quiz\u00e1s\u00a0estamos consiguiendo filtrar los resultados que queremos pero nos estamos trayendo todos los campos que tiene esa lista aunque <strong>NO<\/strong> todos nos hacen falta. Para ello con rellenar los campos que nos vamos a traer en la propiedad ViewList seria suficiente:<\/p>\n<blockquote><p>SPQuery query = New SPQuery();<br \/>\nquery.ViewFields = ;<br \/>\nquery.ViewFieldsOnly = true;<\/p><\/blockquote>\n<p>El siguiente error que cometemos para el acceso a datos es que hacemos una consulta CAML Query y nunca limitamos el n\u00famero de elementos, en mi opini\u00f3n aunque pensemos que nunca vamos a llegar a tener un m\u00e1ximo n\u00famero de registros hay que ponerlo porque si por alguna de aquellas el n\u00famero de registros que esperamos es superior a lo esperado la aplicaci\u00f3n lo va a notar. Por ejemplo tenemos una lista de los empleados de una empresa pero la empresa empieza a crecer (buen signo) y donde antes\u00a0hab\u00edan\u00a0200 empleados ahora hay 2000 por lo que las consultas no tardan lo mismo. Llegado a ese punto conviene entrar en buscar otras medidas bien paginar, bien pedir de bloques en bloques, utilizando caches de datos, &#8230; y esto se obtiene limitando el n\u00famero de elementos que hay en una consulta para ello nos valdr\u00eda el siguiente ejemplo:<\/p>\n<blockquote><p>query.RowLimit= 50;<\/p><\/blockquote>\n<p>Y una vez realizado esto tambi\u00e9n tendremos que pensar en el sentido com\u00fan y es aplicar otras\u00a0t\u00e9cnicas\u00a0auxiliares, es decir si mi aplicaci\u00f3n va a consultar muchas veces una consulta\u00a0quiz\u00e1s\u00a0lo mejor es que tengamos esta consulta en Cache durante un tiempo determinado y de esta forma le daremos mucha m\u00e1s velocidad a la aplicaci\u00f3n. Por ejemplo tenemos en una lista el n\u00famero de empleados y este n\u00famero de empleados se consulta permanentemente pues una opci\u00f3n de que este elemento lo tengamos en cache bien podemos utilizar el ViewState(opci\u00f3n que a mi me gusta menos porque carga mas el servidor) o bien HttpRuntime.Cache (que lo almacena en la cache del cliente).<br \/>\nY como medida adicional a todo esto no esta de m\u00e1s monitorizar el acceso al SQL donde esta almacenado la base de datos de contenido y\u00a0observemos\u00a0el n\u00famero de accesos que se producen y ver las consultas que se realizan y si alguna de estas consultas se puede mejorar pues adelante.<\/p>\n<p>Aunque todo esto parezcan peque\u00f1as cosas y que no tienen importancia, si empezamos a sumar y vemos que la carga de nuestra aplicaci\u00f3n antes tardaba 15 segundos \u00a0ahora en 2 segundo esta cargada pues es un gran paso. Lo primero hace que el cliente este satisfecho con el producto que se le ha desarrollado y lo segundo es que a nosotros como desarrolladores estamos satisfechos porque no solo hemos realizado una aplicaci\u00f3n, sino que ademas hemos introducido nuestros conocimientos para dar la mejor soluci\u00f3n posible en\u00a0t\u00e9rminos\u00a0de calidad del software y eso al menos para mi es muy importante.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Para todo desarrollador\/analista\/arquitecto que NO haya visto SharePoint en la vida cuando se planta ante la idea de querer optimizar el acceso a los datos la primera idea que le viene es la introducir un modulo de persistencia de datos. &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,11],"tags":[16,17,21,26],"class_list":["post-81","post","type-post","status-publish","format-standard","hentry","category-buenas-practicas","category-sharepoint-2013","tag-arquitectura","tag-bases-de-datos","tag-linq","tag-sharepoint"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>[SharePoint 2013] Como optimizar el acceso a los datos en listas - Desarrollando sobre SharePoint<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"[SharePoint 2013] Como optimizar el acceso a los datos en listas - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"Para todo desarrollador\/analista\/arquitecto que NO haya visto SharePoint en la vida cuando se planta ante la idea de querer optimizar el acceso a los datos la primera idea que le viene es la introducir un modulo de persistencia de datos. &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto.png\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"[SharePoint 2013] Como optimizar el acceso a los datos en listas\",\"datePublished\":\"2013-02-26T09:00:45+00:00\",\"dateModified\":\"2013-07-16T09:08:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/\"},\"wordCount\":1315,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/02\\\/EstructuraProyecto-202x300.png\",\"keywords\":[\"arquitectura\",\"bases de datos\",\"linq\",\"sharepoint\"],\"articleSection\":[\"buenas practicas\",\"sharepoint 2013\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/\",\"name\":\"[SharePoint 2013] Como optimizar el acceso a los datos en listas - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/02\\\/EstructuraProyecto-202x300.png\",\"datePublished\":\"2013-02-26T09:00:45+00:00\",\"dateModified\":\"2013-07-16T09:08:45+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/02\\\/EstructuraProyecto.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/02\\\/EstructuraProyecto.png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"[SharePoint 2013] Como optimizar el acceso a los datos en listas - Desarrollando sobre SharePoint","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/","twitter_card":"summary_large_image","twitter_title":"[SharePoint 2013] Como optimizar el acceso a los datos en listas - Desarrollando sobre SharePoint","twitter_description":"Para todo desarrollador\/analista\/arquitecto que NO haya visto SharePoint en la vida cuando se planta ante la idea de querer optimizar el acceso a los datos la primera idea que le viene es la introducir un modulo de persistencia de datos. &hellip; Continue reading &rarr;","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"[SharePoint 2013] Como optimizar el acceso a los datos en listas","datePublished":"2013-02-26T09:00:45+00:00","dateModified":"2013-07-16T09:08:45+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/"},"wordCount":1315,"commentCount":2,"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto-202x300.png","keywords":["arquitectura","bases de datos","linq","sharepoint"],"articleSection":["buenas practicas","sharepoint 2013"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/","name":"[SharePoint 2013] Como optimizar el acceso a los datos en listas - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto-202x300.png","datePublished":"2013-02-26T09:00:45+00:00","dateModified":"2013-07-16T09:08:45+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-modulo-de-persistencia-de-datos-si-o-no\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/02\/EstructuraProyecto.png"},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=81"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/81\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=81"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=81"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}