<?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>Chaks' Corner</title>
    <description>SharePoint and other stuffs</description>
    <link>http://www.chakkaradeep.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.chakkaradeep.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Chakkaradeep Chandran</dc:creator>
    <dc:title>Chaks' Corner</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" href="http://feeds.feedburner.com/ChaksCorner" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>SharePoint 2010 Lists Improvements – List Lookups and Relationships</title>
      <description>&lt;p&gt;SharePoint 2010 brings in quite a few changes to Lists in SharePoint, especially in the lookup columns and enforcing relationships.&lt;/p&gt;  &lt;p&gt;When you create a Lookup Column in SharePoint 2010 which fetches data from another List’s field, you can now add additional lookup fields and not just the identifier field!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_170.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_162.png" width="609" height="376" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Along with adding additional lookup fields, you can also enforce relationships so that it allows a cascade delete or restricts delete if a relationship still exists:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_171.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_163.png" width="573" height="129" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So, if there is a relationship associated, then you get this lovely error message when you try to delete an item (relationship behaviour configured to Restrict delete):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_172.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_164.png" width="561" height="259" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A Powerful Example to showcase List Relationships&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Well, there isn’t much if I just show you the new options in lookup fields and relationships. Here is an example to show how powerful the relationships are in SharePoint 2010!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Projects and Employees List&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So, I have two lists &lt;strong&gt;Projects&lt;/strong&gt; and &lt;strong&gt;Employees&lt;/strong&gt; list:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_180.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_172.png" width="631" height="166" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_181.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_173.png" width="632" height="405" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see the &lt;strong&gt;Projects&lt;/strong&gt; list has a lookup field &lt;strong&gt;Primary Contact&lt;/strong&gt; which links to the &lt;strong&gt;Employees Fullname &lt;/strong&gt;field. And the &lt;strong&gt;Employees&lt;/strong&gt; list has a lookup field &lt;strong&gt;Project&lt;/strong&gt; referring to the &lt;strong&gt;Project Title &lt;/strong&gt;field.&lt;/p&gt;  &lt;p&gt;If you click on a Project item, you get to see the project details, which is obvious:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_175.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_167.png" width="536" height="176" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now, I would also like to see all the &lt;em&gt;employees associated with this project&lt;/em&gt;. Given that we already have linked Projects and Employees list, this is certainly doable. You would go about asking any of your developers to build a web part that would do this job. With SharePoint 2010, its just plain simple with few steps :)&lt;/p&gt;  &lt;p&gt;All we need to do is edit the default display form and add the Employees list!&lt;/p&gt;  &lt;p&gt;In the SharePoint Ribbon (when you are on the List page, click on &lt;strong&gt;List&lt;/strong&gt; in the Ribbon), select to edit the default display form:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_176.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_168.png" width="381" height="158" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is the form that displays when you view an item.&lt;/p&gt;  &lt;p&gt;This will open the default display form page in edit mode. Notice that the Ribbon now has &lt;strong&gt;Insert &lt;/strong&gt;tab. Click on Insert and you will find the &lt;strong&gt;Related List&lt;/strong&gt; button!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_177.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_169.png" width="431" height="256" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can see the &lt;strong&gt;Employees&lt;/strong&gt; list listed there! As it says, inserting this related lists web part will display related Employees items based on the Project lookup column! Go ahead and insert the list:&lt;/p&gt;  &lt;p&gt;Below is the display form page with the related list web part added:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_178.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_170.png" width="611" height="323" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Save the page, and now, clicking on a Project item, you can see all the Employees associated with that particular project!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_182.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_174.png" width="629" height="326" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That wasn’t hard! Now, this is what I call a ‘killer-feature!’ :)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=Wi2qjw_Myuk:-4_HKIzFK5M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=Wi2qjw_Myuk:-4_HKIzFK5M:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/Wi2qjw_Myuk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/Wi2qjw_Myuk/post.aspx</link>
      <author>chakkaradeep</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-Lists-Improvements-e28093-List-Lookups-and-Relationships.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=ca36d017-1bbf-41aa-8be7-55acacc7b02f</guid>
      <pubDate>Fri, 06 Nov 2009 23:56:51 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>chakkaradeep</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=ca36d017-1bbf-41aa-8be7-55acacc7b02f</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=ca36d017-1bbf-41aa-8be7-55acacc7b02f</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-Lists-Improvements-e28093-List-Lookups-and-Relationships.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=ca36d017-1bbf-41aa-8be7-55acacc7b02f</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=ca36d017-1bbf-41aa-8be7-55acacc7b02f</feedburner:origLink></item>
    <item>
      <title>SharePoint 2010 and PowerShell – Made for Each Other!</title>
      <description>&lt;p&gt;One of the cool new features introduced in SharePoint 2010 are the new set of &lt;a href="http://technet.microsoft.com/en-gb/sharepoint/ee518662.aspx#WindowsPowerShell" target="_blank"&gt;PowerShell Cmdlets for SharePoint&lt;/a&gt;. I have been working on those PowerShell Cmdlets for some time now (mainly configuring SharePoint service applications than development) and I am quite impressed to see how simple things are!&lt;/p&gt;  &lt;p&gt;If you are using MOSS 2007, stsadm command is the tool you would use to configure and manage your SharePoint environment. The &lt;a href="http://www.codeplex.com/site/search?projectSearchText=SharePoint%20PowerShell" target="_blank"&gt;SharePoint community&lt;/a&gt; was the only resource if you were looking to leverage the PowerShell strength in MOSS 2007. From SharePoint 2010, though the stsadm command is still available, Microsoft recommends using the new PowerShell Cmdlets which are more efficient than using stsadm command. In fact, there is a PowerShell Cmdlet for everything and anything in SharePoint 2010!     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Where to Begin?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There are two ways to start using the PowerShell Cmdlets:&lt;/p&gt;  &lt;p&gt;1) From the SP2010 Management Shell&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_169.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_161.png" width="241" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This opens a PowerShell Console session with all the cmdlets loaded.&lt;/p&gt;  &lt;p&gt;2) Adding the Microsoft.SharePoint.PowerShell snap-in&lt;/p&gt;  &lt;p&gt;You can also open a new PowerShell window, add the &lt;strong&gt;Microsoft.SharePoint.PowerShell&lt;/strong&gt; snap-in to start using the cmdlets. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image3_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.chakkaradeep.com/image.axd?picture=image3_thumb_2.png" width="597" height="100" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Cmdlets&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now the real fun begins :)&lt;/p&gt;  &lt;p&gt;There are more than 500 cmdlets in total! Well, I have to really appreciate Dmitry for putting up the &lt;a href="http://dmitrysotnikov.wordpress.com/2009/10/19/sharepoint-2010-cmdlet-reference/" target="_blank"&gt;available cmdlets in his blog&lt;/a&gt;! So, I wont repeat them here. Remember, that list is not final, but still it gives you an idea of what is possible now.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Some examples for Administrators&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Though I see a major investment for developers too, the &lt;em&gt;Administrators&lt;/em&gt; are the ones who are going to benefit a lot from these cmdlets. &lt;/p&gt;  &lt;p&gt;Some examples are below. &lt;strong&gt;Please bear in mind that this is still in beta and things may change gradually as it reaches the final release&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;[These cmdlets involves the use of new &lt;a href="http://www.andrewconnell.com/blog/archive/2009/10/19/the-new-service-application-architecture-in-sharepoint-server-2010.aspx" target="_blank"&gt;Service Applications introduced in SharePoint 2010&lt;/a&gt;]&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Creating a new User Profile Service Application and User Profile Service Application Proxy&lt;/strong&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$upa=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-SPProfileServiceApplication &lt;br /&gt;-Name &amp;quot;Demo &lt;span style="color: #0000ff"&gt;User&lt;/span&gt; Profile Service&amp;quot; &lt;br /&gt;-ApplicationPool &amp;quot;SharePoint Web Services &lt;span style="color: #0000ff"&gt;Default&lt;/span&gt;&amp;quot; &lt;br /&gt;-MySiteHostLocation &amp;quot;http:&lt;span style="color: #008000"&gt;//demo2010a/my&amp;quot; &lt;/span&gt;&lt;br /&gt;-MySiteManagedPath &amp;quot;my/personal&amp;quot; &lt;br /&gt;-ProfileDBName &amp;quot;DEMO2010A_ProfileDB&amp;quot; &lt;br /&gt;-ProfileSyncDBName &amp;quot;DEMO2010A_SyncDB&amp;quot; &lt;br /&gt;-SocialDBName &amp;quot;DEMO2010A_SocialDB&amp;quot; -Verbose&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-SPProfileServiceApplicationProxy &lt;br /&gt;-Name &amp;quot;Demo &lt;span style="color: #0000ff"&gt;User&lt;/span&gt; Profile Service Proxy&amp;quot; &lt;br /&gt;-ServiceApplication $upa &lt;br /&gt;-DefaultProxyGroup&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Note that this is also attaching existing databases for Profile, Social and Sync databases. This is useful when you are restoring the Users’ Profile, MySites databases and want to create a user profile service application based on those restored databases. If you dont supply any values for database, it should create a new databases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a new Secure Store Master Key &amp;amp; Application Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Secure Store Service Application manages the secure store accounts which we can use in many other service applications like Visio Services, Performance Point Services etc., for setting up authentication with external data sources. This initially requires a Master Key and Application Key to be generated based on which you can now create target applications IDs and set credentials and permissions. So below is the PowerShell script to create these initial keys:&lt;/p&gt;

