martes, 31 de julio de 2012

Usando SPMetal para SharePoint 2010


 

Introducción

SharePoint 2010 incluye soporte para LINQ el cuál puede ser usado para acceder a Listas / Bibliotecas sin necesidad de usar las complejas CAML queries. SPMetal es una herramienta que se usa para crear las Entity Classes que hacen posible la interacción de las Listas / Librerías mediante LINQ.

Objetivos

El objetivo de este artículo es explicar cómo usar SPMetal para generar las Entity Classes para un proyecto en particular.

Requerimientos

Software Utilizado

El comando SPMetal está dentro del paquete SharePoint Foundation 2010. Por lo cual, para su utilización se requiere tener instalado:

SharePoint Foundation 2010 (o, por supuesto, también SharePoint Server 2010).

Material Elaborado

Descripción

SPMetal es un comando similar al SQLMetal. Mientras el segundo se utiliza para generar las Entity Classes para las tablas de Base de Datos de SQL Server, el primero se utiliza para generar las Entity Classes de las Listas / Librerías de SharePoint basándose en los Content Types (Tipos de Contenido) asociados.

Ubicación

La herramienta se puede encontrar en el directorio de instalación de SharePoint, %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\14\BIN.

Parámetros / Opciones

SPMetal utiliza una serie de opciones básicas para la generación de las clases:

Opción web:

Se usa para especificar de que sitio se generarán las clases

SPMetal /web:http://myserver

Cuando el comando de arriba es ejecutado, SPMetal va a buscar todas las Listas del Sitio (parámetro web) y generará una clase por cada una y por cada Content Types (Tipos de Contenido) asociados.

Opciones code y language:

La opción language tiene dos valores válidos: csharp y/o vb y es usado para especificar con qué lenguaje se generaran las clases.
La opción code es usada para especificar la ruta y el nombre del archivo de salida. Si no se especifica entonces la opción language es requerida y se toma como salida por defecto la Consola de Windows. Si está especificado, la opción language pasa a ser opcional dado que SPMetal inferirá el lenguaje basándose en la extensión del archivo.

SPMetal /web:http://myserver /code:c:\myproject\spmetal.cs

Ejecutando el comando anterior se generarán las clases en el archivo SPMetal.cs de la carpeta C:\MyProject. Archivo SPMetal.cs:

   
//------------------------------------------------------------------------------
// 
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.5420
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// 
//------------------------------------------------------------------------------
 
using System;
 public partial class SpmetalDataContext : Microsoft.SharePoint.Linq.DataContext {
 
 #region Extensibility Method Definitions
 partial void OnCreated();
 #endregion
 
 public SpmetalDataContext(string requestUrl) : 
   base(requestUrl) {
  this.OnCreated();
 }
 
 /// 
 /// This Document library has the templates to create 
 /// Web Analytics custom reports for this site collection
 /// 
 [Microsoft.SharePoint.Linq.ListAttribute(Name="Customized Reports")]
 public Microsoft.SharePoint.Linq.EntityList CustomizedReports {
  get {
   return this.GetList("Customized Reports");
  }
 }
 
 /// 
 /// Use the style library to store style sheets, such as CSS or XSL files. 
 /// The style sheets in this gallery can be used by this site or 
 /// any of its subsites.
 /// 
 [Microsoft.SharePoint.Linq.ListAttribute(Name="Style Library")]
 public Microsoft.SharePoint.Linq.EntityList StyleLibrary {
  get {
   return this.GetList("Style Library");
  }
 }
}

NOTA: El archivo anterior variará dependiendo de las Listas y Bibliotecas generadas dentro del sitio como así también del template del mismo. Se adjuntó solamente para ejemplificar el formato del archivo generado por el comando.

Enlaces

Documentación

SPMetal MSDN
Using SPMetal - CodeProject

Software

SharePoint Foundation 2010

SharePoint Server 2010

 

En Baufest, como parte de nuestras buenas practicas en el desarrollo de productos para Sharepoint, solemos usar esta herramienta para facilitar escribir codigo durante el desarrollo y mantenimientos futuros.

Gracias Juan Pablo Addeo por haber colaborado con este artículo.

Seguinos en Twitter
Seguir a @baufest
Seguir a @baufestusa

viernes, 27 de julio de 2012

Vista previa de la plataforma Nintex para Sharepoint 2013


