Hadoop On Azure (I): Tecnología Hadoop en plataforma Microsoft

Durante las últimas semanas, en el CIIN hemos estado trabajando en una pequeña aplicación para el procesamiento, análisis e indexado del contenido de feeds (RSS y ATOM), mediante tecnologías “Big Data”. Para ello, hemos utilizado las tecnologías disponibles para realizar procesamiento de tipo “Big Data”, en la plataforma Microsoft, utilizando en concreto en nuestro caso Hadoop on Azure. En próximos artículos iremos explicando el trabajo que hemos estado desarrollando y lo aprendido durante el proceso, con ejemplos prácticos, por si puede ser de interés y utilidad para la comunidad.

Para empezar, y situarnos, vamos a introducir que es Hadoop, y también vamos a explicar cual es la propuesta de Microsoft para el desarrollo con Hadoop.

¿Que es Hadoop?

Apache Hadoop es un “framework” que permite y facilita el procesamiento distribuido de grandes conjuntos de datos, a lo largo de un clúster de ordenadores, utilizando un modelo de programación bastante simple.

Esta basado principalmente en los siguientes elementos:

  • Hadoop Distributed File System (HDFS): Es un sistema distribuido de almacenamiento de ficheros, que proporciona un alto rendimiento en el acceso a los datos de la aplicación
  • Hadoop MapReduce: Es un conjunto de librerías, y modelos de programación, para el procesamiento distribuido de grandes conjuntos de datos en un clúster de ordenadores

Además de estos dos componentes básicos de cualquier sistema basado en Hadoop, existe todo un conjunto de proyectos relacionados (Hive, Pig, Mahout, …), que aportan a Hadoop, toda una serie de funcionalidades adicionales partiendo de la base de los dos componentes anteriores.

A continuación se muestra una figura que permite visualizar mejor, los diferentes componentes que forman parte del ecosistema de Hadoop.

HadoopEcosystem

Apache Hadoop es un proyecto de tipo “Open Source”, que al igual que otros proyectos de este tipo, ha sufrido una evolución reflejada en sus diferentes versiones, que puede llegar a confundir a aquellos desarrolladores que empiezan a trabajar con esta tecnología.

La figura que se muestra a continuación, permite visualizar rápidamente la evolución de Apache Hadoop a través de su árbol de versiones.

image

Referencia: http://www.cloudera.com/blog/2012/01/an-update-on-apache-hadoop-1-0/ y las páginas de Changes.txt y Release Notes, de las diferentes versiones.

Distribuciones de Hadoop