&lt;p&gt;First, let us get a reference to the secure store service application:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$secureStore=&lt;span style="color: #0000ff"&gt;Get&lt;/span&gt;-SPServiceApplicationProxy | &lt;br /&gt;&lt;span style="color: #0000ff"&gt;where&lt;/span&gt; { &lt;br /&gt;$_.GetType()&lt;br /&gt;.&lt;span style="color: #0000ff"&gt;Equals&lt;/span&gt;([Microsoft.Office.SecureStoreService.Server.SecureStoreServiceApplicationProxy&lt;br /&gt;]) } &lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;Now, we can create the Master Key:&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Update&lt;/span&gt;-SPSecureStoreMasterKey &lt;br /&gt;-ServiceApplicationProxy $secureStore.Id &lt;br /&gt;-Passphrase &amp;quot;passPhrase1&amp;quot; &lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;And the Application Key:&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Update&lt;/span&gt;-SPSecureStoreApplicationServerKey &lt;br /&gt;-ServiceApplicationProxy $secureStore.Id&lt;br /&gt;-Passphrase &amp;quot;passPhrase1&amp;quot;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting the unattended account for Performance Point Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below is the PowerShell script to set the unattended account for authenticating with external data sources. Note how it also uses &lt;strong&gt;PSCredential&lt;/strong&gt; object to get the user credentials:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Get&lt;/span&gt;-SPPerformancePointServiceApplication | &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt;-SPPerformancePointSecureDataValues &lt;br /&gt;-DataSourceUnattendedServiceAccount &lt;br /&gt;(&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; System.Management.Automation.PSCredential &amp;quot;username&amp;quot;, &lt;br /&gt;(ConvertTo-SecureString &amp;quot;password&amp;quot; -AsPlainText -Force))&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;I have to agree the examples above are bit advanced, but you can see the power of PowerShell here. If you are going to do these in the SharePoint UI, its going to take at least 5-10 minutes, but with PowerShell its going to take only seconds!&lt;/div&gt;

&lt;p&gt;But for now I will leave you to explore the possibilities of the other PowerShell cmdlets like:&lt;/p&gt;

&lt;p&gt;1) Get-SPWeb&lt;/p&gt;

&lt;p&gt;2) Get-SPWebApplication&lt;/p&gt;

&lt;p&gt;3) Get-SPSite&lt;/p&gt;

&lt;p&gt;4) Get-SPFarm&lt;/p&gt;

&lt;p&gt;And some link love to Zach’s excellent blog posts:&lt;/p&gt;

