sábado, 23 de octubre de 2010

Cómo agregar varios elementos Web en una sola Característica en SharePoint

Cuando hay elementos Web relacionados unos con otros y se desea que en una sola característica o Feature se incluyan todos los elementos Web  dentro de la galería de Elementos Web.

Vamos a utilizar WSPBuilder para los ejemplos, ya que nos permite de forma sencilla la manipulación de los archivos xml sin necesidad de crearlos desde cero.

Para este ejemplo voy asumir que ya han realizado soluciones en SharePoint y han utilizado la herramienta WSPBuilder (que es herramienta excelente, gratuita y esta en el sitio Codeplex).

Desde Visual Studio 2008  seleccionamos la opción para creamos un nuevo proyecto y buscamos crear una solución en Blanco.

image

Luego dese la solución en el Explorador de soluciones seleciconamos agregar un nuevo proyecto y seleccionamos la plantilla WSPBuilder Project

image

Luego seleccionamos crear un nuevo elemento dentro del proyecto y seleccionamos Visual Web Part de las plantillas de WSPBuilder.

image

Luego levantara una nueva venta para la información de la feature, llenela y mantenga el alcance a nivel de Colección de Sitios o Site.  Ya que las galerías de elementos Web estan a este nivel.

image

La opción de Even handler dejela activada ya que creerá el el archivo de código EvenReceiver asociado a la feature.xml.  Luego haga clic en siguiente

image

La opción Removal code nos agregará a la clase  de tipo SPFeatureReceiver el código para eliminar los elementos Web al momento de desactivar la feature. Para finalizar presione Finish.  Para finalizar tendremos una estructura como la que se muestra abajo.

image

En esta estructura nos enfocaremos en los archivos xml feature y elements.  Pero antes vamos a crear el segundo elemento Web.quitando el cheque o palomita de las opciones antes mencionadas ya que no las vamos a necesitar, de tal forma que nos mostrará una estructura parecida a la siguiente:

image

Debemos mover los archivos con extensión webpart y cs  del elemento Web B para el directorio del elemento Web A.

Ahora vamos a abrir el archivo feature.xml del elemento Web B:y vamos a copiar la siguiente línea

<ElementFile Location="ElementoWebDemoB.webpart" />

Al archivoe feature.xml del elemento Web A.y esto dejaría la estructura del archivo de la siguiente forma:

image

Luego abramos el archivo elements.xml del elemento Web B.y copiamos las líneas de declaración de la etiqueta <File/> y la agregamos al archivo elements.xml de el elemento Web A.

image

Debería tener un resultado como se muestra en la imagen de abajo:

image

Aproveche a etiquetar el grupo al cual va asociar los elementos Web.  Para este ejemplo escribí Demo  (luego veremos los resultados).  Para finalizar elimine el directorio del elemento Web B. y obtendrá la siguiente estructura de la solución:

image

Y esto es todo ahora compilamos (Build Proyect), construimos la solución (Build WSP) y la instalamos. (Deploy)

Ahora vamos a SharePoint activamos la feature y editamos un página para ver los resultados:

image

image

Y eso es todo!. 

En este artículo vimos como agregar varios elementos Web a una sola Feature, detalles que hay que tomar en cuenta y gracias a la herramienta de WSPBuilder podemos hacerlo de forma sencilla y rápida.

SharePointCode4Fun!,

Manolo Herrera

miércoles, 20 de octubre de 2010

SharePoint 2010: De Plantillas de Sitio a Soluciones Cosas a tomar en cuenta en la migración.

Las plantillas de sitios en SharePoint 2007 ahora convenientemente son soluciones en SharePoint 2010.   Tiene sus ventajas como el poder incluir código, guarde el estado de cada elemento dentro del sitio entre otros.  Pero todo cambio tiene sus inconvenientes en alguna parte que se debe de tomar en cuenta especialmente cuando se esta migrando plantillas de 2007 a soluciones de 2010.

La primera noticia es que en le proceso de migración provisto por Microsoft no hay chance de migrar las plantillas de Sitios de 2007 a 2010 de forma automática.  Pero no todo esta perdido, ya que se puede resolver manualmente.  El procedimiento es el siguiente:

1) Antes de la migración en el servidor SharePoint 2007, cree un sitio limpio basado en la plantilla que desea migrar.

2) Realice la migración ya sea por el método In-Place o database attach upgrade.