Como Microsoft trabaja en la liberación de SharePoint 2013, Nintex se está ocupando en trabajar en colaboración con el equipo de Microsoft SharePoint para aprovechar mejor sus capacidades y la nueva plataforma. Mantenerse cerca de la acción y el estudio de la nueva plataforma y modelos de entrega los coloca en una buena posición para ofrecer soluciones de mercado.

Para empezar, se puede evaluar SharePoint 2013 para probar la previsualización de la plataforma de Nintex Workflow SharePoint 2013, disponible a través de Microsoft SharePoint Store durante el periodo de public preview de Office 2013. Es una aplicación basada en la nube, alojado en Windows Azure, basada en HTML 5 que ofrece un método rápido y sencillo de diseño de flujos de trabajo. Es 100% gratis, 100% basado en la nube y no requiere ningún paso adicional de instalación on site. Realmente es así de sencillo!

Nintex no es ajeno al desarrollo de la nube, ya que fue pionera en servicios basados en cloud a través de Nintex Live (hoy ya está disponible para los usuarios de Nintex Workflow 2010 y Nintex Workflow 2007). La plataforma de SharePoint 2013 nos permite ofrecer la misma tecnología de flujo de trabajo de alta productividad, fácil y rápido en los sitios de SharePoint tanto on site como en línea.
La previsualización de plataforma de Nintex Workflow es sólo eso - un ejemplo de compromiso de Nintex para la nueva plataforma SharePoint y es un testimonio de la capacidad para desarrollar en él. En o cerca del momento de que SharePoint 2013 es liberado, Nintex planea lanzar una nueva versión de Nintex Workflow que incluirá la nueva funcionalidad de flujo de trabajo y funciones que aprovechan al máximo la plataforma SharePoint 2013, para una gama de opciones de implementación. Poco a poco van a anunciar próximos lanzamientos y proporcionar más información.

Esta plataforma Nintex Workflow está disponible hoy para fines de pruebas. No está diseñado para uso comercial y producción, así que por favor asegúrese de leer el acuerdo de licencia de usuario final disponibles a través de nuestro sitio web www.nintex.com/platformpreview



En Baufest, como partners en Argentina de los productos Nintex, estamos ansiosos por probar esta nueva plataforma y poder aplicarla en nuestros futuros proyectos.



Seguinos en Twitter
Seguir a @baufest
Seguir a @baufestusa

miércoles, 18 de julio de 2012

Microsoft's 'Napa': Herramientas para construir aplicaciones para el nuevo Office, SharePoint

 

Resumen: Para quienes quieran vender sus aplicaciones add-in en el Office Store seguramente querrán darle una mirada al preview de la nueva herramienta de Microsoft.

Microsoft libero el 17 de Julio a un preview de un build de la nueva herramienta con el codename "Napa," que apunta a la construccion de esas aplicaciones para las siguientes versiones de Office y SharePoint.

clip_image002

Office 365 development tools (Napa) esta diseñado para trabajar con el “Nuevo modelo de aplicaciones Cloud” en la ola de productos de Office 15, de acuerdo a lo que dijo en su blog el Vicepresidente de Microsoft Corporate Jason Zander. Este nuevo modelo permite a las aplicaciones ser hosteadas en SharePoint, Windows Azure Web sites o el servidor del usuario.
Las nuevas aplicaciones Office apps y add-ins – con el codename "Agaves" – pueden ser hosteadas en la nube y/o publicadas y vendidas a traves del nuevo Office Store. Los usuarios Enterprise IT tambien pueden distribuir privadamente aplicaciones “Napa” via aun catalogo interno.

De las definiciones de las Office apps cabe señalar lo siguiente . Un nuevo articulo MSDN de Office Apps explica:

“Una aplicación de Office es básicamente una página web que está alojada dentro de una aplicación cliente de Office. Puede utilizar una aplicación de Office para extender la funcionalidad de un documento, mensaje de correo electrónico, convocatoria de reunión o una cita. Las aplicaciones de Office se pueden ejecutar en múltiples entornos y clientes, entre ellos ricos clientes de escritorio de Office, Office Web Apps, los navegadores móviles, y también en los servidores locales-y en la nube. Después de desarrollar y publicar sus aplicaciones de Office en Office Store o en un catálogo en tu sitio, estarán disponible para los consumidores de sus aplicaciones de Office 2013.”

"Queríamos ofrecer una experiencia in-browser liviana, por lo que rápidamente se podría construir tu aplicación SharePoint o Office web app en el mismo navegador en el que corran", escribió Zander en su blog.

