SharePoint 2013: Disponible el fix que soluciona los errores del SP 1 de Foundation!

Desde hace unos días está disponible el hotfix que soluciona los problemas y errores que el Service Pack 1 (SP 1) introduce en SharePoint Foundation 2013 sobre todo la desaparición de la opción de búsqueda en sitios creados en Foundation. Podéis descargareos el hotfix desde el siguiente enlace: http://www.microsoft.com/en-us/download/details.aspx?id=42268. Los detalles concretos del contenido del hotfix los podéis encontrar en el siguiente artículo de la KB:

  • KB 2760625 – March 2014 PU for SharePoint Foundation 2013

SharePoint 2013 & SharePoint Online: Como configurar la solicitud de aplicaciones por parte de los usuarios (I)!

Para poder añadir aplicaciones a un sitio de SharePoint 2013 (On-Premise u Online) es necesario disponer de dos permisos individuales: Manage Webs y Create Subsites. Pero: ¿Qué pasa con el resto de usuarios que no tienen esos permisos? ¿Pueden solicitar que se agreguen Apps en sitios de SharePoint? La respuesta es qué sí ya que es posible realizar las configuraciones necesarias para que los usuarios puedan solicitar aplicaciones tanto del Office Store como de los catálogos privados de aplicaciones que se hayan definido. Toda la información relativa a las configuraciones necesarias para SharePoint 2013 OnPremise y SharePoint Online la podéis encontrar en los siguientes enlaces:

[Eventos]: En mayo llegan las olimpiadas de FP a Cantabria y allí estaré de nuevo!

Hace un par de años tuve la oportunidad de participar como jurado en las olimpiadas de Formación Profesional que se celebraron en Santander en el Campus del Centro de Integrado de FP IES Augusto G. Linares e IES Peñacastillo. La experiencia fue muy enriquecedora no solo por la oportunidad de poder aportar en esta iniciativa que también se realiza en otras regiones y que cuenta con competiciones de nivel nacional, europeo e internacional, sino también por la motivación y ganas que los chavales participantes en cada disciplina ponen para demostrar lo que saben y también para poder ganar la competición y ganarse una plaza para participar en las olimpiadas a nivel nacional.

Este año, gracias a la Consejería de Educación de Cantabria y a LKS volveré a participar de nuevo en las olimpiadas de FP que se celebrarán del 13 al 15 de mayo y de nuevo seré jurado en la skill Soluciones software para empresas, o lo que es lo mismo, creación de aplicación y de soluciones empresariales en las que la piedra angular sea Office (Word, Excel, PowerPoint y sobre todo Access) desde la perspectiva de uso avanzado y por supuesto de desarrollo. Si no conocéis las Cantabria Skills, os animo a qué visitéis tanto su página de Facebook como la página oficial que se ha creado para el evento. Y no os perdáis el vídeo de las Skills en YouTube que habla por si solo de la idea y filosofía del evento.

Además de presentaros las Cantabria Skills 2014, me gustaría daros más detalles sobre el programa previsto para esta nueva edición y sobre todo animaros a participar. La organización estará encantada de recibir propuestas de colaboración y ver su encaje dentro de la agenda y programas previstos.

Actividades a realizar durante las Olimpiadas de FP

Las Olimpiadas de FP tendrán lugar en Santander, en el campus del Centro Integrado de FP, IES Augusto G. Linares e IES Peñacastillo, entre los días 13 y 15 de mayo de 2014.

El programa de actividades previstas incluye:

  • Visitas concertadas de centros educativos (FP, ESO y Bachillerato) y de la Universidad, durante los tres días del evento.
  • Visitas del público en general durante la jornada del miércoles.
  • Visitas de empresas durante la mañana del jueves.

Tanto las empresas colaboradoras en las diferentes especialidades que entran en competición como los centros educativos, entidades, particulares,…tienen la posibilidad de organizar una actividad (ya sea en forma de taller, ponencia, charla,..) que pueda resultar de interés para el público asistente.

