SlideShare a Scribd company logo
1 of 5
Download to read offline
WEB 2.0 Ajax con SharePoint

Hoy en día la mayoría de las organizaciones tienen su propia página web,
pero no basta con tenerla si no se saca el máximo partido de ella. Cuando
creamos nuestra aplicación web debemos pensar que es lo que demanda el
cliente. Y la respuesta es clara: colaboración y servicios. En ese sentido
el mundo web ha evolucionado hacia la Web 2.0.




SharePoint, como no puede ser de otra manera, también lo ha hecho. Esta
solución de Microsoft ya trae integradas algunas de las herramientas de
colaboración que permiten que nuestros sitios sean más dinámicos e
interactivos, como por ejemplo los Blogs o las Wikis, y que mejoran la
relación servidor-cliente. Pero además nos permite dar un paso más allá y
utilizar las características que nos ofrecen ASP.NET y AJAX.

Este tipo de aplicaciones se pueden crear y personalizar mediante Visual
Studio y las extensiones para Ajax. Pero si, inicialmente, no nos vemos
capaces de programarlas, podemos usar algunas de las que ya se
encuentran disponibles en Codeplex para ver cómo funcionan, y utilizarlas
como referencia para nuestros propios desarrollos. De esta manera
conseguiremos que sean más estables para nuestro sistema de producción.

Un ejemplo bastante interesante y que nos aporta gran feedback de los
usuarios, es el rating o votación ya que aparte de votar unos determinados
contenidos permite al usuario escribir comentarios al respecto. Esta webpart
se encuentra incluida dentro del grupo AdvancedWebParts0.9.4 que
podemos descargar aquí.

Antes de implementar dicha solución lo primero que debemos hacer es
descargar e instalar el Framework .NET 3.5 e instalar las extensiones de
Ajax para ASP.NET 2.0. Una vez que ya hemos realizado estos pasos,
vamos a añadir la solución a nuestro sitio mediante la línea de comandos.

Stsadm.exe –o addsolution –filename [ruta AdvancedWebParts.wsp]

Previamente cambiaremos el nombre Advanced WebParts-0-9-4.wsp por
AdvancedWebParts.wsp para evitar problemas con los espacios y guiones.

A continuación implementamos dicha solución para que funcione en la
colección de sitios deseada. Para ello en el sitio de Administración de
SharePoint abrimos la Administración Central > Operaciones >
Configuración Global > Administración de soluciones y tras seleccionar
nuestra solución AdvancedWebParts.wsp pulsamos Implementar solución.



Goretti Ortigosa                                                       2009
De esta manera ya tenemos la solución lista para utilizar, pero ¿realmente
va a funcionar? La respuesta es NO. Para que nuestro sitio SharePoint
funcione con las extensiones de ASP.NET para AJAX es necesario modificar
el archivo web.config e intercalar el siguiente código en las distintas
secciones del mismo:

Añadimos:

1. Un grupo de elementos de tipo <sectionGroup>dentro de la etiqueta
<configSections>:

    <sectionGroup name="system.web.extensions"
type="System.Web.Configuration.SystemWebExtensionsSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35">
      <sectionGroup name="scripting"
type="System.Web.Configuration.ScriptingSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35">
        <section name="scriptResourceHandler"
type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="MachineToApplication" />
        <sectionGroup name="webServices"
type="System.Web.Configuration.ScriptingWebServicesSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35">
          <section name="jsonSerialization"
type="System.Web.Configuration.ScriptingJsonSerializationSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="Everywhere" />
          <section name="profileService"
type="System.Web.Configuration.ScriptingProfileServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="MachineToApplication" />
          <section name="authenticationService"
type="System.Web.Configuration.ScriptingAuthenticationServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="MachineToApplication" />
        </sectionGroup>
      </sectionGroup>

     </sectionGroup>

2. Una   sección de       controles   como     hijo   de    la    etiqueta
<system.web>/<pages>

      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI"
assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
      </controls>




Goretti Ortigosa                                                      2009
3. Nuestro    assembly     dentro   de   <compilation>       en   la   etiqueta
<assemblies>:

       <add assembly="System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

4. Nuevos registros al final de la sección <httpHandlers>:

       <add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>

      <add verb="*" path="*_AppService.axd" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>

      <add verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" validate="false"/>