Al igual que ocurre con otros proyectos “Open Source”, por un lado tenemos el “core” de esta tecnología que esta representado por el proyecto Apache Hadoop (http://hadoop.apache.org/common/releases.html) y por otra parte existen diferentes distribuciones realizadas por terceros, basadas en este “core” y que aparte de la funcionalidad principal o “core”, añaden funcionalidades propias. El siguiente enlace muestra un listado de algunas de las principales distribuciones disponibles: http://wiki.apache.org/hadoop/Distributions%20and%20Commercial%20Support?action=show&redirect=Distribution

Entre las distribuciones de Hadoop más conocidas se encuentran por ejemplo las de Cloudera, HortonWorks o la ofrecida por Amazon sobre su infraestructura EC2” denominada como Amazon Elastic MapReduce.

Además de las anteriores, Microsoft  anunció y presentó a finales de 2011, su propia distribución de Hadoop sobre plataforma Microsoft, a la que denomino Microsoft Distribution of Hadoop (MDH) que puso a disposición de la comunidad en la forma de una “Customer Technology Preview” (CTP).

Entre las novedades más interesantes que incluye esta distribución (MDH) están:

  • Consola interactiva Javascript basada en Web que permite:
    • Realizar operaciones HDFS incluyendo subir y leer ficheros desde/hasta el HDFS
    • Ejecutar programas MapReduce desde scripts Javascript o ficheros JAR monitorizando su progreso
    • Ejecutar un trabajo Pig, utilizando una sintaxis especial en Javascript y monitorizar su progreso
    • Visualizar datos con gráficas construidas utilizando HTML5
  • Un driver Hive ODBC de acceso a Hadoop, que permite utilizar herramientas familiares como Excel, PowerPivot, SQL Server Analysis Services y Reporting Services para analizar los datos procedentes de Hadoop.
  • Soporte nativo para Windows Azure Blob Storage

Los servicios de Hadoop sobre Windows, tal como se ha comentado anteriormente están disponibles como una CTP, a las que se accede de forma limitada y bajo invitación, donde los interesados en participar deben de rellenar una encuesta comentando su interés acerca de esta tecnología y en que tipo de proyectos están interesados en utilizarla.

Enlaces de interés: http://social.technet.microsoft.com/wiki/contents/articles/6204.hadoop-based-services-for-windows-en-us.aspx

Según la documentación, esta distribución la podemos encontrar en diferentes sabores como:

  • Hadoop-Based Server for Microsoft Windows: Para montar un clúster Hadoop utilizando servidores Windows en las propias instalaciones de la empresa (on-premises)
  • Elastic Map Reduce on Windows Azure: Donde el clúster de Hadoop se instala sobre Azure y se puede interaccionar con él a través de un portal.

Enlaces de interés: http://social.technet.microsoft.com/wiki/contents/articles/6225.windows-azure-deployment-of-hadoop-based-services-on-the-elastic-map-reduce-emr-portal.aspx

Hadoop On Azure

Debido a que el proyecto sobre el que hemos estado trabajado ha estado basado en la versión de Hadoop en Azure, en los siguientes párrafos trataremos de explicar este servicio.

La versión de Hadoop ofrecida actualmente a través del enlace http://www.hadooponazure.com, ofrece a través de un portal un servicio elástico de aprovisionamiento de trabajos Map Reduce, denominado Elastic Map Reduce (EMR). A través del portal, permite aprovisionar un clúster Apache Hadoop sobre Azure. El clúster creado a través de este portal es temporal y tiene una fecha de expiración, permitiendo mientras esta activo ejecutar sobre él, trabajos de tipo MapReduce, procesando datos que estén tanto en el clúster como en otros lugares.

En el caso de Hadoop on Azure al tratarse de un servicio en fase Community Technology Preview (CTP), se trata de un producto en constante evolución. Por ejemplo en nuestro caso, al aprovisionar el clúster en Azure, hemos estado trabajando tanto con la versión de Hadoop 0.20.203.1 (hasta el día 22 de Agosto), como con la versión de Hadoop 1.0.1. que es la que esta disponible en la actualidad.

En la siguiente figura se puede ver la correspondencia entre la versión de Hadoop aprovisionada por el portal de EMR en Azure, y la versión de Apache Hadoop en la que esta basada.

image

En el siguiente enlace se comenta el cambio de versión en la versión aprovisionada por el portal EMR de Azure y los elementos que incluye: http://blogs.msdn.com/b/hpctrekker/archive/2012/08/22/hadoop-on-windowsazure-updated.aspx

Desde el punto de vista práctico, este cambio no ha supuesto grandes problemas desde el punto de vista de programación por parte del desarrollador, ya que tanto la versión 0.20.203.1 como la versión 1.0.1, del core de Hadoop, están basados en el mismo modelo de programación, y apenas han sufrido grandes cambios.

La tabla siguiente muestra una comparativa entre el contenido de las dos últimas versiones que ha utilizado el portal de EMR de Azure, para aprovisionar el clúster de Hadoop sobre Azure.

  Hasta el 22 de agosto de 2012 A partir del 22 de agosto de 2012
Componente Versión (SU2) Versión (SU3)
Hadoop Core 0.20.203.1 1.0.1
Hive 0.7.1 0.8.1
Pig 0.8.1 0.9.3
Mahout 0.5 0.5
Pegasus 2 2
SQOOP 1.3.1 1.4.2

Para próximas versiones de HaoopOnAzure, esto puede ser diferente, ya que tal como se comenta en el documento de preguntas frecuentes FAQ, esta planeado que se base en la versión de Apache Hadoop derivada del tronco principal (0.23 o 2.0), que incorporan e introducen cambios significativos en el modelo de programación, a través de una nueva versión de MapReduce (MR.vNext / YARN).

Q: Can I use C# or .NET with Hadoop on Azure?

A: You can use C# and .NET with Hadoop on Azure by using the Streaming OM. Please note, that while you can do this, it is not really designed for high performance production workloads. Once the 0.23 branch (MR.vNext / YARN) is production ready (Hadoop on Azure is snapshot to 0.203+), we are planning to do .NET integration with this branch of Apache Hadoop. In this new branch, the Apache Hadoop codebase has switched from Avro to Protobuf (Protocol Buffer) which allows for much faster data interchange performance.

SharePoint 2013: Novedades en los servicios de Access (II)!

Siguiendo con la serie de posts sobre novedades en los servicios de Access en SharePoint 2013, en esta ocasión vamos a pasar a la acción creando y publicando una nueva aplicación en SharePoint On-Premise o en SharePoint Online:

  • Si estamos jugando con SharePoint 2013 On-Premise, lo primero que tenemos que hacer es revisar la configuración de los servicios de Access además de los tips que os he puesto al final del post. Entramos en la administración de aplicaciones de servicio de la Administración Central de SharePoint 2013 y localizamos los Servicios de Access.
  • En la única página de configuración disponible, tenemos que añadir el servidor de SQL dónde queremos que se creen las BDs de nuestras aplicaciones. En el caso de SharePoint Online, estas BDs se crean automáticamente en SQL Azure.
  • A continuación iniciamos el cliente de Access 2013 y elegimos una de las plantillas de inicio disponibles para crear una aplicación para los servicios de Access. Por ejemplo, elegimos la de “Seguimiento de Asuntos”.
image image image
  • A continuación se abre una ventana modal en la que podemos ver una preview de la aplicación y en la que tenemos que especificar los parámetros para crear la aplicación:
    • Nombre de la aplicación.
    • La Url del sitio de SharePoint On-Premise u Online dónde publicar la aplicación. También tenemos la posibilidad de escoger alguna de las ubicaciones existentes.
  • Tras pulsar “Crear”, iniciamos el proceso de creación de la aplicación que no es un proceso local sino qué se está creando la aplicación y todo lo necesario en SharePoint 2013. De echo, si accedemos a la página “Contenidos del sitio” podremos ver que disponemos de una nueva aplicación.
  • A nivel del servidor de BD configurado en los Servicios de Access, podemos comprobar que se ha creado una BD que contiene las tablas y resto de elementos necesarios para que la aplicación este operativa.
image image image
  • De vuelta al cliente de Access, cuando acaba el proceso de creación se muestra el diseñador para modificar la aplicación.
  • El diseñador nos permite editar los formularios (denominados “Vistas”) a nivel de aspecto, añadir nuevos campos o definir comportamiento vía macros.
  • Podemos editar la definición de las tablas que usa la aplicación y ver los campos disponibles, así como validaciones y macros de datos definidos. Por supuesto, podemos añadir nuevos campos a una tabla.
image image image
  • Merece la pena echar un vistazo a alguna de las macros de datos disponibles por defecto para ver cuál es la filosofía de creación.
  • Finalmente, para ver la aplicación funcionando basta con guardar la aplicación desde el cliente de Access y acceder a la misma en nuestro sitio o bien usar la opción “Iniciar aplicación” de la Cinta de Access 2013.
image image

Os recomiendo este genial post de Kirk Evans sobre como configurar los Servicios de Access qué os permitirá solventar algunos problemas que os encontréis al crear una aplicación para los servicios de Access. En particular, os cuento un par de cosas que he tenido que hacer yo de todo lo que comenta Kirk:

  • Como una aplicación de Access es una aplicación del nuevo modelo de aplicaciones de SharePoint 2013, tenéis que tener listo vuestro entorno para poder publicar aplicaciones…os recomiendo revisar este artículo que escribí al respecto.
  • A nivel de la configuración de los servicios de Access especificar el servidor de BD dónde se van a crear las BD’s de las aplicaciones Access.
  • Configurar la aplicación de servicio de almacenamiento seguro de forma que exista una clave generada para la misma y hacer un IIReset.
  • En las propiedades del servidor de BD a través de SQL Server Management Studio configurar la propiedad “Enabled Contained Databases” disponible en la sección “Advanced” de la ventana de propiedades con el valor “True”.
  • A nivel de configuración de los protocolos de SQL Server, aseguraros de qué están habilitados TCP/IP y Named Pipes. Al habilitarlos, tendréis que re-iniciar SQL Server para que “se entere” de los cambios.

Finalmente os dejo una estupenda referencia relativa a personalización de aplicaciones Access para los Servicios de Access: http://msdn.microsoft.com/en-us/library/office/jj249372(v=office.15).

SharePoint 2013: Como restaurar una Colección de Sitios eliminada!

Como no podía ser de otra forma, SharePoint 2013 incorpora todo lo bueno de SharePoint 2010 (y también elimina cosas malas). En este post simplemente repasaremos como realizar una restauración de una colección de sitios que se haya eliminado por medio de PowerShell a través de los comandos Get-SPDeteletedSite y Restore-SPDeletedSite.

  • Supongamos que borramos la coleccion /sitios/intranet por error en nuestro ambiente de SharePoint 2013.
  • A través del comando Get-SPDeletedSite podemos acceder a la información de la colección borrada.
  • Con Restore-SPDeletedSite indicando el Guid de la colección de sitios podremos restaurarla sin problemas tras realizar la correspondiente confirmación en la consola de administración de SharePoint 2013.
image image image
  • La secuencia completa de comandos PowerShell a ejecutar es la siguiente:
   1: $ColeccionBorrada=Get-SPDeletedSite "/sitios/intranet"

   2: Restore-SPDeletedSite -Identity $ColeccionBorrada.SiteId

Y como resultado, obtenemos que la colección está restaurada y operativa:

image

Referencias:

Hackaton W8: Preguntas y respuestas!

Ya no queda nada para que comience el Hackaton de Windows 8 y como siempre, pueden surgir algunas dudas razonables al respecto por lo que a continuación se recogen una serie de preguntas frecuentes en torno al hackaton de Windows 8. De todos modos, el lunes 3 de septiembre tenemos un preview del evento multi-ciudad al que te recomiendo que asistas.

 

P: ¿Hace falta ser un experto para asistir al Megathon?

R: No, pero conviene tener unos mínimos conocimientos de programación, así como experiencia en el desarrollo de aplicaciones con HTML5/Javascript o con XAML/C#. Conviene que repases los recursos de formación que están incluidos en esta web antes de venir al Megathon.

P: ¿Es un curso o un concurso?

R: El Megathon es un concurso, donde se formarán equipos de desarrollo el día 7 que deben presentar su aplicación el día 9. Durante el concurso los mentores darán charlas presentando las características más importantes del ecosistema de Windows 8, pero los equipos pueden paralelizar la atención al curso con el desarrollo de su aplicación.

 

P: ¿La sala estará abierta durante la noche para poder programar?

R: Los detalles organizativos, como la disponibilidad de la sala, depende de cada ciudad. Consulta con los mentores de tu ciudad estas y otras dudas que tengas sobre la organización. En el caso de Santander, se ha optado por un horario de disponibilidad de sala de acuerdo a la agenda pública del hackaton:

  • Viernes 7 de septiembre de 16:45 a 21: 45.
  • Sábado 8 de septiembre de 09:45 a 20:30.
  • Domingo 9 de septiembre de 09:45 a 20:00.

 

P: Windows 8 RC me da problemas a la hora de instalar Visual Studio 2012 Profesional y TFS Server. ¿Necesito Windows 8 RTM?

R: Sí, para VS Pro necesitas W8 RTM, te lo puedes descargar aquí: http://msdn.microsoft.com/es-ES/evalcenter/jj554510.aspx

P: ¿En el Megathon habrá bocadillos o debemos llevarlos?

R: En el caso de Santander, hemos conseguido un descuento del 10 % en los menús de McDonalds + postre gratis. El tema de los cafés, veremos como solventarlo :-).

 

