{"id":1404,"date":"2014-10-21T12:00:10","date_gmt":"2014-10-21T11:00:10","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=1404"},"modified":"2014-10-21T12:05:36","modified_gmt":"2014-10-21T11:05:36","slug":"aprovisionar-paginas-de-publicacion-de-forma-declarativa","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/","title":{"rendered":"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa"},"content":{"rendered":"<p style=\"text-align: left\">Uno de los grandes problemas que nos encontramos a la hora de abordar un proyecto en SharePoint es <strong>la forma en la que vamos a desplegar nuestro desarrollo en los distintos entornos posibles<\/strong> (Integraci\u00f3n, PRE y PRO). Uno de los aspectos m\u00e1s complicados es c\u00f3mo vamos a aprovisionar las p\u00e1ginas de nuestro site. Pero dependiendo del tipo de proyecto en el que estemos trabajando, lo realizaremos de una forma u otra. En este post de hoy, vamos a abordar <em>c\u00f3mo realizar el aprovisionamiento de las p\u00e1ginas de publicaci\u00f3n<\/em>.<\/p>\n<h2>Caracter\u00edsticas de la p\u00e1ginas de publicaci\u00f3n<\/h2>\n<p>La <strong>principal diferencia<\/strong> de este tipo de p\u00e1gina respecto con una p\u00e1gina de colaboraci\u00f3n es que, en este caso, a la p\u00e1gina le tenemos que asignar un PageLayout basado en un tipo de Contenido. Este PageLayout puede ser implementado por nosotros o estar por defecto en nuestro Site. Dependiendo de este aspecto lo realizaremos de una forma u otra.<br \/>\n<!--more--><\/p>\n<h2>Posibilidades de Aprovisionamiento<\/h2>\n<p>Disponemos de <strong>tres formas<\/strong> de crear las p\u00e1ginas:<\/p>\n<ol>\n<li><strong>Mediante desarrollo:<\/strong> SharePoint tiene una API muy completa que permite realizar cualquier cosa. La principal desventaja es que es relativamente costoso y engorroso de\u00a0mantener todo esto en c\u00f3digo.<\/li>\n<li><strong>Mediante M\u00f3dulos<\/strong> (de forma declarativa).<\/li>\n<li><strong>Haciendo uso de la interfaz :<\/strong> Esta opci\u00f3n NO deber\u00eda realizarse bajo ning\u00fan concepto.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3>Mediante desarrollo<strong>\u00a0<\/strong><\/h3>\n<p>No es la funci\u00f3n de este post entrar en detalle en c\u00f3mo realizarlo mediante desarrollo, pero os dejamos un ejemplo de c\u00f3mo se puede abordar mediante esta soluci\u00f3n:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nrivate void ProvisionPage(\r\nPublishingWeb publishingWeb,\r\nstring pageLayoutName,\r\nstring pageTitle,\r\nstring pageDescription,\r\nstring pageFileName)\r\n{\r\nPageLayout&#x5B;] layouts = publishingWeb.GetAvailablePageLayouts();\r\n\/\/ Name Values of Content Types of Publishing Site\r\nDictionary&lt;string, PageLayout&gt; pageLayouts = new Dictionary&lt;string, PageLayout&gt;();\r\nforeach (PageLayout item in layouts)\r\n{\r\nstring cID = item.Title.ToString();\r\nstring name = item.Name;\r\npageLayouts.Add(cID, item);\r\n}\r\n\r\nPageLayout layout = pageLayouts&#x5B;pageLayoutName];\r\nif (!PageExists(publishingWeb, pageFileName))\r\n{\r\nPublishingPage newPage2 = publishingWeb.GetPublishingPages().Add(pageFileName, layout);\r\nnewPage2.Description = pageDescription;\r\nnewPage2.Title = pageTitle;\r\nnewPage2.Update();\r\n\r\nSPFile pageFile = newPage2.ListItem.File;\r\nif (pageFile.CheckOutStatus != SPFile.SPCheckOutStatus.None)\r\n{\r\npageFile.CheckIn(\u201cChecked in on feature activation.\u201d);\r\npageFile.Publish(\u201cPublished on feature activation.\u201d);\r\n}\r\n}\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3>Mediante un M\u00f3dulo<\/h3>\n<p><em>\u00bfQu\u00e9 es un m\u00f3dulo?<\/em> Un m\u00f3dulo es un tipo de artefacto que podemos utilizar dentro de la soluci\u00f3n de SharePoint, cuyo funcionamiento es dejar alojados los ficheros que se encuentran dentro de este modulo en una ubicaci\u00f3n f\u00edsica de SharePoint. Pero, adem\u00e1s de desplegar los ficheros f\u00edsicos, tambi\u00e9n es posible a\u00f1adirle par\u00e1metros de configuraci\u00f3n.<br \/>\nUn m\u00f3dulo lo utilizaremos para desplegar desde masterpage, pagelayouts, display templates hasta los ficheros css, js, im\u00e1genes, etc&#8230; que se va a utilizar en nuestro desarrollo.<\/p>\n<p>Ahora bien, \u00bfc\u00f3mo aprovisionamos una p\u00e1gina de publicaci\u00f3n? Tenemos <strong>dos casos<\/strong>:<\/p>\n<ol>\n<li>Hacemos uso de un PageLayout desarrollado por nosotros mismos.<\/li>\n<li>Hacemos uso de un PageLayout por defecto de SharePoint<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h4><em>Hacemos uso de un PageLayout desarrollado por nosotros\u00a0<\/em><\/h4>\n<p>En primer lugar tendremos que tener un Modulo donde indiquemos el despliegue de este PageLayout.<\/p>\n<p><strong>OJO!!\u00a0<\/strong>Este PageLayout debe desplegarse antes que nuestra p\u00e1gina. Lo podemos comprobar observando el orden de despliegue de los artefactos que hay en nuestra soluci\u00f3n.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1406\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.png\" alt=\"OrdenFeatures\" width=\"348\" height=\"488\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.png 348w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures-213x300.png 213w\" sizes=\"auto, (max-width: 348px) 100vw, 348px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>El siguiente paso a realizar es <strong>crearnos un Modulo de P\u00e1ginas<\/strong>, donde tendremos que a\u00f1adir un XML similar al siguiente dentro del fichero Elements.xml<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\r\n&lt;Elements xmlns=&quot;http:\/\/schemas.microsoft.com\/sharepoint\/&quot;&gt;\r\n  &lt;Module Name=&quot;Pages&quot; Url=&quot;$Resources:cmscore,List_Pages_UrlName;&quot; &gt;\r\n    &lt;File Path=&quot;PageLayouts\\NuestroPageLayout.aspx&quot; Url=&quot;Home.aspx&quot; Type=&quot;GhostableInLibrary&quot; ReplaceContent=&quot;TRUE&quot; IgnoreIfAlreadyExists=&quot;TRUE&quot;&gt;\r\n      &lt;Property Name=&quot;Title&quot; Value=&quot;P\u00e1gina de Inicio&quot;\/&gt;\r\n      &lt;Property Name=&quot;PublishingPageLayout&quot; Value=&quot;~SiteCollection\/_catalogs\/masterpage\/NuestroPageLayout.aspx, P\u00e1gina de inicio&quot;\/&gt;\r\n      &lt;Property Name=&quot;ContentTypeId&quot; Value=&quot;0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF390064DEA0F50FC8C147B0B6EA0636C4A7D4&quot; \/&gt;\r\n    &lt;\/File&gt;\r\n  &lt;\/Module&gt;\r\n&lt;\/Elements&gt;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Aspectos<\/strong> que debemos de <strong>conocer de este XML<\/strong> :<\/p>\n<ul>\n<li>En la etiqueta Module en la URL, tenemos que indicar la url de la biblioteca.<\/li>\n<li>Dentro de File en el Path, indicamos la ubicaci\u00f3n dentro de nuestra soluci\u00f3n donde tenemos el fichero aspx. <span style=\"text-decoration: underline\">Dentro del m\u00f3dulo no hay ning\u00fan fichero.<\/span><\/li>\n<li>Entre el node de File, tendremos que introducir varias propiedades donde se va a establecer la configuraci\u00f3n de esta p\u00e1gina:\n<ol>\n<li>T\u00cdtulo: Indicaremos el T\u00edtulo de la p\u00e1gina.<\/li>\n<li>PublishingPageLayout: Tendremos que indicar la ruta del PageLayout, seguido del t\u00edtulo del mismo.<\/li>\n<li>ContentTypeID: Indicamos el ID de nuestro tipo de contenido. Si por el contrario no tenemos el ID, tambi\u00e9n se puede establecer una property \u00abContentType\u00bb donde indicamos el nombre del ContentType.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4><em>Hacemos uso de un PageLayout\u00a0por defecto de SharePoint<\/em><\/h4>\n<p>Para este caso, en primer lugar tenemos que crearnos un Modulo. Dentro de este m\u00f3dulo insertaremos un fichero .aspx que s\u00f3lo\u00a0tiene que tener la siguiente informaci\u00f3n:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n&lt;%@ Page Inherits=&quot;Microsoft.SharePoint.Publishing.TemplateRedirectionPage,Microsoft.SharePoint.Publishing,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c&quot; %&gt; &lt;%@ Reference VirtualPath=&quot;~TemplatePageUrl&quot; %&gt; &lt;%@ Reference VirtualPath=&quot;~masterurl\/custom.master&quot; %&gt;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>El siguiente paso es similar al caso anterior:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\u00a0Module Name=&quot;PagesNoticias&quot; Url=&quot;$Resources:cmscore,List_Pages_UrlName;&quot; RootWebOnly=&quot;FALSE&quot;&gt; &lt;File Path=&quot;PagesNoticias\/Home.aspx&quot;  Url=&quot;Home.aspx&quot; Type=&quot;GhostableInLibrary&quot; ReplaceContent=&quot;TRUE&quot; IgnoreIfAlreadyExists=&quot;TRUE&quot;&gt;\r\n        &lt;Property Name=&quot;Title&quot; Value=&quot;Welcome&quot; \/&gt;\r\n        &lt;Property Name=&quot;PublishingPageLayout&quot; Value=&quot;~SiteCollection\/_catalogs\/masterpage\/BlankWebPartPage.aspx, Blank Web Part page&quot; \/&gt;\r\n        &lt;Property Name=&quot;ContentType&quot; Value=&quot;Welcome Page&quot; \/&gt;\r\n    &lt;\/File&gt;\r\n  &lt;\/Module&gt;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>NOTA:<\/strong> Si en ambos casos, adem\u00e1s de desplegar las p\u00e1ginas queremos a\u00f1adir los WebParts que van a estar ubicados en la p\u00e1gina dentro del nodo \u00abFile\u00bb, creamos una estructura como la siguiente: (en este caso vamos a desplegar un ScriptEditoWebPart)<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;AllUsersWebPart WebPartZoneID=&quot;MiddleLeftZone&quot; WebPartOrder=&quot;1&quot; &gt;\r\n        &lt;!&#x5B;CDATA&#x5B;\r\n              &lt;webParts&gt;\r\n                &lt;webPart xmlns=&quot;http:\/\/schemas.microsoft.com\/WebPart\/v3&quot;&gt;\r\n                  &lt;metaData&gt;\r\n                    &lt;type name=&quot;Microsoft.SharePoint.WebPartPages.ScriptEditorWebPart, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; \/&gt;\r\n                    &lt;importErrorMessage&gt;Cannot import this Web Part.&lt;\/importErrorMessage&gt;\r\n                  &lt;\/metaData&gt;\r\n                  &lt;data&gt;\r\n                    &lt;properties&gt;\r\n                      &lt;property name=&quot;ExportMode&quot; type=&quot;exportmode&quot;&gt;All&lt;\/property&gt;\r\n                      &lt;property name=&quot;HelpUrl&quot; type=&quot;string&quot; \/&gt;\r\n                      &lt;property name=&quot;Hidden&quot; type=&quot;bool&quot;&gt;False&lt;\/property&gt;\r\n                      &lt;property name=&quot;Description&quot; type=&quot;string&quot;&gt;Allows authors to insert HTML snippets or scripts.&lt;\/property&gt;\r\n                      &lt;property name=&quot;Content&quot; type=&quot;string&quot;&gt;&amp;lt;div class=&quot;MiAreaPersonal&quot;&amp;gt;\r\n                               &amp;lt;div id=&quot;resultsMiAreaPersonal&quot;&amp;gt;\r\n                                 &amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sodales tristique magna et molestie. Donec sed lorem eros. Suspendisse facilisis nibh nulla. Maecenas quis velit ipsum. Duis et vehicula dolor. Aenean id tincidunt metus, non tristique magna. Praesent quam mauris, malesuada at eleifend ut, pharetra in ligula. Quisque dapibus tellus et nulla aliquam bibendum. In urna ligula, molestie sed dui eget, sollicitudin venenatis neque. Aliquam diam quam, suscipit at urna auctor, bibendum hendrerit lacus. Praesent eleifend accumsan nisl, et blandit tortor mattis vel. Vivamus at nibh non mauris tempor varius. Nunc tincidunt neque a justo molestie imperdiet. Aenean volutpat tellus lacus, ac pharetra metus hendrerit eget. Aenean posuere egestas sapien a auctor. &amp;lt;\/p&amp;gt;\r\n              &amp;lt;\/div&amp;gt;\r\n                            &amp;lt;\/div&amp;gt; &lt;\/property&gt;\r\n                      &lt;property name=&quot;CatalogIconImageUrl&quot; type=&quot;string&quot; \/&gt;\r\n                      &lt;property name=&quot;Title&quot; type=&quot;string&quot;&gt;Script Editor&lt;\/property&gt;\r\n                      &lt;property name=&quot;AllowHide&quot; type=&quot;bool&quot;&gt;True&lt;\/property&gt;\r\n                      &lt;property name=&quot;AllowMinimize&quot; type=&quot;bool&quot;&gt;True&lt;\/property&gt;\r\n                      &lt;property name=&quot;AllowZoneChange&quot; type=&quot;bool&quot;&gt;True&lt;\/property&gt;\r\n                      &lt;property name=&quot;TitleUrl&quot; type=&quot;string&quot; \/&gt;\r\n                      &lt;property name=&quot;ChromeType&quot; type=&quot;chrometype&quot;&gt;None&lt;\/property&gt;\r\n                      &lt;property name=&quot;AllowConnect&quot; type=&quot;bool&quot;&gt;True&lt;\/property&gt;\r\n                      &lt;property name=&quot;Width&quot; type=&quot;unit&quot; \/&gt;\r\n                      &lt;property name=&quot;Height&quot; type=&quot;unit&quot; \/&gt;\r\n                      &lt;property name=&quot;HelpMode&quot; type=&quot;helpmode&quot;&gt;Navigate&lt;\/property&gt;\r\n                      &lt;property name=&quot;AllowEdit&quot; type=&quot;bool&quot;&gt;True&lt;\/property&gt;\r\n                      &lt;property name=&quot;TitleIconImageUrl&quot; type=&quot;string&quot; \/&gt;\r\n                      &lt;property name=&quot;Direction&quot; type=&quot;direction&quot;&gt;NotSet&lt;\/property&gt;\r\n                      &lt;property name=&quot;AllowClose&quot; type=&quot;bool&quot;&gt;True&lt;\/property&gt;\r\n                      &lt;property name=&quot;ChromeState&quot; type=&quot;chromestate&quot;&gt;Normal&lt;\/property&gt;\r\n                    &lt;\/properties&gt;\r\n                  &lt;\/data&gt;\r\n                &lt;\/webPart&gt;\r\n              &lt;\/webParts&gt;\r\n        ]]&gt;\r\n      &lt;\/AllUsersWebPart&gt;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>Resumen<\/h2>\n<p>Algo muy importante dentro del desarrollo de Sofware es <strong>saber gestionar correctamente el ciclo de vida de la aplicaci\u00f3n<\/strong> (ALM). Muchas veces por desconomiento de la plataforma o por no conocer las posibilidades de realizarlo, optamos por escoger\u00a0el t\u00e9rmino\u00a0medio. <strong>\u00a1Recuerda!<\/strong> Siempre hay una soluci\u00f3n eficaz y posible para que el ciclo de vida de nuestra aplicaci\u00f3n no sea un sufrimiento sino una diversi\u00f3n.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/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>Uno de los grandes problemas que nos encontramos a la hora de abordar un proyecto en SharePoint es la forma en la que vamos a desplegar nuestro desarrollo en los distintos entornos posibles (Integraci\u00f3n, PRE y PRO). Uno de los &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/\">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":[123],"class_list":["post-1404","post","type-post","status-publish","format-standard","hentry","category-buenas-practicas","tag-aprovisionamiento-paginas"],"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>Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa - Desarrollando sobre SharePoint<\/title>\n<meta name=\"description\" content=\"En este post vamos a explicar como podemos aprovisionar las paginas de publicaci\u00f3n dentro de nuestras soluciones de SharePoint.\" \/>\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\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"En este post vamos a explicar como podemos aprovisionar las paginas de publicaci\u00f3n dentro de nuestras soluciones de SharePoint.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.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=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa\",\"datePublished\":\"2014-10-21T11:00:10+00:00\",\"dateModified\":\"2014-10-21T11:05:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/\"},\"wordCount\":1707,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/10\\\/OrdenFeatures.png\",\"keywords\":[\"aprovisionamiento p\u00e1ginas\"],\"articleSection\":[\"buenas practicas\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/\",\"name\":\"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/10\\\/OrdenFeatures.png\",\"datePublished\":\"2014-10-21T11:00:10+00:00\",\"dateModified\":\"2014-10-21T11:05:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"description\":\"En este post vamos a explicar como podemos aprovisionar las paginas de publicaci\u00f3n dentro de nuestras soluciones de SharePoint.\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/10\\\/OrdenFeatures.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/10\\\/OrdenFeatures.png\",\"width\":348,\"height\":488},{\"@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":"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa - Desarrollando sobre SharePoint","description":"En este post vamos a explicar como podemos aprovisionar las paginas de publicaci\u00f3n dentro de nuestras soluciones de 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\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/","twitter_card":"summary_large_image","twitter_title":"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa - Desarrollando sobre SharePoint","twitter_description":"En este post vamos a explicar como podemos aprovisionar las paginas de publicaci\u00f3n dentro de nuestras soluciones de SharePoint.","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa","datePublished":"2014-10-21T11:00:10+00:00","dateModified":"2014-10-21T11:05:36+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/"},"wordCount":1707,"commentCount":0,"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.png","keywords":["aprovisionamiento p\u00e1ginas"],"articleSection":["buenas practicas"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/","name":"Aprovisionar P\u00e1ginas de Publicaci\u00f3n de forma declarativa - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.png","datePublished":"2014-10-21T11:00:10+00:00","dateModified":"2014-10-21T11:05:36+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"description":"En este post vamos a explicar como podemos aprovisionar las paginas de publicaci\u00f3n dentro de nuestras soluciones de SharePoint.","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/aprovisionar-paginas-de-publicacion-de-forma-declarativa\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/10\/OrdenFeatures.png","width":348,"height":488},{"@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\/1404","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=1404"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1404\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=1404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=1404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=1404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}