5. Un nuevo registro a la sección httpModules

   <add name="ScriptModule" type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>

6. Una entrada de Control Seguro (SafeControl)    para el espacio de
nombres System.Web.UI de las extensiones Microsoft Ajax, en la sección
<SharePoint>/<SafeControls>:

<SafeControl Assembly="System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TypeName="*" Safe="True" />

7. Finalmente, añadimos las siguientes etiquetas de configuración en la
parte inferior del archive web.config, justo por encima de la etiqueta
<configuration>:

<system.web.extensions>
    <scripting>
      <webServices>
      <!-- Uncomment this line to enable the authentication service.
Include requireSSL="true" if appropriate. -->
      <!--
        <authenticationService enabled="true" requireSSL =
"true|false"/>
      -->
      <!-- Uncomment these lines to enable the profile service. To
allow profile properties to be retrieved and modified in ASP.NET AJAX
applications, you need to add each property name to the
readAccessProperties and writeAccessProperties attributes. -->
      <!--
      <profileService enabled="true"



Goretti Ortigosa                                                           2009
readAccessProperties="propertyname1,propertyname2"

writeAccessProperties="propertyname1,propertyname2" />
      -->
      </webServices>
      <!--
      <scriptResourceHandler enableCompression="true"
enableCaching="true" />
      -->
    </scripting>
  </system.web.extensions>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <add name="ScriptModule" preCondition="integratedMode"
type="System.Web.Handlers.ScriptModule, System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated" />
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx"
preCondition="integratedMode"
           type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*"
path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptResource" preCondition="integratedMode"
verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" />
    </handlers>
</system.webServer>

Guardamos el archivo y reiniciamos el IIS mediante el comando iisreset.




Ahora vamos a comprobar si realmente funciona nuestra webpart. Para ello
abrimos nuestro sitio y vamos a la página en la que queremos introducir
una votación de los contenidos de la misma.



Goretti Ortigosa                                                          2009
Seleccionamos Acciones del sitio > Editar Pagina, añadimos la webpart Page
Rating y modificamos sus propiedades (título, textos…).




Salimos del modo edición, y cuando pasamos el ratón sobre pulsar, se abre
un cuadro que nos permite votar y aportar nuestros comentarios.




Cada vez que se realice una votación, en esta webpart se mostrará la media
de todas las votaciones realizadas.

Si queremos ver todos los valores debemos añadir una Lista de Ratings que
se encuentra disponible en nuestra galería de elementos web, de forma que
nos muestre toda la información relevante de dichas votaciones.




Por último decir que cada usuario sólo puede votar una vez, y que por tanto
debemos refrescar la página o entrar como otro usuario para poder ver la
actualización de las mismas.

Como siempre en CodePlex, sabemos que tenemos a nuestra disposición el
código fuente del WebPart con lo que podemos adaptarlo a nuestras
necesidades concretas de manera que la experiencia Web 2.0 de los
usuarios sea completa y que los WebParts que empleamos aporten el mayor
contenido posible a nuestra Web.




Goretti Ortigosa                                                       2009

More Related Content

What's hot

Diapositivas joomla
Diapositivas joomlaDiapositivas joomla
Diapositivas joomla
Bruja Loca
 
05 Joomla. Consideraciones Globales
05 Joomla. Consideraciones Globales05 Joomla. Consideraciones Globales
05 Joomla. Consideraciones Globales
José M. Padilla
 
Project web access_jefe_proyectos
Project web access_jefe_proyectosProject web access_jefe_proyectos
Project web access_jefe_proyectos
daniela_murillo
 
Aplicacion Web Windows 2003 Server
Aplicacion Web Windows 2003 ServerAplicacion Web Windows 2003 Server
Aplicacion Web Windows 2003 Server
Stiven Marin
 
Presentacion de joomla_completa
Presentacion de joomla_completaPresentacion de joomla_completa
Presentacion de joomla_completa
MjP86
 
Herramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointHerramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePoint
goreorti
 
03 Joomla. Conceptos Generales
03 Joomla. Conceptos Generales03 Joomla. Conceptos Generales
03 Joomla. Conceptos Generales
José M. Padilla
 