&lt;p&gt;1) &lt;a href="http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=42"&gt;PowerShell 2010: Basic Discovery&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) &lt;a href="http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=43"&gt;PowerShell 2010: Basic SharePoint Cmdlets&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) &lt;a href="http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=44"&gt;SP 2010: Intro to PowerShell Part 3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will post more cmdlets as I start using them here in my blog :)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=J5OpV8HjlQw:u13QUpCFeKM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=J5OpV8HjlQw:u13QUpCFeKM:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/J5OpV8HjlQw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/J5OpV8HjlQw/post.aspx</link>
      <author>chakkaradeep</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-and-PowerShell-e28093-Made-for-Each-Other!.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=23db1314-24d6-47fc-979d-1ec76f15f921</guid>
      <pubDate>Fri, 06 Nov 2009 23:13:49 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>chakkaradeep</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=23db1314-24d6-47fc-979d-1ec76f15f921</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=23db1314-24d6-47fc-979d-1ec76f15f921</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-and-PowerShell-e28093-Made-for-Each-Other!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=23db1314-24d6-47fc-979d-1ec76f15f921</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=23db1314-24d6-47fc-979d-1ec76f15f921</feedburner:origLink></item>
    <item>
      <title>Office DevCon Session Downloads</title>
      <description>&lt;p&gt;As promised, you can download my &lt;a href="http://officedevcon.com.au/" target="_blank"&gt;Office DevCon&lt;/a&gt; session slides and project below:&lt;/p&gt;  &lt;p&gt;&lt;embed src="http://www.box.net//static/flash/box_explorer.swf?widget_hash=hd8ifg7mut&amp;amp;v=1&amp;amp;cl=0" width="460" height="345" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=nA4E9OIRjjM:X32lB9VFtAA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=nA4E9OIRjjM:X32lB9VFtAA:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/nA4E9OIRjjM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/nA4E9OIRjjM/post.aspx</link>
      <author>chakkaradeep</author>
      <comments>http://www.chakkaradeep.com/post/Office-DevCon-Session-Downloads.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=354698dc-b0b3-45f5-aacd-fa6c9e93c752</guid>
      <pubDate>Fri, 06 Nov 2009 09:02:08 +1100</pubDate>
      <category>Talks</category>
      <category>SharePoint</category>
      <dc:publisher>chakkaradeep</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=354698dc-b0b3-45f5-aacd-fa6c9e93c752</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=354698dc-b0b3-45f5-aacd-fa6c9e93c752</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/Office-DevCon-Session-Downloads.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=354698dc-b0b3-45f5-aacd-fa6c9e93c752</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=354698dc-b0b3-45f5-aacd-fa6c9e93c752</feedburner:origLink></item>
    <item>
      <title>SharePoint 2010: Content Type Hubs – Publish and Subscribe to Content Types</title>
      <description>&lt;p&gt;&lt;strong&gt;MOSS 2007&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Say for example you have a Site Collection &lt;strong&gt;Web Application1 &lt;/strong&gt;and you have created a series of content types to use. Now, you create &lt;strong&gt;&lt;strong&gt;Web Application&lt;/strong&gt;2&lt;/strong&gt; and find the necessity to reuse the content types created in &lt;strong&gt;&lt;strong&gt;Web Application&lt;/strong&gt; 1&lt;/strong&gt;. There is no way you could share or reference those content types created in &lt;strong&gt;&lt;strong&gt;Web Application&lt;/strong&gt;1&lt;/strong&gt; in &lt;strong&gt;&lt;strong&gt;Web Application&lt;/strong&gt;2&lt;/strong&gt;. The only way possible is to &lt;em&gt;create or write an application&lt;/em&gt; which would install those content types. This situation is pretty common in large organizations. This can be even considered for exposing base content types you use across multiple web applications in the farm.&lt;/p&gt;
&lt;p&gt;Below is the diagram representing the above chaos:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_162.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="MOSS 2007 - Managing Content Types" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_154.png" border="0" alt="MOSS 2007 - Managing Content Types" width="529" height="288" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SharePoint 2010&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;SharePoint 2010 now introduces a new feature called &lt;strong&gt;Content Type Hubs&lt;/strong&gt;.Content Type Hub is a central location where you can manage and publish your content types &amp;ndash; so now web applications can subscribe to this hub and pull down the published content types from the hub. Even receive updates on the published content types!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_163.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SP2010 - Content Type Hubs" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_155.png" border="0" alt="SP2010 - Content Type Hubs" width="531" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As you can see, the content type hub is exposed to every web application using the Metadata Service Application. So, as long as the web applications use the same Metadata Service Application, the content types will be pushed to those subscribed web applications.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuring The Content Type Hub&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is pretty simple.&lt;/p&gt;
&lt;p&gt;1) Create the web application and the root site which you want it to be the Hub&lt;/p&gt;
&lt;p&gt;2) In the &lt;strong&gt;Managed Metadata Service Application&lt;/strong&gt; (under Central Administration | Application Settings | Service Applications )properties, you can set the Content Type Hub&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_164.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="content type hub option" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_156.png" border="0" alt="content type hub option" width="638" height="93" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3) In the &lt;strong&gt;Managed Metadata Service Connection&lt;/strong&gt;, we explicitly tell to consume content types from the hub&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_165.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="consume content types" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_157.png" border="0" alt="consume content types" width="580" height="147" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4) Now, we can go to our content type hub site, create content types and you should see &lt;strong&gt;Manage content type publishing &lt;/strong&gt;option&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_166.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="manage publishing" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_158.png" border="0" alt="manage publishing" width="243" height="292" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;5) And publish the same&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_167.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="publish content types" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_159.png" border="0" alt="publish content types" width="569" height="361" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;6) This will publish the content types&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Timer Jobs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In order to receive the published content types immediately, you can go and run two timer jobs immediately:&lt;/p&gt;
&lt;p&gt;1) Content Type Hub&lt;/p&gt;
&lt;p&gt;2) Content Type Subscriber (of the web application which is going to receive the content types updates)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Published Content Types&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After running the timer jobs, the content types should be published. Go to your &lt;strong&gt;Site Settings | Site Collection Administration | Content Type Publishing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can see all the published content types here :)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_168.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="published content types" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_160.png" border="0" alt="published content types" width="574" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Remember, as long as the Web Application use the same Metadata Service Application the content type hub is using, it can receive the content types from the hub.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Very neat and useful feature from the SharePoint team!&lt;/p&gt;
&lt;p&gt;More posts will follow in the future once we start using it in the real world projects. Big thanks to Steve for his &lt;a href="http://blogs.technet.com/speschka/archive/2009/10/30/publish-and-subscribe-to-content-types-in-sharepoint-2010.aspx" target="_blank"&gt;blog post &lt;/a&gt;on this.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=glJ-WuTPxSs:ytMS4Utl3mM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=glJ-WuTPxSs:ytMS4Utl3mM:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/glJ-WuTPxSs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/glJ-WuTPxSs/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-Content-Type-Hubs-e28093-Publish-and-Subscribe-to-Content-Types.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=969c09a9-8394-4ab6-82f5-d734dd37abfc</guid>
      <pubDate>Tue, 03 Nov 2009 14:19:00 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=969c09a9-8394-4ab6-82f5-d734dd37abfc</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=969c09a9-8394-4ab6-82f5-d734dd37abfc</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-Content-Type-Hubs-e28093-Publish-and-Subscribe-to-Content-Types.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=969c09a9-8394-4ab6-82f5-d734dd37abfc</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=969c09a9-8394-4ab6-82f5-d734dd37abfc</feedburner:origLink></item>
    <item>
      <title>Workflow Support for External Lists</title>
      <description>&lt;p&gt;If you are already playing with SharePoint 2010 and BCS, you would have noticed that there is no option to associate workflows for external lists. Many users have asked me whether these external list support workflows, so here is the answer from &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sharepoint2010general/thread/426a0bd7-e7cf-496c-9303-76b6f8475ed1" target="_blank"&gt;Tom Rizzo, SharePoint Senior Director, at the MSDN forums&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can associate a workflow as a custom action for your External List in SPD.&amp;nbsp; You probably (and I'll have to double check but I'm 99% sure) can't have a workflow fire by default against an external list since the workflow engine won't see things changing in the backend system.     &lt;br /&gt; &lt;br /&gt;Now, workflow is pluggable in 2010 so you might be able to plug in your own event provider into our workflow engine and watch the backend yourself.&amp;nbsp; I haven't tried to do that yet so I don't know if it's feasible but it's something to take a look at if you want automatic workflow start but definitely clicking a button on the ribbon on an external list and triggering a workflow is supported.      &lt;br /&gt; &lt;br /&gt;Rather than creating an external list, you may want to instead create a SharePoint list with external columns so you get more SharePoint native features.      &lt;br /&gt;Hope this helps.      &lt;br /&gt; &lt;br /&gt;Tom&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=dZPzex_AQpw:0eMnck-JFJI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=dZPzex_AQpw:0eMnck-JFJI:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/dZPzex_AQpw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/dZPzex_AQpw/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.chakkaradeep.com/post/Workflow-Support-for-External-Lists.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=c0785c81-a6aa-49d7-be69-4cf925acfe54</guid>
      <pubDate>Sun, 01 Nov 2009 14:49:00 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=c0785c81-a6aa-49d7-be69-4cf925acfe54</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=c0785c81-a6aa-49d7-be69-4cf925acfe54</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/Workflow-Support-for-External-Lists.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=c0785c81-a6aa-49d7-be69-4cf925acfe54</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=c0785c81-a6aa-49d7-be69-4cf925acfe54</feedburner:origLink></item>
    <item>
      <title>SharePoint 2010: Visio Services</title>
      <description>&lt;p&gt;Microsoft introduced &lt;a href="http://msdn.microsoft.com/en-us/library/bb229690.aspx" target="_blank"&gt;Visio Services in SharePoint Server 2007&lt;/a&gt;. With SharePoint 2010, Microsoft has taken the Visio Services to the next level by allowing rendering of Visio diagrams and charts within the browser. Users can now use the out of the box Visio web parts to render the Visio diagrams and bring in the seamless integration of business intelligence between Visio, SharePoint and back end data.&lt;/p&gt;