Los horarios previstos para las actividades son los siguientes:

  • Martes, 13 de mayo: de 16:00h a 19:30h.
  • Miércoles, 14 de mayo: de 10:00h a 13:30h y de 16:00h a 19:30h.
  • Jueves, 15 de mayo: de 10:00h a 13:30h.

Para la realización de las actividades se contarán con diferentes espacios, en función de la capacidad prevista, la naturaleza de la actividad y el equipamiento necesario, de forma que podremos plantear alrededor de 4-5 actividades simultáneas. En especial, se cuenta con un espacio denominado “Flash Demo” con una capacidad de unas 20pax destinado a exposiciones que no superen los 30 minutos de duración; algo así como una “zona caliente”. Está orientado a presentaciones de productos o proyectos en los que no se espere dedicar demasiado tiempo a “ruegos y preguntas”.

¿Cómo puedo participar como colaborador en las Skills?

Quienes estén interesados en realizar alguna actividad, tienen que remitan los siguientes datos al correo cantabriaskills@cantabria.es:

  • Nombre de la actividad.
  • Nombre del ponente.
  • Cargo del ponente.
  • Fecha, hora y duración de la actividad.
  • Breve descripción de la actividad.
  •  ¿A quién va dirigida la actividad?
  • Número de asistentes para los que se quiere hacer la actividad (<20, 20-50, 50-100, >100).
  • Necesidades para realizar la actividad.

Es posible proponer una actividad en varios tramos de tiempo (por ejemplo, el martes por la tarde y el miércoles por la mañana) o también diferentes actividades.

image

SharePoint 2013: Script para automatizar la instalación de una solución!

