Visual WebParts – SharePoint 2010

SharePoint es una plataforma que nos permite extenderla de diferentes maneras, una de ellas son los WebParts que en estricto rigor se podría ver como un UserControl de ASP .NET.

Las extensiones de Visual Studio 2008 para SharePoint 2007 nos permiten definir UserControls agregando cada uno de los distintos controles por medio de código .NET, por ejemplo para definir un WebPart con un simple TextBox tendríamos que hacer lo siguiente:

 protected override void CreateChildControls()
{
  TextBox txt = new TextBox() { ID = “txtId”, Text = “Ingrese un valor” };
  this.Controls.Add(txt);
}

Uno de los problemas que se tiene con esta aproximación, es que el código fuente puede llegar a tener muchas líneas de código para solamente definir un formulario y sus distintos eventos. Es aquí donde nacieron otras aproximaciones como por ejemplo SmartParts, las cuales tomando como base un UserControl proveen un wrapper para dejarlo publicado como un WebPart.

En Visual Studio 2010, se incorpora una nueva plantilla de proyecto la cual nos permite definir un WebPart utilizando un diseñador ASP .NET. Para este artículo veremos un pequeño WebPart el cual constará de:

-

2 Labels

  
  • 1 TextBox

  • 1 Button

Primero abriremos nuestro Visual Studio 2010, donde crearemos un nuevo proyecto del tipo “Visual Web Part” al que llamaremos “HolaVisualWebPart”

blg1

Luego presionamos “Aceptar” y veremos un dialogo en el cual nos da las opciones “Deploy as Farm Solution” y “Deploy as a sandboxed solution”. En el caso lo dejaremos como una farm solution, en una futura publicación veremos de que se trata las soluciones “SandBoxed”. Además aquí debemos ingresar la URL del sitio sobre el cual instalaremos nuestro Web Part para hacer las pruebas pertinentes.

blg2

Al momento de presionar “Finish”, se creará una serie de archivos entre los cuales encontraremos las carpetas:

-

Features, el cual nos permite definirle un nombre a nuestra característica y definir un scope de nuestra solución

  
  • Package, el cual contiene la definición de nuestro package

  • Además encontraremos el Visual Web Part con el cual trabajaremos, por default este se llamará “VisualWebPart1”. Este archivo contiene un archivo con extensión “CS”, otro con extensión “webpart” y finalmente uno con extensión “ascx”

blg3

Abriremos nuestro archivo con extensión “ASCX”, en el cual veremos el editor de páginas de ASP .NET. En este dialogo procederemos a ingresar los siguientes controles, con los siguientes valores en sus propiedades:

Tipo Control ID Text Visible
Label lblTitulo Mensaje: True
Label lblMensaje   False
TextBox txtMensaje   True
Button btnEnviar Enviar True

Quedando la ventana de la siguiente manera:

blg4

Luego en el evento “Click” del botón, ingresamos el siguiente bloque de código:

 protected void btnEnviar_Click(object sender, EventArgs e)
{
  lblMensaje.Text = string.Format(“El mensaje ingresado fue: {0}”, txtMensaje.Text”);
}

Compilamos nuestro código para ver si tenemos algún error, finalmente si todo salió bien presionamos el botón derecho del mouse sobre nuestro y seleccionamos la opción “Deploy” con lo cual se estaría iniciando la instalación de nuestro Visual WebPart en SharePoint 2010.

blg5

Abrimos nuestro sitio SharePoint, editamos la página y seleccionamos la opción “Elemento Web”.

blg6

Luego en la categoría “Custom”, veremos todos los WebParts personalizados que tengamos. En mi caso solamente tengo el Web Part “Hola WebPart”, el cual procederé a insertar en la página.

blg7

Procederemos a probar nuestro WebPart y si todo sale bien deberíamos ver el resultado de nuestro trabajo:

blg8

Como pueden darse cuenta, no es una tarea difícil la creación de un WebPart y una de las ventajas de estas nuevas plantillas de Visual Studio 2010 es que ahora podemos concentrarnos directamente en el negocio de nuestro WebPart y no en como vamos a renderizar el contenido.

Espero que les haya servido esta información y como es de costumbre, pueden descargar el código fuente desde aquí