3) Luego de realizada la migración del contenido de base de datos vía Mount-SPContentDatabase.  Ingrese al sitio que creo basado en la Plantilla que no esta migrada y como lo hacia en 2007 cree la plantilla basado en este sitio ya en 2010.  Pero ya  no existe una galería de plantilla de sitios ahora existe una galería de Soluciones y allí encontrará la solución que acaba de crear.

Otra cosa que debe de tomar en cuenta es que debido a que este procedimiento de arriba crea una solución y no una plantilla la Propiedad FilterCategories de la clase SPWebTemplate es nula ya que al momento de crear la solución en 2010 no pregunta, ni tampoco le asigna ningún valor.  Entonces si se tiene algún código como obtener las plantillas disponibles y filtrarlas por esta propiedad tendrá que buscarse otra solución para 2010, como la muestro en la imagen de abajo:

image

Básicamente dispuse que el valor de la propiedad Name de la clase SPWebTemplate  tenga los valores Plantilla y Reuniones.  Con eso resolví el tema, y continué mi proceso de migración.

Migrate4Fun!,

Manolo

viernes, 8 de octubre de 2010

Webcast hoy sobre Servicios de Conectividad de Negocios en SharePoint 2010

Hoy los invito a un evento MSDN en línea para que conversemos sobre los Servicios de Conectividad de Negocios en SharePoint 2010.  Los dejo abajo con la información del evento:

Webcast TechNet: Descripción general de los Servicios de conectividad de negocios

Id. de evento: 1032462160

Idiomas:
Español.

Productos:
Microsoft Office,Microsoft Office InfoPath,Microsoft Office SharePoint Server,Microsoft SharePoint 2010 technology.

Público:
Generalista de IT.

Moderador(es):

Manolo Herrera

Duración:
60 Minutos

Fecha de inicio:

viernes, 08 de octubre de 2010 02:00 p.m. Bogotá

Información general del evento

Los Servicios de conectividad de negocios (BCS) – la evolución del Catálogo de datos de negocios, es una característica clave de SharePoint 2010.  En esta sesión analizaremos las nuevas características de esta versión.  BCS le permite traer datos externos en SharePoint y Office, utilizar y autorizar que los usuarios finales obtengan una visión de los datos subyacentes de una manera reutilizable.  Todo esto se realiza dentro del navegador con el soporte de la operación Crear/Leer/Actualizar/Eliminar (CRUD), integración más fuerte con las aplicaciones de cliente de Office y mejores herramientas para modelar entidades de negocios.  Aprenderá sobre las mejoras importantes BCS y verá un demo detallado de cómo construir una solución declarativa utilizando SharePoint Designer, InfoPath Designer y SharePoint SDK, sin usar un desarrollador o escribir cualquier código.  La solución que le mostraremos lo conectará a sistemas back-end tanto para presentar datos como para permitir la interacción con estos, desde las aplicaciones SharePoint y Office.

Suscríbete aquí:

https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032462160&EventCategory=4&culture=es-AR&CountryCode=AR

Connect4Fun!,

Manolo Herrera

martes, 5 de octubre de 2010

Migrando Soluciones SharePoint V 3.0 (2007) a V 4.0 (2010) con WSPBuilder

Si tiene proyectos creados con plantillas de proyecto en WSPBuilder que necesita migrar a SharePoint 2010, le tengo buenas noticas, la migración no es tan dolorosa como podría pensar para un plataforma de 64 bits  como lo es SharePoint 2010.

Primero debe de descargar la versión WSPBuilder Extensions 2010 BETA 1.4 en el sitio de codeplex y la versión  CabLib.dll for x64 systems (version: 10.5)

Si tiene instalado una versión distinta debe de desinstalarla primero y luego instalar esta.

Genere nuevamente la solución y luego copie dentro del directorio de la solución el CabLib.dll de 64 bits que descargo y el WSPTools.BaseLibrary.dll o bien instale esta versión en el servidor de SharePoint 2010 para no estar copiando este archivo por cada solución que desea instalar.

El directorio debería de tener un contenido parecido al siguiente:

image

Para finalizar ejecute el cmd como administrador para evitar mensajes de error.

Con eso debería poder ejecutar el batch file deploywithwspbuilder

Migrate4Fun!,

Manolo Herrera

Ejecución de programas externos desde un portal en SharePoint

Recientemente este fue un requerimiento de un cliente y aunque hay información en la red , no es muy exacta por lo que les describo abajo mi experiencia con este requerimiento que pueda necesitarlo.