En esta ocasión os dejo un script que automatiza la instalación de una solución para SharePoint 2013 detectando si la misma existe para desinstalarla y borrarla. Así mismo, el script permite determinar si la solución tiene recursos en el ámbito de aplicación web o no a la hora de hacer el despliegue. Espero que os sea de utilidad:

   1: If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) 

   2: { Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell }

   3:  

   4: #Hacemos un buen uso de PowerShell par ano penalizar el rendimiento

   5: $host.Runspace.ThreadOptions = "ReuseThread"

   6: function WaitForJobToFinish([string]$sSolutionName)

   7: { 

   8:     $JobName = "*solution-deployment*$sSolutionName*"

   9:     $job = Get-SPTimerJob | ?{ $_.Name -like $JobName }

  10:     if ($job -eq $null) 

  11:     {

  12:         Write-Host 'Timer job no encontrado'

  13:     }

  14:     else

  15:     {

  16:         $JobFullName = $job.Name

  17:         Write-Host -NoNewLine "Esperando a que finalice el Timer Job $JobFullName"

  18:         

  19:         while ((Get-SPTimerJob $JobFullName) -ne $null) 

  20:         {

  21:             Write-Host -NoNewLine .

  22:             Start-Sleep -Seconds 2

  23:         }

  24:         Write-Host  "Finalizada la espera para el Timer Job.."

  25:     }

  26: }

  27:  

  28: #Función que comprueba si la solución existe

  29: function CheckSolutionExist([string] $sSolutionName)

  30: {

  31:     $spFarm = Get-SPFarm

  32:     $spSolutions = $spFarm.Solutions

  33:     $bExists = $false

  34:  

  35:     foreach ($spSolution in $spSolutions)

  36:     {

  37:         if ($spSolution.Name -eq $sSolutionName)

  38:         {

  39:             $bExists = $true

  40:             return $bExists

  41:             break

  42:         }

  43:     }

  44:     return $bExists

  45: }

  46:  

  47: #Función que desinstala la solución

  48: function UninstallRemoveSolution([string] $sSolutionName, [string] $sWebAppUrl)

  49: {

  50:     $sSolution=Get-SPSolution $sSolutionName

  51:     Write-Host 'Desinstalando la solución $sSolutionName'

  52:     if ( $sSolution.ContainsWebApplicationResource ) {

  53:         Uninstall-SPSolution -Identity $sSolutionName -Confirm:$false -Webapplication $sWebAppUrl        

  54:     }

  55:     else {

  56:         Uninstall-SPSolution -Identity $sSolutionName -Confirm:$false

  57:     }

  58:     Write-Host 'Esperando a que finalice el Timer Job'

  59:     WaitForJobToFinish 

  60:     

  61:     Write-Host 'Eliminando la solución $solutionName'

  62:  

  63:     Remove-SPSolution -identity $sSolutionName -confirm:$false

  64:  

  65: }

  66:  

  67: #Función que instala la solución

  68: function AddInstallSolution([string] $sSolutionName, [string] $sSolutionPath, [string] $sWebAppUrl)

  69: {

  70:     Write-Host 'Añadiendo la solución $sSolutionName'

  71:     $sSolution=Add-SPSolution $sSolutionPath

  72:     

  73:     if ( $sSolution.ContainsWebApplicationResource ) {

  74:         Install-SPSolution –identity $sSolutionName –GACDeployment -WebApplication $sWebAppUrl     

  75:     }

  76:     else {

  77:         Install-SPSolution –identity $sSolutionName –GACDeployment -Force

  78:     }

  79:     Write-Host 'Esperando a que finalice el Timer Job' 

  80:     WaitForJobToFinish 

  81:  

  82: }

  83:  

  84: $sCurrentDir=Split-Path -parent $MyInvocation.MyCommand.Path

  85: $sSolutionName="<NombreSolution>.wsp"

  86: $sWebAppUrl="http://<UrlWebApp>"

  87: $sSolutionPath=$sCurrentDir + "\"+$sSolutionName 

  88:  

  89: #Proceso para instalar la solución

  90: $bSolutionFound=CheckSolutionExist -sSolutionName $sSolutionName

  91:  

  92: if($bSolutionFound)

  93: {

  94:     Write-Host "La solución $sSolutionName existe en la granja"

  95:     UninstallRemoveSolution -sSolutionName $sSolutionName -sWebAppUrl $sWebAppUrl

  96: }

  97:  

  98: AddInstallSolution -sSolutionName $sSolutionName -sSolutionPath $sSolutionPath -sWebAppUrl $sWebAppUrl

  99:  

 100:  

 101: Remove-PsSnapin Microsoft.SharePoint.PowerShell

SharePoint 2013: Code Snippet Search AddOn para desarrollo en SharePoint!

En esta ocasión quería enseñaros una utilidad muy buena para facilitar el desarrollo en Visual Studio (VS) a partir de localizar en Bing snippets de código en base a consultas que hagamos en lenguaje natural en nuestro entorno de desarrollo. El AddOn localiza los snippets en base a indexar respuestas de calidad que contienen código en los foros de MSDN, Stack Overflow, Dotnetpearls y CSharp 411. Para verlo en acción, os recomiendo que veáis el siguiente artículo: http://techcrunch.com/2014/02/17/microsoft-launches-smart-visual-studio-add-on-for-code-snippet-search/. Finalmente, como indica el título del post en desarrollo para SharePoint también nos podremos beneficiar de esta utilidad…como siempre, una imagen vale más que 1000 palabras:

image image
  • A continuación realizamos alguna consulta a nivel de desarrollo en SharePoint como por ejemplo realizar el disposado de objetos SPSite o SPWeb.

image

SharePoint 2013 & SharePoint Online: ¿Qué nivel de permisos / permisos individuales se requieren para poder agregar aplicaciones?

Aunque creo que este tema ya lo he tratado en algún post, creo que en el mismo no había especificado los permisos individuales que se requieren para poder agregar aplicaciones en sitios de SharePoint 2013 On-Premise o de SharePoint Online en Office 365. El resumen es el siguiente:

