<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Agile Sharepoint development by 21apps and Andrew Woodward MVP</title>
	<atom:link href="http://www.21apps.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.21apps.com</link>
	<description></description>
	<lastBuildDate>Fri, 26 Feb 2010 09:40:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Live meeting connection issues with Microsoft Online</title>
		<link>http://www.21apps.com/bpos/live-meeting-connection-issues-with-ms-online/</link>
		<comments>http://www.21apps.com/bpos/live-meeting-connection-issues-with-ms-online/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 08:35:11 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[BPOS]]></category>
		<category><![CDATA[Microsoft Online]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1213</guid>
		<description><![CDATA[If you have signed up to the Microsoft Online services and have included Live Meeting in your subscription you may have problems connecting to other live meetings organised outside of the Microsoft Online servers  (e.g. meetings with Microsoft).
The problem as I understand it is that the single sign-on client sets some default account and server [...]]]></description>
			<content:encoded><![CDATA[<p>If you have signed up to the Microsoft Online services and have included Live Meeting in your subscription you may have problems connecting to other live meetings organised outside of the Microsoft Online servers  (e.g. meetings with Microsoft).</p>
<p>The problem as I understand it is that the single sign-on client sets some default account and server options that direct the live meeting client to the Microsoft Online servers, and these prevent pass through or redirect to the hosting server.</p>
<p>The problem you get is the client fails to contact the live meeting server requesting that you install a different version of the Live Meeting Client.</p>
<blockquote><p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Install a Different Version of Live Meeting Client<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
The version of the Live Meeting client is not compatible with the server.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p></blockquote>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/02/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="The version of the Live Meeting client is not compatible with the server." src="http://www.21apps.com/wp-content/uploads/2010/02/image_thumb3.png" border="0" alt="The version of the Live Meeting client is not compatible with the server." width="500" height="175" /></a></p>
<p> </p>
<p>Fortunately you do not actually need another version,  you just need to remove the configuration setting that the Single Sign-on client provided.   I recommend you make a note of these in case you need them in the future.</p>
<h3>Fixing the Issue</h3>
<p>Open the Live Meeting client from the start menu and click the menu in the top left (as below) and choose Open User Accounts.</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/02/image4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.21apps.com/wp-content/uploads/2010/02/image_thumb4.png" border="0" alt="image" width="390" height="232" /></a></p>
<p> </p>
<p>Clear the sign-in name and URL, it you end up looking like the image below.</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/02/image5.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.21apps.com/wp-content/uploads/2010/02/image_thumb5.png" border="0" alt="image" width="577" height="484" /></a> </p>
<p>Click on the advanced button and uncheck the use these Servers.</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/02/image6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.21apps.com/wp-content/uploads/2010/02/image_thumb6.png" border="0" alt="image" width="585" height="281" /></a></p>
<p>Click OK and OK to confirm.</p>
<p>Close the client and you should be good to go.</p>
<p>To start new meetings you will need to do this from the Single Sign-On client (directed to the web) &#8211; or you could reset the properties.</p>
<h3>Downside</h3>
<p>Removoing the settings above means that you will be unable to use Office Communicator &#8211; so it will likely be a case of switching between the settings until Microsoft can resolve the issue properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/bpos/live-meeting-connection-issues-with-ms-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up SharePoint 2010 CI process with Team City</title>
		<link>http://www.21apps.com/continuous-integraton/setting-up-sharepoint-2010-ci-process-with-team-city/</link>
		<comments>http://www.21apps.com/continuous-integraton/setting-up-sharepoint-2010-ci-process-with-team-city/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 21:27:58 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[Continuous Integraton]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Aberdovey]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1198</guid>
		<description><![CDATA[In this article and screen cast we will discuss the idea behind the CI process and focus on the technical tricks that we need to make in order to get this working for a SharePoint 2010 project using Team City and Subversion.
One of the first things that you will want to do for any development project [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>In this article and screen cast we will discuss the idea behind the CI process and focus on the technical tricks that we need to make in order to get this working for a SharePoint 2010 project using Team City and Subversion.</p></blockquote>
<p>One of the first things that you will want to do for any development project is setup your <a href="http://en.wikipedia.org/wiki/Continuous_Integration" target="_blank">Continuous Integration</a>process. The value of having a server automatically monitor your source code repository for changes and validating they work is immense</p>
<p>Its worth mentioning that doing Continuous Integration is not something you will want to leave until later in the project.  Waiting means the solution gets bigger and more complex which in turn make the setup more comples.   My recommendation:  Get this configured early, during Sprint 0  (i.e. before you write any real production code) if at all possible.</p>
<h3>The basic CI Process</h3>
<p>The diagram below shows the normal process that occurs.  </p>
<p>(1) a developer checks in some code changes to the source code repository.</p>
<p>(2) The CI server monitors the source code repository for any changes</p>
<p>When changes are detected the code is retrieved and the automated build is started.  This build will normally include running Unit, Integration and Build Verification tests.</p>
<p>(3) The success or failure of the automated build is reported back to the Team (including the developer).</p>
<p><em>In some teams breaking the build means the developer has a forfeit of some sort.  The idea is to encourage team work but also to discourage broken builds.</em></p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/02/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Continuous Integration" src="http://www.21apps.com/wp-content/uploads/2010/02/image_thumb.png" border="0" alt="Continuous Integration" width="548" height="665" /></a> </p>
<h3>When the build breaks!</h3>
<p>A term I read recently, &#8216;Stop-the-Line&#8217;,  is used in Toyota manufacturing process where any problem results in the production line being stopped until the cause of the problem is found, resolved and ideally prevented from re-occurring.    </p>
<p>This should be the same when a build breaks; the whole Team should stop and help get the build working again.  It is not just a problem for the developer who last checked in &#8211; the whole team need the process and need the builds to be working.</p>
<h3>Setting Up in Sprint 0</h3>
<p>The actual process described above is a little into the development cycle, when the build is in place and when the team are working on production code.   Before this can happen there needs to be a process put in place.  I refer to this initial as getting the <strong>strawman</strong> solution done.</p>
<blockquote><p><em><strong>definition: Strawman</strong></em></p>
<p>In general, a strawman is an object, document, person, or argument that temporarily stands in for and is intended to be &#8220;knocked down&#8221; by something more substantial.    </p>
<p align="right">source: <a title="http://whatis.techtarget.com/wsearchResultsB/0,,sid9,00.html?query=strawman" href="http://whatis.techtarget.com/wsearchResultsB/0,,sid9,00.html?query=strawman" target="_blank">Whatis.com</a></p>
</blockquote>
<p align="left">The aim is to take some code, which will be replaced hence the Strawman term through the CI process and get the team build notifications working.   You should aim to prove the successful builds but also what happens when the build fails.  Did the team get notified?  and did they react?</p>
<h3>The Strawman Exercise</h3>
<p align="left">21apps is a small and geographically dispersed team,  we make extensive use of cloud based services for things like source control as they prove to be cost effective and flexible and our strawman  process tends to follow these steps:</p>
<p align="left">1) Create a repository for the project  (Hosted Subversion)</p>
<p align="left">2) Create the strawman project  (Simple &#8216;hello world&#8217; web part)</p>
<p align="left">3) Create a simple build script  &#8211; small steps mean a successful compile is our objective</p>
<p align="left">4) Create a automated build configuration on our CI server &#8211; we use <a href="http://www.jetbrains.com/teamcity/" target="_blank">Team City</a></p>
<p align="left">5) Prove the successful and failed builds</p>
<p align="left">In this post we are focusing on step (4) setting up Team City as our CI server. </p>
<p align="left">To make this easier I have provided a quick video walkthrough on what we have done for the early builds of <a href="http://www.21apps.com/sharepoint/introducing-project-aberdovey/" target="_blank">Project Aberdovey</a>- the process will be very similar for your SharePoint 2010 solutions.</p>
<p align="left"> </p>
<p align="left"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="450" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9655768&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="600" height="450" src="http://vimeo.com/moogaloop.swf?clip_id=9655768&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowfullscreen="true" allowscriptaccess="always"></embed></object><a href="http://vimeo.com/9655768">SharePoint 2010 &#8211; CI with TeamCity</a> from <a href="http://vimeo.com/user2441558">Andrew Woodward</a> on <a href="http://vimeo.com">Vimeo</a>.
</p>
<p align="left"> </p>
<h3>Video Spotlights</h3>
<p>Key areas that are highlighted in the video that you will enable you to build SharePoint 2010 projects in Team City.</p>
<p>If you are using MSBuild ensure you set the MSBuild version to Microsoft.Net Framework 3.5 and x64 run platform.</p>
<p align="left"><a href="http://www.21apps.com/wp-content/uploads/2010/02/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.21apps.com/wp-content/uploads/2010/02/image_thumb1.png" border="0" alt="image" width="479" height="347" /></a></p>
<p align="left"> </p>
<p align="left">Force Team City to use MSBuild 4.0 as this is needed by adding the Environment Variable</p>
<p align="left"><span style="font-family: Courier New; font-size: small;">Name: MSBuild</span></p>
<p align="left"><span style="font-family: Courier New; font-size: small;">Reference Syntax: %env.MSBuild%</span></p>
<p align="left"><span style="font-family: Courier New; font-size: small;">Value: %system.DotNetFramework4.0_x86_Path%</span></p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/02/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.21apps.com/wp-content/uploads/2010/02/image_thumb2.png" border="0" alt="image" width="580" height="233" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/continuous-integraton/setting-up-sharepoint-2010-ci-process-with-team-city/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SharePoint Memory Leaks</title>
		<link>http://www.21apps.com/sharepoint/sharepoint-memory-leaks/</link>
		<comments>http://www.21apps.com/sharepoint/sharepoint-memory-leaks/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:16:29 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.21apps.com/sharepoint/sharepoint-memory-leaks/</guid>
		<description><![CDATA[Normally I refrain for doing simple reposts of other people blogs,&#160; however having read the post SharePoint&#8217;s Sasquatch Memory Leak by Todd Carter I just had to help get the information out to as many people as possible.
We are all being good developers and running SPDisposeCheck regularly on our code to make sure we don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Normally I refrain for doing simple reposts of other people blogs,&#160; however having read the post <a href="http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx" target="_blank">SharePoint&#8217;s Sasquatch Memory Leak</a> by Todd Carter I just had to help get the information out to as many people as possible.</p>
<p>We are all being good developers and running <a href="http://code.msdn.microsoft.com/SPDisposeCheck" target="_blank">SPDisposeCheck</a> regularly on our code to make sure we don&#8217;t leak memory,&#160; however for some we still experience spiralling memory leaks that seem untraceable.&#160; until Todd&#8217;s post that is.</p>
<p>Rather than hang around here you MUST <a href="http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx" target="_blank">read it</a> now,&#160; and if your experiencing issues and have SPDisposeCheck&#8217;d your application to within an inch of it&#8217;s life with no success on controlling memory you will want to implement the workaround as soon as possible.</p>
<p>Big Thanks to Todd find Big Foot <img src='http://www.21apps.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint/sharepoint-memory-leaks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Namespace not updated in SharePoint SPIs</title>
		<link>http://www.21apps.com/development/namespace-not-token-spis/</link>
		<comments>http://www.21apps.com/development/namespace-not-token-spis/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 09:54:48 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1180</guid>
		<description><![CDATA[Firstly what is a SharePoint SPI?
No it&#8217;s not another new version, it&#8217;s a generic term that is used to describe a SharePoint Project Item within the context of a Visual Studio project.
Visual Studio 2010 has introduced a lot of great SharePoint specific features making it significantly easier to get started with SharePoint development. This post [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Firstly what is a SharePoint SPI?</p>
<p>No it&#8217;s not another new version, it&#8217;s a generic term that is used to describe a SharePoint Project Item within the context of a Visual Studio project.</p></blockquote>
<p>Visual Studio 2010 has introduced a lot of great SharePoint specific features making it significantly easier to get started with SharePoint development. This post however is not about the tools, it is intended to point out one little bit of the hidden functionality that unfortunately didn&#8217;t get completed in time.</p>
<p>The Visual Studio tools hide away so of the configuration options in .spdata files. This is normally great as you can change these via the UI tools and everything works. However I discovered a small issue during a recent refactoring of a project.</p>
<p>When you create a new SharePoint SPI (for example a web part) that needs to add a reference to the assembly it updates the .spdata file with information (as below)</p>
<pre class="csharpcode"><span class="kwrd">
<pre><span>&lt;?</span><span>xml</span> <span>version</span><span>="1.0"</span> <span>encoding</span><span>="utf-8"</span>?<span>&gt;</span>
<span>&lt;</span><span>ProjectItem</span> <span>Type</span><span>="Microsoft.VisualStudio.SharePoint.WebPart"</span>
   <span>DefaultFile</span><span>="MyWebpart.cs"</span>
   <span>SupportedTrustLevels</span><span>="All"</span>
   <span>SupportedDeploymentScopes</span><span>="Site"
   </span><span>xmlns</span><span>="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel"</span><span>&gt;</span>
  <span>&lt;</span><span>Files</span><span>&gt;</span>
    <span>&lt;</span><span>ProjectItemFile</span> <span>Source</span><span>="Elements.xml"</span> <span>Target</span><span>="MyWebpart\"</span> <span>Type</span><span>="ElementManifest"</span> <span>/&gt;</span>
    <span>&lt;</span><span>ProjectItemFile</span> <span>Source</span><span>="MyWebpart.webpart"</span> <span>Target</span><span>="MyWebpart\"</span> <span>Type</span><span>="ElementFile"</span> <span>/&gt;</span>
  <span>&lt;/</span><span>Files</span><span>&gt;</span>
  <span>&lt;</span><span>SafeControls</span><span>&gt;</span>
    <span>&lt;</span><span>SafeControl</span> <span>Name</span><span>="MyWebpart"</span>
       <span>Assembly</span><span>="$SharePoint.Project.AssemblyFullName$"</span>
       <span>Namespace</span><span>="_21apps.Sample.SPSolution"</span> <span>TypeName</span><span>="*"</span> <span>IsSafe</span><span>="true"</span> <span>/&gt;</span>
  <span>&lt;/</span><span>SafeControls</span><span>&gt;</span>
<span>&lt;/</span><span>ProjectItem</span><span>&gt;</span></pre>
<p><!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } --></p>
<p> </p>
<p></span></pre>
<p><!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } --></p>
<p>In here you will see references to the ProjectItemFiles (.weppart and element manifest) and also an entry for the SafeControls.</p>
<p>If you look closely at the SafeControl entry you will see the Assembly is using a Token</p>
<p><span style="font-family: courier new; font-size: small">Assembly=&#8221;$SharePoint.Project.AssemblyFullName$&#8221;</span></p>
<p>This is great as it allows the SafeControl to pickup the actual assembly name at compile time. The problem comes with the next part of the entry</p>
<p><span style="font-family: courier new; font-size: small">Namespace=&#8221;_21apps.Sample.SPSolution&#8221;</span></p>
<p>As you can see this is not token based, which means that if you later decide to rename you namespace, and this is case sensitive, the SharePoint safe control entry will no longer be valid and you will get an error like the one below when you deploy the solution.</p>
<blockquote><p><span style="color: #ff0000">A Web Part or Web Form Control on this Web Part Page cannot be displayed or imported because it is not registered on this site as safe.</span></p></blockquote>
<p>For more info on what this actually means have a look at Maurice Prather&#8217;s <a href="http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=189" target="_blank">post</a> from back in 2005, the information is still applicable today.</p>
<p>Unfortunately this namespace is unlikely to be made into a Token any time soon. Perhaps one for the community to pickup in the meantime. For now it is case of being aware that you need to correct this manually if you do change your namespace.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/development/namespace-not-token-spis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SUGUK London Review</title>
		<link>http://www.21apps.com/community/suguk-london-210110/</link>
		<comments>http://www.21apps.com/community/suguk-london-210110/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 09:43:23 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[SharePint]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[suguk]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1178</guid>
		<description><![CDATA[On Thursday, 28th Jan 2010, I made my way down to the London SUGUK event.  I&#8217;ve been supporting the regional events and been unable to get down to London for a number of months.   The number of attendees was amazing &#8211; I didn&#8217;t count be I guess we have over 150 people and filled the [...]]]></description>
			<content:encoded><![CDATA[<p>On Thursday, 28th Jan 2010, I made my way down to the <a href="http://suguk.org/forums/thread/22018.aspx" target="_blank">London SUGUK event</a>.  I&#8217;ve been supporting the regional events and been unable to get down to London for a number of months.   The number of attendees was amazing &#8211; I didn&#8217;t count be I guess we have over 150 people and filled the room at Microsoft.</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/01/IMG_0019.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0019" src="http://www.21apps.com/wp-content/uploads/2010/01/IMG_0019_thumb.jpg" border="0" alt="IMG_0019" width="414" height="312" /></a></p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/01/IMG_0020.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0020" src="http://www.21apps.com/wp-content/uploads/2010/01/IMG_0020_thumb.jpg" border="0" alt="IMG_0020" width="414" height="312" /></a></p>
<p>I did know quite a few regulars to the event,  but the great news again is the number of new faces.  SharePoint is really growing fast and wide and the need for information and community is growing with it.</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/01/IMG_0022.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0022" src="http://www.21apps.com/wp-content/uploads/2010/01/IMG_0022_thumb.jpg" border="0" alt="IMG_0022" width="414" height="312" /></a> </p>
<p>Big Kudos to Matt for organising the event,  Matt has taken on the responsibilities for the South East and London,  to Ben Robb for doing a SharePoint Designer 2010 session  (although as he points out the whole Application Lifecycle Management is still not baked) and for Steve Smith for &#8211; umm not sure what Steve did <img src='http://www.21apps.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It was great to see Mike Fitzmaurice there  (this man made SharePoint happen),  and I suspect his presence on the panel was part of the reason the questions and discussion remained in the ITPro and User space.   Myself, Chris O&#8217;Brien, Matt Smith and Ben Robb tried hard to put a dev take on any questions where we could.</p>
<p>What I think would go down really well is to take a lead from the Nottingham group and organise focused events,  so we could have a Dev night, Design Night, End User night etc.</p>
<p>I have to apologies (thanks Alex Pearce for tweeting me this when we were in the Pub) &#8211; I did not advertise the #SharePint that took place afterwards, It was well attended and with more room than the pub we used to go to but not an &#8216;official&#8217; #SharePint.</p>
<p>Hope to see you all at an event near you soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/community/suguk-london-210110/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 &#8211; Health Analyzer is awesome</title>
		<link>http://www.21apps.com/sharepoint-2010/health-analyzer-is-awesome/</link>
		<comments>http://www.21apps.com/sharepoint-2010/health-analyzer-is-awesome/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 22:04:52 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1160</guid>
		<description><![CDATA[Being mainly focused on development aspects of SharePoint 2010 I haven&#8217;t spent as much time as I perhaps should have looking at the new features that have been added to make Administrators lives easier.  Having just upgraded one on my development machines from SharePoint 2010 Foundation to SharePoint 2010 Server for Internet Sites,  which on [...]]]></description>
			<content:encoded><![CDATA[<p>Being mainly focused on development aspects of SharePoint 2010 I haven&#8217;t spent as much time as I perhaps should have looking at the new features that have been added to make Administrators lives easier.  Having just upgraded one on my development machines from SharePoint 2010 Foundation to SharePoint 2010 Server for Internet Sites,  which on a single box installation with AD and SQL local went without a hitch, I thought it worth looking at what the Health Analyzer was telling me.</p>
<p>As you can see I have a few issues:</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/01/AnalyserSummary.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Analyser Summary" src="http://www.21apps.com/wp-content/uploads/2010/01/AnalyserSummary_thumb.png" border="0" alt="Analyser Summary" width="644" height="402" /></a></p>
<h3>Security</h3>
<p>The security Issue I can live with and I suspect everyone running the Beta has the same as using full admin accounts is the only way to get SharePoint working fully at this stage.</p>
<h3>Performance</h3>
<p>This is a dev box, so I am ok with SQL running on the same machine,  interesting that this is the only performance issue reported as the machine is a Hyper-V VM with 4 processors allocated and only 4GB RAM &#8211; but it seems to be running fine.</p>
<h3>Configuration</h3>
<p>3 items here &#8211; the second is about Email not configured &#8211; which is correct.  And again I have used built in accounts for the service identities as this was a single box install &#8211; I may fix these up at some point.</p>
<p>The 3rd item <strong>Missing server side dependencies</strong> caught my eye,  and I have to say the dialog that was displayed brought a smile to my face.</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/01/Analyser.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Analyser" src="http://www.21apps.com/wp-content/uploads/2010/01/Analyser_thumb.png" border="0" alt="Analyser" width="623" height="713" /></a></p>
<p>The server was reporting that I had referenced a web part TestJQuery.WebPart1.WebPart1 in two places and that the files to support these web parts were not on the system meaning the user will get an error.</p>
<p><strong><span style="font-size: medium;"><em>This is awesome!</em></span></strong></p>
<p>I know why these are here,  it was a spike test that I had done previously and had obviously forgot to clear it down.  What it does show is that the administrators (and developers on your own environments) can now proactively check for missing DLLs.</p>
<p>This was not one of the features I asked for in SharePoint 2010 &#8211; but is one that I am very glad exists. </p>
<h3>Availability</h3>
<p>How many times have you been called in to find the logs have maxed out the drive space and SharePoint has crashed?   Here the health analyzer is telling me I may have an issue with space.    I&#8217;m ok with this,  I have a 40GB drive with 11GB free &#8211; I like to keep the drives around 40GB as I move then to my laptop and boot to VHD and this needs the full drive size as free space in order to boot &#8211; so I can let this one go as well.</p>
<p>The only thing left to say this is:</p>
<p><span style="font-family: Script MT Bold; font-size: large;">Thank you SharePoint Product Team.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint-2010/health-analyzer-is-awesome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration to BPOS &#8211; Initial thoughts</title>
		<link>http://www.21apps.com/bpos/bpos-initial-thoughts/</link>
		<comments>http://www.21apps.com/bpos/bpos-initial-thoughts/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 12:15:33 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[BPOS]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1149</guid>
		<description><![CDATA[Having completed the migration to Microsoft Business Productivity Online Suite (BPOS) on Christmas Eve, I thought it would be useful to post a few comments on how it has worked out in the first few weeks.  I&#8217;ll start with a few of the disappointments first and then move on to the things that I have [...]]]></description>
			<content:encoded><![CDATA[<p>Having completed the <a href="http://www.21apps.com/21apps/moving-to-bpos/">migration</a> to <a href="http://www.microsoft.com/online/en-gb/default.mspx" target="_blank">Microsoft Business Productivity Online Suite</a> (BPOS) on Christmas Eve, I thought it would be useful to post a few comments on how it has worked out in the first few weeks.  I&#8217;ll start with a few of the disappointments first and then move on to the things that I have liked.</p>
<h3>Disappointments</h3>
<p>My biggest disappointment has to be with Office Communicator 2007 R2.</p>
<h4>Unable to do Video or Voice calls</h4>
<p>With Office Communicator you cannot do Voice or Video calls unless all of the machines in the call are on the same LAN!   Really this is a major fail for something that is supposed to be cloud based &#8211; I mean you can do this in Messenger with no problem.</p>
<p>Also the Communicator Client continues to report an error stating that Communicator cannot determine the Exchange Web Services &#8211; so it won&#8217;t be able to automatically report if you are in a meeting or out of the office.</p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/01/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.21apps.com/wp-content/uploads/2010/01/image_thumb.png" border="0" alt="image" width="496" height="277" /></a></p>
<p>Effectively this makes Office Communicator almost useless as it offers less functionality than that provided by Messenger or Skype.</p>
<h4>No Links</h4>
<p>I also find the policy of blocking any URLs to be a bit over the top,  they should provide a user defined option to allow or not rather than completely block them.   Having to revert to Email to send a reference link mid conversation is really silly.</p>
<h4>A better way solution?</h4>
<p>I have looked for a beta of Communicator 2010 to see if this will solve the problem,  but it appears that there is little or no information out there on this. </p>
<p>Having migrated from an Exchange only Environment the failings of Communicator are a disappointment,  but there are a number of other benefits to BPOS that do make it worth the move.</p>
<h3>Things I Liked</h3>
<h4>Single Sign-On</h4>
<p>The single sign on client, that also configures you applications, has to be one of the best features.  The ability to be able to have automatic sign on to your applications regardless of where you are is brilliant.  And the fact the sign-on client now also <a href="http://www.21apps.com/bpos/bpos-single-sign-on-for-the-mac/">works on the Mac</a> is a real bonus to those that have a mixed environment.</p>
<h4>SharePoint</h4>
<p>As you may be aware I am a big fan of SharePoint,  I have always looked at affordable ways to get a hosted solution but have found the costs to be very high with minimal storage space.   With the BPOS account you get to create a number of SharePoint site collections (all WSS based) and can allocate storage space as needed.   During the trial you get 5GB (20 users x 0.25GB) although not a significant amount should allow you to use it as a collaboration platform.</p>
<p>The biggest limitation with SharePoint is the core platform and the ability to customise this,  in 2010 things will be much better with the introduction of the Sandboxed solutions &#8211; but there are some great examples of doing &#8216;code-less&#8217; deployments today, look at what the guys at <a href="http://www.zevenseas.com/en/default.aspx" target="_blank">Zeven Seas</a> have done with <a href="http://www.produshare.com/default.aspx" target="_blank">ProduShare</a>.</p>
<h4>Live Meeting</h4>
<p>Having failed to get video and voice going with Communicator we tried using LiveMeeting as an alternative,  sure it is perhaps a little over the top for a quick conf call &#8211; but actually we found it to be very useful.   I think when communicator is working right, you should be able to promote you call to a live meeting,  for now we will likely do this manually.</p>
<p>Live Meeting is the same product it always has been, but now in the BPOS package you get a license for everyone to be able to create meetings and can invite up to 15 people with the standard offering &#8211; which is enough for most collaborative meetings.  I am planning to look at pricing for upgrades to be able to do web casts &#8211; the professional offering supports up to 1250 people.</p>
<p>Live meeting proved to be a fantastic solution for us to do our sprint planning for <a href="http://www.21apps.com/sharepoint/introducing-project-aberdovey/" target="_blank">Project Aberdovey</a> &#8211; the team had met for a project kickoff day before Christmas and had worked through the Sprint 0 requirements ready for the first Sprint to start on 4th Jan.   Using Live Meeting, with web cams, white board and shared applications we were able to complete our Sprint planning game &#8211; decided what was in/out of the first sprint and agree and final adjustment to the story sizing.  </p>
<p>Live Meeting I feel really is the main solution to our initial challenges around communication,  it allows for very rich interaction and provides the quality of service that we need. </p>
<h3>So far so good</h3>
<p>Overall I have been impressed with the BPOS offerings,  I have noticed no performance issues or service outages and have found that the value really is in the overall package.</p>
<p>I would recommend BPOS to people moving their email onto the cloud or for those looking for a more feature rich offering.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/bpos/bpos-initial-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 &#8211; Have to Extend to have Multiple URLs</title>
		<link>http://www.21apps.com/sharepoint-2010/sharepoint-2010-and-multiple-urls/</link>
		<comments>http://www.21apps.com/sharepoint-2010/sharepoint-2010-and-multiple-urls/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 17:50:58 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1141</guid>
		<description><![CDATA[I think this was a best practice in SharePoint 2007, but was one that you could get away with.  You have internal and external URLs that will be used to access the same web application.   Internally for historical or vanity reasons this is set as something like http://companyname, externally you provide access, often via a [...]]]></description>
			<content:encoded><![CDATA[<p>I think this was a best practice in SharePoint 2007, but was one that you could get away with.  You have internal and external URLs that will be used to access the same web application.   Internally for historical or vanity reasons this is set as something like <a href="http://companyname">http://companyname</a>, externally you provide access, often via a proxy like ISA Server, via <a href="https://extranet.companyname.com">https://extranet.companyname.com</a> &#8211; and you do SSL termination at the ISA server as well.</p>
<p>You create the web application using the internal name,  get everything setup and then do the following to provide external access</p>
<ul>
<li>- Add an Alternative Access Mapping for <a href="https://extranet.companyname.com">https://extranet.companyname.com</a> in the Internet Zone</li>
<li>- Add another internal URL to the Internet Zone <a href="http://extranet.companyname.com">http://extranet.companyname.com</a></li>
<li>- In IIS add a new binding to the web application so it picks up <a href="http://extranet.companyname.com">http://extranet.companyname.com</a></li>
<li>- Publish the SharePoint site via ISA, with SSL access externally and no SSL internally</li>
</ul>
<p>This scenario would work well,  you would cut down on the web.configs to be maintained &#8211; assuming you didn&#8217;t use features to do this for you, and you would have a slightly lower overhead on the server &#8211; which was often needed in the 32bit setups.</p>
<h3>Problems in 2010  (and for some in 2007)</h3>
<p>With the introduction of the client API, and a few other services, Microsoft is now making use of the WCF for its web services.   These offer lots and lots of advantages,  but have one limitation (at least in 3.5) that makes the above scenario fail. </p>
<blockquote><p>You cannot have multiple bindings on any IIS website</p></blockquote>
<p>If you do set your environment up this way and you are using the client API you will hit problems.  Assuming you have coded you client requests with a fail delegate (like this code snippet)</p>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  1: <span style="color: #0000ff">var</span> lists;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  2: <span style="color: #0000ff">var</span> context;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  3:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  4: <span style="color: #0000ff">function</span> sample() {</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  5:     context = <span style="color: #0000ff">new</span> SP.ClientContext.get_current();</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  6:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  7:     <span style="color: #0000ff">this</span>.site = context.get_web();</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  8:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  9:     context.load(<span style="color: #0000ff">this</span>.site);</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 10:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 11:     lists = site.get_lists();</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 12:     context.load(lists);</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 13:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 14:     context.executeQueryAsync(onPass, onFail);</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 15: }</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 16:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 17: <span style="color: #0000ff">function</span> onFail(sender, args) {</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 18:     <span style="color: #0000ff">alert</span>("<span style="color: #8b0000">Fail:</span>" + args.get_message() + '\n' + args.get_stackTrace());</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 19: }</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 20:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 21: <span style="color: #0000ff">function</span> onPass(sender, args) {</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 22:     onPass(lists.getByTitle('List'));</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;"> 23: }</pre>
<p>when the async mehtod is called it will fail and the onFail method will show a 500 error.  One of the best things is the logging in 2010 has been improved so a quick look on the server and you should see something like the following in the event log:</p>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Log Name:      Application</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Source:        System.ServiceModel 3.0.0.0</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Date:          31/12/2009 16:22:06</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Event ID:      3</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Task Category: WebHost</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Level:         Error</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Keywords:      Classic</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">User:          domain\sp-admin</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Computer:      computername</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Description:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">WebHost failed to process a request.
 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/2389992
 Exception: System.ServiceModel.ServiceActivationException: The service '/_vti_bin/client.svc'
cannot be activated due to an exception during compilation.
The exception message is: This collection already contains an address with scheme http.
There can be at most one address per scheme in this collection.</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Parameter name: item. ---&gt; System.ArgumentException:
This collection already contains an address with scheme http.
There can be at most one address per scheme in this collection.</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Parameter name: item</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.UriSchemeKeyedCollection.InsertItem(Int32 index, Uri item)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.Collections.Generic.SynchronizedCollection`1.Add(T item)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.UriSchemeKeyedCollection..ctor(Uri[] addresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(Type
serviceType, Uri[] baseAddresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(
String constructorString, Uri[] baseAddresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(
String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(
String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(
String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   --- End of inner exception stack trace ---</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(
String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)
 Process Name: w3wp
 Process ID: 3924</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Event Xml:</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">&lt;Event xmlns="<span style="color: #8b0000">http://schemas.microsoft.com/win/2004/08/events/event</span>"&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  &lt;System&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Provider Name="<span style="color: #8b0000">System.ServiceModel 3.0.0.0</span>" /&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;EventID Qualifiers="<span style="color: #8b0000">49154</span>"&gt;3&lt;/EventID&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Level&gt;2&lt;/Level&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Task&gt;5&lt;/Task&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;TimeCreated SystemTime="<span style="color: #8b0000">2009-12-31T16:22:06.000000000Z</span>" /&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;EventRecordID&gt;99264&lt;/EventRecordID&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Channel&gt;Application&lt;/Channel&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Computer&gt;computername&lt;/Computer&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Security UserID="<span style="color: #8b0000">S-1-5-21-2646386180-1731120971-3670236442-1114</span>" /&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  &lt;/System&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  &lt;EventData&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Data&gt;System.ServiceModel.ServiceHostingEnvironment+HostingManager/2389992&lt;/Data&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Data&gt;System.ServiceModel.ServiceActivationException: The service '/_vti_bin/client.svc'
cannot be activated due to an exception during compilation.
The exception message is: This collection already contains an address with scheme http.
There can be at most one address per scheme in this collection.</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Parameter name: item. ---&amp;gt; System.ArgumentException:
This collection already contains an address with scheme http.
There can be at most one address per scheme in this collection.</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">Parameter name: item</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.UriSchemeKeyedCollection.InsertItem(Int32 index, Uri item)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.Collections.Generic.SynchronizedCollection`1.Add(T item)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.UriSchemeKeyedCollection..ctor(Uri[] addresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 97.91%; font-family: consolas,'Courier New',courier,monospace; height: 31px; font-size: 11px;">   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(Type serviceType,
Uri[] baseAddresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString,
Uri[] baseAddresses)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(
String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   --- End of inner exception stack trace ---</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(
String normalizedVirtualPath)</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(
String relativeVirtualPath)&lt;/Data&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Data&gt;w3wp&lt;/Data&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    &lt;Data&gt;3924&lt;/Data&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">  &lt;/EventData&gt;</pre>
<pre style="background-color: #d8d8d8; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">&lt;/Event&gt;</pre>
<p> </p>
<p>The problem, although not obvious from the error message is related to the WCF framework not being able to work with multiple names on the same schema (where schema means HTTP).</p>
<h3>Solution</h3>
<p>The solution to this is to Extend the web application to another IIS web site.  It will make use of the same application pool but is likely to add a small overhear to the server.  The biggest challenge is to ensure that you get your deployments automated so that SharePoint can keep the web.config&#8217;s inline.   And with the introduction of the Sandboxed solution the other issues with artifacts deployed to the 80 (inetpub) folder will likely go away over time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint-2010/sharepoint-2010-and-multiple-urls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint CEWP &#8211; source includes dynamic content</title>
		<link>http://www.21apps.com/sharepoint-2010/cewp-includes-dynamic-conten/</link>
		<comments>http://www.21apps.com/sharepoint-2010/cewp-includes-dynamic-conten/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 15:39:33 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1137</guid>
		<description><![CDATA[Many people have used the the Content Editor WebPart to provide an easy way to inject some JavaScript into a web page to do things like hide the left navigation or show snowflakes. 
In SharePoint 2010 the good old Content Editor WebPart is still around and even has some nice new features like format as XHTML,  [...]]]></description>
			<content:encoded><![CDATA[<p>Many people have used the the Content Editor WebPart to provide an easy way to inject some JavaScript into a web page to do things like hide the left navigation or show snowflakes. </p>
<p>In SharePoint 2010 the good old Content Editor WebPart is still around and even has some nice new features like format as XHTML,  however I discovered one feature that I suspect is more of a bug &#8211; or perhaps an undocumented feature <img src='http://www.21apps.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Scenario</h3>
<p>You have used the content editor web part to put some placeholders on the page,  a couple of DIV tags and the like.   You have another web part (it could be the same one) that does some funky Client API calls to get some information to render in those place holders &lt;  all looking good for a simple no code solution so far.</p>
<p>Now you decide that you want to copy you handy work to another site,  this is just a quick &#8216;Information Worker&#8217; hack so no need for any Visual Studio or WSPs here.</p>
<p>Edit the page and select the content editor web part,  the one that has has some content dynamically added.   Click on the HTML &gt; Edit HTML Source option and da-dah the dynamic content is included in the source.</p>
<h3>Upshot</h3>
<p>This could be a great thing if you wanted to get at all of the code,  but I suspect this is not what you expected.  The problem is that if you now make a minor change &#8211; say you wanted to add something and click save,  you will hard code whatever values had been added.</p>
<p>I would prefer the Content Editor Web Part source Editor to ONLY show me what I has actually added to it in the web part properties.   I suspect the reason for the bug is likely someone trying to reduce the calls to the server.</p>
<p><strong>Serious Problem</strong></p>
<p>The problem is actually quite serious as you only need to visit the page,  click Edit Page and then Stop Editing for it to update the content.   This really does mean that you will have to stop using the CEWP in this way at least for the Beta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint-2010/cewp-includes-dynamic-conten/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BPOS &#8211; Single sign-on for the Mac</title>
		<link>http://www.21apps.com/bpos/bpos-single-sign-on-for-the-mac/</link>
		<comments>http://www.21apps.com/bpos/bpos-single-sign-on-for-the-mac/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 00:29:33 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[BPOS]]></category>

		<guid isPermaLink="false">http://www.21apps.com/bpos/bpos-single-sign-on-for-the-mac/</guid>
		<description><![CDATA[Microsoft really do appear the be much better at supporting alternative platforms,&#160; the most obvious being the Mac.&#160; As part of the Business Productivity Online Suite (BPOS) they have recently released a single sign on application that will work with Mac OS.
&#160;More details and download from Microsoft.
The Microsoft Online Services Team Blog has some information [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft really do appear the be much better at supporting alternative platforms,&#160; the most obvious being the Mac.&#160; As part of the Business Productivity Online Suite (BPOS) they have recently released a single sign on application that will work with Mac OS.</p>
<p>&#160;<a href="http://blogs.technet.com/msonline/archive/2009/11/12/mac-sign-in-application-released-available-for-download.aspx" target="_blank">More details</a> and <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=a3f34420-bb96-47ce-9844-4eab1eb9026d" target="_blank">download from Microsoft</a>.</p>
<p>The <a href="http://blogs.technet.com/msonline/default.aspx" target="_blank">Microsoft Online Services Team Blog</a> has some <a href="http://blogs.technet.com/msonline/archive/2009/11/09/mac-single-sign-on-application-usability-different-default-browsers.aspx" target="_blank">information</a> showing how the application works and some limitations. The most notable limitations are</p>
<ul>
<li>- SSO only works with Safari 4 being default browser</li>
<li>- Communicator is not currently available for the Mac</li>
</ul>
<p>I managed to get the application installed and working on the Mac within a few minutes,&#160; the biggest issue I had was being unable to sign in and continually being prompted to say I had the wrong user name and password.&#160;&#160; After a couple of resets I found the solution.</p>
<h3>Wrong username or password</h3>
<p>If you have confirmed the username and password are correct but you continually get the login rejected,&#160; ensure that you have installed the application correctly.&#160;&#160; When you open the package you need to drag this into the applications folder for it to work.&#160; </p>
<p>Once signed in setting up Entourage was a single click process, very nice <img src='http://www.21apps.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/bpos/bpos-single-sign-on-for-the-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