&lt;p&gt;Let me show you an example:&lt;/p&gt;
&lt;p&gt;Lets create a simple Visio diagram which fetches values from external data:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_145.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_137.png" border="0" alt="image" width="401" height="396" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This diagram is using the &lt;strong&gt;SupplyChain&lt;/strong&gt; SQL database and the &lt;strong&gt;Suppliers&lt;/strong&gt; table:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_146.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_138.png" border="0" alt="image" width="530" height="389" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I can now save this as a Visio Web Diagram (.vdw) and upload to a document library in my Business Intelligence site.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_147.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_139.png" border="0" alt="image" width="325" height="76" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, I can go to my dashboard and insert the Visio web diagram using the &lt;strong&gt;Visio Web Access&lt;/strong&gt; web part.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_148.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_140.png" border="0" alt="image" width="429" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This will add the Visio Web Access web part to the dashboard page where you can specify the Visio file to render:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_157.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_149.png" border="0" alt="image" width="618" height="223" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Below is the rendered Visio web diagram in the web part:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_158.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_150.png" border="0" alt="image" width="609" height="210" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can see that the external data is also fetched in the diagram!&lt;/p&gt;
&lt;p&gt;Notice there is also an option to enable refresh!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_159.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_151.png" border="0" alt="image" width="639" height="98" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can pan and also zoom into the diagram using the zooming controls (its very interactive!):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_152.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_144.png" border="0" alt="image" width="210" height="41" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can configure some of the default behaviour of the web part from its web part options pane:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_153.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_145.png" border="0" alt="image" width="248" height="674" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Real Deal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lets go to SQL and change the &lt;strong&gt;Assembly Time&lt;/strong&gt; value for the &lt;strong&gt;Bevel Assembly&lt;/strong&gt; from &lt;strong&gt;45&lt;/strong&gt; to &lt;strong&gt;55&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_154.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_146.png" border="0" alt="image" width="491" height="124" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Lets go back to our dashboard page and refresh the Visio web diagram:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_155.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_147.png" border="0" alt="image" width="540" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We now have the updated value!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuring Visio Services&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Visio Services is managed by the &lt;strong&gt;Visio Graphics Service&lt;/strong&gt; service application (Central Administration | Application Management | Manage Service Applications)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_156.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_148.png" border="0" alt="image" width="400" height="77" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=RwjWSq8IGXo:iJilnhRaAsU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=RwjWSq8IGXo:iJilnhRaAsU:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/RwjWSq8IGXo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/RwjWSq8IGXo/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-Visio-Services.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=6b3c9b02-e6b7-4f7c-aedb-7b6ab1ed4574</guid>
      <pubDate>Wed, 28 Oct 2009 01:01:00 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=6b3c9b02-e6b7-4f7c-aedb-7b6ab1ed4574</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=6b3c9b02-e6b7-4f7c-aedb-7b6ab1ed4574</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-Visio-Services.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=6b3c9b02-e6b7-4f7c-aedb-7b6ab1ed4574</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=6b3c9b02-e6b7-4f7c-aedb-7b6ab1ed4574</feedburner:origLink></item>
    <item>
      <title>SharePoint 2010: Sandboxed Solutions</title>
      <description>&lt;p&gt;SharePoint 2010 introduces new feature called Sandboxed Solutions. These sandboxed solutions are nothing but .wsp packages which has limited access to resources and runs isolated alongside other processes. Sandboxed solutions will not be able to make updates beyond the scope of the current site. You are also limited in performing farm level and web application level changes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But Why Sandboxed Solutions?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Today, in SharePoint Server 2007, solutions are deployed in the farm level though you can activate features per web application or site. There is no proper way you can centrally manage/administer these solutions in a shared environment per web application or site. With sandboxed solutions, administrators can now allocate quotas, monitor the usage and also prevent excessive usage of resources by the solution. But yes, you are limited in the functionality what the solution can access, but as long as the solution scope is not beyond the site level, it is always better to build sandboxed solutions.&lt;/p&gt;