Wordpress, características y guía de uso
Wordpress, características y guía de usoWordpress, características y guía de uso
Wordpress, características y guía de uso
guestdad27e
 
2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net
Sandy Contreras
 

What's hot (19)

Reportes
ReportesReportes
Reportes
 
Manual cms joomla
Manual cms joomlaManual cms joomla
Manual cms joomla
 
Diapositivas joomla
Diapositivas joomlaDiapositivas joomla
Diapositivas joomla
 
Cesnavarra 2008-boletín 11
Cesnavarra 2008-boletín 11Cesnavarra 2008-boletín 11
Cesnavarra 2008-boletín 11
 
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
 
05 Joomla. Consideraciones Globales
05 Joomla. Consideraciones Globales05 Joomla. Consideraciones Globales
05 Joomla. Consideraciones Globales
 
Curso de Administración de Joomla
Curso de Administración de JoomlaCurso de Administración de Joomla
Curso de Administración de Joomla
 
Project web access_jefe_proyectos
Project web access_jefe_proyectosProject web access_jefe_proyectos
Project web access_jefe_proyectos
 
Manual Admon Contenidos Joomla 1.5 V2 Gen
Manual Admon Contenidos Joomla 1.5 V2 GenManual Admon Contenidos Joomla 1.5 V2 Gen
Manual Admon Contenidos Joomla 1.5 V2 Gen
 
Rails intro
Rails introRails intro
Rails intro
 
Producto 4 programacion web
Producto 4 programacion webProducto 4 programacion web
Producto 4 programacion web
 
Aplicacion Web Windows 2003 Server
Aplicacion Web Windows 2003 ServerAplicacion Web Windows 2003 Server
Aplicacion Web Windows 2003 Server
 
Presentacion de joomla_completa
Presentacion de joomla_completaPresentacion de joomla_completa
Presentacion de joomla_completa
 
Herramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointHerramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePoint
 
03 Joomla. Conceptos Generales
03 Joomla. Conceptos Generales03 Joomla. Conceptos Generales
03 Joomla. Conceptos Generales
 
Wordpress, características y guía de uso
Wordpress, características y guía de usoWordpress, características y guía de uso
Wordpress, características y guía de uso
 
2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
 
Facelets
FaceletsFacelets
Facelets
 

Viewers also liked

Septima primaria
Septima primariaSeptima primaria
Septima primaria
yuuki_88
 
Fisica2 bach 3.6 efecto doppler
Fisica2 bach 3.6 efecto dopplerFisica2 bach 3.6 efecto doppler
Fisica2 bach 3.6 efecto doppler
Tarpafar
 
Modelo para trabajo juegos tradicionales y populares
Modelo para trabajo juegos  tradicionales y  popularesModelo para trabajo juegos  tradicionales y  populares
Modelo para trabajo juegos tradicionales y populares
XORAGA
 
Tarea final- Primera Guerra
Tarea final- Primera GuerraTarea final- Primera Guerra
Tarea final- Primera Guerra
Patricia AC
 

Viewers also liked (20)

Curso Agricultura Ecológica. Test Pistacho
Curso Agricultura Ecológica. Test PistachoCurso Agricultura Ecológica. Test Pistacho
Curso Agricultura Ecológica. Test Pistacho
 
Lola
LolaLola
Lola
 
Septima primaria
Septima primariaSeptima primaria
Septima primaria
 
Legalidad emgoldex en colombia
Legalidad emgoldex en colombiaLegalidad emgoldex en colombia
Legalidad emgoldex en colombia
 
Trabajo final expresión oral y escrita
Trabajo final expresión oral y escritaTrabajo final expresión oral y escrita
Trabajo final expresión oral y escrita
 
Cirugia menor 2
Cirugia menor 2Cirugia menor 2
Cirugia menor 2
 
Fisica2 bach 3.6 efecto doppler
Fisica2 bach 3.6 efecto dopplerFisica2 bach 3.6 efecto doppler
Fisica2 bach 3.6 efecto doppler
 
LMS ¿Que es?
LMS ¿Que es?LMS ¿Que es?
LMS ¿Que es?
 
Semana10
Semana10Semana10
Semana10
 
