{"id":1329,"date":"2014-07-15T10:00:04","date_gmt":"2014-07-15T09:00:04","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=1329"},"modified":"2014-07-15T09:32:55","modified_gmt":"2014-07-15T08:32:55","slug":"asignar-eventreceiver-una-unica-lista","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/","title":{"rendered":"Asignar un EventReceiver a una \u00fanica lista de SharePoint"},"content":{"rendered":"<p>Una de las cr\u00edticas que se le achaca a Visual Studio es que nos hace pensar poco a los desarrolladores y\u00a0muchas veces nos acostumbramos a la plantilla\/Wizard com\u00fan\u00a0sin meditar\u00a0si es la mejor opci\u00f3n o la soluci\u00f3n que queremos hacer.<\/p>\n<p>En este post, vamos a ver c\u00f3mo podemos asignar un EventReceiver a una \u00fanica lista de SharePoint y vamos a corregir el mal uso que se hace del Wizard del EventReceiver. Muchas personas atribuyen\u00a0la culpa al Visual Studio y, por una parte, estamos de acuerdo. El Visual Studio hace que los programadores no piensen y den por buena la generaci\u00f3n del Wizard. Sin embargo, lo\u00a0cierto\u00a0es que el m\u00e1ximo culpable es el desarrollador por utilizar la herramienta de forma incorrecta y no solucionar su uso indebido.<br \/>\n<!--more--><\/p>\n<p><strong>\u00bfQu\u00e9 es un EventReceiver?<\/strong><br \/>\nUn <em>EventReceiver,<\/em> como bien indica su traducci\u00f3n del ingl\u00e9s, es un receptor de eventos. Estos eventos acontecen\u00a0en SharePoint, desde que\u00a0se crea un sitio, hasta que\u00a0se elimina un elemento. Todo lo que ocurre dentro de nuestro sitio tiene un evento asignado y se puede extender su funcionalidad.<br \/>\nSe suelen confundir los t\u00e9rminos EventRecevier, Workflow o TimerJob. Aunque no es el objeto de este post analizar cu\u00e1ndo utilizar uno u otro, queremos explicara los diferentes usos de cada uno. A grandes rasgos, utilizamos TimerJob cuando queremos realizar alguna acci\u00f3n de forma peri\u00f3dica y un Workflow cuando queremos indicar un proceso m\u00e1s complejo, como por ejemplo una acci\u00f3n que dependa de la aprobaci\u00f3n de varias personas. Por \u00faltimo, utilizamos\u00a0EventReceiver cuando queremos realizar una acci\u00f3n (es decir, producir un evento) que no depende de tiempo ni de elementos externos. Por ejemplo, queremos enviar una notificaci\u00f3n en tiempo real (ya sea v\u00eda web o m\u00f3vil) cuando se inserta un elemento en una lista.<\/p>\n<p><strong> C\u00f3mo funciona el Wizard del EventReceiver.\u00a0<\/strong><br \/>\n1.- Creamos un proyecto vac\u00edo de SharePoint.<br \/>\n2.- A\u00f1adimos el EventoReceiver, seleccionamos la template para ello.<br \/>\n3.- A continuaci\u00f3n, se muestra la siguiente pantalla<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1333\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png\" alt=\"Wizard\" width=\"698\" height=\"505\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png 698w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1-300x217.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><br \/>\nEn el primer campo, seleccionamos el tipo de artefacto del evento que queremos implementar (List Events, List Items Events, Web Events o List Workflows).<br \/>\nA continuaci\u00f3n, se seleccionan las plantillas de estos elementos. Ejemplo: Bibliotecas de Documentos, bibliotecas personalizadas, etc&#8230;<br \/>\nFinalmente, escogemos el evento que queremos desarrollar (bien cuando se este creando un elemento, cuando se haya a\u00f1adido, etc).<\/p>\n<p>Si vemos lo que ha generado este Wizard, por un lado tenemos\u00a0el EventReceiver y, por otro lado, una Feature hace que este EventReceiver se instale en todos los elementos indicados, tal y como se muestra en esta imagen:<br \/>\n<a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/ResultWizard.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1332\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/ResultWizard-1024x362.png\" alt=\"ResultWizard\" width=\"700\" height=\"362\" \/><\/a><\/p>\n<p>Hasta aqu\u00ed\u00a0todo parece m\u00e1s o menos claro, entonces&#8230; \u00bfqu\u00e9 es lo est\u00e1 mal realmente? Adem\u00e1s, nuestro objetivo es que el EventReceiver se ejecute sobre la una determinada lista, por ejemplo, una lista \u00a0de Proyectos. \u00bfEste Wizard lo hace? \u00bfD\u00f3nde lo configuramos?<\/p>\n<p>En este pensamiento es d\u00f3nde reside\u00a0el da\u00f1o del Wizard de los EventReceiver y la mala pr\u00e1ctica de algunos desarrolladores:<\/p>\n<blockquote><p>\u00abComo tengo el EventReceiver implementado, con solamente a\u00f1adir una condici\u00f3n en el c\u00f3digo, lo tengo solucionado\u00bb<\/p><\/blockquote>\n<p>Vale, puede que \u00e9sta sea una soluci\u00f3n pero no la correcta. NO debemos de aceptarla porque <em>es una muy mala pr\u00e1ctica<\/em> y puede provocar gran cantidad de da\u00f1os colaterales (que el programador ni siquiera ha pensado). Aqu\u00ed lanzamos un recordatorio: por defecto, el Wizard de los EventReceiver a\u00f1ade esta acci\u00f3n a todos los elementos del sitio. Esto hace que (posteriormente) podamos tener problemas de rendimiento. No es una buena opci\u00f3n tener un EventReceiver en todas las listas de nuestro sitio para solamente, en el caso de que sea la que nos interese, realizar una acci\u00f3n.<\/p>\n<h2>C\u00f3mo solucionarlo<\/h2>\n<p>Para solucionar este \u00abinconveniente\u00bb, en primer lugar quitamos este EventReceiver del despliegue de la Feature, para que cuando la activemos no lo asociemos a todos estos elementos de ese \u00e1mbito.<\/p>\n<p>El siguiente paso es a\u00f1adir el code-behind en esa Feature y\u00a0 (dentro del artefacto que deseamos, como por ejemplo, una lista), asociarle el EventReceiver que hemos implementado anteriormente. Para ello, dentro del Server Object Model de SharePoint (SSOM) a un objeto de tipo SPList, podemos a\u00f1adirle un evento que est\u00e9 dentro de nuestro ensamblado como el siguiente c\u00f3digo<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n    public static void AddEventReceiverToList(SPWeb web, string listName, SPEventReceiverType eventType, string namespaceMethod)\r\n       {\r\n            try\r\n            {\r\n                var list = web.Lists.TryGetList(listName);\r\n                if (list != null)\r\n                {\r\n                    list.EventReceivers.Add(eventType, Assembly.GetExecutingAssembly().FullName, namespaceMethod);\r\n                }\r\n            }\r\n            catch (Exception exception)\r\n            {\r\n                Logger.Error(string.Concat(&quot;Error AddEventReceiver&quot;,exception.Message));\r\n            }\r\n       }\r\n<\/pre>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Usar los asistentes est\u00e1 muy bien cuando empezamos a utilizar algo que no sabemos como funciona, algo que desconocemos. De esta forma, nos familiarizamos con los m\u00e9todos, practicamos y asentamos conceptos hasta que cogemos algo de destreza. Pero, una vez aprendida la funcionalidad, el uso de los asistentes nos causa m\u00e1s problemas\u00a0que beneficios, como ha quedado claro en el ejemplo descrito. Tal y como dec\u00edamos al inicio del post, la culpa no es de\u00a0Visual Studio. La responsabilidad final recae en el desarrollador que es el \u00faltimo responsable del c\u00f3digo que genera, las librer\u00edas que utiliza y, sobre todo, de c\u00f3mo lo utiliza.<\/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>Una de las cr\u00edticas que se le achaca a Visual Studio es que nos hace pensar poco a los desarrolladores y\u00a0muchas veces nos acostumbramos a la plantilla\/Wizard com\u00fan\u00a0sin meditar\u00a0si es la mejor opci\u00f3n o la soluci\u00f3n que queremos hacer. En &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/\">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],"tags":[146,116,115],"class_list":["post-1329","post","type-post","status-publish","format-standard","hentry","category-buenas-practicas","tag-buenas-practicas","tag-enmarcha","tag-eventreceiver"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Asignar un EventReceiver a una \u00fanica lista de SharePoint - 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\/asignar-eventreceiver-una-unica-lista\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Asignar un EventReceiver a una \u00fanica lista de SharePoint - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"Una de las cr\u00edticas que se le achaca a Visual Studio es que nos hace pensar poco a los desarrolladores y\u00a0muchas veces nos acostumbramos a la plantilla\/Wizard com\u00fan\u00a0sin meditar\u00a0si es la mejor opci\u00f3n o la soluci\u00f3n que queremos hacer. En &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.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=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"Asignar un EventReceiver a una \u00fanica lista de SharePoint\",\"datePublished\":\"2014-07-15T09:00:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/\"},\"wordCount\":902,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/07\\\/Wizard1.png\",\"keywords\":[\"buenas practicas\",\"enmarcha\",\"eventreceiver\"],\"articleSection\":[\"buenas practicas\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/\",\"name\":\"Asignar un EventReceiver a una \u00fanica lista de SharePoint - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/07\\\/Wizard1.png\",\"datePublished\":\"2014-07-15T09:00:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/asignar-eventreceiver-una-unica-lista\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/07\\\/Wizard1.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/07\\\/Wizard1.png\",\"width\":698,\"height\":505},{\"@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":"Asignar un EventReceiver a una \u00fanica lista de SharePoint - 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\/asignar-eventreceiver-una-unica-lista\/","twitter_card":"summary_large_image","twitter_title":"Asignar un EventReceiver a una \u00fanica lista de SharePoint - Desarrollando sobre SharePoint","twitter_description":"Una de las cr\u00edticas que se le achaca a Visual Studio es que nos hace pensar poco a los desarrolladores y\u00a0muchas veces nos acostumbramos a la plantilla\/Wizard com\u00fan\u00a0sin meditar\u00a0si es la mejor opci\u00f3n o la soluci\u00f3n que queremos hacer. En &hellip; Continue reading &rarr;","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"Asignar un EventReceiver a una \u00fanica lista de SharePoint","datePublished":"2014-07-15T09:00:04+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/"},"wordCount":902,"commentCount":0,"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png","keywords":["buenas practicas","enmarcha","eventreceiver"],"articleSection":["buenas practicas"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/","name":"Asignar un EventReceiver a una \u00fanica lista de SharePoint - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png","datePublished":"2014-07-15T09:00:04+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/asignar-eventreceiver-una-unica-lista\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/07\/Wizard1.png","width":698,"height":505},{"@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\/1329","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=1329"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1329\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=1329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=1329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=1329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}