How-To-Guides Gliederung
Total Page:16
File Type:pdf, Size:1020Kb
Wie konfiguriert man Microsoft Office Sharepoint Server 2007 für Ajax und Silverlight 2.0 Einführung Web Parts sind die zentrale UI-Komponenten auf einer Sharepoint Seite. Wie man ASP.NET Controls dort in eigen entwickelten Web Parts verwenden kann ist schon an vielen Stellen beschrieben. Aber es kommt natürlich auch die Idee auf in Web Parts neue Technologien wie Ajax und eben auch Silverlight 2.0 zu verwenden. Wie das geht und wie man den Sharepoint Server 2007 konfigurieren muss damit man Ajax und Silverlight verwenden kann ist in diesem Dokument beschrieben. Anpassen der web.config damit der Sharepoint Server Ajax und Silverlight unterstützt. 1. Zuerst eine neue „sectionGroup“ im Bereich <configuration><configSections> anlegen <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. Dann müssen neuere http Handler für ASMX und AXD Requests registiert werden. Diese werden unter <system.web><httpHandlers> eingetragen. <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. Im Bereich <httpModules> ein neues Module hinzufügen <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 4. In der Sektion <compilation><assemblies> folgende Assemblies eintragen <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. Im Bereich <pages> 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. Hinter dem schließenden </system.web> den kompletten Bereich <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. Bei den Einträgen im Bereich <runtime><assemblyBinding> folgende Bindings hinzufü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> 8. Die Silverlight DLL muss auch noch zu der Liste der <SafeControls> hinzugefügt werden und die die DLL (System.Web.Silverlight.dll) auch in das Bin Verzeichnis kopiert werden <SafeControl Assembly="System.Web.Silverlight, Version=2.0.30825.0, Culture=neutral, PublicKeyToken= 31bf3856ad364e35" Namespace="System.Web" TypeName="*" Safe="True" /> 9. Dann noch die Silverlight DLL (System.Web.Silverlight.dll) auch in das Bin Verzeichnis kopieren Wenn die Silverlight Tools für Visual Studio 2008 installiert sind findet man die DLL unter: C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Server Das Bin Verzeichnis liegt bei einer Standard Installation von WSS bzw. MOSS 2007 unter: C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin 10. Mime Type Eintrag für *.xap im Internet Information Server überprüfen und gegeben falls hinzufügen. a. Windows Server 2003 Dazu unter den Administrativen Tools den „Internet Information Services (IIS) Manager“ starten. Im Manager dann die Server Instanz anklicken: Abbildung 1: Internet Information Services (IIS) Manager Mit der rechten Maustaste anklicken und Properties auswählen. Im folgenden Dialog dann auf den Button „MIME Types“ klicken. Abbildung 2: IIS Konfigurations-Dialog Wenn in der Liste der Typ *.xap bereits registriert ist muss nichts Weiteres unternommen werden. Wenn jedoch noch kein .xap Mime Type registriert ist mit klcik auf New den Mime Type „application/x-silverlight-2“ wie in der linken Box angezeigt registrieren. Abbildung 3: MIME Type Registrierung b. Windows Server 2008 Dazu unter den Administrativen Tools den „Internet Information Services (IIS) Manager“ starten. Im Manager dann die Server Instanz anklicken: Abbildung 4: Konfiguration IIS 7 Dann auf das Symbol MIME Types doppelklicken. Wenn der MIME Type .xap noch nicht eingetragen ist, über „Add“ unter dem Actions-Bereich links oben. Den Mime Type „application/x-silverlight-2“ hinzufügen. Abbildung 5: MIME Type .xap registrieren 11. Damit auch alle Änderungen wirksam werden startet man den Internet Information Server am Besten noch mal neu. Das kann man über den IIS Manager tun, oder aber in der Kommandozeile „iisreset“ aufrufen. Ich habe auch noch ein paar andere Tipps und Tricks rund um Sharepoint in einem Blog veröffentlicht, also einfach mal auch auf http://blogs.msdn.com/martinv vorbeischauen. Viele Grüße Martin Vollmer Microsoft Deutschland GmbH Developer Platform & Strategy Group Links Die Silverlight Seite im Web: http://silverlight.net/ SharePoint Developer Centers: http://msdn.microsoft.com/sharepoint http://msdn2.microsoft.com/en-us/sharepoint/ SharePoint Product Center http://www.microsoft.com/sharepoint Windows SharePoint Services Web Parts Resource Center http://msdn.microsoft.com/en-us/sharepoint/bb851483.aspx The Sharepoint Introduction for .Net Developers http://www.microsoft.com/click/SharePointDeveloper/ Auf Codeplex ( www.codeplex.com )gibt e seine Menge Tools und Templates für Sharepoint. Einfach „Sharepoint“ in der Suche eingeben. Sharepoint Blogger Sharepoint Team Blog http://blogs.msdn.com/sharepoint/ Jan Tielens http://weblogs.asp.net/jan/ Gute Infos zu WSS und Sharepoint unf auch ASP.NET Controls Autor des SmartPart Web Parts (Container für ASP.NET user controls, http://www.codeplex.com/smartpart ) Dan Winter http://blogs.msdn.com/dwinter/default.aspx Viele gute Tipps und Beispiele .