&lt;p&gt;Surprisingly, Sandboxed solutions are going to play a major role in Microsoft Online Services very soon :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building a Sandboxed Solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Building a Sandboxed solution is as simple as building a normal SharePoint application (Web Part, User Control etc.,).&lt;/p&gt;
&lt;p&gt;Refer the following &lt;a href="http://msdn.microsoft.com/en-us/library/ee539417%28office.14%29.aspx" target="_blank"&gt;MSDN Article&lt;/a&gt; to find out more about Sandboxed Solutions. From MSDN:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The following capabilities and elements are available in sandboxed solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;List definitions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;List instances&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Onet.xml&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;WebTemplate Feature element instead of Webtemp.xml&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Content Types/Fields&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Module/files&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Feature callouts&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Web Parts derived from &lt;a href="http://msdn2.microsoft.com/en-us/library/h0t1fxe7"&gt;WebPart&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Event receivers&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spitemeventreceiver%28office.14%29.aspx"&gt;SPItemEventReceiver&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splisteventreceiver%28office.14%29.aspx"&gt;SPListEventReceiver&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver%28office.14%29.aspx"&gt;SPWebEventReceiver&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Custom Actions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Workflows&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following capabilities and elements are not available in sandboxed solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Custom Action groups&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;HideCustomAction element&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Content Type Binding&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Web Application-scoped Features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Farm-scoped Features&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Sandbox Services&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sandbox solutions are available as a farm service that you can start/stop:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_132.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_124.png" border="0" alt="image" width="642" height="67" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are three services required for Sandboxed solutions to run:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_133.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_125.png" border="0" alt="image" width="171" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can also use stsadm command to start/stop the user code service application:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;stsadm -o provisionservice -action start -servicetype +&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Microsoft.SharePoint.Administration.SPUserCodeService, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" +&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -servicename "SPUserCodeV4"&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuring Quotas and Resource Usage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Administrators can create and configure quotas for site collection from the Central Administration.&lt;/p&gt;
&lt;p&gt;The settings are available under &lt;strong&gt;Application Management | Site Collections&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_134.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_126.png" border="0" alt="image" width="661" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Clicking on &lt;strong&gt;Specify quota templates&lt;/strong&gt; will allow administrators to create/edit quota templates and specify the maximum usage based on points.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_135.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_127.png" border="0" alt="image" width="663" height="425" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;Configure quotas and locks&lt;/strong&gt;, administrators can assign the quota to a site collection.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_136.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_128.png" border="0" alt="image" width="669" height="356" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building a simple Sandboxed Web Part Solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a new &lt;strong&gt;Empty SharePoint Project&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_137.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_129.png" border="0" alt="image" width="276" height="99" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the SharePoint Configuration Wizard, choose to &lt;strong&gt;Deploy as sandboxed solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_138.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_130.png" border="0" alt="image" width="604" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Visual Studio will create the necessary project files&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_139.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_131.png" border="0" alt="image" width="173" height="155" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Add a new Web Part item to the project&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_140.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_132.png" border="0" alt="image" width="244" height="75" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is my code inside the web part class&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;[ToolboxItemAttribute(&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;)]&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MySBWebPart : WebPart&lt;br /&gt;{&lt;br /&gt;    ListBox lstProjects = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ListBox();&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; MySBWebPart()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CreateChildControls()&lt;br /&gt;    {&lt;br /&gt;        SPLinqDataContext context = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SPLinqDataContext(&lt;span style="color: #006080"&gt;"http://demo2010a"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;        var projects = context.Projects;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var project &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; context.Projects)&lt;br /&gt;        {&lt;br /&gt;            lstProjects.Items.Add(project.Title);   &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        context.Dispose();&lt;br /&gt;&lt;br /&gt;        Controls.Add(lstProjects);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Very simple code, just pulling all the projects from a Projects list. Note that I am also using &lt;a href="http://www.chakkaradeep.com/post/2009/07/23/SharePoint-2010-e28093-LINQ-for-SharePoint.aspx" target="_blank"&gt;Linq to SharePoint&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Build and Deploy the solution&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_141.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_133.png" border="0" alt="image" width="385" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The solution will now be available in the &lt;strong&gt;Solutions Gallery&lt;/strong&gt; in your site (Site Actions-&amp;gt;Site Settings and under Galleries)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_142.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_134.png" border="0" alt="image" width="259" height="146" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can find all the user solutions there&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_143.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_135.png" border="0" alt="image" width="697" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can also notice the other info like resource usage and total server resources.&lt;/p&gt;
&lt;p&gt;Now, you can add the sandboxed web part to your site page. Below is a screenshot of the sandboxed web part&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_144.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_136.png" border="0" alt="image" width="259" height="106" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=jM9XrymN4Wo:y2dV_3q3JnE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=jM9XrymN4Wo:y2dV_3q3JnE:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/jM9XrymN4Wo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/jM9XrymN4Wo/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-Sandboxed-Solutions.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=8e9e9fa1-97a8-407c-ac72-e488d7ee07a0</guid>
      <pubDate>Tue, 27 Oct 2009 18:48:00 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=8e9e9fa1-97a8-407c-ac72-e488d7ee07a0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=8e9e9fa1-97a8-407c-ac72-e488d7ee07a0</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-Sandboxed-Solutions.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=8e9e9fa1-97a8-407c-ac72-e488d7ee07a0</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=8e9e9fa1-97a8-407c-ac72-e488d7ee07a0</feedburner:origLink></item>
    <item>
      <title>SharePoint 2010: Extending a SharePoint Node in Server Explorer</title>
      <description>&lt;p&gt;SharePoint Server Explorer is a new addition to Visual Studio 2010 along with the Visual Studio Tools for SharePoint.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_114.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_106.png" border="0" alt="image" width="230" height="175" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It is a very good tool if you want to browse the contents (site columns, content types, features etc.,) of the SharePoint site from Visual Studio. By default, it doesn&amp;rsquo;t do nothing much than showing what are available in the site.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_115.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_107.png" border="0" alt="image" width="378" height="769" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As you can see, the context menu has very fewer items. Below is the Properties pane for the &lt;strong&gt;Holds&lt;/strong&gt; list in the screenshot. The properties are stored in &lt;strong&gt;Annotations&lt;/strong&gt;. To understanding what Annotations are, it is best to consider them as a &lt;em&gt;Class&lt;/em&gt; with Properties. Those properties is what you see in the Properties pane below.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_116.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_108.png" border="0" alt="image" width="280" height="618" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Again, its read only.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I Extend?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So, the next obvious question you would ask yourself (if you are a SharePoint developer) is &amp;ndash; &lt;em&gt;Can I extend this and add my own commands or nodes to the SharePoint Server Explorer?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Yes, you can extend the SharePoint Server Explorer to:&lt;/p&gt;
