{"id":2070,"date":"2016-01-12T11:00:03","date_gmt":"2016-01-12T10:00:03","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=2070"},"modified":"2016-01-12T10:29:26","modified_gmt":"2016-01-12T09:29:26","slug":"angular-2-introduccion","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/","title":{"rendered":"Angular 2: Introducci\u00f3n"},"content":{"rendered":"<p>Comienzo\u00a0este 2016 con uno de los frameworks que m\u00e1s van a dar que\u00a0hablar a lo largo de este a\u00f1o. Con una\u00a0serie de art\u00edculos, vas a ver que c\u00f3mo <strong>entender un poco mejor Angular 2<\/strong> \u00a0y c\u00f3mo poderlo aplicar en tus\u00a0desarrollos empresariales. Pero hoy, vamos a abordar los aspectos iniciales para empezar a utilizar el framework.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft\" src=\"http:\/\/openwebinars.net\/media\/featured_images\/maxresdefault.jpg\" alt=\"angularjs\" width=\"670\" height=\"481\" \/><!--more--><\/p>\n<h2>Introducci\u00f3n<\/h2>\n<p>Angular 2, a pesar de su nombre, poco m\u00e1s tiene de parecido con la versi\u00f3n anterior. Es un <strong>framework totalmente escrito desde 0<\/strong>\u00a0y con una forma de afrontar el desarrollo muy diferente.<\/p>\n<p>Si en la primera versi\u00f3n se optaba por un desarrollo basado en Controllers y Factory, en esta nueva versi\u00f3n el desarrollo est\u00e1 basado en Components, \u00a0la nueva moda de desarrollo Web: <strong>Web Components<\/strong>. Este nuevo desarrollo est\u00e1 compuesto \u00a0en \u00a0<strong>4 sub-elementos complementarios<\/strong>, pero independientes entre s\u00ed:<\/p>\n<ul>\n<li><a href=\"http:\/\/w3c.github.io\/webcomponents\/spec\/custom\/\" target=\"_blank\">Custom Elements<\/a> (elementos personalizados)<\/li>\n<li><a href=\"https:\/\/html.spec.whatwg.org\/multipage\/scripting.html#the-template-element\" target=\"_blank\">Templates<\/a> (plantillas)<\/li>\n<li><a href=\"http:\/\/w3c.github.io\/webcomponents\/spec\/shadow\/\" target=\"_blank\">Shadow DOM<\/a> (DOM oculto)<\/li>\n<li><a href=\"http:\/\/w3c.github.io\/webcomponents\/spec\/imports\/\" target=\"_blank\">HTML Imports<\/a><\/li>\n<\/ul>\n<p>Otra de las caracter\u00edsticas que tiene Angular 2 es que est\u00e1<strong> implementado en TypeScript<\/strong> (en el que los ingenieros de Microsoft y de Google han trabajado codo con codo para que ambos productos mejoren).<\/p>\n<h2>Preparando el entorno<\/h2>\n<p>Las herramientas con las que vamos a trabajar con Angular 2 son:<\/p>\n<ul>\n<li><strong>Visual Studio Code. <\/strong>Si no lo conoces,\u00a0es un editor totalmente gratuito muy ligero y multiplataforma.<\/li>\n<li>NodeJS<\/li>\n<\/ul>\n<p>Para empezar, hay que instalar TypeScript usando NodeJS. Para ello, abre una consola y ejecuta la siguiente instrucci\u00f3n:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nnpm i -g typescript\r\n<\/pre>\n<p>Una vez instalado el compilador de TypeScript, configura Code para que pueda compilar Typescript directamente. Para ello, lo que tienes que hacer es abrir Visual Studio Code. Por defecto, Code no compila directamente TypeScript. Cuando compilamos la aplicaci\u00f3n mediante CTL+Shift+B en un entorno Windows, se muestra el siguiente mensaje:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2082\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Task-1024x42.jpg\" alt=\"Task\" width=\"624\" height=\"42\" \/><br \/>\nPulsa sobre la opci\u00f3n de <em>Configure Task Runner. S<\/em>e muestra un fichero llamado task.json, donde tienes que modificar el valor que hay dentro de Args. Por defecto, pone HelloWorld.ts, deja\u00a0ese valor blanco para que pueda compilar todos los ficheros ts que tengas dentro de la carpeta de la soluci\u00f3n.<\/p>\n<p>TypeScript es un transpilador de JavaScript que puede desplegar en diversas versiones de EcmaScript (3,5,6,7). Dependiendo de cada proyecto, es posible que necesites indicar unos valores u otros. Para tener esta configuraci\u00f3n establecida, crea un fichero tsconfig.json en el que deber\u00e1s especificar estas caracter\u00edsticas.\u00a0Por ejemplo:<\/p>\n<p>{<br \/>\n  &quot;compilerOptions&quot;: {<br \/>\n    &quot;target&quot;: &quot;ES5&quot;,<br \/>\n    &quot;module&quot;: &quot;system&quot;,<br \/>\n    &quot;moduleResolution&quot;: &quot;node&quot;,<br \/>\n    &quot;sourceMap&quot;: true,<br \/>\n    &quot;emitDecoratorMetadata&quot;: true,<br \/>\n    &quot;experimentalDecorators&quot;: true,<br \/>\n    &quot;removeComments&quot;: false,<br \/>\n    &quot;noImplicitAny&quot;: false<br \/>\n  },<br \/>\n  &quot;exclude&quot;: [<br \/>\n    &quot;node_modules&quot;<br \/>\n  ]<br \/>\n}<\/p>\n<p>Una vez tengas\u00a0el entorno listo, en primer lugar crea\u00a0un fichero package.json en el que vas\u00a0a definir todas las librer\u00edas que a utilizar, as\u00ed como las dependencias que va a tener tu proyecto:<\/p>\n<p>{<br \/>\n  &quot;name&quot;: &quot;Encamina CompartiMOSS&quot;,<br \/>\n  &quot;version&quot;: &quot;1.0.0&quot;,<br \/>\n  &quot;scripts&quot;: {<br \/>\n    &quot;tsc&quot;: &quot;tsc&quot;,<br \/>\n    &quot;tsc:w&quot;: &quot;tsc -w&quot;,<br \/>\n    &quot;lite&quot;: &quot;lite-server&quot;,<br \/>\n    &quot;start&quot;: &quot;concurrent \\&quot;npm run tsc:w\\&quot; \\&quot;npm run lite\\&quot; &quot;<br \/>\n  },<br \/>\n  &quot;license&quot;: &quot;ISC&quot;,<br \/>\n  &quot;dependencies&quot;: {<br \/>\n    &quot;angular2&quot;: &quot;2.0.0-beta.0&quot;,<br \/>\n    &quot;systemjs&quot;: &quot;0.19.6&quot;,<br \/>\n    &quot;es6-promise&quot;: &quot;^3.0.2&quot;,<br \/>\n    &quot;es6-shim&quot;: &quot;^0.33.3&quot;,<br \/>\n    &quot;reflect-metadata&quot;: &quot;0.1.2&quot;,<br \/>\n    &quot;rxjs&quot;: &quot;5.0.0-beta.0&quot;,<br \/>\n    &quot;zone.js&quot;: &quot;0.5.10&quot;<br \/>\n  },<br \/>\n  &quot;devDependencies&quot;: {<br \/>\n    &quot;concurrently&quot;: &quot;^1.0.0&quot;,<br \/>\n    &quot;lite-server&quot;: &quot;^1.3.1&quot;,<br \/>\n    &quot;typescript&quot;: &quot;^1.7.3&quot;<br \/>\n  }<br \/>\n}<\/p>\n<p>Una vez creado el fichero packages.json, sit\u00faate en la carpeta de la soluci\u00f3n e instala dichos paquetes. Para ello, ejecuta la siguiente instrucci\u00f3n:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nnpm install\r\n<\/pre>\n<h2>Empezando con el desarollo<\/h2>\n<p>Siguiendo con la convenci\u00f3n en la nomenclatura de los proyectos en Angular, crea una carpeta App. Dentro de esta carpeta, crea un Componente en Angular2. El componente en angular 2 est\u00e1 formado por un \u00abDecorator\u00bb llamado Component. Este component est\u00e1 compuesto:<\/p>\n<ul>\n<li><strong>Selector<\/strong>: nombre de nuestro componente dentro del html<\/li>\n<li><strong>Template:<\/strong>: HTML que se va a mostrar<\/li>\n<li><strong>CSS:<\/strong> Estilos que va a tener este componente.<\/li>\n<\/ul>\n<p>El c\u00f3digo que debes utilizar es el siguiente:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport {Component} from 'angular2\/core';\r\n@Component({\r\n    selector: 'blog-desarrollandos',\r\n    template: '\r\n&amp;lt;h1&amp;gt;ANGULAR 2 by ENCAMINA&amp;lt;\/h1&amp;gt;\r\n\r\n'\r\n})\r\nexport class AppComponent { }\r\n<\/pre>\n<p>Una vez tengas creado el componente, tienes que crear el punto de entrada de la aplicaci\u00f3n. Para ello, crea\u00a0un fichero boot.ts en el que invoques a la funci\u00f3n bootstrap que est\u00e1 dentro de Angular2. P\u00e1sale como dependencia el componente que has creado.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport {bootstrap}    from 'angular2\/platform\/browser'\r\nimport {AppComponent} from '.\/app.component'\r\nbootstrap(AppComponent);\r\n<\/pre>\n<p>Ahora finalmente crea una pagina index.html<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&amp;lt;html&amp;gt;\r\n  &amp;lt;head&amp;gt;\r\n    &amp;lt;title&amp;gt;Angular 2 Iniciaci\u00f3n by ENCAMINA&amp;lt;\/title&amp;gt;\r\n    &amp;lt;!-- 1. Load libraries --&amp;gt;\r\n    &amp;lt;script src=&quot;node_modules\/angular2\/bundles\/angular2-polyfills.js&quot;&amp;gt;&amp;lt;\/script&amp;gt;\r\n    &amp;lt;script src=&quot;node_modules\/systemjs\/dist\/system.src.js&quot;&amp;gt;&amp;lt;\/script&amp;gt;\r\n    &amp;lt;script src=&quot;node_modules\/rxjs\/bundles\/Rx.js&quot;&amp;gt;&amp;lt;\/script&amp;gt;\r\n    &amp;lt;script src=&quot;node_modules\/angular2\/bundles\/angular2.dev.js&quot;&amp;gt;&amp;lt;\/script&amp;gt;\r\n\r\n    &amp;lt;!-- 2. Configure SystemJS --&amp;gt;\r\n    &amp;lt;script&amp;gt;\r\n      System.config({\r\n        packages: {        \r\n          app: {\r\n            format: 'register',\r\n            defaultExtension: 'js'\r\n          }\r\n        }\r\n      });\r\n      System.import('app\/boot')\r\n            .then(null, console.error.bind(console));\r\n    &amp;lt;\/script&amp;gt;\r\n\r\n  &amp;lt;\/head&amp;gt;\r\n\r\n  &amp;lt;!-- 3. Muestra la aplicacion --&amp;gt;\r\n  &amp;lt;body&amp;gt;\r\n    &amp;lt;blog-desarrollando&amp;gt;Loading...&amp;lt;\/blog-desarrollando&amp;gt;\r\n  &amp;lt;\/body&amp;gt;\r\n&amp;lt;\/html&amp;gt;\r\n<\/pre>\n<p>Hay tres secciones destacables de HTML:<\/p>\n<ol>\n<li>Carga las bibliotecas de JavaScript que necesites. angular2 &#8211; polyfills.js y Rx.js \u00a0.<\/li>\n<li>Configura la llamada al System y ind\u00edcale el punto de arranque de tu\u00a0aplicaci\u00f3n\u00a0.<\/li>\n<li>A\u00f1ade\u00a0el \u00a0selector &lt; blog-desarrollando &gt; en el &lt; body&gt;, para mostrar tu\u00a0componente.<\/li>\n<\/ol>\n<p>Finalmente, ves\u00a0a la carpeta y ejecuta npm start. Este proceso te\u00a0arrancar\u00e1 el servidor NodeJS y podr\u00e1s navegar hasta tu\u00a0aplicaci\u00f3n. Si todo ha ido correctamente, se muestra la siguiente pantalla:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2089\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/ExampleAngular.png\" alt=\"ExampleAngular\" width=\"458\" height=\"152\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/ExampleAngular.png 458w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/ExampleAngular-300x100.png 300w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/p>\n<h1>Resumen<\/h1>\n<p>En este post, has visto c\u00f3mo empezar a dar tus\u00a0<strong>primeros paso con Angular 2<\/strong>, preparar tu\u00a0entorno de desarrollo y conocer los aspectos para iniciarte\u00a0con este framework.<\/p>\n<p>En los siguientes art\u00edculos, te contar\u00e9 en profundidad m\u00e1s detalles,\u00a0como los binding, routes y otros aspectos m\u00e1s potentes que te\u00a0proporciona Angular 2. \u00bfCon ganas de saber m\u00e1s?<\/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>Comienzo\u00a0este 2016 con uno de los frameworks que m\u00e1s van a dar que\u00a0hablar a lo largo de este a\u00f1o. Con una\u00a0serie de art\u00edculos, vas a ver que c\u00f3mo entender un poco mejor Angular 2 \u00a0y c\u00f3mo poderlo aplicar en tus\u00a0desarrollos &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/\">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":[100],"tags":[168,156],"class_list":["post-2070","post","type-post","status-publish","format-standard","hentry","category-javascript-2","tag-angular2","tag-typescript"],"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>Angular 2: Introducci\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\/angular-2-introduccion\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Angular 2: Introducci\u00f3n - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"Comienzo\u00a0este 2016 con uno de los frameworks que m\u00e1s van a dar que\u00a0hablar a lo largo de este a\u00f1o. Con una\u00a0serie de art\u00edculos, vas a ver que c\u00f3mo entender un poco mejor Angular 2 \u00a0y c\u00f3mo poderlo aplicar en tus\u00a0desarrollos &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:image\" content=\"http:\/\/openwebinars.net\/media\/featured_images\/maxresdefault.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=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"Angular 2: Introducci\u00f3n\",\"datePublished\":\"2016-01-12T10:00:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/\"},\"wordCount\":1172,\"commentCount\":1,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/openwebinars.net\\\/media\\\/featured_images\\\/maxresdefault.jpg\",\"keywords\":[\"angular2\",\"typescript\"],\"articleSection\":[\"javascript\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/\",\"name\":\"Angular 2: Introducci\u00f3n - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/openwebinars.net\\\/media\\\/featured_images\\\/maxresdefault.jpg\",\"datePublished\":\"2016-01-12T10:00:03+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-introduccion\\\/#primaryimage\",\"url\":\"http:\\\/\\\/openwebinars.net\\\/media\\\/featured_images\\\/maxresdefault.jpg\",\"contentUrl\":\"http:\\\/\\\/openwebinars.net\\\/media\\\/featured_images\\\/maxresdefault.jpg\"},{\"@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":"Angular 2: Introducci\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\/angular-2-introduccion\/","twitter_card":"summary_large_image","twitter_title":"Angular 2: Introducci\u00f3n - Desarrollando sobre SharePoint","twitter_description":"Comienzo\u00a0este 2016 con uno de los frameworks que m\u00e1s van a dar que\u00a0hablar a lo largo de este a\u00f1o. Con una\u00a0serie de art\u00edculos, vas a ver que c\u00f3mo entender un poco mejor Angular 2 \u00a0y c\u00f3mo poderlo aplicar en tus\u00a0desarrollos &hellip; Continue reading &rarr;","twitter_image":"http:\/\/openwebinars.net\/media\/featured_images\/maxresdefault.jpg","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"Angular 2: Introducci\u00f3n","datePublished":"2016-01-12T10:00:03+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/"},"wordCount":1172,"commentCount":1,"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/#primaryimage"},"thumbnailUrl":"http:\/\/openwebinars.net\/media\/featured_images\/maxresdefault.jpg","keywords":["angular2","typescript"],"articleSection":["javascript"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/","name":"Angular 2: Introducci\u00f3n - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/#primaryimage"},"thumbnailUrl":"http:\/\/openwebinars.net\/media\/featured_images\/maxresdefault.jpg","datePublished":"2016-01-12T10:00:03+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-introduccion\/#primaryimage","url":"http:\/\/openwebinars.net\/media\/featured_images\/maxresdefault.jpg","contentUrl":"http:\/\/openwebinars.net\/media\/featured_images\/maxresdefault.jpg"},{"@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\/2070","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=2070"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/2070\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=2070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=2070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=2070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}