P: ¿Debo llevar mi propio equipo portátil? ¿Habrá conexión a internet y tomas para enchufarlo?

R: Es recomendable traerlo con Windows 8 RTM, Visual Studio 2012 y el SDK instalado en el equipo, usando un VHD con arranque nativo de Windows 7, Windows 8 To Go, o bien virtualizado usando por ejemplo Hyper-V. Si traes un Mac puedes virtualizarlo usando Bootcamp o VMWare. En Santander el aula del CIIN cuenta con 19 puestos informáticos en los que se instalará Windows 8 RTM + las herramientas de desarrollo. La sala estará completamente equipada para conectar tu equipo a internet y a la red eléctrica.

P: ¿Dónde puedo descargar Windows 8 y Visual Studio 2012?

R: Si eres subscriptor de MSDN ya puedes descargar la versión final de ambos productos.

Si no lo eres puedes descargar la versión de evaluación de 90 días de Windows 8 y Visual Studio 2012 Ultimate versión de prueba o bien la versión gratuita Visual Studio 2012 Express for Windows 8.

P: No se puede traer nada de código escrito pero ¿se puede tener una base de datos?

R: Sí, base de datos, imágenes, links, etc. Cualquier cosa menos código del cliente para Windows 8 que vamos a desarrollar. También podemos desarrollar clientes para bases de datos o servicios públicos y/o alojados (twitter, YouTube, Azure, etc.). De todas formas, en las bases el hackaton puedes encontrar más información al respecto: http://megathonwindows8.azurewebsites.net/2012/07/25/bases-megathon-windows-8/