&lt;p&gt;1) Create new nodes&lt;/p&gt;
&lt;p&gt;2) Extend existing nodes&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Give me an example?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lets take the &lt;strong&gt;Features&lt;/strong&gt; node&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_117.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_109.png" border="0" alt="image" width="372" height="293" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Features node displays all the active features in the site. If you right click on a feature, you get very less options&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_118.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_110.png" border="0" alt="image" width="307" height="127" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;How cool would be to add &lt;strong&gt;Deactivate&lt;/strong&gt; option to the context menu and deactivate the selected feature? :)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_119.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_111.png" border="0" alt="image" width="324" height="136" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[ By the way, the above screenshot is an actual extension built and not a Photoshop trick :) ]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Understanding the SharePoint Server Explorer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before you start writing an extension, you should get to know the different types of SharePoint Server Explorer nodes.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image36.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image36_thumb.png" border="0" alt="image" width="236" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The node that we are interested in is the &lt;strong&gt;FeatureNode&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;MSDN has excellent articles explaining how to &lt;a href="http://msdn.microsoft.com/en-us/library/ee256693%28VS.100%29.aspx" target="_blank"&gt;extend the Visual Studio Tools for SharePoint&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is a pictorial representation of what we would be doing:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_121.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_113.png" border="0" alt="image" width="582" height="327" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Create a class that implements &lt;strong&gt;IExplorerNodeTypeExtension&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2. Handle the events&lt;/p&gt;
&lt;p&gt;3. Access the properties of that node using Annotations&lt;/p&gt;
&lt;p&gt;4. Perform SharePoint operations using Client Object Model&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a Windows Class Library project and add references to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Microsoft.VisualStudio.SharePoint&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Microsoft.VisualStudio.SharePoint.Explorer.Extensions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;System.ComponentModel.Composition&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a class and implement &lt;strong&gt;IExplorerNodeTypeExtension:&lt;/strong&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; FeatureNodeExtension : IExplorerNodeTypeExtension&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As we are interested in adding an item to the context menu, handle the &lt;strong&gt;NodeMenuItemsRequested&lt;/strong&gt;. This is done in the &lt;strong&gt;Initialize&lt;/strong&gt; method:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Initialize(IExplorerNodeType nodeType)&lt;br /&gt;{&lt;br /&gt;   nodeType.NodeMenuItemsRequested += &lt;br /&gt;           &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EventHandler&amp;lt;ExplorerNodeMenuItemsRequestedEventArgs&amp;gt;&lt;br /&gt;                                        (nodeType_NodeMenuItemsRequested);&lt;br /&gt;}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And here is the event handler:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt; nodeType_NodeMenuItemsRequested(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, ExplorerNodeMenuItemsRequestedEventArgs e)&lt;br /&gt;{       &lt;br /&gt;    IMenuItem deactivateMenu = e.MenuItems.Add(&lt;span style="color: #006080"&gt;"Deactivate"&lt;/span&gt;);&lt;br /&gt;    deactivateMenu.Click += &lt;br /&gt;             &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EventHandler&amp;lt;MenuItemEventArgs&amp;gt;(deactivateMenu_Click);&lt;br /&gt;}     &lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;We add the new menu item in the event handler above and also handle its own click event.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As we want to deactivate a feature, we need to know the Feature Definition Id. They are already available in the Properties pane for a feature:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_127.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_119.png" border="0" alt="image" width="423" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To access the Properties we need to access it via the Annotations object. Here is the code to access the Feature properties:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;IFeatureNodeInfo fn = e.Node.Annotations[&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(IFeatureNodeInfo)] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; IFeatureNodeInfo;&lt;br /&gt;definitionId = fn.Id;&lt;br /&gt;featureName = fn.Name; &lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Next thing is to get the site at which this feature is installed. As the Server Explorer has already established the connection to the site, we can get it from its current context.&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;IExplorerNodeContext siteContext = e.Node.Context;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is how my event handler looks:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt; nodeType_NodeMenuItemsRequested(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, ExplorerNodeMenuItemsRequestedEventArgs e)&lt;br /&gt;{           &lt;br /&gt;    siteContext = e.Node.Context;&lt;br /&gt;    IFeatureNodeInfo fn = e.Node.Annotations[&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(IFeatureNodeInfo)] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; IFeatureNodeInfo;&lt;br /&gt;    definitionId = fn.Id;&lt;br /&gt;    featureName = fn.Name;           &lt;br /&gt;   &lt;br /&gt;    IMenuItem deactivateMenu = e.MenuItems.Add(&lt;span style="color: #006080"&gt;"Deactivate"&lt;/span&gt;);&lt;br /&gt;    deactivateMenu.Click += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EventHandler&amp;lt;MenuItemEventArgs&amp;gt;(deactivateMenu_Click);&lt;br /&gt;}     &lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We can now write code to deactivate the feature in the new menu item&amp;rsquo;s event handler using the Client Object Model:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt; deactivateMenu_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, MenuItemEventArgs e)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (MessageBox.Show(confirmationMessage,String.Format(&lt;span style="color: #006080"&gt;"Deactivate {0} feature"&lt;/span&gt;,featureName), &lt;br /&gt;                        MessageBoxButtons.YesNo, &lt;br /&gt;                        MessageBoxIcon.Exclamation) == DialogResult.Yes)&lt;br /&gt;    {&lt;br /&gt;        IExplorerNode parentFeatureNode = e.Owner &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; IExplorerNode;&lt;br /&gt;        IExplorerNode featureNode = parentFeatureNode.ParentNode;&lt;br /&gt;&lt;br /&gt;        ClientContext clientContext = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ClientContext(siteContext.SiteUrl.AbsoluteUri);&lt;br /&gt;        Web site = clientContext.Web;&lt;br /&gt;        FeatureCollection siteFeatures = site.Features; &lt;br /&gt;       &lt;br /&gt;        clientContext.Load(site, s =&amp;gt; s.Title, s =&amp;gt; s.Features);&lt;br /&gt;        siteFeatures.Remove(definitionId, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;        clientContext.ExecuteQuery();&lt;br /&gt;&lt;br /&gt;        clientContext.Dispose();&lt;br /&gt;&lt;br /&gt;        featureNode.Refresh();&lt;br /&gt;    }&lt;br /&gt;}     &lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Very simple indeed. Query and get only the Web and Features object, and then remove (deactivate) the feature from the site.&lt;/p&gt;
&lt;p&gt;You can also do this asynchronously using the &lt;a href="http://www.chakkaradeep.com/post/2009/10/21/SharePoint-2010-Asynchronous-Query-Pattern-for-Client-Object-Model.aspx" target="_blank"&gt;Asynchronous Pattern for Client OM&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deploying the Extension&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To deploy the extension, we need to include it in a .vsix package.&lt;/p&gt;
&lt;p&gt;You can use the VSIX template to create the .vsix package.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_128.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_120.png" border="0" alt="image" width="561" height="203" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Include the extension in the manifest file.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_129.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_121.png" border="0" alt="image" width="463" height="329" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Chose the content as &lt;strong&gt;MEF Component&lt;/strong&gt;&amp;nbsp; and select the extensions project as your source.&lt;/p&gt;
&lt;p&gt;Build the project to generate the .vsix package and install the package.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lsquo;Deactivate Extension&amp;rsquo; for FeaturesNode done&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And here is our menu item in the context menu:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_130.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_122.png" border="0" alt="image" width="320" height="127" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When you click on it, you will get a confirmation message:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_131.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_123.png" border="0" alt="image" width="417" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Clicking Yes will deactivate the feature and refresh the &lt;strong&gt;Features &lt;/strong&gt;node.&lt;/p&gt;
&lt;p&gt;You can download the source code and VSIX package below:&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" width="460" height="345" src="http://www.box.net//static/flash/box_explorer.swf?widget_hash=ziz0kjvani&amp;amp;v=1&amp;amp;cl=0" wmode="transparent"&gt;&lt;/embed&gt;&lt;a class="cjfrgjptypkiojejkcrp" href="http://www.box.net//static/flash/box_explorer.swf?widget_hash=ziz0kjvani&amp;amp;v=1&amp;amp;cl=0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=TMLcysZQ__I:qf6aZFwYJiE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=TMLcysZQ__I:qf6aZFwYJiE:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/TMLcysZQ__I" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/TMLcysZQ__I/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-Extending-a-SharePoint-Node-in-Server-Explorer.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=459bf63d-aab9-4185-9a55-7fb6cbfe59ac</guid>
      <pubDate>Thu, 22 Oct 2009 17:01:00 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=459bf63d-aab9-4185-9a55-7fb6cbfe59ac</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=459bf63d-aab9-4185-9a55-7fb6cbfe59ac</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-Extending-a-SharePoint-Node-in-Server-Explorer.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=459bf63d-aab9-4185-9a55-7fb6cbfe59ac</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=459bf63d-aab9-4185-9a55-7fb6cbfe59ac</feedburner:origLink></item>
    <item>
      <title>SharePoint 2010: Asynchronous Query Pattern for Client Object Model</title>
      <description>&lt;p&gt;In the &lt;a href="http://www.chakkaradeep.com/post/2009/10/21/SharePoint-2010-Getting-Started-With-Client-Object-Model.aspx"&gt;SharePoint 2010: Getting Started With Client Object Model&lt;/a&gt; blog post, we built a simple SharePoint console application using Client OM. We queried &lt;em&gt;synchronously&lt;/em&gt; which is good for simple operations, but you would like to query asynchronously too if you intend to have more queries to the SharePoint server. Below are simple yet easy steps to query asynchronously.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1 &amp;ndash; Create a new class for our Asynchronous operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a new class &lt;strong&gt;ClientOMAsync&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2 &amp;ndash; Create a delegate for our Query&lt;/strong&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ClientOMAsync&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ExecuteAyncQuery();&lt;br /&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Add the required variables you want to use&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3 &amp;ndash; Declare our variables&lt;/strong&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ClientOMAsync&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ExecuteAyncQuery();&lt;br /&gt;&lt;br /&gt;    &lt;/pre&gt;
