SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure
.NET Framework 3.5 AJAX und Silverlight in SharePoint registrieren

Blogs

Fabian´s Blog [SharePoint MVP]

Syndication

Vor einiger Zeit habe ich in einem Artikel beschrieben, wie die ASP.NET AJAX Extensions 1.0 in SharePoint integriert werden. Alternativ können auch die AJAX-Funktionen des .NET Frameworks 3.5 in SharePoint-Anwendungen verwendet werden. Die Integration von .NET Framework 3.5 oder Silverlight-Komponenten verlangt einige Anpassungen in der web.config-Datei der SharePoint-Webanwendung. Folgende Erweiterungen müssen in der web.config registriert werden:

1. Im Bereich <configuration><configSections> eine neue sectionGroup hinzufügen

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

 

2. Innerhalb des Elements <system.web><httpHandler> neue HTTP Handler für ASMX und zwei AXD-Ressourcen registrieren

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


3. Neues HTTP Module hinzufügen

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


4. Unterhalb des Elements <compilation><assemblies> folgende Assemblies registrieren

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


5. Innerhalb des <pages>-Elements folgende Controls registrieren

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


6. Unterhalb des schließenden Elements </system.web> den kompletten Konfigurationsblock <system.webServer> hinzufügen

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


7. Innerhalb des Bereichs <runtime><assemblyBinding> folgende Bindings anfügen

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

 

Eine einfache Variante diese Konfigurationseinstellungen anzuwenden ist die Erstellung eines Silverlight Website Projekts in Visual Studio 2008. Die von der Projektvorlage generierte web.config-Datei enthält alle Elemente, die in der SharePoint-Konfiguration hinzugefügt werden müssen.

Zur Unterstützung habe ich eine frisch überarbeitet SharePoint web.config, sowie die Standard web.config-Datei eines Silverlight Web Application Projekts zum Download bereitgestellt.

An dieser Stelle noch ein wichtiger Hinweis: Auf Codeplex und einigen Community Portalen gibt es eine Reihe von Tools, die die Registrierung der AJAX-Extensions automatisieren. Ein Großteil dieser Tools registriert die ASP.NET Extensions 1.0 und nicht die Erweiterungen des .NET Frameworks 3.5. Sollte jemand Tools für die Registrierung der AJAX 3.5- sowie Silverlight-Erweiterungen kennen, würde ich mich über einen Post an dieser Stelle freuen!

In einem folgenden Blogbeitrag werde ich beschreiben, welche weiteren Schritte erforderlich sind, Silverlight-Anwendungen in SharePoint-Umgebungen zu betreiben.


Bereitgestellt 5 Okt 2008 9:23 von Fabian Moritz
Gespeichert unter: , ,

Kommentare

René Hézser geschrieben re: .NET Framework 3.5 AJAX und Silverlight in SharePoint registrieren
on 5 Okt 2008 11:16

Hallo Fabian,

auf Codeplex gibt es eine Solution die die nötigen web.config Änderungen durchführt:

"3.5 Web.Config Feature" (www.codeplex.com/.../ProjectReleases.aspx)

Getestet habe ich es noch nicht.

Gruß

René

TrackBack geschrieben Silverlight (Beta 2 oder RC0) in SharePoint-Anwendungen aktivieren
on 6 Okt 2008 14:15

Silverlight (Beta 2 oder RC0) in SharePoint-Anwendungen aktivieren

http:// geschrieben re: .NET Framework 3.5 AJAX und Silverlight in SharePoint registrieren
on 6 Okt 2008 14:18

Hallo René,

danke für den Tipp! Ich werde mir das Feature mal anschauen und posten, ob es was taugt.

Viele Grüße

Fabian

TrackBack geschrieben Silverlight Controls in Webparts hosten
on 28 Okt 2008 8:58

Silverlight Controls in Webparts hosten

TrackBack geschrieben Silverlight Clock Webpart
on 17 Nov 2008 8:09

Silverlight Clock Webpart

http:// geschrieben re: .NET Framework 3.5 AJAX und Silverlight in SharePoint registrieren
on 22 Dez 2008 20:19

Hallo,

wie verhält es ich bei 64-bit ?  Ajax vom 3.5 Framework verwenden und auf extension 1.0 vezichten ? Ist das dann auch im full ASP 64 bit modus ?

Gruß

SharePoint Blog - René Hézser geschrieben .NET 3.5 and Silverlight
on 24 Jun 2009 19:13

Using AJAX or Silverlight from within SharePoint in Webparts ...

Steffen Inderwies geschrieben re: .NET Framework 3.5 AJAX und Silverlight in SharePoint registrieren
on 20 Nov 2009 13:03

SharePoint 2010 Feeling mit Silverlight Charts in SharePoint 2007

NT Authority geschrieben re: .NET Framework 3.5 AJAX und Silverlight in SharePoint registrieren
on 9 Apr 2010 8:16

Das o.g. Feature taugt was