Web 2.0 ajax con SharePoint

511 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
511
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Web 2.0 ajax con SharePoint

  1. 1. WEB 2.0 Ajax con SharePointHoy 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. Cuandocreamos nuestra aplicación web debemos pensar que es lo que demanda elcliente. Y la respuesta es clara: colaboración y servicios. En ese sentidoel mundo web ha evolucionado hacia la Web 2.0.SharePoint, como no puede ser de otra manera, también lo ha hecho. Estasolución de Microsoft ya trae integradas algunas de las herramientas decolaboración que permiten que nuestros sitios sean más dinámicos einteractivos, como por ejemplo los Blogs o las Wikis, y que mejoran larelación servidor-cliente. Pero además nos permite dar un paso más allá yutilizar las características que nos ofrecen ASP.NET y AJAX.Este tipo de aplicaciones se pueden crear y personalizar mediante VisualStudio y las extensiones para Ajax. Pero si, inicialmente, no nos vemoscapaces de programarlas, podemos usar algunas de las que ya seencuentran disponibles en Codeplex para ver cómo funcionan, y utilizarlascomo referencia para nuestros propios desarrollos. De esta maneraconseguiremos que sean más estables para nuestro sistema de producción.Un ejemplo bastante interesante y que nos aporta gran feedback de losusuarios, es el rating o votación ya que aparte de votar unos determinadoscontenidos permite al usuario escribir comentarios al respecto. Esta webpartse encuentra incluida dentro del grupo AdvancedWebParts0.9.4 quepodemos descargar aquí.Antes de implementar dicha solución lo primero que debemos hacer esdescargar e instalar el Framework .NET 3.5 e instalar las extensiones deAjax 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 porAdvancedWebParts.wsp para evitar problemas con los espacios y guiones.A continuación implementamos dicha solución para que funcione en lacolección de sitios deseada. Para ello en el sitio de Administración deSharePoint abrimos la Administración Central > Operaciones >Configuración Global > Administración de soluciones y tras seleccionarnuestra solución AdvancedWebParts.wsp pulsamos Implementar solución.Goretti Ortigosa 2009
  2. 2. De esta manera ya tenemos la solución lista para utilizar, pero ¿realmenteva a funcionar? La respuesta es NO. Para que nuestro sitio SharePointfuncione con las extensiones de ASP.NET para AJAX es necesario modificarel archivo web.config e intercalar el siguiente código en las distintassecciones 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. 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 denombres 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 laparte 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. Toallow profile properties to be retrieved and modified in ASP.NET AJAXapplications, you need to add each property name to thereadAccessProperties and writeAccessProperties attributes. --> <!-- <profileService enabled="true"Goretti Ortigosa 2009
  4. 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 elloabrimos nuestro sitio y vamos a la página en la que queremos introduciruna votación de los contenidos de la misma.Goretti Ortigosa 2009
  5. 5. Seleccionamos Acciones del sitio > Editar Pagina, añadimos la webpart PageRating y modificamos sus propiedades (título, textos…).Salimos del modo edición, y cuando pasamos el ratón sobre pulsar, se abreun cuadro que nos permite votar y aportar nuestros comentarios.Cada vez que se realice una votación, en esta webpart se mostrará la mediade todas las votaciones realizadas.Si queremos ver todos los valores debemos añadir una Lista de Ratings quese encuentra disponible en nuestra galería de elementos web, de forma quenos muestre toda la información relevante de dichas votaciones.Por último decir que cada usuario sólo puede votar una vez, y que por tantodebemos refrescar la página o entrar como otro usuario para poder ver laactualización de las mismas.Como siempre en CodePlex, sabemos que tenemos a nuestra disposición elcódigo fuente del WebPart con lo que podemos adaptarlo a nuestrasnecesidades concretas de manera que la experiencia Web 2.0 de losusuarios sea completa y que los WebParts que empleamos aporten el mayorcontenido posible a nuestra Web.Goretti Ortigosa 2009

×