&lt;pre class="csharpcode"&gt;    Web site;&lt;br /&gt;    ClientContext context;&lt;br /&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Step 4 &amp;ndash; Create the Run method&lt;/strong&gt;&lt;/p&gt;
&lt;div class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Run()&lt;br /&gt;{&lt;br /&gt;    context =&lt;br /&gt;        &lt;span class="kwrd"&gt;new&lt;/span&gt; ClientContext(&lt;span class="str"&gt;&lt;a href="http://&amp;lt;your-site&amp;gt;"&gt;http://&amp;lt;your-site&amp;gt;&lt;/a&gt;&lt;/span&gt;);&lt;br /&gt;    site = context.Web;&lt;br /&gt;    context.Load(site, s =&amp;gt; s.Title);&lt;br /&gt;    ExecuteAyncQuery executeQueryAsync = &lt;span class="kwrd"&gt;new&lt;/span&gt; ExecuteAyncQuery(context.ExecuteQuery);&lt;br /&gt;    executeQueryAsync.BeginInvoke(callback, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;Pretty basic Asynchronous programming model and notice again that we are fetching only the &lt;strong&gt;Title&lt;/strong&gt; property.&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;&lt;strong&gt;Step 5 &amp;ndash; Create our Callback method&lt;/strong&gt;&lt;/div&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;void&lt;/span&gt; callback(IAsyncResult arg)&lt;br /&gt;{&lt;br /&gt;    Console.WriteLine(&lt;span class="str"&gt;"Aync Callback!"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;br /&gt;    Console.WriteLine(&lt;span class="str"&gt;"Title before changing: {0}"&lt;/span&gt;,site.Title);&lt;br /&gt;    site.Title = site.Title + &lt;span class="str"&gt;" Async"&lt;/span&gt;;&lt;br /&gt;    site.Update();&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;br /&gt;    context.ExecuteQuery();&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;br /&gt;    Console.WriteLine(&lt;span class="str"&gt;"Title after the change: {0}"&lt;/span&gt;,site.Title);&lt;br /&gt;    Console.WriteLine(&lt;span class="str"&gt;"Query completed!"&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;&lt;strong&gt;Step 6 &amp;ndash; Perform the Asynchronous Client OM&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;Below is the code block that starts this asynchronous query operation from the &lt;strong&gt;Main &lt;/strong&gt;method in the console application&lt;/p&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;{&lt;br /&gt;    ClientOMAsync clientOMAsync = &lt;span class="kwrd"&gt;new&lt;/span&gt; ClientOMAsync();&lt;br /&gt;    clientOMAsync.Run();&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;br /&gt;    Console.WriteLine(&lt;span class="str"&gt;"This is end of the Main program"&lt;/span&gt;);           &lt;br /&gt;    &lt;br /&gt;    Console.Read();&lt;br /&gt;}     &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;And here is our Output:&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_113.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_105.png" border="0" alt="image" width="381" height="117" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;Below is the full code for &lt;strong&gt;ClientOMAsync&lt;/strong&gt; class:&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ClientOMAsync&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ExecuteAyncQuery();&lt;br /&gt;&lt;br /&gt;    Web site;&lt;br /&gt;    ClientContext context;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Run()&lt;br /&gt;    {&lt;br /&gt;        context =&lt;br /&gt;            &lt;span class="kwrd"&gt;new&lt;/span&gt; ClientContext(&lt;span class="str"&gt;"http://demo2010a"&lt;/span&gt;);&lt;br /&gt;        site = context.Web;&lt;br /&gt;        context.Load(site, osite =&amp;gt; osite.Title);&lt;br /&gt;        ExecuteAyncQuery executeQueryAsync = &lt;span class="kwrd"&gt;new&lt;/span&gt; ExecuteAyncQuery(context.ExecuteQuery);&lt;br /&gt;        executeQueryAsync.BeginInvoke(callback, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;void&lt;/span&gt; callback(IAsyncResult arg)&lt;br /&gt;    {&lt;br /&gt;        Console.WriteLine(&lt;span class="str"&gt;"Aync Callback!"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;        Console.WriteLine(&lt;span class="str"&gt;"Title before changing: {0}"&lt;/span&gt;,site.Title);&lt;br /&gt;        site.Title = site.Title + &lt;span class="str"&gt;" Async"&lt;/span&gt;;&lt;br /&gt;        site.Update();&lt;br /&gt;&lt;br /&gt;        context.ExecuteQuery();&lt;br /&gt;&lt;br /&gt;        Console.WriteLine(&lt;span class="str"&gt;"Title after the change: {0}"&lt;/span&gt;,site.Title);&lt;br /&gt;        Console.WriteLine(&lt;span class="str"&gt;"Query completed!"&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=xz1_pxNm8MU:KnLr3pUgT24:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=xz1_pxNm8MU:KnLr3pUgT24:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/xz1_pxNm8MU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/xz1_pxNm8MU/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-Asynchronous-Query-Pattern-for-Client-Object-Model.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=25a65880-74d0-4c22-b0e5-1affe9c5523f</guid>
      <pubDate>Wed, 21 Oct 2009 16:44:00 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=25a65880-74d0-4c22-b0e5-1affe9c5523f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=25a65880-74d0-4c22-b0e5-1affe9c5523f</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-Asynchronous-Query-Pattern-for-Client-Object-Model.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=25a65880-74d0-4c22-b0e5-1affe9c5523f</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=25a65880-74d0-4c22-b0e5-1affe9c5523f</feedburner:origLink></item>
    <item>
      <title>SharePoint 2010: Getting Started With Client Object Model</title>
      <description>&lt;p&gt;Along with the Server Object Model, SharePoint 2010 introduces new set of API called &lt;strong&gt;Client Object Model&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Refer to my blog post &lt;a href="http://www.chakkaradeep.com/post/2009/08/19/SharePoint-2010-Introducing-the-Client-Object-Model.aspx"&gt;SharePoint 2010: Introducing the Client Object Model&lt;/a&gt; to get to know more about Client Object Model.&lt;/p&gt;
&lt;p&gt;The Client Object Model (OM) is a new programming interface for SharePoint 2010 where code runs on a user&amp;rsquo;s client machine against a local object model and interacts with data on the SharePoint Server.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.chakkaradeep.com/image.axd?picture=image_21.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Lets get started on our &amp;lsquo;Hello Word&amp;rsquo; Client Object Model console application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1 &amp;ndash; Reference the Client Object Model&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You need to reference two dlls which are available at &lt;strong&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. &lt;em&gt;Microsoft.SharePoint.Client&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;2. &lt;em&gt;Microsoft.SharePoint.Client.Runtime&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_111.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_103.png" border="0" alt="image" width="258" height="107" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Add the using namespace for &lt;strong&gt;Microsoft.SharePoint.Client&lt;/strong&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint.Client;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Step 2 &amp;ndash; Create the Client Context&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;[ We will use the &lt;strong&gt;Main&lt;/strong&gt; function to write our piece of code ]&lt;/p&gt;
&lt;p&gt;You need to first create a context to the SharePoint site:&lt;/p&gt;
&lt;div class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;ClientContext context = &lt;br /&gt;       &lt;span class="kwrd"&gt;new&lt;/span&gt; ClientContext(&lt;span class="str"&gt;&lt;a href="http://&amp;lt;your-site&amp;gt;"&gt;http://&amp;lt;your-site&amp;gt;&lt;/a&gt;&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;&lt;strong&gt;Step 3 &amp;ndash; Create Your Query&lt;/strong&gt;&lt;/div&gt;
&lt;div class="csharpcode-wrapper"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Here is the next block of code, explanations will follow below:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;Web site = context.Web;&lt;br /&gt;context.Load(site, s =&amp;gt; s.Title);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;As you can see, we are querying for what we require and nothing else will be returned. In our code, we pass the site to the context, but say we want to query only the property &lt;strong&gt;Title&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4 &amp;ndash; Execute Your Query&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Below is the code to execute the query:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;context.ExecuteQuery();&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The &lt;em&gt;ExecuteQuery()&lt;/em&gt; method is a &lt;em&gt;synchronous&lt;/em&gt; method call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5 &amp;ndash; The Output&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Below is the output:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chakkaradeep.com/image.axd?picture=image_112.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.chakkaradeep.com/image.axd?picture=image_thumb_104.png" border="0" alt="image" width="219" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Another Query Example&lt;/strong&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
&lt;pre id="codeSnippet" class="csharpcode"&gt;ListCollection lists = site.Lists;&lt;br /&gt;IEnumerable&amp;lt;SP.List&amp;gt; listsCollection =&lt;br /&gt;    context.LoadQuery(lists.Include(&lt;br /&gt;                              l =&amp;gt; l.Title,&lt;br /&gt;                              l =&amp;gt; l.Id));&lt;br /&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;The above code queries all the Lists in the site, but only returns the &lt;strong&gt;Title &lt;/strong&gt;and the &lt;strong&gt;Id&lt;/strong&gt; properties.&lt;/p&gt;
&lt;p&gt;In the next post, we will see how we can query &lt;em&gt;asynchronously&lt;/em&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=AKhYsd263_M:MMDfusgfLyg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChaksCorner?a=AKhYsd263_M:MMDfusgfLyg:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChaksCorner?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChaksCorner/~4/AKhYsd263_M" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ChaksCorner/~3/AKhYsd263_M/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.chakkaradeep.com/post/SharePoint-2010-Getting-Started-With-Client-Object-Model.aspx#comment</comments>
      <guid isPermaLink="false">http://www.chakkaradeep.com/post.aspx?id=6e1968dd-cff6-4568-aa51-46c68126f277</guid>
      <pubDate>Wed, 21 Oct 2009 15:55:00 +1100</pubDate>
      <category>SharePoint 2010</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.chakkaradeep.com/pingback.axd</pingback:server>
      <pingback:target>http://www.chakkaradeep.com/post.aspx?id=6e1968dd-cff6-4568-aa51-46c68126f277</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.chakkaradeep.com/trackback.axd?id=6e1968dd-cff6-4568-aa51-46c68126f277</trackback:ping>
      <wfw:comment>http://www.chakkaradeep.com/post/SharePoint-2010-Getting-Started-With-Client-Object-Model.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.chakkaradeep.com/syndication.axd?post=6e1968dd-cff6-4568-aa51-46c68126f277</wfw:commentRss>
    <feedburner:origLink>http://www.chakkaradeep.com/post.aspx?id=6e1968dd-cff6-4568-aa51-46c68126f277</feedburner:origLink></item>
  </channel>
</rss>
