{"id":2415,"date":"2016-08-30T10:00:50","date_gmt":"2016-08-30T08:00:50","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=2415"},"modified":"2018-07-18T09:57:13","modified_gmt":"2018-07-18T07:57:13","slug":"sharepoint-framework-entendiendo-la-solucion","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/","title":{"rendered":"SharePoint FrameWork: Entendiendo la soluci\u00f3n"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3230\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg\" alt=\"\" width=\"1232\" height=\"1036\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg 1232w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework-300x252.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework-768x646.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework-1024x861.jpg 1024w\" sizes=\"auto, (max-width: 1232px) 100vw, 1232px\" \/><\/p>\n<p>Una vez tenemos listo el entorno (leer <a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/2016\/08\/23\/sharepoint-framework-preparando-el-entorno\/\" target=\"_blank\" rel=\"noopener\">el art\u00edculo anterior<\/a>) vamos a entender cada parte que tiene la soluci\u00f3n. Para ello, en primer lugar vamos a abrir la carpeta donde se ha descargado la soluci\u00f3n mediante <strong>Yeoman<\/strong>.<!--more--><\/p>\n<p>Para estas demos utilizar\u00e9 Visual Studio Code, pero puedes elegir tu IDE \u00a0preferido (Visual Studio, Brackets, etc..)<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2418\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SolucionNuevoFramework.jpg\" alt=\"SolucionNuevoFramework\" width=\"284\" height=\"383\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SolucionNuevoFramework.jpg 451w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SolucionNuevoFramework-223x300.jpg 223w\" sizes=\"auto, (max-width: 284px) 100vw, 284px\" \/><\/p>\n<p>El primer fichero de los importantes es el fichero gulpfile.js. Por si no lo conoc\u00e9is, \u00e9ste es el fichero de configuraci\u00f3n para poder ejecutar Gulp.<\/p>\n<h2><strong>\u00bfQu\u00e9 es Gulp?<\/strong><\/h2>\n<p><strong>\u00a0<\/strong>Es \u00abTask Runner\u00bb \u00a0de tareas Open Source\u00a0para Javascript. En Gulp <strong>podemos ejecutar casi cualquier tarea que puedas hacer de forma manual<\/strong>: compilar ficheros SASS, compilar typescript, ejecutar test, publicar ficheros, verificaci\u00f3n de la sintaxis del html, javascript, etc &#8230; De tal forma que tener una serie de procesos Gulp nos puede ahorrar mucho tiempo en nuestro desarrollo del d\u00eda a d\u00eda.<\/p>\n<p>Dentro de este Framework, <strong>el equipo de producto ha implementado unas tareas predeterminadas:<\/strong>\u00a0falta documentaci\u00f3n sobre todas las tareas que hay disponibles. A continuaci\u00f3n, comentaremos las imprescindibles para la utilizaci\u00f3n del framework.<\/p>\n<p>La primea de las tareas que hacemos uso es la de<strong> \u00a0unificar todos el JavaScript en un \u00fanico fichero<\/strong> y levantar un servidor en local para poder depurar. Para hacer esto debemos poner la siguiente instrucci\u00f3n:\u00a0 <strong>gulp serve<\/strong>.<\/p>\n<p>Otra de las tareas que tiene el FrameWork es la de generar la App. Para ello \u00a0hay que ejecutar la siguiente instrucci\u00f3n:<strong> gulp package-solution<\/strong>. Al ejecutar este comando dentro de nuestra soluci\u00f3n, se crea una carpeta \u00absharepoint\u00bb y dentro de la misma est\u00e9 el fichero con extensi\u00f3n .sapp. Este comando genera el paquete pero no \u00abcompila\u00bb la soluci\u00f3n, es decir, si previamente no hemos ejecutado gulp serve nuestra soluci\u00f3n estar\u00e1 vac\u00eda porque no hay ning\u00fan fichero javascript.<\/p>\n<p>Por \u00faltimo, otra de las tareas es c\u00f3mo subir los ficheros javascript a un CDN de Azure (en los siguientes art\u00edculos ya comentaremos cu\u00e1ndo y por qu\u00e9 utilizar estos CDN) . Para ello dentro de la carpeta <em>config<\/em> disponemos de un fichero deploy-azure-storage.json. En dicho fichero ponemos la configuraci\u00f3n de nuestro blob storage de Azure. Una vez tenemos configurado \u00e9sto, ejecutamos las siguientes intrucciones: \u00a0gulp &#8211;ship (se encarga de compilar y minimizar la soluci\u00f3n) y gulp deploy-azure-storage.<\/p>\n<h2><strong>Carpeta SRC<\/strong><\/h2>\n<p>Dentro de la carpeta \u00absrc\u00bb ya disponemos de nuestro desarrollo. Anteriormente a esta carpeta hay otra carpeta WebParts, en la que a su vez hay apartados para cada WebPart de la soluci\u00f3n.<\/p>\n<p>Cada Webpart esta formado por :<\/p>\n<ul>\n<li>Un <strong>fichero .manifest<\/strong> (en el que est\u00e1n algunos aspectos de configuraci\u00f3n como el icono del WebPart, el nombre del mismo y la ubicaci\u00f3n dentro de la carpeta de agregar Webparts)<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2425 alignnone\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/esquemaFramework.jpg\" alt=\"esquemaFramework\" width=\"931\" height=\"603\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/esquemaFramework.jpg 931w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/esquemaFramework-300x194.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/esquemaFramework-768x497.jpg 768w\" sizes=\"auto, (max-width: 931px) 100vw, 931px\" \/><\/p>\n<ul>\n<li>Una<strong> Interfaz I{nombredelwebpart}Props.ts<\/strong> en el que se indican las propiedades que se van a poder configurar en el WebPart<\/li>\n<li>Un<strong> fichero<\/strong> <strong>{nombredelWebpart}.ts<\/strong> en el que est\u00e1 la implementaci\u00f3n del WebPart. Esta clase extiende\u00a0la clase\u00a0\u00a0BaseClientSideWebPart&lt;{Interfaz de Propiedades}&gt; En esta clase a\u00f1adiremos el comportamiento que va a tener nuestro desarrollo. Como m\u00ednimo, debemos de implementar un m\u00e9todo Render en el que sera el punto de entrada de nuestro desarrollo.<\/li>\n<li>Tiene una<strong> carpeta Loc<\/strong>, que son los recursos de la aplicaci\u00f3n para ello por un lado tiene una interfaz en la que definimos los elementos que se van a ver traducidos y por otro lado tendremos un fichero .js por cada idioma que tiene nuestra aplicaci\u00f3n con la resoluci\u00f3n de los recursos.<\/li>\n<li><strong>Otras carpetas<\/strong>: dependiendo de la elecci\u00f3n del Framework en el que queremos desarrollar tendremos m\u00e1s o menos carpetas. Por ejemplo si hacemos uso de <a href=\"https:\/\/github.com\/reactjs\" target=\"_blank\" rel=\"noopener\">ReactJS<\/a> tendremos una carpeta Components en la que estar\u00e1n el\/los componente\/es que se van a utilizar. Tambi\u00e9n cada WebPart tiene una carpeta Test en la que podremos los test que se van a utilizar en nuestra aplicaci\u00f3n (con la instalaci\u00f3n del SPFX te instala PhantomJS)<\/li>\n<\/ul>\n<h2><strong>Carpeta Config<\/strong><\/h2>\n<p>En esta carpeta est\u00e1s todas las configuraciones que tenemos en nuestro desarrollo. Por defecto, tenemos estas configuraciones en ficheros de extensi\u00f3n json:<\/p>\n<ul>\n<li>serve.json -&gt; En el mismo tenemos el puerto que va a tener el servidor y la ruta de la pantalla de inicio.<\/li>\n<li>tslint.json -&gt; Aqu\u00ed se configuran las reglas que\u00a0 queremos que se verifiquen al compilar nuestra aplicaci\u00f3n<\/li>\n<li>config.json-&gt; La configuraci\u00f3n de nuestro webpart (dependencias, ubicaci\u00f3n del directorio de recursos, etc&#8230;)<\/li>\n<li>otros ficheros de configuraci\u00f3n para la compilaci\u00f3n de la soluci\u00f3n.<\/li>\n<\/ul>\n<h2><strong>Otras carpetas<\/strong><\/h2>\n<p>Por \u00faltimo tenemos dos carpetas que no debemos de modificar bajo ning\u00fan concepto. Son las carpetas:<\/p>\n<ul>\n<li><strong>node_modules.<\/strong> Aqu\u00ed se descargan todos los m\u00f3dulos JavaScript que necesita nuestro Framework (sin esta carpeta no funciona la aplicaci\u00f3n)<\/li>\n<li><strong>typings -&gt;<\/strong> En esta carpeta est\u00e1n las definiciones TypeScript de las librer\u00edas JavaScript para poder utilizarlas dentro de la soluci\u00f3n. Sin esta carpeta de Typings nuestra soluci\u00f3n tampoco funcionaria.<\/li>\n<\/ul>\n<h2><strong>Otras consideraciones<\/strong><\/h2>\n<p>Como seguro que os hab\u00e9is dado cuenta,\u00a0<strong>el actual entorno de desarrollo es algo distinto al que conoc\u00eda tradicionalmente<\/strong>\u00a0 cualquier desarrollador de SharePoint.\u00a0 Ahora debemos conocer herramientas como NodeJS, TypeScript, etc&#8230; \u00a0Un archivo que tambi\u00e9n es muy importante en la configuraci\u00f3n, es el archivo <strong>package.json<\/strong>. En el mismo se configuran las dependencias con los paquetes npm que son necesarios en esta soluci\u00f3n y una vez los ejecutemos, autom\u00e1ticamente los instalar\u00e1 dentro de la carpeta node_modules.<\/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>Una vez tenemos listo el entorno (leer el art\u00edculo anterior) vamos a entender cada parte que tiene la soluci\u00f3n. Para ello, en primer lugar vamos a abrir la carpeta donde se ha descargado la soluci\u00f3n mediante Yeoman.<!-- 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":[113,157],"tags":[59,26],"class_list":["post-2415","post","type-post","status-publish","format-standard","hentry","category-office-365-2","category-typescript","tag-framework","tag-sharepoint"],"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>SharePoint FrameWork: Entendiendo la soluci\u00f3n - 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=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"SharePoint FrameWork: Entendiendo la soluci\u00f3n - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"Una vez tenemos listo el entorno (leer el art\u00edculo anterior) vamos a entender cada parte que tiene la soluci\u00f3n. Para ello, en primer lugar vamos a abrir la carpeta donde se ha descargado la soluci\u00f3n mediante Yeoman.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg\" \/>\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=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"SharePoint FrameWork: Entendiendo la soluci\u00f3n\",\"datePublished\":\"2016-08-30T08:00:50+00:00\",\"dateModified\":\"2018-07-18T07:57:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/\"},\"wordCount\":944,\"commentCount\":2,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/08\\\/SharePoint-framework.jpg\",\"keywords\":[\"framework\",\"sharepoint\"],\"articleSection\":[\"Office 365\",\"typescript\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/\",\"name\":\"SharePoint FrameWork: Entendiendo la soluci\u00f3n - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/08\\\/SharePoint-framework.jpg\",\"datePublished\":\"2016-08-30T08:00:50+00:00\",\"dateModified\":\"2018-07-18T07:57:13+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-framework-entendiendo-la-solucion\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/08\\\/SharePoint-framework.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/08\\\/SharePoint-framework.jpg\",\"width\":1232,\"height\":1036},{\"@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 FrameWork: Entendiendo la soluci\u00f3n - 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":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/","twitter_card":"summary_large_image","twitter_title":"SharePoint FrameWork: Entendiendo la soluci\u00f3n - Desarrollando sobre SharePoint","twitter_description":"Una vez tenemos listo el entorno (leer el art\u00edculo anterior) vamos a entender cada parte que tiene la soluci\u00f3n. Para ello, en primer lugar vamos a abrir la carpeta donde se ha descargado la soluci\u00f3n mediante Yeoman.","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"SharePoint FrameWork: Entendiendo la soluci\u00f3n","datePublished":"2016-08-30T08:00:50+00:00","dateModified":"2018-07-18T07:57:13+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/"},"wordCount":944,"commentCount":2,"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg","keywords":["framework","sharepoint"],"articleSection":["Office 365","typescript"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/","name":"SharePoint FrameWork: Entendiendo la soluci\u00f3n - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg","datePublished":"2016-08-30T08:00:50+00:00","dateModified":"2018-07-18T07:57:13+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-framework-entendiendo-la-solucion\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/08\/SharePoint-framework.jpg","width":1232,"height":1036},{"@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\/2415","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=2415"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/2415\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=2415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=2415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=2415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}