Configurar Silverlight 3 en nuestro servidor SharePoint

Para empezar a desarrollar y utilizar Silverlight 3 debemos descargar los siguientes componentes:

  1. Silverlight 3 Windows Developer Runtime y presionamos sobre Windows Runtime como podemos observer en al imagen.

     

     1

     

  2. Silverlight 3 SDK, solo está disponible en inglés por lo que deberemos de disponer de Visual Studio en el correspondiente idioma.

Si además queremos desarrollar aplicaciones de Silverlight 3 en el servidor, tendremos que descargarnos e instalar los siguientes componentes:

  1. Silverlight 3 Tools para Visual Studio 2008 SP1 con este complemento nos será de ayuda en la parte de desarrollo del proyecto.
  2. Microsoft Expression Blend 3 + SketchFlow, si lo que queremos es una herramienta que nos facilite el diseño de aplicaciones deberemos instalar el citado elemento.
  3. Microsoft .NET RIA Services proporciona un patrón para la escritura lógica de la aplicación que se ejecuta en el nivel intermedio y controla el acceso a datos para las consultas, los cambios y operaciones personalizadas.
  4. Documentación de Microsoft Silverlight 3 sin conexión.

Ahora vamos a pasar a configurar nuestro servidor SharePoint para que se puedan ejecutar aplicaciones de Silverlight 3.

  1. Vamos a acceder al SDK de Silverlight 3 para obtener la System.Web.Silverlight.dll que es necesaria en nuestro servidor SharePoint. Esta se encuentra en c:Program FilesMicrosoft SDKsSilverlightv3.0LibrariesServer 
  2. Para ejecutar dicha dll debemos ejecutar el siguiente comando GACUTIL /if “C:Program FilesMicrosoft SDKsSilverlightv3.0LibrariesServerSystem.Web.Silverlight.dll” en una consola de comandos.

Si en el servidor no disponemos de Visual Studio 2008 deberemos realizar las siguientes acciones:

  1. Accederemos a el archivo web.config de Sharepoint utilizando el explorador de Windows, generalmente está situado en C:Archivos de programaArchivos comunesMicrosoft Sharedweb server extensions12CONFIG.
  2. Hacemos una copia de seguridad del web.config para poder recuperar el original en cualquier momento.
  3. Dentro del web.config nos situaremos en la secciones <configuration> y después en <configSections>, añadiendo:

    <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 />

    <section name=roleService type=System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 requirePermission=false allowDefinition=MachineToApplication />

    </sectionGroup>

    </sectionGroup>

     

  4. Dentro de la sección <assemblies> perteneciente al area <compilation> añadiremos el siguiente código:

    <add assembly=System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089/>

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

    <add assembly=System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089/>

    <add assembly=System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089/>

    <add assembly=System.Web.Silverlight, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 />

     

  5. Dentro de las etiquetas <system.web>..<pages>..<controls> introducimos el siguiente código:

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

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

    <add tagPrefix=asp namespace=System.Web.UI.SilverlightControls assembly=System.Web.Silverlight, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 />

     

  6. En <system.web>..<httpHandlers> incluimos:

    <remove verb=* path=*.asmx/>

    <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/>

     

  7. Por último en <system.web><httpModules> añadimos:

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

     

  8. Solo para la utilización IIS 7 añadiremos en siguiente código en la sección
    <configuration>:

     

    <system.webServer>

    <validation validateIntegratedModeConfiguration=false/>

    <modules>

    <remove name=ScriptModule />

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

    </modules>

    <handlers>

    <remove name=WebServiceHandlerFactory-Integrated/>

    <remove name=ScriptHandlerFactory />

    <remove name=ScriptHandlerFactoryAppServices />

    <remove name=ScriptResource />

    <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>10. Add an AssemblyBinding element to the <configuration>

    <runtime>

    node: <assemblyBinding xmlns=urn:schemas-microsoft-com:asm.v1>

    <dependentAssembly>

    <assemblyIdentity name=System.Web.Extensions publicKeyToken=31bf3856ad364e35/>

    <bindingRedirect oldVersion=1.0.0.0-1.1.0.0 newVersion=3.5.0.0/>

    </dependentAssembly>

    <dependentAssembly>

    <assemblyIdentity name=System.Web.Extensions.Design publicKeyToken=31bf3856ad364e35/>

    <bindingRedirect oldVersion=1.0.0.0-1.1.0.0 newVersion=3.5.0.0/>

    </dependentAssembly>

     

    </assemblyBinding>

     

 

 

 

Al trabajar con IIS 7 evitamos la configuración de los MIME TYPE. Por otro lado si utilizamos versiones anteriores, tenemos que configurar manualmente cada Web Application en la raíz de IIS siguiendo estos pasos:

 

  1. Abrir el IIS.
  2. Presionamos con el botón derecho sobre la raíz de nuestra aplicación web
  3. Activa la casilla HTTP HEADERS.

    2


     

  4. Haremos clic en el botón MIME TYPES.

    3


     

  5. Presionaremos sobre NUEVO.

    4


     

  6. Para definir un nuevo MIME TYPE la extensión la deberemos configurar como .xap y el tipo será application/x-silverlight.

    5


     

  7. Para guardar los diferentes cambios presionamos en el botón OK

 

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *