Office 365: An overview of the kiosk plans!

I like to participate in Office 365 / SharePoint forums because I always have the opportunity to learn new things and refresh my knowledge about both platforms. As you can deduce from the title of this post, this time I will talk a little bit about Office 365 Kiosk plans. Basically, an Office 365 user asked if kiosk users have the possibility to create or not documents online using Office Online. Well, as I didn’t have in my mind the specific features of Office 365 kiosk plans I had to search for some Microsoft Official documentation regarding to Kiosk plans and after a quick search I got a really good resource where you can see a comparison between Office 365 Kiosk plans: http://office.microsoft.com/en-us/business/compare-office-365-kiosk-plans-FX103178917.aspx. As you can see in that link, we currently have to different Kiosk plans in Office 365:

  • Exchange Online Kiosk plan.
  • Office 365 Enterprise Kiosk.

And of course, just reviewing that link you can easily see that Office 365 Enterprise Kiosk plans are the only ones that allow to create online documents using Office Online.

image_thumb

Office 365: Un vistazo a los planes de tipo quiosco!

Ante una pregunta en los foros de Office 365, en torno a si era posible o no crear documentos en línea con un plan de quiosco de Office 365 he tenido que refrescar las capacidades que este tipo de planes proporcionan para los usuarios. Estas capacidades las podéis encontrar en el siguiente enlace: http://office.microsoft.com/en-us/business/compare-office-365-kiosk-plans-FX103178917.aspx. Como veis en el mismo, hay dos tipos de planes de quiosco:

  • Exchange online Kiosk.
  • Office 365 Enterprise Kiosk.

Precisamente el segundo tipo de planes quiosco es el que permite crear documentos en línea en el navegador.

image

SharePoint: Como re-iniciar el servicio de temporizador con PowerShell y programáticamente!

En esta ocasión os dejo como re-iniciar el servicio de temporizador (en concreto todas sus instancias en una granja de SharePoint) mediante el uso de PowerShell y el modelo de objetos de SharePoint:

   1: ############################################################################################################################################

   2: # This script allows to re-start all the SharePoint Timer Service instances in a SharePoint Farm

   3: # Required Parameters: N/A

   4: ############################################################################################################################################

   5:  

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

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

   8:  

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

  10:  

  11: #

  12: #Definition of the function that allows to re-start all the SharePoint Timer Service instances in a SharePoint Farm

  13: function Re-StartSPTimerService

  14: {

  15:     try

  16:     {

  17:         $spFarm=Get-SPFarm

  18:         $spfTimerServcicesInstance=$spFarm.TimerService.Instances

  19:         foreach ($spfTimerServiceInstance in  $spfTimerServcicesInstances)

  20:         {

  21:             Write-Host "Re-starting the instance " $spfTimerServiceInstance.TypeName

  22:             $spfTimerServiceInstance.Stop()

  23:             $spfTimerServiceInstance.Start()

  24:             Write-Host "SharePoint Timer Service Instance" $spfTimerServiceInstance.TypeName "Re-Started"

  25:         }

  26:     }

  27:     catch [System.Exception]

  28:     {

  29:         write-host -f red $_.Exception.ToString()

  30:     }

  31: }

  32:  

  33: Start-SPAssignment –Global

  34: #Calling the function

  35: Re-StartSPTimerService

  36: Stop-SPAssignment –Global

  37:  

  38: Remove-PSSnapin Microsoft.SharePoint.PowerShell

Como veis, una vez accedemos a la granja con Get-SPFarm, resulta muy sencillo obtener todas las instancias del servicio de temporizador a través de TimerService.Instances y re-iniciar cada instancia llamando a los métodos Stop() y Start().

  • Haciendo uso del MO de Servidor quedaría (fijaros que es análogo):
   1: SPFarm spfFarm = SPFarm.Local;

   2: SPServiceInstanceDependencyCollection sptsiCollection = 

   3:     spfFarm.TimerService.Instances;                

   4:  

   5: foreach (SPTimerServiceInstance spiTimerService in sptsiCollection)

   6: {

   7:     Console.WriteLine("Re-Iniciando la instancia {0}", spiTimerService.TypeName);

   8:     spiTimerService.Stop();

   9:     spiTimerService.Start();

  10:     Console.WriteLine("Instancia del servicio {0} re-iniciada ", spiTimerService.TypeName);

  11: }

Office 365: Working with Office 365 Midsize business plans (I)!