Napa va a ser una aplicacion de desarrollo gratuita para SharePoint, y está destinado a ser "un complemento en línea de Visual Studio", explicó Zander. Debido a que Napa es Web-based, los desarrolladores no tendrán que instalar nada en sus máquinas, sino que serán capaces de empezar a programar dentro de sus navegadores. Pero siempre que los desarrolladores de Office necesiten herramientas más "avanzadas", podran cambiar a Visual Studio 2012 y continuar con su trabajo en ese IDE, dijo.

clip_image004

"Por supuesto que en paralelo con el "Napa", todavía se puede seguir utilizando los modelos existentes para la extensibilidad de Office y SharePoint, como VBA, COM, VSTO, y las soluciones de SharePoint", dijo Zander. Sin embargo - y esto es clave - aplicaciones desarrolladas utilizando estas herramientas no podrán ser publicadas en la Office Store, Zander añadió.

Como en Windows 8, Microsoft desea e incentiva a los desarrolladores a escribir sus aplicaciones next-genearation usando HTML5, XML, CSS3, JavaScript, y REST APIs.
Napa permitirá el desarrollo de "todos los tipos de aplicaciones de Office y SharePoint permitiendo a los desarrolladores que funcionen tanto en la aplicación web y las versiones de cliente enriquecido de las aplicaciones de Office (por ejemplo, Excel, Word)", dijo Zander.

Microsoft lanzo un preview del Office Store el 16 de Julio.  Ya hay dos docenas de add-ins de Office 2013 y SharePoint 2013, en el Store, incluyendo las de Twitter, LinkedIn, diccionarios, formularios y mucho más.

viernes, 6 de julio de 2012

SharePoint Best Practices: PowerShell


SharePoint Best Practices: PowerShell


Introduction
Today to develop with SharePoint is often the case that we have more than one working environment, in many cases we have several development environments and at least one test environment. Of course, we also have the productive environment in which the data are real business.

In the scheme of "traditional" development of applications, i.e., outside the SharePoint world, business data is usually stored in databases, and we also tend to have several of them to the different environments we work with. Usually these bases are accessible directly by us (developers) and allows us to replicate the data housed in a database to another database, unless security restrictions, to be able to emulate scenarios through the different environments.

But what happens with SharePoint? The issue is a little different in SharePoint. The way "traditional" save data in SharePoint is through the lists, which are not so easy to replicate in other environments. The handling of lists has its peculiarities, and the storage of your data in the database is not so straightforward as with applications "traditional".

However, currently, SharePoint offers different alternatives when it comes to be able to play the content that is in a list of a server or set of servers to a list of another server or set of servers.

One of these alternatives, and on which we will focus on the article, is to make use of two PowerShell commands that can be executed through the SharePoint management console and that will allow us both export as then import the contents of a practical, fast and easy way. These commands are Export-SPWeb and Import-SPWeb respectively.

How to export the contents of a list with PowerShell
To export the contents of a SharePoint list on a server or Server Farm, SharePoint through the SharePoint management console , we must use the Export-SPWeb command, which allows us to export the contents of a SharePoint list to a file or folder on the disk. So you will have to follow the following two steps:
  1. Open the SharePoint management console as administrator.
  2. Run the Export-SPWebcommand, as shown below:
1./*** EXPORT LIST ***/
2.Export-SPWeb -Identity [WEB_IDENTITY] -Path [EXPORT_PATH] -ItemURL /Lists/[LIST_NAME] -IncludeVersions CurrentVersion –Verbose -Force -NoLogFile
Where you must set up the following parameters:
  • -Identity [WEB_IDENTITY]: It allows you to indicate the Web site from which you want to export the contents of the SharePoint list. The value of the [WEB_IDENTITY] parameter can be both the GUID and the URL of the Web site.
  • -Path [EXPORT_PATH]: It allows you to indicate the full path of the file in which the contents of the SharePoint list will be exported. If the path contains blank spaces [EXPORT_PATH] value with double quotes ("") should be enclosed.
  • -ItemURL Lists / [LIST_NAME]: Lets you specify the path of the SharePoint list that you want to export. [LIST_NAME] parameter value must be a valid name that points to the SharePoint list that you want to export.
  • -IncludeVersions CurrentVersion: It allows you to indicate which versions of the contents of the SharePoint list you want to export. In this particular case, only the current version is exported.
  • -Verbose: Lets you indicate if a log will be displayed on screen with the result of the export of the contents of the SharePoint list.
  • -Force: Allows you to overwrite the export destination file if it already exists. If he is not specified this parameter, by default the file is not overwritten.
  • -NoLogFile: It allows you to indicate that you should create a log file to export the contents of the SharePoint list.

