<?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 &#187; SharePoint</title>
	<atom:link href="http://www.21apps.com/tag/sharepoint/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.21apps.com</link>
	<description></description>
	<lastBuildDate>Wed, 28 Jul 2010 10:19:47 +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>SharePoint: Why do alert emails work but others don&#8217;t?</title>
		<link>http://www.21apps.com/sharepoint/why-do-alert-emails-work-but-others-dont/</link>
		<comments>http://www.21apps.com/sharepoint/why-do-alert-emails-work-but-others-dont/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 14:23:59 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Email]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1340</guid>
		<description><![CDATA[Problem
We have set up the correct email SMTP server in Central Administration and everyone is receiving their email alerts correctly.  When we add new users to the site it always fails to send the email reporting an error has occurred.
Investigation
The error in the SharePoint ULS logs shows that the SMTP server connection failed. 
Cannot connect to [...]]]></description>
			<content:encoded><![CDATA[<h3>Problem</h3>
<p>We have set up the correct email SMTP server in Central Administration and everyone is receiving their email alerts correctly.  When we add new users to the site it always fails to send the email reporting an error has occurred.</p>
<h3>Investigation</h3>
<p>The error in the SharePoint ULS logs shows that the SMTP server connection failed. </p>
<p><span style="font-family: Courier New;">Cannot connect to SMTP host your.smtp.server</span></p>
<h3>Analysis</h3>
<p>For any SMTP testing you rely on Telnet by running the command</p>
<p><span style="font-family: Courier New;">telnet your.smtp.server 25</span></p>
<p>This is likely to fail as well with a similar error,  which immediately leads you to the conclusion that the there is a problem with the SMTP server. </p>
<p>However there is a niggling doubt – if the SMTP server is not working how do the alert emails get sent?</p>
<h3>Root Cause</h3>
<p>After a bit of investigation the problem can be traced back to the Anti Virus software.  You will likely have checked the Firewall and ensured that it was not blocking and thought nothing of the Anti Virus as this isn’t really what it’s for.</p>
<p>However most Anti Virus software will have some form of Email Worm protection built in and this will be enabled.  In my example the server had McAfee Anti Virus installed and has a protection called:</p>
<p>“Prevent Mass Mail Worms form sending emails”</p>
<p>Editing the properties shows an include wild card (* &lt;&lt; meaning everything) and a list of excluded applications.  In this list of applications you will find OWSTIMER.EXE.</p>
<p>OWSTIMER.EXE is the SharePoint Timer Service and is used to send all email alerts.</p>
<h3>Fix</h3>
<p>Add W3WP.EXE to the list of excluded applications and McAfee Anti Virus will then allow your emails from forms like the Add Users page to be sent as well.</p>
<p>W3WP.exe is the worker process used by IIS to run your SharePoint sites.</p>
<p>The problem was not related to how SharePoint was configured but down to the fact that SharePoint sends emails using a number of processes and each of these need to be allowed to use SMTP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint/why-do-alert-emails-work-but-others-dont/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Retreat&#8211; Competition winner</title>
		<link>http://www.21apps.com/sharepoint-2010/sspretreat-london-compwinner/</link>
		<comments>http://www.21apps.com/sharepoint-2010/sspretreat-london-compwinner/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 15:30:17 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Retreat]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1336</guid>
		<description><![CDATA[To help promote the community aspect of SharePoint Retreat and share the knowledge and lessons learned beyond those that were lucky enough to attend we offer a prize for the best sharing of knowledge. This sharing could be in the form of a web cast, blog post, white paper or even presentation at a user [...]]]></description>
			<content:encoded><![CDATA[<p>To help promote the community aspect of <a href="http://www.21apps.com/?p=1313" target="_blank">SharePoint Retreat</a> and share the knowledge and lessons learned beyond those that were lucky enough to attend we offer a prize for the best sharing of knowledge. This sharing could be in the form of a web cast, blog post, white paper or even presentation at a user group.</p>
<p>As this was the first SharePoint Retreat the prize is really pretty fantastic.</p>
<p> </p>
<p><a href="http://msdn.microsoft.com/en-us/subscriptions/buy.aspx" target="_blank"><img class="wlDisabledImage" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="VS2010Ultimage_web" src="http://www.21apps.com/wp-content/uploads/2010/07/VS2010Ultimage_web.jpg" border="0" alt="VS2010Ultimage_web" width="192" height="320" align="left" /></a></p>
<p><a href="http://msdn.microsoft.com/en-us/subscriptions/buy.aspx">Visual Studio 2010 Ultimate with MSDN subscriptions valued at $11,899 each</a>!*</p>
<p>The prize was donated, indirectly, by Microsoft, I was sent a number of copies to give away for being an MVP and taking part in testing Microsoft Visual Studio 2010.</p>
<p>There were some great posts:</p>
<p>@WorTony : <a href="http://worsworld.spaces.live.com/blog/cns!400938DCD454D501!1076.entry?sa=222516566" target="_blank">SharePoint Retreat</a></p>
<p>@Weshackett: <a href="http://bit.ly/cpdL5D" target="_blank">Review of the day</a></p>
<p>@nigel_price: <a href="http://blog.njpenterprises.com/archive/2010/07/13/spretreat-10072010-london.aspx" target="_blank">SPRetreat London</a></p>
<p> </p>
<p> </p>
<p> But there was one that really stood out and provided some great code samples and “how to”s from the day </p>
<p>&#8230; and the winner of the prize is</p>
<p> </p>
<p><a href="http://www.21apps.com/wp-content/uploads/2010/07/MartinHatch.jpg"><img class="wlDisabledImage" style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Martin Hatch" src="http://www.21apps.com/wp-content/uploads/2010/07/MartinHatch_thumb.jpg" border="0" alt="Martin Hatch" width="224" height="266" align="left" /></a></p>
<p><strong>Martin Hatch</strong></p>
<p>Martin did a great <a href="http://www.martinhatch.com/2010/07/rcwp-part-1-spretreat-and-related.html" target="_blank">3 part series</a> on the challenges and lessons learnt from the day.  With full source code available in part 3.</p>
<p> </p>
<p>Congratulations Martin <img class="wlEmoticon wlEmoticon-smile" style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" src="http://www.21apps.com/wp-content/uploads/2010/07/wlEmoticonsmile.png" alt="Smile" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint-2010/sspretreat-london-compwinner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Retreat London (part 2 of 3)</title>
		<link>http://www.21apps.com/sharepoint/spretreat-london-part2/</link>
		<comments>http://www.21apps.com/sharepoint/spretreat-london-part2/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 12:55:09 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePint]]></category>
		<category><![CDATA[SharePoint Retreat]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1319</guid>
		<description><![CDATA[Part 1 – SharePoint Retreat
Part 2 – What a day!
Part 3 – Going forward
The Problem
Cross sell component
============================
Requirements:
A client wants to be able to have a component on a page which can be used to drive traffic to other areas of their site.
The setting of the problem actually had a fairly big impact on the way [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.21apps.com/?p=1313" target="_blank">Part 1 – SharePoint Retreat</a></p>
<p>Part 2 – What a day!</p>
<p><a href="http://www.21apps.com/sharepoint/spretreat-london-part3/">Part 3 – Going forward</a></p>
<h3>The Problem</h3>
<blockquote><p>Cross sell component</p>
<p>============================</p>
<p>Requirements:</p>
<p>A client wants to be able to have a component on a page which can be used to drive traffic to other areas of their site.</p></blockquote>
<p>The setting of the problem actually had a fairly big impact on the way the day went – we captured some some ideas in the feedback at the end of the day that I will cover in <a href="http://www.21apps.com/sharepoint/spretreat-london-part3/">Part 3</a>.</p>
<h3>The sessions</h3>
<p><strong>Session 1 and 2</strong></p>
<p>During the first two sessions there was a lot of discussion around the problem and ways to solve it, what the scope was and if this provided enough information.  Some teams took the opportunity to question the client (Ben Robb) and ask further details about the problem space.  It was very clear from the way the session went that the people in the room tender to deal with the bigger deployment issues and less on the coding. </p>
<p><a title="The problem" href="http://www.flickr.com/photos/10785452@N00/4787303887/"><img src="http://static.flickr.com/4080/4787303887_1ec0d8ff3d.jpg" border="0" alt="The problem" /></a></p>
<p> </p>
<p>At the end of the first session the teams presented (at this stage just talked through) the solution they had come up with.  It was interesting to see that following this session, and with a move around of pairs each team started to approach the problem in a similar way.  Having gained a better understanding of the problem and seeing real value in one of the presented sessions it made them switch their design. </p>
<p><a title="Deep in thought" href="http://www.flickr.com/photos/10785452@N00/4787935352/"><img src="http://static.flickr.com/4101/4787935352_d448f75005.jpg" border="0" alt="Deep in thought" /></a></p>
<p> </p>
<p><strong>Lunch</strong></p>
<p>It was originally planned to do a couple of short presentations during Lunch however the weather was so nice we all walked ‘in single file’ to the a park near the office and enjoyed lunch. We only had a few strange looks as we all queued up to eat!</p>
<p><a title="Lunch" href="http://www.flickr.com/photos/10785452@N00/4787304881/"><img src="http://static.flickr.com/4081/4787304881_545e430d57.jpg" border="0" alt="Lunch" /></a></p>
<p><strong> </strong></p>
<p><strong>Session 3, 4 and 5</strong></p>
<p>The original request was for the teams to delete the projects, configuration and settings and focus on the muscle memory in getting things setup. But after lunch people had started to get quite competitive and really wanted to try and do that little bit more and some decided to not delete&#8230; (they know who they are)</p>
<p><a title="Show n Tell" href="http://www.flickr.com/photos/10785452@N00/4787302917/"><img src="http://static.flickr.com/4135/4787302917_b83f421b24.jpg" border="0" alt="Show n Tell" /></a></p>
<p>After each session the teams presented their solution,  it was really great to see how changing the teams around and sharing the knowledge really helped to give people a shared understanding. </p>
<p><a title="Wes explains in Show n Tell" href="http://www.flickr.com/photos/10785452@N00/4787303391/"><img src="http://static.flickr.com/4115/4787303391_8f3903992d.jpg" border="0" alt="Wes explains in Show n Tell" /></a></p>
<p>Some of the problems seemed harder than others&#8230; like adding web part properties <img class="wlEmoticon wlEmoticon-confusedsmile" style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" src="http://www.21apps.com/wp-content/uploads/2010/07/wlEmoticonconfusedsmile.png" alt="Confused smile" /></p>
<p><a title="Deep in tought" href="http://www.flickr.com/photos/10785452@N00/4787938426/"><img src="http://static.flickr.com/4121/4787938426_f1183eac06.jpg" border="0" alt="Deep in tought" /></a></p>
<p>The final solutions really were very impressive and there have already been some great write ups</p>
<p><strong>Martin Hatch</strong></p>
<ul>
<li><a href="http://www.martinhatch.com/2010/07/rcwp-part-1-spretreat-and-related.html">RCWP Part 1 – Extending the Search Core Results Web Part</a></li>
<li><a href="http://www.martinhatch.com/2010/07/rcwp-part-2-web-part-with-ribbon.html" target="_blank">RCWP Part 2 – Web Part with Ribbon Contextual-Tab</a></li>
<li><a href="http://www.martinhatch.com/2010/07/rcwp-part-3-edit-web-part-using-ribbon.html">RCWP Part 3 – Edit Web Part using a Ribbon modal dialog</a></li>
</ul>
<p><strong>Wes Hacket</strong></p>
<ul>
<li><a title="http://weshackett.spaces.live.com/blog/cns!41B731D6A8FE484A!437.entry?wa=wsignin1.0&amp;sa=253869425" href="http://weshackett.spaces.live.com/blog/cns!41B731D6A8FE484A!437.entry?wa=wsignin1.0&amp;sa=253869425" target="_blank">SPRetreat number one</a></li>
</ul>
<p> </p>
<h3>Retrospective</h3>
<p>After the session ended and the demos were done there was a little time to get feedback on the first SharePoint Retreat.  There was some great feedback and ideas on how to refine and make the event better which will be covered in <a href="http://www.21apps.com/sharepoint/spretreat-london-part3/">Part 3 &#8211; Going Forward</a>.</p>
<h3>SharePint</h3>
<p>The event ended with a SharePint at the local pub before people headed home.</p>
<p><img src="https://tiydlw.bay.livefilestore.com/y1mA2RrsMb_vh1L4bUh-32Op2y7bGKjKCQ_i6bnd3iEtRCV-jHPEdxwlscrIZG1rgcif6_I3nCjv1Vrm1h4fJ7hVMNO3C6GLe66xsBCMmeqAZ6kb2qr_QOd8M5o50r3U0NDK3j8vtvJ1ahude4qxGDXyw/127830236-cd3510f36e5fca33b4a828dfd1b78fd3_4c39d568-full_thumb[1].jpg?download&amp;psid=1" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint/spretreat-london-part2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SharePoint Retreat London (part 1 of 3)</title>
		<link>http://www.21apps.com/sharepoint/spretreat-london-part1/</link>
		<comments>http://www.21apps.com/sharepoint/spretreat-london-part1/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 21:00:14 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Retreat]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1313</guid>
		<description><![CDATA[Part 1 – SharePoint Retreat
Part 2 – What a day!
Part 3 – Going forward
Only a couple of months ago myself (@AndrewWoody) and James (@draken) were talking about ways we could help development practices in the SharePoint community. Being avid agile enthusiasts we take a close interest in other events and activities outside of the SharePoint [...]]]></description>
			<content:encoded><![CDATA[<p>Part 1 – SharePoint Retreat</p>
<p><a href="http://www.21apps.com/sharepoint/spretreat-london-part2/">Part 2 – What a day!</a></p>
<p><a href="http://www.21apps.com/sharepoint/spretreat-london-part3/">Part 3 – Going forward</a></p>
<p>Only a couple of months ago myself (<a href="http://twitter.com/AndrewWoody" target="_blank">@AndrewWoody</a>) and James (<a href="http://twitter.com/draken" target="_blank">@draken</a>) were talking about ways we could help development practices in the SharePoint community. Being avid agile enthusiasts we take a close interest in other events and activities outside of the SharePoint world. One event really caught our attention, it focused on improving techniques, it had a simple format that could be tailored and was very much community focused.</p>
<p>In May we announced it, the worlds first <a href="http://www.21apps.com/sharepoint/sharepoint-retreat-london/" target="_blank">SharePoint Retreat</a>!</p>
<p> </p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://www.21apps.com/wp-content/uploads/2010/05/mainlogo_thumb.jpg" alt="" /></p>
<p>To make the event work, and to ensure we could always offer developers a place free of charge, SharePoint Retreat was a sponsored event.  More events are being planned and we are looking to get people onboard with SharePoint Retreats around the globe  (<a href="http://twitter.com/AndrewWoody" target="_blank">tweet me</a> if you want to get involved as an organiser or sponsor).</p>
<p> </p>
<p>The first event was held in London at the cScape offices with food an refreshment provided by 21apps becoming the joint sponsors for the event.</p>
<p><a href="www.cscape.com" target="_blank"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://eventbrite-s3.s3.amazonaws.com/eventlogos/1897550/homelogo.gif" border="0" alt="" /></a>     <a href="http://www.21apps.com" target="_blank"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://eventbrite-s3.s3.amazonaws.com/eventlogos/1897550/21appslogoinspirecommunity.gif" border="0" alt="" /></a></p>
<p>supported by myself and Ben Robb.</p>
<h3>The Event</h3>
<p>The event was sold out within a few weeks of announcement with a growing waiting list.  Being summer and with the hottest day of the year predicated for the Saturday of the event we had a couple of no show’s leaving us with 10 coders – which actually worked out as a very good number.</p>
<p>Starting at 9am in London when Transport for London decide that people don’t need tubes on a Saturday made some of the journeys in a little hectic.  Even so everyone was in, seated, eating croissants and drinking coffee by 9.30 ready to go.</p>
<p><a title="Getting Ready" href="http://www.flickr.com/photos/10785452@N00/4787301979/"><img style="display: inline; margin-left: 0px; margin-right: 0px" src="http://static.flickr.com/4120/4787301979_f9aa3f3f97.jpg" border="0" alt="Getting Ready" /></a></p>
<p>Having set the problem everyone paired up ready to code&#8230;</p>
<p><a href="http://www.21apps.com/sharepoint/spretreat-london-part2/">Part 2. What a day!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint/spretreat-london-part1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error in PortalCrawl Web Service when crawling people in SharePoint 2010</title>
		<link>http://www.21apps.com/sharepoint-2010/error-in-portalcrawl/</link>
		<comments>http://www.21apps.com/sharepoint-2010/error-in-portalcrawl/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 15:13:01 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1310</guid>
		<description><![CDATA[Today I found a little problem when working with preconfigured server farm.  The farm had all the user profile services working and there were profiles with data – but no users were returned from search.
A quick look at the logs showed the error:
sps3://machinename  &#8211; Error in PortalCrawl Web Service
 
The problem was caused because the farm [...]]]></description>
			<content:encoded><![CDATA[<p>Today I found a little problem when working with preconfigured server farm.  The farm had all the user profile services working and there were profiles with data – but no users were returned from search.</p>
<p>A quick look at the logs showed the error:</p>
<p>sps3://machinename  &#8211; Error in PortalCrawl Web Service</p>
<p> </p>
<p>The problem was caused because the farm had been installed using the Farm Config Wizard  which had set things up to use the machine name for its default web application.  This web application was not being used and so had no site collections created.  The fix was to point the sps3:// url to a web application that did have a root site collection.</p>
<p>In my search for this solution I found some great posts that provide a lot of details about the issue and a combination of these will improve your knowledge of people search and also help you resolve the issue should you happen to have it.</p>
<p> </p>
<p>Provides the solution that ultimately fixed my problem</p>
<p><a title="http://trycatch.be/blogs/tom/archive/2007/05/15/people-crawl-error-in-portalcrawl-web-service.aspx" href="http://trycatch.be/blogs/tom/archive/2007/05/15/people-crawl-error-in-portalcrawl-web-service.aspx">http://trycatch.be/blogs/tom/archive/2007/05/15/people-crawl-error-in-portalcrawl-web-service.aspx</a></p>
<p>Provides information about a permission setting that was new to me</p>
<p><a title="http://blogs.msdn.com/b/maximeb/archive/2009/10/27/error-in-portalcrawl-web-service-when-crawling-people-with-sharepoint-2010.aspx" href="http://blogs.msdn.com/b/maximeb/archive/2009/10/27/error-in-portalcrawl-web-service-when-crawling-people-with-sharepoint-2010.aspx">http://blogs.msdn.com/b/maximeb/archive/2009/10/27/error-in-portalcrawl-web-service-when-crawling-people-with-sharepoint-2010.aspx</a></p>
<p>Provides great info (albeit taken from the late great Patrick Tisseghem’s book (<a href="http://www.microsoft.com/MSPress/books/12195.aspx"><strong>Inside the Index and Search Enginges:  Microsoft Office SharePoint Server 2007  </strong></a>)<strong><br />
</strong></p>
<p><a title="http://blogs.msdn.com/b/maximeb/archive/2009/10/27/error-in-portalcrawl-web-service-when-crawling-people-with-sharepoint-2010.aspx" href="http://blogs.msdn.com/b/maximeb/archive/2009/10/27/error-in-portalcrawl-web-service-when-crawling-people-with-sharepoint-2010.aspx">http://blogs.msdn.com/b/maximeb/archive/2009/10/27/error-in-portalcrawl-web-service-when-crawling-people-with-sharepoint-2010.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint-2010/error-in-portalcrawl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>21SCRUM&#8211;Free Trial Edition Available</title>
		<link>http://www.21apps.com/21scrum/21scrumfree-trial-edition-available/</link>
		<comments>http://www.21apps.com/21scrum/21scrumfree-trial-edition-available/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 06:12:26 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[21Scrum]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.21apps.com/21scrum/21scrumfree-trial-edition-available/</guid>
		<description><![CDATA[Having released 21SCRUM on the 21st June we have been busy putting together a few changes to make it easier to use.&#160; The most important of these is the free trial edition that allows you to download and have a look at 21SCRUM.&#160; The trial edition is fully featured and, along with the other editions, [...]]]></description>
			<content:encoded><![CDATA[<p>Having released 21SCRUM on the 21st June we have been busy putting together a few changes to make it easier to use.&#160; The most important of these is the free trial edition that allows you to download and have a look at 21SCRUM.&#160; The trial edition is fully featured and, along with the other editions, now includes a getting started guide to walk you through from installation to completing your first sprint.</p>
<p>We have discovered a lot during the development of 21SCRUM and will be sharing details of these lessons in future posts.&#160; The most important of these lessons is that the SharePoint Sandbox really is a viable platform on which to build solutions.</p>
<p><a href="http://www.21SCRUM.com/buynow" target="_blank">Download your trial copy</a></p>
<p>The 21SCRUM Team</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/21scrum/21scrumfree-trial-edition-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 ECMAScript &#8211; &#8216;b&#8217; is null or not an object</title>
		<link>http://www.21apps.com/development/sp2010-b-is-null/</link>
		<comments>http://www.21apps.com/development/sp2010-b-is-null/#comments</comments>
		<pubDate>Mon, 24 May 2010 13:30:15 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[ECMAScript]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1278</guid>
		<description><![CDATA[I had to post this quick article as its one of those can&#8217;t see the wood for the trees.
I had been trying to do a simple call back to the server to display some information about a list item.
   getStory: function (id) {
    var backLogList = this.lists.getByTitle('BackLog');
     [...]]]></description>
			<content:encoded><![CDATA[<p>I had to post this quick article as its one of those can&#8217;t see the wood for the trees.</p>
<p>I had been trying to do a simple call back to the server to display some information about a list item.</p>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">   getStory: <span style="color: #0000ff">function</span> (id) {</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    <span style="color: #0000ff">var</span> backLogList = <span style="color: #0000ff">this</span>.lists.getByTitle('BackLog');</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">        <span style="color: #0000ff">this</span>.itemToGet = backLogList.getItemById(id);</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">        context.executeQueryAsync(</pre>
<pre style="background-color: #ffff00; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">        Function.createDelegate(<span style="color: #0000ff">this</span>, com.apps.aberdovey.SprintPlanning.getStorySucceeed),</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">        Function.createDelegate(<span style="color: #0000ff">this</span>, com.apps.aberdovey.SprintPlanning.onFail));</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    },</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    getStorySucceed: <span style="color: #0000ff">function</span> (sender, args) {</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    alert('got it');</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px;">    },</pre>
<p>The problem was I never got anything to happen.  My onFail() had an alert and I also showed an alert when the call succeeded.   But nothing.</p>
<p>I reverted to IE Dev toolbar where I kept getting the error</p>
<blockquote><p>&#8216;b&#8217; is null or not an object</p></blockquote>
<p>after spending time validating my calling code and cursing the lack of good examples on the web for SharePoint 2010 ECMAScript I eventually found it. </p>
<p>The delegate name for the getStorySucceed was spelt incorrectly!</p>
<p>It is amazing how much time you spend looking for stupid errors when doing JavaScript development.  This one I thought worth posting so that when other search for &#8216;b&#8217; is null or not an object they will at least have a better idea what&#8217;s wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/development/sp2010-b-is-null/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing SharePoint Retreat</title>
		<link>http://www.21apps.com/sharepoint/sharepoint-retreat-london/</link>
		<comments>http://www.21apps.com/sharepoint/sharepoint-retreat-london/#comments</comments>
		<pubDate>Tue, 04 May 2010 11:54:15 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePint]]></category>
		<category><![CDATA[SharePoint Retreat]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1267</guid>
		<description><![CDATA[
We are proud to announce the world&#8217;s first SharePoint Retreat!
The first event is taking place in London on Saturday 10th July.  Don&#8217;t delay places are filling up fast with a limit of 16 people.
 
The aim of SharePoint Retreat is to help developers practice the fundamentals of software development, but like all things in the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.21apps.com/wp-content/uploads/2010/05/mainlogo.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="mainlogo" src="http://www.21apps.com/wp-content/uploads/2010/05/mainlogo_thumb.jpg" border="0" alt="mainlogo" width="370" height="106" /></a></p>
<p>We are proud to announce the world&#8217;s first SharePoint Retreat!</p>
<blockquote><p>The first event is taking place in London on Saturday 10th July.  Don&#8217;t delay places are filling up fast with a limit of 16 people.</p>
<p><a href="http://spretreatlondon.eventbrite.com?ref=ebtn" target="_blank"  ><img border="0" src="http://www.eventbrite.com/registerbutton?eid=672945799" alt="Register for SharePoint Retreat London in London, United Kingdom  on Eventbrite" /></a> </p></blockquote>
<p>The aim of SharePoint Retreat is to help developers practice the fundamentals of software development, but like all things in the SharePoint community we intend to keep this SharePoint focused, so developers practice the fundamentals of <strong>SharePoint</strong> development</p>
<h3>What is SharePoint Retreat?</h3>
<p>The idea is not our own, more information can be found about the original Code Retreat at <a href="http://www.coderetreat.com/">http://www.coderetreat.com/</a> &#8211; we have just given it a SharePoint flavour. </p>
<p>It has a simple objective:  provide a day-long event that is focused on practicing the fundamentals of SharePoint development.</p>
<h3>Why SharePoint Retreat?</h3>
<p>We want to bring SharePoint development to the fore, to make developers want to work with SharePoint and to show that doing SharePoint development does not mean you have forego any plans to become a software craftsman.</p>
<h3>How does it work?</h3>
<p>A group of SharePoint developers &#8211; <strong>That means you! -</strong> gather at the Retreat with laptop in hand ready to code.</p>
<ul>
<li>Problem:  TBC &#8211; the problem will be SharePoint related and can vary between Retreats</li>
<li>Retreat lasts from 9am until 5pm followed by SharePint</li>
<li>Each coding session will last 1 hour</li>
<li>Each session coders will pair program</li>
</ul>
<h3>Some rules!</h3>
<ul>
<li>code is deleted after each session,  its about learning the techniques and not getting code samples</li>
<li>Encourage techniques like TDD where appropriate</li>
<li>programming pairs are swapped at each session</li>
</ul>
<h3>on the day</h3>
<ul>
<li>9:00 &#8211; 9:30 Intro to the day</li>
<li>9:30 &#8211; 10:30 session 1</li>
<li>10:30 &#8211; 10:45 retrospective</li>
<li>10:45 &#8211; 11 :45 session 2</li>
<li>11:45 &#8211; 12:00 retrospective</li>
<li>12:00 &#8211; 1:00 Lunch &#8211; with brown bag presentations</li>
<li>1:00 &#8211; 2:00 session 3</li>
<li>2:00 &#8211; 2:15 retrospective</li>
<li>2:15 &#8211; 3:15 session 4</li>
<li>3:15 &#8211; 3: 30 retrospective</li>
<li>3:30 &#8211; 4:30 session 5</li>
<li>4:30 &#8211; 5:00 wrap up</li>
<li>5:00 &#8211; late ShareFood and SharePint</li>
</ul>
<h3>in the sessions</h3>
<p><strong>session 1 and 2</strong></p>
<p>The area of SharePoint may be unfamiliar to some people, others may have done something like it before.  The aim of the first two sessions are to allow people to understand how they are going to approach the problem and what the final solution could look like.  Some pairs may try and implement it, others will spike out ideas and try to solve specific challenges.</p>
<p>At the retrospectives each pair will have a few minutes to discuss what they did and any problems they could not solve.</p>
<p><strong>Lunch</strong></p>
<p>During lunch the coders get to sit back and relax whilst the facilitator demonstrate techniques or ideas in a couple of short brown bag sessions.</p>
<p><strong>session 3, 4 and 5</strong></p>
<p>continue with the problem and looking to refine some of the scenarios and techniques.  The aim is to learn and practice techniques that will improve the knowledge and experience of the coders.  If you don&#8217;t complete the problem it&#8217;s not an issue &#8211; if you complete the problem then look for new challenges or refine the techniques.</p>
<h3>After the event</h3>
<p>Any gathering of SharePoint people and you are likely to find a SharePint &#8211; the facilitator will find a suitable venue for people to unwind, drink beer and SharePint &#8211; hopefully more SharePoint people will be in the area so that they can brag about the new found talents.</p>
<h3>What Next?</h3>
<p>If you can be in London on Saturday 10th July 2010, you&#8217;re a SharePoint developer and you fancy spending a day with other like-minded people honing you development skills.   Sign up.</p>
<p>This first event is limited to 16 coders &#8211; so be quick.  </p>
<p>If you fail to make the first 16, put your name down on the waiting list.   We do ask that people who have signed up but for whatever reason can&#8217;t make it please make the space available to others.</p>
<p><strong>How Much?  &#8211; Its Free <img src='http://www.21apps.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p>Best of all this is a community activity,  we are funding this event through sponsorship in order that we can provide the places to coders F.O.C</p>
<p>The sponsors for this inaugural event are</p>
<p><a href="http://www.cscape.com/"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="cScape" src="http://eventbrite-s3.s3.amazonaws.com/eventlogos/1897550/homelogo.gif" border="0" alt="cScape Logo" width="122" height="38" /></a></p>
<p>providing the venue and internet access &#8211; and Ben Robb</p>
<p><a href="http://www.21apps.com/"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="21apps " src="http://eventbrite-s3.s3.amazonaws.com/eventlogos/1897550/21appslogoinspirecommunity.gif" border="0" alt="21apps Inspire Community" width="134" height="50" /></a></p>
<p>providing the food &#8211; and Andrew Woodward</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint/sharepoint-retreat-london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SPEvo Session &#8211; Unit Testing SharePoint</title>
		<link>http://www.21apps.com/sharepoint/spevo2010-unit-testing-sharepoint/</link>
		<comments>http://www.21apps.com/sharepoint/spevo2010-unit-testing-sharepoint/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 17:02:42 +0000</pubDate>
		<dc:creator>Andrew Woodward</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Public Speaking]]></category>

		<guid isPermaLink="false">http://www.21apps.com/?p=1256</guid>
		<description><![CDATA[If you have been following my blog, twitter feeds and perhaps visited previous sessions I&#8217;ve done, then you will know that I am a very big advocate of Unit Testing &#8211; and have made it a personal goal to raise awareness and break down the challenges faced in doing this for SharePoint.
This time I am [...]]]></description>
			<content:encoded><![CDATA[<p>If you have been following my blog, twitter feeds and perhaps visited previous sessions I&#8217;ve done, then you will know that I am a very big advocate of Unit Testing &#8211; and have made it a personal goal to raise awareness and break down the challenges faced in doing this for SharePoint.</p>
<p>This time I am joining forces with the <a href="http://www.binarywave.com/blogs/eshupps/default.aspx" target="_blank">SharePoint Cowboy</a>, Eric Shupps, to show you some of what you should know,  but also we have some exciting demo&#8217;s that you won&#8217;t want to miss.</p>
<p>If you understand Unit Testing,  want to learn more or just interested to see us battle it out on stage you have to attend:</p>
<blockquote><p><a href="http://www.sharepointevolutionconference.com/Abstracts_DD.html#DD107" target="_blank">DD107 &#8211; Unit Testing SharePoint</a></p>
<p>Tuesday 20th April</p>
<p>10:00 am to 11:00 am</p>
<p>Deep Dive 400 Track</p>
<p>Defining a successful unit testing strategy is a key component in the SharePoint software development lifecycle. In this session we will explore the various options for insuring adequate code coverage for custom SharePoint solutions, examine several different methods and tools for creating and executing unit tests, and discover tips and tricks for working with various test frameworks. There will also be a lively discussion regarding the value of implementing methodologies such as Test Driven Development and numerous real-world examples of the benefits unit testing can provide within custom SharePoint solutions</p></blockquote>
<p> </p>
<p><a href="http://www.sharepointevolutionconference.com"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" src="http://www.21apps.com/wp-content/uploads/2010/04/clip_image001.jpg" border="0" alt="clip_image001" width="624" height="118" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21apps.com/sharepoint/spevo2010-unit-testing-sharepoint/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>
	</channel>
</rss>