So far, I haven’t had the opportunity to evaluate Office 365 Midsize Business plans (http://office.microsoft.com/es-es/business/office-365-mediana-empresa-software-de-productividad-FX103037683.aspx) in order to know key differences when comparing these plans with Office 365 Small Business plans and Enterprise ones. Therefore, to get familiarized with this kind of plans, I decided to create a new trial subscription so in this way I could know what it’s included and what it’s not included in Office 365 Midsize Business plans:

  • Once you complete the initial setup process for the new Office 365 Midsize business plan, you will be redirected to the Office 365 home page (https://portal.office.com/Home). There you will see that all the services included in the plan (SharePoint Online, Exchange Online, Lync Online) are being provisioned.
  • If you access to the Office 365 Administration page, you will see you have the same experience you have when working with Office 365 Enterprise plans.
image image
  • Similarly, if you navigate to SharePoint Online Administration you will see you have the same experience you have for Office 365 Enterprise plans.

image

To finish this post, let me remember you that’s really important to review SharePoint SW boundaries and limits. For Office 365 Midsize business, you can find such limits in the following link:http://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/sharepoint-online-software-boundaries-and-limits-HA102694293.aspx#_SharePoint_Online_for_1

Office 365: Trabajo con planes de tipo Mediana Empresa (I)!

Uno de los planes de Office 365 con los que no había tenido oportunidad de “trastear” es el de Mediana Empresa (http://office.microsoft.com/es-es/business/office-365-mediana-empresa-software-de-productividad-FX103037683.aspx), por lo que para familiarizarme con la experiencia de configuración y uso de este tipo de planes decidí crear una suscripción (otra más, y van…):

  • Una vez se completa el proceso inicial de alta de la suscripción en el que tenemos que especificar los datos necesarios para la misma (incluyendo el dominio), se muestra la página de inicio de Office 365 en la que podemos ver que los servicios están siendo provisionados.
  • Si accedemos a la sección general de administración de este tipo de suscripciones, podremos ver que la experiencia es la misma que para planes de tipo empresarial.
image image
  • Si accedemos a la sección de administración de SharePoint Online, veremos que la historia se repite y que tenemos la misma experiencia de administración que para planes de tipo empresarial:

image

Para finalizar este post, os recuerdo que es muy importante revisar los límites SW de SharePoint Online. Para planes de tipo Mediana Empresa, los límites que aplican los podéis encontrar en: http://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/sharepoint-online-software-boundaries-and-limits-HA102694293.aspx#_SharePoint_Online_for_1

[Eventos]: JavaScript para desarrolladores SharePoint!

Desde SUGES volvemos con ganas y las pilas cargadas después de las vacaciones y os proponemos un nuevo e interesante WebCast en el que hablaremos sobre JavaScript y SharePoint. En la última versión de SharePoint, JavaScript se ha convertido en una tecnología y plataforma que todo desarrollador de SharePoint debe de conocer. En este WebCast veremos algunas de las características que tiene JavaScript como lenguaje de programación. Repasaremos algunos de los errores más comunes que realizamos los desarrolladores de C# cuando  empezamos a utilizar JavaScript. Además veremos cómo integrarlo en nuestros desarrollos de SharePoint haciendo uso de varios Frameworks como son AngularJS, ExtJS, Knockoutjs, MustacheJ etc.. Y finalmente hablaremos sobre TypeScript  y cómo podemos integrarlo en nuestros desarrollos, veremos ventajas e inconvenientes sobre el mismo.

Datos de Interés

  • Nivel: 300
  • Audiencia: Desarrolladores, Jefes de Proyecto, Arquitectos de Soluciones.
  • Fecha: Martes 23 de Septiembre a las 17:00.
  • Ponente: Adrián Díaz es Ingeniero de Informática por la Universidad Politécnica de Valencia. MVP de SharePoint Server desde Enero de 2014. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnologías Microsoft más de 10 años y desde hace 3 años está centrado en el desarrollo sobre SharePoint. Actualmente trabaja en el departamento de desarrollo de ENCAMINA una consultora informática de Valencia que se destaca por realizar soluciones basadas en Tecnología Microsoft, principalmente en SharePoint. Además es colaborador habitual de la revista digital de habla hispana CompartiMOSS dedicada a SharePoint.

image

SharePoint 2013: Como crear, actualizar y borrar property bags con PowerShell (III)!

Siguiendo con la serie de scripts sobre como crear, actualizar y borrar property bags con PowerShell, en esta ocasión os dejo un script que permite crear y actualizar property bags en distintos ámbitos (Granja y Colección de Sitios) leyendo toda la información (Ámbito, Clave para la property bag y valor) de un archivo .csv. Antes de empezar os dejo las referencias a los posts previos de esta serie:

Para que el script os funcione sin problemas, tenéis que crear un CSV con la siguiente estructura:

image

Y el script en sí, que podéis descargaros de , es el siguiente: How to create and update property bags from a CSV file

   1: ############################################################################################################################################

   2: # This Script allows to create & update property bags at different scopes

   3: # Required parameters

   4: #    ->$sInputFile: CSV file that stores the property bags to be created / updated

   5: #    ->$sSiteCollectionUrl: Site Collection where Property Bags are created / updated.

   6: ############################################################################################################################################

   7:  

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

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

  10:  

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

  12:  

  13: #

  14: #Function that reads the CSV file containing the Property Bags

  15: #

  16: function ReadPropertyBagsFromFile

  17: {

  18:     param ($sInputFile,$sSiteCollectionUrl) 

  19:     try

  20:     {

  21:         $bFileExists = (Test-Path $sInputFile -PathType Leaf) 

  22:         if ($bFileExists) { 

  23:             "Loading $sInputFile for processing..." 

  24:             $tblData = Import-CSV $sInputFile            

  25:         } else { 

  26:             Write-Host "File $sInputFile not found. Stopping loading process !" -ForegroundColor Red

  27:             exit 

  28:         }

  29:         Write-Host "Creating/Updating Property Bags ..." -ForegroundColor Green    

  30:         foreach ($fila in $tblData) 

  31:         {  

  32:             #$fila       

  33:             $sPBScope=$fila.PropertyBagScope.ToString()            

  34:             $sPBKey=$fila.PropertyBagKey.ToString() 

  35:             $sPBValue=$fila.PropertyBagValue.ToString()

  36:         #Calling the function that creates/updates the property bags

  37:             CreateUpdatePropertyBag -sPropertyBagScope  $sPBScope -sPropertyBagKey $sPBKey -sPropertyBagValue $sPBValue

  38:         }   

  39:     }

  40:     catch [System.Exception]

  41:     {

  42:         write-host -f red $_.Exception.ToString()

  43:     }

  44: }

  45:  

  46: #

  47: #Function that creates/updates each property bag

  48: #

  49: function CreateUpdatePropertyBag

  50: {

  51:     param ($sPropertyBagScope,$sPropertyBagKey,$sPropertyBagValue)

  52:     try

  53:     {              

  54:         switch ($sPropertyBagScope) 

  55:         { 

  56:         "Farm" {

  57:             $spfFarm=Get-SPFarm

  58:             $sPropertyBag=$spfFarm.Properties[$sPropertyBagKey]

  59:             if($sPropertyBag -eq "")

  60:             {  

  61:                 Write-Host "Adding Property Bag $sPropertyBagKey ato the farm!!" -ForegroundColor Green

  62:                 $spfFarm.Properties.Add($sPropertyBagKey,$sPropertyBagValue)           

  63:             }else{

  64:                 Write-Host "Updating Property Bag $sPropertyBagKey in the granja" -ForegroundColor Green

  65:                 $spfFarm.Properties[$sPropertyBagKey]=$sPropertyBagValue

  66:             }

  67:             $spfFarm.Update()            

  68:             $sPropertyBag=$spfFarm.Properties[$sPropertyBagKey]

  69:             Write-Host "Property bag $sPropertyBagKey has a value $sPropertyBag" -ForegroundColor Green

  70:             } 

  71:         "WebApplication" {

  72:             #Code for Web Application Property bags here

  73:             }

  74:         "SiteCollection" {

  75:             $spSite=Get-SPSite -Identity $sSiteCollection

  76:             $spwWeb=$spSite.OpenWeb()

  77:             $sPropertyBag=$spwWeb.AllProperties[$sPropertyBagKey]

  78:             if($sPropertyBag -eq "")

  79:             {  

  80:                 Write-Host "Adding Property Bag $sPropertyBagKey to $sSiteCollection !!" -ForegroundColor Green

  81:                 $spwWeb.AllProperties.Add($sPropertyBagKey,$sPropertyBagValue) 

  82:             }else{

  83:                 Write-Host "Updating Property Bag $sPropertyBagKey for $sSiteCollection" -ForegroundColor Green            

  84:                 $spwWeb.AllProperties[$sPropertyBagKey]=$sPropertyBagValue

  85:             }           

  86:             $spwWeb.Update()            

  87:             $sPropertyBag=$spwWeb.AllProperties[$sPropertyBagKey]

  88:             Write-Host "Property bag $sPropertyBagKey has a value $sPropertyBag" -ForegroundColor Green

  89:             }

  90:         "Site" {

  91:             #Código para Property Bags de Sitio aquí

  92:             } 

  93:         "List" {

  94:             #Código para Property Bags de Lista aquí

  95:             }           

  96:         default {

  97:             Write-Host "Requested opeartion is not valid!!" -ForegroundColor DarkBlue            

  98:             }

  99:         }        

 100:     }

 101:     catch [System.Exception]

 102:     {

 103:         write-host -f red $_.Exception.ToString()

 104:     }

 105: }

 106:  

 107: #Departamentos

 108: $ScriptDir = Split-Path -parent $MyInvocation.MyCommand.Path

 109: $sInputFile=$ScriptDir+ "\PropertyBags.csv"

 110: $sSiteCollection="http://<YourSiteCollection>"

 111:  

 112: Start-SPAssignment –Global

 113: #Calling the function

 114: ReadPropertyBagsFromFile -sInputFile $sInputFile

 115:  

 116: Stop-SPAssignment –Global

 117:  

 118: Remove-PSSnapin Microsoft.SharePoint.PowerShell