Vulnerabilidades web
Vulnerabilidades webVulnerabilidades web
Vulnerabilidades web
 
Marca0413
Marca0413Marca0413
Marca0413
 
Pagina 25 del libro
Pagina 25 del libroPagina 25 del libro
Pagina 25 del libro
 
Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de video
 
Modelo para trabajo juegos tradicionales y populares
Modelo para trabajo juegos  tradicionales y  popularesModelo para trabajo juegos  tradicionales y  populares
Modelo para trabajo juegos tradicionales y populares
 
Química2 bach 3.4. enlace iónico
Química2 bach 3.4. enlace iónicoQuímica2 bach 3.4. enlace iónico
Química2 bach 3.4. enlace iónico
 
Servicios 2015-2016
Servicios 2015-2016Servicios 2015-2016
Servicios 2015-2016
 
vision sistematica de la sustentabilidad
vision sistematica de la sustentabilidadvision sistematica de la sustentabilidad
vision sistematica de la sustentabilidad
 
Bodas de Oro ITI
Bodas de Oro ITIBodas de Oro ITI
Bodas de Oro ITI
 
Capacidaddelcerebro
CapacidaddelcerebroCapacidaddelcerebro
Capacidaddelcerebro
 
Tarea final- Primera Guerra
Tarea final- Primera GuerraTarea final- Primera Guerra
Tarea final- Primera Guerra
 

Similar to Web 2.0 ajax con SharePoint

Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
cok12v
 
Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en Android
Alberto Ruibal
 
Apache click
Apache clickApache click
Apache click
ntomasto
 
Servicio web
Servicio web Servicio web
Servicio web
Yael67
 

Similar to Web 2.0 ajax con SharePoint (20)

Diseño web
Diseño webDiseño web
Diseño web
 
Diseño web
Diseño webDiseño web
Diseño web
 
Documentacion del proyecto
Documentacion del proyectoDocumentacion del proyecto
Documentacion del proyecto
 
Mi app-asp-net-mvc2
Mi app-asp-net-mvc2Mi app-asp-net-mvc2
Mi app-asp-net-mvc2
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
 
Cómo configurar el seo de tu drupal
Cómo configurar el seo de tu drupal  Cómo configurar el seo de tu drupal
Cómo configurar el seo de tu drupal
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Creación de un sitio web en wordpress
Creación de un sitio web en wordpressCreación de un sitio web en wordpress
Creación de un sitio web en wordpress
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Diseño web
Diseño webDiseño web
Diseño web
 
Diseño web
Diseño webDiseño web
Diseño web
 
Asp
AspAsp
Asp
 
Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en Android
 
Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Apache click
Apache clickApache click
Apache click
 
