<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>fooshen's : AJAX</title><link>http://blogs.msdn.com/fooshen/archive/tags/AJAX/default.aspx</link><description>Tags: AJAX</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Performance Point Server 2007 and AJAX on SharePoint</title><link>http://blogs.msdn.com/fooshen/archive/2008/10/18/performance-point-server-2007-and-ajax-on-sharepoint.aspx</link><pubDate>Sat, 18 Oct 2008 03:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9004023</guid><dc:creator>fooshen</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/fooshen/comments/9004023.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fooshen/commentrss.aspx?PostID=9004023</wfw:commentRss><description>&lt;P&gt;If you have Microsoft Performance Point Server 2007 installed, and you do not have ASP.Net AJAX extension installed (probably like me, I use .Net 3.5), you will probably get errors in your site when you have a Performance Point Dashboard Item webpart loaded:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;Could not load file or assembly '&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;System.Web.Extensions&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;, Version=1.0.61025.0, Culture=neutral, &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;PublicKeyToken&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;=31bf3856ad364e35' or one of its dependencies. The system cannot find the file.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Well instead of installing ASP.Net AJAX Extension 1.0, we can still make it work via Assembly Redirections. Here's how:&lt;/P&gt;
&lt;P&gt;1. Locate the web.config file for your SharePoint site, as well as the PerformancePoint Monitoring Designer web service and its Preview directory.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://img406.imageshack.us/img406/6568/picture1mu1.jpg" border=0 mce_src="http://img406.imageshack.us/img406/6568/picture1mu1.jpg"&gt;&lt;/P&gt;
&lt;P&gt;2. Use any text editor (or Visual Studio), and do a search/replace to replace all references to System.Web.Extensions 1.0.61025.0 to .Net's3.5.0.0.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://img375.imageshack.us/img375/5241/picture2iw0.jpg" width=600 border=0&gt;&lt;/P&gt;
&lt;P&gt;3. Add the following line to your web.config under the &amp;lt;configuration&amp;gt; node:&lt;/P&gt;
&lt;P&gt;&amp;lt;runtime&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dependentAssembly&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" culture="neutral" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bindingRedirect oldVersion="1.0.61025.0" newVersion="3.5.0.0" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependentAssembly&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/assemblyBinding&amp;gt;&lt;BR&gt;&amp;lt;/runtime&amp;gt;&lt;/P&gt;
&lt;P&gt;Remember there are 3 web.configs that needs to change here:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;under PPSMonitoring/WebService&lt;/LI&gt;
&lt;LI&gt;under PPSMonitoring/Preview&lt;/LI&gt;
&lt;LI&gt;your SharePoint site&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Now your PerformancePoint webparts will load fine in SharePoint (and you can use the Dashboard Designer) without having to install ASP.Net AJAX Extension!&lt;/P&gt;
&lt;P&gt;But wait.. there's one more thing - if you tried to put in a custom-built webpart that uses AJAX (System.Web.Extensions 3.5.0.0) on the same page as your PerformancePoint dashboard items, you will get errors complaining that it cannot cast ScriptManager to ScriptManagerLoader. Huh?&lt;/P&gt;
&lt;P&gt;What happens is that PerformancePoint's webparts load its own ScriptManagerLoader, derived from the ScriptManager class. One easy solution to make all webparts AJAX-happy is to declaratively instantiate our ScriptManager in SharePoint's Master Page instead.&lt;/P&gt;
&lt;P&gt;From SharePoint Designer, locate your current Master Page and add the following line at the very top:&lt;/P&gt;
&lt;P&gt;&amp;lt;%@ Register TagPrefix="PPS" Namespace="Microsoft.PerformancePoint.Scorecards.WebParts" Assembly="Microsoft.PerformancePoint.Scorecards.WebParts, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %&amp;gt;&lt;/P&gt;
&lt;P&gt;Next, right after the &amp;lt;form&amp;gt; tag, add the following:&lt;/P&gt;
&lt;P&gt;&amp;lt;PPS:ScriptManagerLoader runat="server" id="ScriptManager1" EnablePartialRendering="true"/&amp;gt;&lt;/P&gt;
&lt;P&gt;Here, before our AJAX webparts attempt to load its own&amp;nbsp;ScriptManager, it first checks whether an instance is already created on the page. Since we have this on our master page, it won't try to add its ScriptManager again, and ditto to our PerformancePoint web parts. Since PerformancePoint's ScriptManagerLoader is derived from ScriptManager, it will still work if our webpart expects ScriptManager.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://img406.imageshack.us/img406/9936/picture3sy1.jpg" border=0&gt;&lt;/P&gt;
&lt;P&gt;AJAX-ified SharePoint and PerformancePoint webparts living in harmony&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9004023" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://blogs.msdn.com/fooshen/archive/tags/PerformancePoint+Server+2007/default.aspx">PerformancePoint Server 2007</category><category domain="http://blogs.msdn.com/fooshen/archive/tags/AJAX/default.aspx">AJAX</category></item></channel></rss>