Mise en place d'Ajax Asp.net 3.5 et Silverlight 2 dans MOSS 2007

Silverlight_poweredL’objet de ce post est de décrire la procédure à suivre pour ajouter les fonctionnalités d’AJAX Asp.net 3.5 et Silverlight 2 sur les applications MOSS 2007. Par défaut MOSS utilise le Framework 3.0, donc l’ajax d’asp.net 3.5 et Silverlight ne pouvait pas déjà être présent.

INSTALLER LE FRAMEWORK 3.5

Téléchargez est installez le Framework .NET 3.5 SP1 disponible ici.

MODIFIER LE FICHIER WEB.CONFIG

Après l’installation du Framework ASP.NET 3.5 il est nécessaire de modifier le fichier de configuration des site MOSS 2007 avec les sections spécifiques à Ajax. Pour un site par défaut le fichier ce trouve ici

c:inetpubwwwrootwssvirtualdirectories80

Ajout du <sectionGroup> dans l’élément <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" />
       <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>
 </sectionGroup>

Ajout de la section <controls> dans <system.web>/<pages>

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

3.3 Ajout de nouvelles entrées dans <assemblies>

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

Ajout des HTTP handlers dans la section <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"/>
Ajout du HTTP module dans la section <httpModules>
<add name="ScriptModule"
   type="System.Web.Handlers.ScriptModule,
   System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
   PublicKeyToken=31BF3856AD364E35"/>

Ajout des assemblies en tant que SafeControl dans la section <SharePoint>/<SafeControls>

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

Ajout des redirections d’assemblies dans la section <runtime><assemblyBinding> (optionnel)

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

Ajout de la section <system.web.extensions> dans la section <configuration>

<system.web.extensions>
     <scripting>
       <webServices>
       </webServices>
     </scripting>
   </system.web.extensions>
    <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>

CONFIGURATION DU MIME TYPES SILVERLIGHT DANS IIS