La idea es que podamos ejecutar algún programa del lado del cliente en el momento que el usuario desde el navegador haga clic sobre un enlace de nuestro portal en SharePoint.

Para ello vamos a utilizar de nuestro amigo Java script y de un ActiveX Control llamado WScript.Shell.

El código Java script que podemos incrustar en nuestro elemento web es el siguiente:

image

Donde comando es una cadena de caracteres o string donde envío el comando a ejecutar de la siguiente manera:

<asp:LikButton id=”Enlace” runat=”server” Text=”Enlace de Prueba” OnClientClick=”ProgramaExterno(‘cmd /c c://Windows//notepad.exe /parametros’);return true;”  OnClick=”Enlace_OnClick”/>

Expliquemos en detalle el código arriba escrito; OnClientClick es el código que se ejecutará del lado del navegador en la máquina del cliente, no es necesario colocar las etiquetas de Java script ya que eso esta implícito. Es importante ejecutarlo desde la línea de comando con cmd y pasarle el parámetro /c para indicarle que finalice al ejecutar el comando  y por ultimo aunque notepad no necesita la ruta completa otros programas si lo necesitarán y la ruta debe definirse con doble diagonal. Es Importante también retornar verdadero para que se ejecute del lado del servidor cualquier otro código que necesite.

Para finalizar verifique que el navegador tiene habilitado el uso de Java script y la ejecución de programas externos.

Para realizar una prueba antes de escribir código utilice el elemento Web Editor de Contenido y ejecutar el código desde Editor de código fuente.

Recuerde Code4Fun!,

Manolo Herrera

lunes, 4 de octubre de 2010

Conectando Oracle con SharePoint

Pueda que este sea un requerimiento interno o de un cliente, la dificultad radica en la configuración de Oracle y que es una plataforma no nativa de Microsoft, es decir no espere que funcione tan fácil como lo hace desde MS-SQL Server.

3 aspectos que debe de tomar en cuenta:

1) Necesita para todas las versión tener instala una versión cliente (entre mas reciente mejor) donde se va ejecutada la consulta, que en nuestro caso es el servidor de SharePoint.

2) Necesita lidiar con los archivos de configuración de Oracle (Extensión .ORA), si utiliza cualquier librería distinta de ODBC.

3) Elegir una librería para conectarse a Oracle y esta esta relacionada directamente con la versión cliente instalada y con la configuración de los archivos de Oracle.

Las librerías disponibles y sus implicaciones son las siguientes:

Librería

Versión Cliente Requerida

Comentarios

ODP.NET
Oracle.DataAcces.dll
Oracle 9i o superiorNecesita agregar en archivos .ORA palabra .WORLD
System.Data.OracleClientOracle 9i o superiorNecesita agregar en archivos .ORA palabra .WORLD
Oledb for OracleOracle 7.3.3.4.0 o superiorNecesita eliminar en archivos .ORA la palabra .WORLD
Odbc for OracleOracle 8i o superiorNecesita eliminar en archivos .ORA la palabra .WORLD

Aunque es obvio es mejor mencionarlo, verifique los permisos asignados a la cuenta a la cual le dieron acceso, es común que olviden otorgárselos.

Verificar el registro de Windows en la instalación de Oracle que tenga el valor en la llave American_America, ya que otra versión da problemas:

RegistroOracle

Si necesita instalar el cliente de Oracle para OPD.Net le recomiendo el cliente 10g versión 10.2.0.1.0 y los componentes necesarios son:

ComponentesCliente

ComponentesCliente1

ComponentesCliente2

Si no quiere lidiar con el archivo de configuración y solo lo va utilizar para leer información de la base de datos que no es muy extensa o que no tiene columnas de manejo especial, mi recomendación es que dese con el método mas simple pero efectivo utilice ODBC. Abajo una cadena de conexión para ODBC:

Driver={Microsoft ODBC for Oracle}; CONNECTSTRING= (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[ip address])(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=[servicename])); uid=[user id]; pwd=[password];

Referencias:

Oracle Data Provider .NET for Developers

Limitations of Microsoft Oracle ODBC Driver and OLEDB Provider

Microsoft OracleClient Deprecated La recomendación de Microsoft es utilizar las librerías que tiene Oracle o terceros para desarrollar con .Net, por lo que le recomiendo busque estas librerías y no las de Microsoft que estuvieron disponibles en su momento.

Oracle4Fun!,

Manolo Herrera