SharePoint 2013: Creación de una Cloud Business App paso a paso (I)!

Como sabéis, y más después de las novedades en la última SharePoint Conference en Las Vegas, uno de los tipos de aplicaciones que podemos crear para SharePoint 2013 (OnPremise y Online) son las Cloud Business App que hacen uso de la filosofía de creación de aplicaciones que conocemos de LightSwitch. En este post vamos a ver como crear una Cloud Business App paso a paso haciendo uso del Update de marzo de las Office Developer Tools para Visual Studio:

  • Iniciamos Visual Studio 2012 / 2013 y creamos un proyecto de tipo Cloud Business App.
  • A continuación especificamos la Url del sitio de Office 365 en el que vamos a desplegar la Aplicación. Una vez concluye el proceso de creación de los proyectos relativos a la aplicación de tipo Cloud Business App, podremos comprobar que se crean un total de 4 proyectos.
image image
  • Además, se muestra la superficie de diseño de los contenedores de datos para la App que nos permite indicar como fuente de datos una Tabla creada desde cero o bien elegir un origen de datos externo.

  • En nuestro caso vamos a elegir la primera de las opciones, aunque podemos revisar los tipos de fuentes de datos externas que se soportan en aplicaciones de este tipo.

image image
  • La opción “Create new table” nos permite crear una tabla desde cero. En nuestro caso vamos a crear una tabla Clientes con los tipos de datos que se muestran en la correspondiente ventana del asistente.

  • Una vez que la tabla está creada, nos vamos a la carpeta “Screens” del proyecto que contiene en su nombre “HTMLClient”. Seleccionamos dicha carpeta y hacemos clic en la opción “Add screen…” disponible en el menú contextual.

image image
  • En la ventana que se abre podemos optar por crear todas las ventanas necesarias para interactuar con la tabla que hemos creado (opción “Common Screent Set”) o bien crear una ventana específica. En nuestro caso, vamos a crear todas las ventanas que necesitamos para interactuar con la fuente de datos subyacente:

    • Especificamos Clientes como nombre del conjunto de ventanas.
    • En el combo “Screen Data”, seleccionamos la tabla ClientesItems creada previamente.
  • Una vez que hemos pulsado “OK”, veremos que suceden dos cosas:
    • Por una parte, se crean las pantallas que forman parte del set (un total de 3).
    • Por otra parte, se muestra la superficie de diseño de la pantalla de “Browse”.
image image
  • En esta superficie de diseño de la pantalla “Browse”, seleccionamos el elemento “Title List – Clientes Item” y desplegamos las opciones disponibles en el menú contextual.
  • Hacemos clic en el botón “Add Button…”. En la ventana que se abre, elegimos como método para el botón uno de los proporcionados: ClientesItems.addAndEditNew. Como opción “Navigate To”, especificamos Clientes.
image image
  • Siguiendo el mismo procedimiento añadimos dos nuevos botones que nos permitan editar y visualizar un registro existente. La superficie de diseño de la pantalla debería quedar como se muestra en la imagen de más abajo.
  • Lo siguiente que tenemos que hacer es definir cuál va a ser la pantalla principal para la aplicación. Para ello, seleccionamos la pantalla deseada y a través de las opciones del menú contextual hacemos clic en la opción “Set as Home Screen”.
image image
  • Compilamos la solución completa. Llegados a este punto, ya estamos listos para desplegar y probar la aplicación sin más que hacer clic en F5. Como siempre, una vez desplegada la App en primer lugar tendremos que confirmar que confiamos en la misma.
  • A continuación se muestra la página principal de la aplicación con la que ya podemos empezar a interactuar. Por ejemplo, procedemos a añadir un nuevo registro en la misma
image image
  • A continuación se muestra un popup en el que podemos añadir datos.
  • Y este es el resultado de añadir un nuevo dato.
image image