P: ¿Dónde puedo encontrar más recursos de formación, además de los que están incluidos en la web del Megathon?

R: Si es tu primera toma de contacto con Windows 8 tienes la siguiente Información Básica:

SharePoint 2013: ¿Dónde está la papelera de reciclaje?

En este artículo os comentaba como cambiar el usuario logado en un sitio de SharePoint, dado que no tenemos una opción en la preview de SharePoint 2013 para realizar esto. El caso es que con la papelera de reciclaje, ya que si estáis trasteando con sitios de SharePoint 2013 y la buscáis, resulta que esta no aparece por ningún lado:

  • Lo lógico que apareciese en la página “Contenido del sitio”, pero va a ser que no.
  • Entonces, la solución de nuevo pasa por “averiguar” las Urls de las páginas de aplicación para los dos niveles de papelera de reciclaje de SharePoint:
    • _layouts/15/recyclebin.aspx
    • _layouts/15/AdminRecycleBin.aspx
image image image

SharePoint 2013: Novedades en colecciones de sitios!

A nivel de colecciones de sitios SharePoint 2013 presenta algunas novedades más que interesantes y qué vamos a ver en este artículo. Empezando por el proceso de creación que es similar al que conocemos de SharePoint 2010 para pasar a los “Host-Named” Site Collections.

