<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Aidan Garnish </title>
    <description> SharePoint - Collaboration Not Competition</description>
    <link>http://www.aidangarnish.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.6.0.5</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.aidangarnish.net/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Aidan Garnish</dc:creator>
    <dc:title>Aidan Garnish </dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AidanGarnish" /><feedburner:info uri="aidangarnish" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Get XML Node InnerText from SPFile</title>
      <description>&lt;p&gt;&lt;span style="font-size: small;"&gt;A method to get the value from an XML node stored in an InfoPath XML document in SharePoint:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt; GetValueFromSPListItemXml(&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;SPListItem&lt;/span&gt;&lt;/span&gt; item, &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt; node)&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;SPFile&lt;/span&gt;&lt;/span&gt; file = item.File;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;byte&lt;/span&gt;&lt;/span&gt;[] xmlFile = file.OpenBinary();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;MemoryStream&lt;/span&gt;&lt;/span&gt; ms = &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;MemoryStream&lt;/span&gt;&lt;/span&gt;(xmlFile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XmlDocument&lt;/span&gt;&lt;/span&gt; xml = &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XmlDocument&lt;/span&gt;&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;xml.Load(ms);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt; s = xml.OuterXml;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XPathDocument&lt;/span&gt;&lt;/span&gt; x = &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XPathDocument&lt;/span&gt;&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;StringReader&lt;/span&gt;&lt;/span&gt;(s));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XPathNavigator&lt;/span&gt;&lt;/span&gt; xPathNav = x.CreateNavigator();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;xPathNav.MoveToFollowing(&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XPathNodeType&lt;/span&gt;&lt;/span&gt;.Element);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;IDictionary&lt;/span&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&amp;gt; namespaceDictionary = xPathNav.GetNamespacesInScope(&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XmlNamespaceScope&lt;/span&gt;&lt;/span&gt;.All);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XmlNamespaceManager&lt;/span&gt;&lt;/span&gt; nsmgr = &lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XmlNamespaceManager&lt;/span&gt;&lt;/span&gt;(xml.NameTable);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;nsmgr.AddNamespace(&lt;span style="color: #a31515;"&gt;&lt;span style="color: #a31515;"&gt;"my"&lt;/span&gt;&lt;/span&gt;, namespaceDictionary[&lt;span style="color: #a31515;"&gt;&lt;span style="color: #a31515;"&gt;"my"&lt;/span&gt;&lt;/span&gt;]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="color: #2b91af;"&gt;XmlNode&lt;/span&gt;&lt;/span&gt; root = xml.DocumentElement;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;/span&gt; root.SelectSingleNode(node, nsmgr).InnerText;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span&gt;Example use:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;GetValueFromSPListItemXml(item, &lt;span style="color: #a31515; font-size: small;"&gt;&lt;span style="color: #a31515; font-size: small;"&gt;"//my:Details//my:Title"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/Z0pvqOB6-8s" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/Z0pvqOB6-8s/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/Get-XML-Node-InnerText-from-SPFile.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=607e34a0-de76-4ac2-9549-83f75318a3f8</guid>
      <pubDate>Thu, 16 May 2013 20:39:00 +0100</pubDate>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=607e34a0-de76-4ac2-9549-83f75318a3f8</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=607e34a0-de76-4ac2-9549-83f75318a3f8</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/Get-XML-Node-InnerText-from-SPFile.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=607e34a0-de76-4ac2-9549-83f75318a3f8</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=607e34a0-de76-4ac2-9549-83f75318a3f8</feedburner:origLink></item>
    <item>
      <title>CV Once</title>
      <description>&lt;p&gt;&lt;a href="http://cvonce.com"&gt;CV Once &lt;/a&gt;is the answer to your job hunting woes!&lt;/p&gt;
&lt;p&gt;When applying for jobs it isn't unusual to send copies of your CV out to 10 or more companies and recruitment agents. This is usually done by emailing a static document like a PDF or Word file.&lt;/p&gt;
&lt;p&gt;The downside of this approach is that those 10+ copies of your CV become stale and out-of-date very quickly as you gain new skills and experience.&lt;/p&gt;
&lt;p&gt;This is where CV Once comes to the rescue by providing an online version of your CV that companies can access from their own systems so that they always have the most recent version of your CV.&lt;/p&gt;
&lt;p&gt;Simply &lt;a href="http://cvonce.com/CV/Edit"&gt;login&lt;/a&gt; with your Google or Microsoft account and create your CV. A link is then generated for you that you can give to companies and recruitment agents so that they can keep their systems up to date with the most recent CV you have to offer.&lt;/p&gt;
&lt;p&gt;You can even download your own JSON or XML version of your CV to host on your own website or use the API call to display your CV on your own web page.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/eNRwPjEfcpI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/eNRwPjEfcpI/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/CV-Once.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=08dca5f9-3e2d-4bf5-8cff-e0a9a1c79fe9</guid>
      <pubDate>Tue, 19 Mar 2013 11:32:00 +0100</pubDate>
      <category>CV Once</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=08dca5f9-3e2d-4bf5-8cff-e0a9a1c79fe9</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=08dca5f9-3e2d-4bf5-8cff-e0a9a1c79fe9</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/CV-Once.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=08dca5f9-3e2d-4bf5-8cff-e0a9a1c79fe9</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=08dca5f9-3e2d-4bf5-8cff-e0a9a1c79fe9</feedburner:origLink></item>
    <item>
      <title>A new blog theme</title>
      <description>&lt;p&gt;I have been thinking about giving my blog&amp;nbsp;a bit of a freshen up for a while and this is the result. It is still a work in progress, the about page still needs a proper rework,&amp;nbsp;but the aim is&amp;nbsp;to remove any unecessary clutter and leave only the content. The SharePoint banner ads are gone and so is the post and category navigation. I have also removed comments and ping backs.&lt;/p&gt;
&lt;p&gt;The vast majority of visitors to my blog arrive via a search engine so internal navigation is largely unused, I may relent and add the search box and some navigation somewhere on my about page. Very few people comment, despite getting a respectable amount of traffic for a small blog like mine (~5000 visits per month), and the comments that are left are 50% spam and 50% a simple "thanks for the info" so comments won't be missed. If anyone wants to get in touch with me directly they can find my email address in the footer. What is left is simply the information they were looking for when they typed their search terms into Google/Bing....hopefully!&lt;/p&gt;
&lt;p&gt;I would ask what people think of this approach (is it too severe?) but as comments are now turned off that would be pointless...if you care that much you can always email me...&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/Xz87udXYISE" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/Xz87udXYISE/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/A-new-blog-theme.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=f0a6a5df-be25-42df-847c-c22bfac88ffc</guid>
      <pubDate>Wed, 06 Feb 2013 19:18:00 +0100</pubDate>
      <category>Blog</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=f0a6a5df-be25-42df-847c-c22bfac88ffc</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=f0a6a5df-be25-42df-847c-c22bfac88ffc</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/A-new-blog-theme.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=f0a6a5df-be25-42df-847c-c22bfac88ffc</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=f0a6a5df-be25-42df-847c-c22bfac88ffc</feedburner:origLink></item>
    <item>
      <title>Getting a SharePoint 2013 App Submitted to the Office Store</title>
      <description>&lt;p&gt;I recently had &lt;a href="http://office.microsoft.com/en-us/store/csv-uploader-WA103980478.aspx"&gt;my first SharePoint 2013 app&lt;/a&gt; accepted to&amp;nbsp;the Office Store and thought it would be worth sharing some of the lessons I have learned over the last 3 and a bit&amp;nbsp;months whilst trying to get it through the validation process.&lt;/p&gt;
&lt;p&gt;The app I submitted is a CSV Uploader that I had previously developed as a full trust &lt;a href="http://aidangarnish.net/post/Easily-import-data-from-CSV-and-SQL-to-a-SharePoint-list.aspx"&gt;wsp solution&lt;/a&gt; that used server side code to upload a selected CSV file into a SharePoint custom&amp;nbsp;list. To try and get a better understanding&amp;nbsp;of the new SharePoint 2013 app model I decided to redevelop this functionality using client side code in a SharePoint hosted app. For more information on the three types of app (SharePoint Hosted; Auto Hosted and Provider Hosted) take a look at this &lt;a href="http://msdn.microsoft.com/en-us/library/office/apps/fp179930(v=office.15)"&gt;Apps for SharePoint overview&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the end it took me quite a while to get the app submitted to the store despite the initial development process being relatively quick. There were a few reasons for this that were mostly my own daft fault. However, there were some initial teething problems with the process that meant my submission disappeared down a rabbit hole for a few weeks early on and my Office 365 preview developer site undergoing maintenance for several weeks also didn't help.&lt;/p&gt;
&lt;p&gt;So...these are my top tips for a smooth SharePoint app submission process. Of course submitting to the App Store is entirely optional, you could always just distribute the app directly to your sites/clients and avoid Microsoft's Office Store validation rules but where is the fun in that? &lt;img title="Laughing" src="http://www.aidangarnish.net/editors/tiny_mce_3_4_3_1/plugins/emotions/img/smiley-laughing.gif" alt="Laughing" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Read the validation guidelines very carefully. The two pages you want to look at are &lt;a href="http://msdn.microsoft.com/en-us/library/office/apps/jj220035(v=office.15)"&gt;Validation policies for the apps submitted to the Office Store (version 1.2)&lt;/a&gt;&amp;nbsp;and &lt;a href="http://msdn.microsoft.com/en-us/library/office/apps/jj591603"&gt;Validation policies for apps FAQ&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The main thing I missed was that the app has to work in IE8/9 as well as IE10. Since I was originally using the HTML 5 File API to read the CSV file this caused my app to be rejected as IE8/9 does not support File API.&lt;/li&gt;
&lt;li&gt;Completing the version number correctly on the submission forms was another brief&amp;nbsp;stumbling block. The version number you enter must match the version number in the AppManifest.xml of your solution.&lt;/li&gt;
&lt;li&gt;Make sure you include the SupportedLocales tag in your AppManifest.xml - &lt;a href="http://blogs.msdn.com/b/officeapps/archive/2012/10/12/locale-support-information-is-required-for-all-apps-in-the-sharepoint-store.aspx"&gt;Locale support information is required for all apps in the store&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Test in Firefox and Chrome as well as IE8/9/10&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This might sound obvious but it is easy to assume that once you have your app working in a couple of these browsers your testing is done. This cost me a couple of failed submissions highlighting small things that were due to browser inconsistencies. What didn't help was that one of the Microsoft examples includes code to populate a dropdown list with SharePoint list names but the code to add items to the dropdown list did not work in Firefox despite working fine in IE and Chrome! &lt;a href="http://msdn.microsoft.com/en-us/library/office/apps/jj220041"&gt;The example is here and I have submitted a comment to flag the issue.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;It is also worth checking that any of the newer HTML5 features that your app relies on will function in all browsers supported by SharePoint (IE8/9/10; latest release of Chrome, Firefox, Safari) using the handy &lt;a href="http://caniuse.com"&gt;Can I Use website&lt;/a&gt;. E.g. I originally started out using File API but had to switch to using &lt;a href="https://www.filepicker.io/"&gt;Filepicker.io&lt;/a&gt; to support IE8/9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Make sure that the test steps you submit to the validation team are crystal clear&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This probably caused me the most head scratching! The test I asked the validation team to carry out was to try and upload a CSV file with a header row of "Title, Description" to a custom list with a "Title" and a "Description" column. Time and again they came back with an error about the "Description" field not being found but it was working fine on my machine, damn it! I eventually figured out that they had added a site column called "Description" to their custom list but the site column had a static name of "kpidescription" which was causing this error. Once that was figured out and the validation team created a column that had a static name of "Description" the tests passed and all was good.&lt;/li&gt;
&lt;li&gt;The main learning point here is that if your test steps&amp;nbsp;can be misinterpreted it is far more likely that you will have problems. Trying to debug an issue raised by a remote testing team is very frustrating so it is up to you to keep your tests as clear and as unambiguous as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It has been a long and at times frustrating but ultimately satisfying experience getting my first app approved and I am confident that my future submissions will be made much faster by following the advice above.&lt;/p&gt;
&lt;p&gt;Finally, I would like to thank a few people who helped along the way. Thanks to &lt;a href="https://twitter.com/jthake"&gt;Jeremy Thake&lt;/a&gt; who nudged the right people when my submission got lost in the process for three weeks. Huge thanks go to &lt;a href="http://www.linkedin.com/profile/view?id=5909877&amp;amp;authType=NAME_SEARCH&amp;amp;authToken=MSE2&amp;amp;locale=en_US&amp;amp;srchid=96e7643b-9631-4a7e-abb3-8efdf3177444-0&amp;amp;srchindex=1&amp;amp;srchtotal=6&amp;amp;goback=%2Efps_PBCK_*1_Jes_Brown_*1_*1_*1_*1_*2_*1_Y_*1_*1_*1_false_1_R_*1_*51_*1_*51_true_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2&amp;amp;pvs=ps&amp;amp;trk=pp_profile_name_link"&gt;Jes Brown&lt;/a&gt; of the Office Store Dev Communications team for all his help, communication and general hand holding through the process. He really went above and beyond in the assisstance he provided even going so far as making some sightseeing suggestions while I was in Seattle! Finally, thanks to the validation team for the excellent and detailed feedback that ultimately helped my app to pass validation and hit the store!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/-3sZHPtp03M" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/-3sZHPtp03M/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/Getting-a-SharePoint-2013-App-Submitted-to-the-Office-Store.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=f5ce0646-b53a-47ce-8494-45398282e23d</guid>
      <pubDate>Thu, 13 Dec 2012 18:50:00 +0100</pubDate>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=f5ce0646-b53a-47ce-8494-45398282e23d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=f5ce0646-b53a-47ce-8494-45398282e23d</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/Getting-a-SharePoint-2013-App-Submitted-to-the-Office-Store.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=f5ce0646-b53a-47ce-8494-45398282e23d</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=f5ce0646-b53a-47ce-8494-45398282e23d</feedburner:origLink></item>
    <item>
      <title>Journalism is broken but where are all the new business models?</title>
      <description>&lt;p&gt;Journalism as a business is failing, not a particularly new message but one that was driven home by last night's &lt;a href="http://www.supermondays.org/2012/10/11/local-and-hyperlocal-monday-22nd-october/"&gt;SuperMondays "Local and Hyperlocal" event&lt;/a&gt;.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Speakers from &lt;a href="https://beta.addiply.com/en/"&gt;Addiply&lt;/a&gt;, &lt;a href="http://www.kyeo.tv/"&gt;Keep Your Eyes Open&lt;/a&gt; and &lt;a href="http://jesmondlocal.com/"&gt;JesmondLocal&lt;/a&gt; all lined up to deliver the same story of falling readership figures for traditional print media and the subsequent reduction in advertising revenues that have led to many newspapers running at a loss or closing their doors entirely. The resulting shift to online distribution channels has gotten off to a shaky start and doesn't seem to be profitable for most people either, so what is the answer?&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Addiply was introduced by the CEO, &lt;a href="http://uk.linkedin.com/pub/rick-waghorn/3/85a/2a5"&gt;Rick Waghorn&lt;/a&gt;, who has developed a site to connect local advertisers with local web based content producers. This allows locally focussed websites to carry better targetted advertising and retain a good portion (90%) of the revenue generated. However, this just feels like "more of the same", an ad supported business model that only works for a small number of businesses with very high page views. Whilst this could be the basis of a successful business for Addiply it didn't sound like it was providing a large enough revenue for sites like JesmondLocal to make them sustainable businesses.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://uk.linkedin.com/pub/stephen-noble/1b/66a/75b"&gt;Stephen Noble&lt;/a&gt; talked about his site Keep Your Eyes Open which is "The North East&amp;rsquo;s Arts and Culture Dispatch". KYEO is producing some great content and making clever use of the tools at it's disposal to create good quality video articles. However, as Stephen disucussed, the KYEO side of the business does not turn a profit and relies on repurposing the skills of the company to offer corporate video production services to remain viable. Maybe this is it, maybe the future of journalism is as a loss leader for other services. KYEO have been able to successfully showcase their video production skills and develop a business selling them to corporates but based on his talk Stephen's passion is journalism rather than making coroporate videos.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;JesmondLocal was started by ex-Guardian journalist &lt;a href="http://www.linkedin.com/pub/ian-wylie/25/a49/854"&gt;Ian Wylie&lt;/a&gt; to provide a "&amp;lsquo;hyperlocal&amp;rsquo; news service for the people who live and work in Jesmond". The site does a great job of reporting on local issues and carrying out the 4th estate role of journalism by keeping local democracy in check. The production of JesmondLocal is achieved using a small army of student and local volunteers which is a great accolade for local collaboration and community building but it doesn't offer a sustainable business model for the future of journalism. It sounds like this year Ian is going to be getting the latest crop of student intake to look more closely at ways to make journalism pay which will hopefully lead to some radically new business models.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;The facts that traditional media is struggling to survive and that very few people are making online journalism pay are nothing new but I was surprised at the lack of radically new ideas coming from journalists who are trying to come up with new models. There seemed to be a general consensus that this is just how things are and that they will get much worse before they get better. There was some support for public funding for journalism but little agreement on what form that would take or who should receive it and in any case a business based on politically vulnerable public funding is always going to be built on shaky foundations.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;One of the core themes that came through during the event was that society needs organisations that we can trust to provide news and that this needs to be paid for, somehow. In reality I am not sure that people really do&amp;nbsp;trust organisations though. Instead people tend to trust people (not faceless organisations), who behave consistently and with integrity and maybe building this trust could be one route to a sustainable business for some journalists. I know that most of the content I consume on a daily basis comes from individuals that I trust and that produce content I am interested in. For example, people like Seth Godin consistently produce free content and have built decent size audiences and huge amounts of trust. I would be interested to know if anyone is already trying this approach in journalism, ie. building an audience by giving content away and behaving in a consistently trust worthy way and then occasionally releasing a more substantial piece of paid for content.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;It feels like we need to spend some more time thinking about how people really want to consume content and how they are already consuming it. With the rise of sites like Instapaper and the use of RSS feed readers and eBook readers people are not consuming content on the original publishing site anymore. Instead people are choosing to access content without branding or advertising in increasingly innovative ways as demonstrated by this &lt;a href="http://www.hanselman.com/blog/InstapaperDeliveredToYourKindleChangesHowYouConsumeWebContentPlusIFTTTBlogsAndMore.aspx"&gt;post from Scott Hanselman&lt;/a&gt;. The challenge then, is how to engage with those readers and turn them into loyal fans&amp;nbsp;- *hint* the answer&amp;nbsp;isn't more advertising.&lt;/p&gt;
&lt;p&gt;I don't think the issue is a lack of quality content as one commenter suggested during the Q&amp;amp;A session. The quality of content is better than ever if you know where to look and how to curate. I also don't think that the answer is content being displayed in increasingly novel ways like this &lt;a href="http://pitchfork.com/features/cover-story/reader/bat-for-lashes/"&gt;Pictchfork/Bat For Lashes example&lt;/a&gt;&amp;nbsp;as the novelty soon wears off and becomes a distraction from the actual content.&lt;/p&gt;
&lt;p&gt;It is clear that nobody has the answers yet but what is also clear is that far more radical thought is required to come up with sustainable business models for journalism. Any ideas anyone?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/boQEVy7zrqk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/boQEVy7zrqk/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/Journalism-is-broken-but-where-are-all-the-new-business-models.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=c95e92a2-e07d-4e10-a12a-bddd185c40f2</guid>
      <pubDate>Tue, 23 Oct 2012 13:29:00 +0100</pubDate>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=c95e92a2-e07d-4e10-a12a-bddd185c40f2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=c95e92a2-e07d-4e10-a12a-bddd185c40f2</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/Journalism-is-broken-but-where-are-all-the-new-business-models.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=c95e92a2-e07d-4e10-a12a-bddd185c40f2</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=c95e92a2-e07d-4e10-a12a-bddd185c40f2</feedburner:origLink></item>
    <item>
      <title>Deploying an external content type from Visual Studio</title>
      <description>&lt;p&gt;When deploying an external content type created in Visual Studio&amp;nbsp;from a dev to a test or production environment&amp;nbsp;you may get the error:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;Error&amp;nbsp;1&amp;nbsp;Error occurred in deployment step 'Add Solution': Property 'SiteUrl' contains an invalid URL. Import failed with the following exception message: The Web application at &lt;a href="http://mydevwebapp/"&gt;http://mydevwebapp/&lt;/a&gt; could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;This issue&amp;nbsp;occurs because the site url you are deploying to is now a different one. E.g. Production instead of dev.&lt;/p&gt;
&lt;p&gt;To resolve this simply update the SiteUrl property in the feature manifest to match a valid site url in&amp;nbsp;the target deployment environment:&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;Feature xmlns="&lt;a href="http://schemas.microsoft.com/sharepoint/"&gt;http://schemas.microsoft.com/sharepoint/&lt;/a&gt;"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;Properties&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Key="GloballyAvailable" Value="true" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Key="SiteUrl" Value="&lt;a href="http://myproductionwebapp/"&gt;http://myproductionwebapp/&lt;/a&gt;" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/Properties&amp;gt;&lt;br /&gt;&amp;lt;/Feature&amp;gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/fH87IVQ9FRs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/fH87IVQ9FRs/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/Deploying-an-external-content-type-from-Visual-Studio.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=03c47a67-7742-496f-bdbb-8810dcca1d3d</guid>
      <pubDate>Thu, 18 Oct 2012 18:16:00 +0100</pubDate>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=03c47a67-7742-496f-bdbb-8810dcca1d3d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=03c47a67-7742-496f-bdbb-8810dcca1d3d</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/Deploying-an-external-content-type-from-Visual-Studio.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=03c47a67-7742-496f-bdbb-8810dcca1d3d</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=03c47a67-7742-496f-bdbb-8810dcca1d3d</feedburner:origLink></item>
    <item>
      <title>Made In Newcastle - Beyond Ships And Coal</title>
      <description>&lt;p&gt;The people of Newcastle might not be building so many ships any more but they are building lots of interesting digital products. This is the message being promoted by new web site &lt;a href="http://madeinnewcastle.co.uk/"&gt;Made In Newcastle&lt;/a&gt; created by &lt;a href="http://www.grahamrobertsonmiller.co.uk"&gt;Graham Miller&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It is really inspiring to see so many great ideas coming out of my home city. I'm sure that there are lots more people and businesses active in the area in addition to the ones already on the site so if you are based in Newcastle and have developed a web product or know of one worth highlighting make sure you submit it for inclusion on &lt;a href="http://madeinnewcastle.co.uk/getlisted/"&gt;Made In Newcastle&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/31yCD2mTdRA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/31yCD2mTdRA/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/Made-In-Newcastle.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=9633e3f0-1a3c-42ba-8f71-9cb222b2697b</guid>
      <pubDate>Mon, 20 Aug 2012 20:53:00 +0100</pubDate>
      <category>Web</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=9633e3f0-1a3c-42ba-8f71-9cb222b2697b</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=9633e3f0-1a3c-42ba-8f71-9cb222b2697b</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/Made-In-Newcastle.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=9633e3f0-1a3c-42ba-8f71-9cb222b2697b</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=9633e3f0-1a3c-42ba-8f71-9cb222b2697b</feedburner:origLink></item>
    <item>
      <title>SPYam The Story So Far</title>
      <description>&lt;p&gt;After Microsoft's acquisition of Yammer it wasn't going to be long before the SharePoint community started to take a closer interest in what it was all about and the impact it was likely to have on the world of SharePoint and the Microsoft stack more generally. Last week &lt;a href="http://www.sharepointjoel.com"&gt;Joel Oleson&lt;/a&gt;, SharePoint superstar and community organiser set up &lt;a href="https://www.yammer.com/spyam/#/Threads/index?type=algo"&gt;SPYam&lt;/a&gt;, an (initially) invitation only Yammer community to help do just that. Since then the community has grown quickly and at time of writing has 455 members. Things are still changing rapidly and with the generous help of Neil McCarthy at Yammer the account has now been upgraded to Premium level which opens up the ability to create fuller profiles, add SharePoint integration and much more.&lt;/p&gt;
&lt;p&gt;I was interested to see how things would develop along with several other initial members who voiced concern about whether the use of Yammer for the SharePoint community would catch on. Would people be enthusiastic participants to begin with and then fade away? What advantage did Yammer provide over Twitter or Facebook? Was this just one more social tool we were going to pile on top of all the others?&lt;/p&gt;
&lt;p&gt;It does feel like there is a lot of tyre kicking going on but this after all was one of the reasons for setting up the community. There is lots of discussion around how groups should be organised or whether topics and the use of search are a better way to organise content or should it be a combination of both? Again, this is to be expected as people find their way into using this tool which feels somewhat familiar to those of us used to other social media platforms but has it's own terminology and options for achieving specific tasks.&lt;/p&gt;
&lt;p&gt;Where I have seen success in the past using Yammer is in project teams that are geographically spread out. Yammer was fantastic for keeping the team in contact in a lightweight way that wasn't disruptive to our working patterns in the way that a teleconference that requires everyone to be present at the same time can be. Problems could be resolved and issues could be discussed either rapidly or over a period of time and the discussions could be widened out to include other colleagues as required. The main reason for this success was the focus on a project, there was a definite need for communication around a set of project related activities. The big question for me is whether SPYam can find it's focus or purpose quickly enough to keep the members coming back for more.&lt;/p&gt;
&lt;p&gt;Initially SPYam definitely did feel like it was a group in search of a problem to solve and the comments about whether it really had a use felt like they may be justified. However, there are increasing numbers of discussion threads emerging that are engaging multiple people and generating useful content and ideas, there are some really interesting conversations happening around SP community user groups for example. Other interesting threads have included discussion about how to measure the success of using Yammer, whether corporate focussed start-ups will have more opportunities and whether HTML is a document. As the number of participants grows, sign up is now open to anyone (just &lt;a href="mailto:aidan@aidangarnish.net"&gt;drop me an email&lt;/a&gt; if you would like an invite), the amount of participation should continue to build and hopefully we will end up with a really useful space for the SharePoint community to come together. It is still very early days for SPYam but I think the initial signs are encouraging that this community will have some longevity and with the release of SharePoint vNext on the horizon there should be plenty to talk about.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/HsM7Ka5Fsgo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/HsM7Ka5Fsgo/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/SPYam-The-Story-So-Far.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=a70ac1db-3613-4961-8672-0d62cd775014</guid>
      <pubDate>Mon, 09 Jul 2012 12:56:00 +0100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=a70ac1db-3613-4961-8672-0d62cd775014</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=a70ac1db-3613-4961-8672-0d62cd775014</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/SPYam-The-Story-So-Far.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=a70ac1db-3613-4961-8672-0d62cd775014</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=a70ac1db-3613-4961-8672-0d62cd775014</feedburner:origLink></item>
    <item>
      <title>Lovely Beaded Lanyards, Flexible Grids and CSS Media Queries</title>
      <description>&lt;p&gt;My girlfriend Kathryn decided several months ago that she didn't like the standard lanyard that work had given her to hold her staff badge and was going to make her own beaded lanyard. After receiving positive comments about her new lanyard things have escalated and full on &lt;a href="http://pimpitpretty.com"&gt;lanyard production and selling&lt;/a&gt; has commenced.&lt;/p&gt;
&lt;p&gt;As a result I volunteered to build the ecommerce platform that would propel this beaded lanyard making enterprise to new heights. The plan was to use earlier &lt;a href="http://aidangarnish.net/post/PayPal-example-project-C-ASPNet.aspx"&gt;PayPal integration&lt;/a&gt; experiences to enable payments and I thought it would also be a good opportunity to take a closer look at &lt;a href="http://www.alistapart.com/articles/responsive-web-design/"&gt;responsive web design&lt;/a&gt; and build a site that worked well in mobile devices.&lt;/p&gt;
&lt;p&gt;To help achieve this I used the &lt;a href="http://cssgrid.net/"&gt;CSS 1140px&lt;/a&gt;&lt;a href="http://cssgrid.net/"&gt; Grid&lt;/a&gt; as a starting point. This is a flexible 12 column grid that uses CSS media queries to apply alternative CSS styles when the screen width of the browser drops below 767px. This allows you to create a design that is 1140px wide and then with a few tweaks to the CSS it is possible to change the look and feel of the page so that it will also display nicely on a mobile device. For this project it generally meant increasing the size of buttons and making sure there was enough padding around navigation elements for those of us with fat fingers.&lt;/p&gt;
&lt;p&gt;CSS 1140px was great and really helped speed up development although the single break point at 767px did create some interesting results when viewing the site on a netbook but by adding another media query to the CSS most of the issues were ironed out. Having spent a bit more time researcing and working with responsive techniques I think that next time I would look at the option of designing for mobile first as this really does help you to focus on prioritising the content that is most important. It also forces you to think hard about the task the user is trying to complete on any particular page and making it as easy as possible for that task to be accomplished on smaller screens with single column layouts.&lt;/p&gt;
&lt;p&gt;The design "philosophy" for the site was to make it as easy as possible for the user to find the lanyard they are looking for and make a purchase. This has been achieved by ruthlessly cutting out any steps that aren't 100% necessary. For example there is no need to sign up to make a purchase, in fact there is no sign up at all, ever. In addition users don't need to provide a delivery address, instead all payments are through PayPal so we use the address that is listed on the PayPal account with an option to let us know if this isn't the correct address. As a result it is possible to go from the homepage to having made a purchase with only 3 clicks on the site.&lt;span style="font-size: 11pt; line-height: 115%; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So if you are interested in seeing streamlined responsive web design in action or in a beautiful handmade beaded lanyard for yourself, girlfriend, mum, granny or sister please take a look at &lt;a href="http://pimpitpretty.com"&gt;Pimp It Pretty&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/Y0yfKRnuw-M" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/Y0yfKRnuw-M/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/Lovely-Beaded-Lanyards-Flexible-Grids-and-CSS-Media-Queries.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=aace8051-26df-4596-9680-f7f75b713225</guid>
      <pubDate>Sun, 03 Jun 2012 10:19:00 +0100</pubDate>
      <category>PayPal</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=aace8051-26df-4596-9680-f7f75b713225</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=aace8051-26df-4596-9680-f7f75b713225</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/Lovely-Beaded-Lanyards-Flexible-Grids-and-CSS-Media-Queries.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=aace8051-26df-4596-9680-f7f75b713225</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=aace8051-26df-4596-9680-f7f75b713225</feedburner:origLink></item>
    <item>
      <title>PayPal example project C# ASP.Net</title>
      <description>&lt;p&gt;A few weeks ago I spent some time integrating PayPal Express Checkout into &lt;a href="http://bookhashtags.com"&gt;http://bookhashtags.com&lt;/a&gt; so that I could take payments for the &lt;a href="http://www.bookhashtags.com/getyourbookfeatured"&gt;featured book spot&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Whilst PayPal produces a lot of documentation and provides some tools to help generate code these were not always that helpful. For example the code wizard produces code that doesn't build and uses a very old version of the API which means that a lot of the things you can now do according to the documentation just didn't work and it wasn't immediately obvious why.&lt;/p&gt;
&lt;p&gt;I have put together a &lt;a href="http://www.aidangarnish.net/file.axd?file=paypalexample.zip"&gt;bare bones Visual Studio 2010 project&lt;/a&gt; that will give you a quick understanding of the basics of the three Express Checkout calls (SetExpressCheckout, GetExpressCheckoutDetails and DoExpressCheckout) you need to make to get things working.&lt;/p&gt;
&lt;p&gt;To get the project to run you will need to set up a PayPal sandbox account here - &lt;a href="https://developer.paypal.com"&gt;https://developer.paypal.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You will need to add your sandbox account username, password and signature in the NVPAPICaller class.&lt;/p&gt;
&lt;p&gt;Once that is done just press play, change the default values on the default.aspx page and hit the Pay button.&lt;/p&gt;
&lt;p&gt;The example only adds one item and doesn't handle shipping costs. For more information on parameter names etc. see the &lt;a href="https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf"&gt;PayPal Express Checkout Integration pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.aidangarnish.net/file.axd?file=paypalexample.zip"&gt;Download the project&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/mN9xqQSIuPI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/mN9xqQSIuPI/post.aspx</link>
      <comments>http://www.aidangarnish.net/post/PayPal-example-project-C-ASPNet.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/post.aspx?id=711de242-b3b8-44cf-89a1-9d45d5f98985</guid>
      <pubDate>Thu, 01 Dec 2011 14:31:00 +0100</pubDate>
      <category>ASP.Net</category>
      <category>PayPal</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/post.aspx?id=711de242-b3b8-44cf-89a1-9d45d5f98985</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/trackback.axd?id=711de242-b3b8-44cf-89a1-9d45d5f98985</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/post/PayPal-example-project-C-ASPNet.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/syndication.axd?post=711de242-b3b8-44cf-89a1-9d45d5f98985</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/post.aspx?id=711de242-b3b8-44cf-89a1-9d45d5f98985</feedburner:origLink></item>
  </channel>
</rss>