Below is an example of how to export the contents of a SharePoint list called TestList located on the SharePoint Server develop01 to a file on disk:
1./*** EXPORT LIST ***/
2.Export-SPWeb -Identity http://develop01:8081/ -Path "C:\Develop\BF\BF.KP.Packages\ListsContents\TestList.cmp" -ItemURL /Lists/TestList -IncludeVersions CurrentVersion -Verbose -Force -NoLogFile

How to import content to a list with PowerShell
To import a SharePoint list to a server or Server Farm, SharePoint content through the SharePoint management console , we must use the Import-SPWeb command, which allows you to import the contents of a SharePoint list that has previously been exported to a file or folder on the disk, to a SharePoint Server, which can be the same server as any other that has installed the List definition in question. So you will have to follow the following two steps:
  1. Open the SharePoint management console as administrator.
  2. Run the Import-SPWebcommand, as shown below:
1./*** IMPORT LIST ***/
2.Import-SPWeb -Identity [WEB_IDENTITY] -Path [IMPORT_PATH] –Verbose -NoLogFile
Where you must set up the following parameters:
  • -Identity [WEB_IDENTITY]: It allows you to indicate the Web site on which you want to import the contents of the SharePoint list. The value of the [WEB_IDENTITY] parameter can be both the GUID and the URL of the Web site.
  • -Path [IMPORT_PATH]: It allows you to indicate the full path of the file from which the contents of the SharePoint list will be imported. If the path contains blank spaces [IMPORT_PATH] value with double quotes ("") should be enclosed.
  • -Verbose: Lets you indicate if a log will be displayed on screen with the result of the import of the contents of the SharePoint list.
  • -NoLogFile: Sets that you should create a log file to import the contents of the SharePoint list.

Below is an example of how to import the contents of the SharePoint list previously exported to the TestList.cmp file, but the SharePoint Server develop02:
1./*** IMPORT LIST ***/
2.Import-SPWeb -Identity http://develop02:8081/ -Path "C:\Develop\BF\BF.KP.Packages\ListsContents\TestList.cmp" -Verbose –NoLogFile

Exporting and importing lists SharePoint content suggestions
While in the first instance the management of the export and import of lists SharePoint content seems easy and even trivial task, it can present complications, especially when importing content from other servers.
So it will have to take into account the following issues when you export and import the contents of SharePoint lists:

  • Before you can import the contents of a SharePoint list it is necessary to have installed and enabled the corresponding definition, but the process can throw unexpected errors when attempting to create the SharePoint list again.
  • The import process and load the contents of the SharePoint list, creates a new instance of the same if it does not exist. Therefore, if you want to play in other SharePoint Server environment it will be necessary to manually delete the SharePoint list if it is that the same already exists on the target server in order to avoid potential problems with existing data.
  • If the SharePoint list you are trying to import has a field with a LookUp reference to another SharePoint list, first the contents of the referenced SharePoint list must import so that when you import the list that has the reference, you can find the contents pointed in the reference list. If the process upside down, or if the list did not exist, the import process would give unexpected results.

Finally, it is worthwhile to clarify both the export and import the contents of a SharePoint list on a server or a SharePoint Server Farm you must run the window of the SharePoint management console with user administrator privileges, because they require special permits to run the Export-SPWeb command and Import-SPWeb .

Other uses for the Export-SPWeb command and Import-SPWeb
Even though the Export-SPWeb command and Import-SPWeb to allow the export and import of lists SharePoint content were used in this article, these two commands can be used to export and import any object type SharePoint, among which to enumerate:
  • Sites collections
  • Web applications
  • Libraries
  • Lists

In Baufest

In Baufest, who build on Sharepoint, the use of PowerShell is part of our good practices in implementing what we build, always we fit in the governance of our client.
We have found that the best way to balance requested customizations and a solid methodology with Best Practices deployment is using PowerShell instead of code created in the activation of Features and other events in the packages of solutions. It is mandatory to establish when and why PowerShell - and not a compiled Feature and Solution Packages (WSPs)

Thanks to Ariel Bensussan for having collaborated with this article.

Follow us on Twitter


Follow @ Baufest