Creación

El proceso de creación de una colección de sitios desde la Administración Central de SharePoint 2013 es idéntico al que conocíamos para SharePoint 2010:

  • Bajo la sección “Administración de aplicaciones” tenemos el enlace “Crear colecciones de sitios”.
  • Lo pulsamos y se muestra la correspondiente página para crear una colección de sitios.
  • La novedad principal es que podemos crear sitios en modo SharePoint 2013 o modo SharePoint 2010, ya que hay una profunda compatibilidad hacía atrás con SharePoint 2010 hasta el punto de que en SharePoint 2013 tenemos un directorio 15 y un directorio 14.
image image image
  • Tras especificar los parámetros para crear la colección, aparece un diálogo característico de SharePoint 2013: “Trabajando en ello”.
  • El resultado es el sitio creado. En este caso he elegido la nueva plantilla de Centro de inteligencia empresarial de SharePoint 2013.
image image  

Host Named Site Collections

Otra gran novedad a nivel de colecciones de sitios es lo siempre que resulta crear “Host-Named” Site Collections, es decir, colecciones que se puedan acceder con múltiples Urls. Se trata de un mecanismo presente en versiones previas de SharePoint, pero que se simplifica notablemente en SharePoint 2013 y que permite agregar, independientemente de zonas (al contrario que las rutas de acceso alternativo) varias Urls a una colección creada en modo “Host-Named”. Toda la configuración es vía PowerShell:

  • Tenemos que crear una nueva colección de sitios mediante New-SPSite especificando la Url de la colección y a continuación el parámetro “HostHeaderWebApplication” que va a indicar que esa colección de sitios bajo dicha aplicación web admite varias Urls. El resto de parámetros de creación de la colección son los ya clásicos de nombre para el sitio raíz de la colección, descripción, administrador principal y plantilla a usar.
  • A continuación, el comando Set-SPSiteUrl nos permite añadir nuevas Url a la colección identificada por la Url de creación.
  • Con Get-SPSiteUrl podemos ver para una colección de tipo “Host-Named” que otras Urls tiene disponibles.
