Mostrando las entradas con la etiqueta Soluciones de Granja. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Soluciones de Granja. Mostrar todas las entradas

sábado, 30 de abril de 2016

Asignando valor predeterminado a una propiedad de un elemento Web de forma declarativa SharePoint 2013

Asignando valor predeterminado a una propiedad de un elemento Web de forma declarativa SharePoint 2013





Para agregar un valor predeterminado a una propiedad de un elemento web debemos de ir al código de servidor o Code Behind del control de usuario, como se muestra en la imagen de abajo.

Debemos definir una propiedad pública de la clase del control de usuario.  Y agregar los atributos: WebBrowsable,WebDisplayName, WebDescription,Category y Personalizable, como se muestra en el código de abajo.

Luego vamos a definir un módulo dentro del proyecto, esto nos permitirá adicionar páginas y elementos web a las páginas cuando se instale la solución y agregar el valor predeterminado a la propiedad.




Luego creamos una Application Page como plantilla para entonces crear una instancia de la página donde definamos el elemento web.




En la página se define las zonas de los elementos web para poner distribución de los elementos Web dentro de la página.




Ahora vamos a modificar el archivo elements.xml donde se define la instancia de la página y los elementos web dentro de ella.


     


Y través del nodo properties, definimos los nombres de cada propiedad con su respectivo valor.

Y eso es todo!

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

miércoles, 9 de diciembre de 2015

Como descargar una solución de granja instalada en SharePoint 2010 y 2013

Cómo descargar una solución de granja instalada es un requerimiento muy usual cuando se esta migrando versiones de SharePoint, por ejemplo de 2010 a 2013.  O bien migrando de un conjunto de servidores a otros por temas de problemas con el existente.

image

Bueno antes de resolver el tema hablemos un poco de las soluciones de granja.  Estas son empacadas en paquetes con extensión WSP, aunque no son las únicas ya que las soluciones Sandbox, las plantillas de sitio y las famosas apps utilizan este formato de paquete para que puedan ser ejecutados desde SharePoint.  Estos paquetes no son mas que empacados que contiene un conjunto de documentos y archivos binarios que componen la solución de granja o Farm Solution.

Es esto posible si por medio de PowerShell podemos realizar esta tarea que en versiones 2007 era impensable.

$FolderPath = "c:\Solutions"

foreach ($solution in Get-SPSolution) 

    $id = $Solution.SolutionID 

    $title = $Solution.Name 

    $filename = $Solution.SolutionFile.Name 

    $solution.SolutionFile.SaveAs("$FolderPath\$filename") 

}

 

Si se migra el paquete de 2010 a 2013 y este no tiene depedencias que hayan variado en la versión 2013, puede intentar el siguiente comando luego de extraer el paquete wsp de la granja SharePoint 2010.

Install-SPSolution –Identity Solution.wsp –GACDeployment –CompatibilityLevel All e intenar ejecutar el sitio en modo 2010.

https://technet.microsoft.com/en-us/library/dn673579.aspx

jueves, 8 de octubre de 2015

Ojo con las dependencias al desinstalar una solución de granja en SharePoint

Las soluciones de granja de SharePoint siguen siendo requeridas por los clientes con instalaciones On Premises.  Como es una solución de granja afecta a toda la granja de SharePoint y esto incluye las Aplicaciones Web configuradas en la granja a pesar que cuando lo instalé indique que era sobre una aplicación Web en especifico.

El Escenario

AjaxControlToolKit.dll es una libreria que nos ayudará a mejorar los controles disponibles en asp.net y como empresa nosotros la utilizamos en las aplicaciones que entregamos a nuestros clientes sobre SharePoint Server.  Esta libreria no le va bien instalada en el Global Assembly Cache, es mejor instalarla en el directorio bin de la aplicación Web elegida.

Esto lo hacemos especificando en el Package del Proyecto de SharePoint Visual Web Part que incluya el ensamblado a nivel de la WebApplication, como se muestra en la imagen de abajo.

image

El Problema

En esta granja de SharePoint habian otras aplicaciones Web donde habiamos instalado otras soluciones utilizando la libreria AjaxControlToolKit.dll.   Lo que sucedio fue que al actualizar la solución en la granja la desinstalamos y la volvimos a instalar, a través de los comandos uninstall-SPSolution y Remove-SPSolution, eliminó de las otras aplicaciones Web la libreria AjaxControlToolKit.dll.  Y aunque volvimos a instalar la solución que estabamos probando con add-SPSolution y install-SPSolution, no volvio a instalar la libreria en las demás aplicaciones Web.

Los comandos ejecutados para re-instalar fueron los siguientes:

PS C:\> Uninstall-SPSolution –Identity infoware.doc.publicadosui.wsp 

PS C:\> Remove-SPSolution -Identity infoware.doc.publicadosui.wsp

PS C:\> Add-SPSolution –LiteralPath c:\instaladores\infoware.doc.publicadosui.wsp

PS C:\> Install-SPSolution -Identity infoware.doc.publicadosui.wsp -WebApplicat
on http://sitioprueba -GACDeployment

La Solución

Al repotarnos el error el usuario final, lo que hicimos fue copiar la libreria AjaxControlToolKit.dll en las aplicaciones Web que nos reportaron el error.  La solución fue sencilla, pero nos sorprendió la forma de comportarse al desintalar la solución de granja sobre el resto de aplicaciones Web.

Lexión Aprendida

A pesar que dirigimos la instalación a una aplicación Web por cuanto es una solución de Granja necesitamos realizar un respaldo del directorio bin y validar las librerias dependientes que coicidan con la solución que estamos instalando nosotros, y validar que continuen funcionando como lo solian hacer.

Code4Fun & Share2KeepBusy,  Smile

Juan Manuel Herrera Ocheita

lunes, 27 de julio de 2015

Interminable error Could not load file or assembly en una solución de granja de SharePoint 2013

Este error nunca terminaba y se alternaba de dlls referenciados indicando diferentes versiones que no eran las referenciadas, por más que lo reinstale, borre el cache de asp.net, reinicie el IIS no terminaba, hasta que encontré el único consejo que en mi caso si me sirvió, el cual es el siguiente:

Copia el DLL del problema o bien todos los que hace referencia tu solución, en mi caso eran dos al directorio bin de la carpeta debug del proyecto de SharePoint y con ello el problema si desaparece.

En mi caso los DLL´s que tenia referenciados eran:

Aspose.words.dll y AjaxControlToolKit.dll.

Y esto es porque el directorio bin tiene precedencia del GAC en la aplicación Web siempre y cuando no se especifique la versión. 

Una de las ventajas de copiar el DLL en el directorio bin de la aplicación Web que se va utilizar es que no tiene que reiniciar el servidor y el riesgo se reduce porque solo afecta la aplicación Web que le interesa.  Esto también puede ser una desventaja si existen varias Aplicaciones Web que utilizan el mismo DLL.

Más información en: http://www.hanselman.com/blog/BINDeployingASPNETMVC3WithRazorToAWindowsServerWithoutMVCInstalled.aspx

Así que amigos mi recomendación es copien los DLL en el directorio Bin de la Aplicación Web que necesitan y afecten el servidor lo menos posible, tomen en cuenta que si el dll es utilizado en otras aplicaciones Web deberán actualizarlas también allí, pero esto es mejor a mi parecer que utilizar el GAC ya que este debe de actualizarse el cache reiniciando el IIS y algunas veces hasta el servidor mismo.

Code4Fun!,

Juan Manuel Herrera Ocheita