Servicio web
Servicio web Servicio web
Servicio web
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Recently uploaded (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Web 2.0 ajax con SharePoint

  • 1. WEB 2.0 Ajax con SharePoint Hoy en día la mayoría de las organizaciones tienen su propia página web, pero no basta con tenerla si no se saca el máximo partido de ella. Cuando creamos nuestra aplicación web debemos pensar que es lo que demanda el cliente. Y la respuesta es clara: colaboración y servicios. En ese sentido el mundo web ha evolucionado hacia la Web 2.0. SharePoint, como no puede ser de otra manera, también lo ha hecho. Esta solución de Microsoft ya trae integradas algunas de las herramientas de colaboración que permiten que nuestros sitios sean más dinámicos e interactivos, como por ejemplo los Blogs o las Wikis, y que mejoran la relación servidor-cliente. Pero además nos permite dar un paso más allá y utilizar las características que nos ofrecen ASP.NET y AJAX. Este tipo de aplicaciones se pueden crear y personalizar mediante Visual Studio y las extensiones para Ajax. Pero si, inicialmente, no nos vemos capaces de programarlas, podemos usar algunas de las que ya se encuentran disponibles en Codeplex para ver cómo funcionan, y utilizarlas como referencia para nuestros propios desarrollos. De esta manera conseguiremos que sean más estables para nuestro sistema de producción. Un ejemplo bastante interesante y que nos aporta gran feedback de los usuarios, es el rating o votación ya que aparte de votar unos determinados contenidos permite al usuario escribir comentarios al respecto. Esta webpart se encuentra incluida dentro del grupo AdvancedWebParts0.9.4 que podemos descargar aquí. Antes de implementar dicha solución lo primero que debemos hacer es descargar e instalar el Framework .NET 3.5 e instalar las extensiones de Ajax para ASP.NET 2.0. Una vez que ya hemos realizado estos pasos, vamos a añadir la solución a nuestro sitio mediante la línea de comandos. Stsadm.exe –o addsolution –filename [ruta AdvancedWebParts.wsp] Previamente cambiaremos el nombre Advanced WebParts-0-9-4.wsp por AdvancedWebParts.wsp para evitar problemas con los espacios y guiones. A continuación implementamos dicha solución para que funcione en la colección de sitios deseada. Para ello en el sitio de Administración de SharePoint abrimos la Administración Central > Operaciones > Configuración Global > Administración de soluciones y tras seleccionar nuestra solución AdvancedWebParts.wsp pulsamos Implementar solución. Goretti Ortigosa 2009
  • 2. De esta manera ya tenemos la solución lista para utilizar, pero ¿realmente va a funcionar? La respuesta es NO. Para que nuestro sitio SharePoint funcione con las extensiones de ASP.NET para AJAX es necesario modificar el archivo web.config e intercalar el siguiente código en las distintas secciones del mismo: Añadimos: 1. Un grupo de elementos de tipo <sectionGroup>dentro de la etiqueta <configSections>: <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" /> <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> </sectionGroup> </sectionGroup> </sectionGroup> 2. Una sección de controles como hijo de la etiqueta <system.web>/<pages> <controls> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </controls> Goretti Ortigosa 2009
  • 3. 3. Nuestro assembly dentro de <compilation> en la etiqueta <assemblies>: <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 4. Nuevos registros al final de la sección <httpHandlers>: <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 5. Un nuevo registro a la sección httpModules <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 6. Una entrada de Control Seguro (SafeControl) para el espacio de nombres System.Web.UI de las extensiones Microsoft Ajax, en la sección <SharePoint>/<SafeControls>: <SafeControl Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TypeName="*" Safe="True" /> 7. Finalmente, añadimos las siguientes etiquetas de configuración en la parte inferior del archive web.config, justo por encima de la etiqueta <configuration>: <system.web.extensions> <scripting> <webServices> <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. --> <!-- <authenticationService enabled="true" requireSSL = "true|false"/> --> <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and writeAccessProperties attributes. --> <!-- <profileService enabled="true" Goretti Ortigosa 2009
  • 4. readAccessProperties="propertyname1,propertyname2" writeAccessProperties="propertyname1,propertyname2" /> --> </webServices> <!-- <scriptResourceHandler enableCompression="true" enableCaching="true" /> --> </scripting> </system.web.extensions> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules> <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </modules> <handlers> <remove name="WebServiceHandlerFactory-Integrated" /> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </handlers> </system.webServer> Guardamos el archivo y reiniciamos el IIS mediante el comando iisreset. Ahora vamos a comprobar si realmente funciona nuestra webpart. Para ello abrimos nuestro sitio y vamos a la página en la que queremos introducir una votación de los contenidos de la misma. Goretti Ortigosa 2009
  • 5. Seleccionamos Acciones del sitio > Editar Pagina, añadimos la webpart Page Rating y modificamos sus propiedades (título, textos…). Salimos del modo edición, y cuando pasamos el ratón sobre pulsar, se abre un cuadro que nos permite votar y aportar nuestros comentarios. Cada vez que se realice una votación, en esta webpart se mostrará la media de todas las votaciones realizadas. Si queremos ver todos los valores debemos añadir una Lista de Ratings que se encuentra disponible en nuestra galería de elementos web, de forma que nos muestre toda la información relevante de dichas votaciones. Por último decir que cada usuario sólo puede votar una vez, y que por tanto debemos refrescar la página o entrar como otro usuario para poder ver la actualización de las mismas. Como siempre en CodePlex, sabemos que tenemos a nuestra disposición el código fuente del WebPart con lo que podemos adaptarlo a nuestras necesidades concretas de manera que la experiencia Web 2.0 de los usuarios sea completa y que los WebParts que empleamos aporten el mayor contenido posible a nuestra Web. Goretti Ortigosa 2009