image image image
  • Finalmente, con el comando Remove-SPSiteUrl podemos ir eliminando Urls añadidas a la colección.
   1: New-SPSite "http://domain.local" -HostHeaderWebApplication "http://c4431163311" -Name "Portal" -Description "Portal de Clientes" -OwnerAlias "domainadministrator" -language 3082 -Template "STS#0"

   2: Set-SPSiteUrl -Identity http://domain.local -Url http://intranet.domain.local

   3: Get-SPSiteUrl -Identity http://domain.local

   4: Remove-SPSiteUrl -Url http://intranet.domain.local

Por supuesto, no os olvidéis de probar que las Urls están operativas y que posiblemente tengáis que hacer algún ipconfig /flushdns para que esto sea así.

image

Finalmente, algunas consideraciones respecto al uso de “Host-Named” Site Collections:

  • Disponibles también para conexiones HTTPS.
  • No usarlos si:
    • Queremos utilizar Self Service Site Creation
    • A nivel de seguridad se requiere nivel de aislamiento máximo entre Aplicaciones Web cada una con su Pool de aplicaciones
    • Se requiere el uso de rutas administradas únicas de tipo “inclusión de caracteres comodín” (/sitios) a nivel de Aplicación Web

Referencias:

SharePoint 2013: Opciones de autenticación soportadas!

Por defecto, el mecanismo de autenticación para una aplicación web de SharePoint 2013 es el de autenticación basada en Claims de manera que frente a SharePoint 2010 no es posible elegir entre autenticación “clásica” y autenticación de tipo clásico que se sigue soportando por cuestiones de compatibilidad. De echo, si queremos crear aplicaciones web que usen autenticación clásica tendremos que recurrir a la interfaz de línea de comandos ya que no es posible desde la interfaz de usuario de la administración central de SharePoint 2013. Partiendo de esta base, y dentro de autenticación basada en Claims, en SharePoint 2013 se soportan las siguientes opciones de autenticación:

  • Windows, pudiendo elegir entre las opciones NTLM, básica o bien el uso de Kerberos.
  • FBA, tanto para usuarios de base de datos como usuarios procedentes de los siguientes contenedores:
    • Directorio activo.
    • Directory Services.
    • LDAP.
  • SAML, lo que abre aún más el abanico de posibilidades de autenticación usando nuestras identidades de Windows Live, Facebook, Google, etc. Lo único que necesitamos es disponer del correspondiente proveedor.

image

 

¡Formación, hacer lo que te gusta, llevarte un premio…a qué esperas, el hackaton de Windows 8 está a punto de llegar!

