Para empezar a desarrollar y utilizar Silverlight 3 debemos descargar los siguientes componentes:
-
Silverlight 3 Windows Developer Runtime y presionamos sobre Windows Runtime como podemos observer en al imagen.
- 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:
- Silverlight 3 Tools para Visual Studio 2008 SP1 con este complemento nos será de ayuda en la parte de desarrollo del proyecto.
- 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.
- 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.
- 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.
- 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
- 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:
- 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.
- Hacemos una copia de seguridad del web.config para poder recuperar el original en cualquier momento.
-
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>
-
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« />
-
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« />
-
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«/>
-
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«/>
-
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:
-
Abrir el IIS.
-
Presionamos con el botón derecho sobre la raíz de nuestra aplicación web
-
Activa la casilla HTTP HEADERS.
-
Haremos clic en el botón MIME TYPES.
-
Presionaremos sobre NUEVO.
-
Para definir un nuevo MIME TYPE la extensión la deberemos configurar como .xap y el tipo será application/x-silverlight.
-
Para guardar los diferentes cambios presionamos en el botón OK