Pues eso, qué en dos semanas tendrá lugar el primer hackaton multiciudad que se lleva gestando desde hace un par de meses y en el que Santander participa gracias al apoyo del grupo de usuarios .NEt de Cantabria (Nuberos.Net), el CIIN y Microsoft, así como la colaboración de varias empresas y organizaciones de ámbito local y nacional: SDM Programas CIC Gpmess McDonalds 24 Symbols SDM Alive 4ikim EJECANT FLOQQ.

El hackaton es una excelente oportunidad para aprender, formarte gracias a los mentores que estarán apoyando a los equipos (Rafa Serna y Javi López en Santander), hacer lo que te gusta (desarrollar), trabajar en equipo e innovar porque compites por premios locales en tu ciudad y por un premio a nivel nacional al que aspirarán los ganadores de cada ciudad. Los premios para el hackaton de Santander son:

  • Un teléfono Nokia Lumia 800 para cada uno de los integrantes del equipo ganador.
  • 4 licencias aportadas por 24 Symbols.
  • La posibilidad de acceder a una beca remunerada de 3 meses de duración en las empresas SDM Alive y CIC Consulting Informático.

Y el premio nacional es nada menos que un Un viaje a Redmond para conocer el campus de Microsoft con los gastos pagados para todos los miembros del equipo ganador de todas las ciudades + 1 Kit consistente en un Nokia Lumia y una mochila con accesorios Nokia…¿A qué estás esperando para apuntarte al hakcaton de Santander? Te esperamos el 7, 8 y 9 de septiembre, no te lo pierdas:

SharePoint 2010: APIs disponibles y no disponibles en soluciones SandBox!

Cuando estamos pensando en desarrollar una solución de tipo SandBox para SharePoint 2010 On-Premise o SharePoint Online en Office 365 tenemos que tener en cuenta que a nivel de API no vamos a poder utilizar ni la API completa de SharePoint ni la de .NET. Específicamente, en MSDN podemos encontrar tres artículos en los que se describe por una parte que APIs tenemos disponibles del modelo de objetos de SharePoint y que ensamblados de SharePoint y de .NET en general no tenemos disponiobles. EStas referencias son las siguientes:

SharePoint2010_thumb

SharePoint 2013: Creación de columnas de sitio y tipos de contenido en VS 2012!

Aunque no hay muchos cambios con respecto a las versiones beta de Visual Studio 2012 (VS 2012), en este artículo vamos a ver como crear columnas de sitio y tipos de contenido para SharePoint 2013 usando las plantillas de elemento de proyecto disponibles:

  • Creamos en primer lugar un proyecto de tipo “SharePoint 2013 project”.
  • Como vamos a crear tipos de contenido y columnas de sitio, podemos elegir como tipo de despliegue el de “Sandbox”.
  • A continuación se muestra la típica estructura de proyecto de SharePoint ya conocida en VS 2010.
image image image
  • Añadimos al proyecto un elemento de tipo “Site Column”.
  • A continuación se muestra la vista XML de la columna de sitio añadida. Como vemos, se trata de una columna simple de tipo texto.
  • Añadimos al proyecto un elemento de tipo “Content Type”.
image image image
  • Y es aquí dónde empieza lo bueno ya que se inicia un asistente para crear el tipo de contenido. En primer lugar elegiremos el tipo de contenido padre…en mi caso “Elemento”.
  • A continuación se muestra el diseñador de tipos de contenido que nos permite cambiar el nombre, descripción y grupo del tipo de contenido. También podremos indicar si hereda o no las columnas del tipo padre, si es de tipo sólo lectura o si se va a ocultar en el botón “Nuevo” en listas.
  • En la pestaña “Columns” podremos agregar las columnas de sitio existentes o bien definidas en el proyecto que vayan a formar parte del tipo de contenido.
image image image
  • Por supuesto, de la vista de diseño del tipo de contenido podemos pasar fácilmente a la vista XML.
  • Una vez que todo esté listo, basta con desplegar el proyecto y comprobar que tanto la columna de sitio como el tipo de contenido creados están listos para usar en el sitio de SharePoint 2013.
image image image