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

<channel>
	<title>Ideas For Free &#187; SharePoint 2007</title>
	<atom:link href="http://blog.libinuko.com/tag/sharepoint-2007/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.libinuko.com</link>
	<description>Only freedom will grow our ideas</description>
	<lastBuildDate>Sun, 18 Dec 2011 04:51:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SharePoint 2010 : RemoteStsAdm PowerShell Module</title>
		<link>http://blog.libinuko.com/2011/09/17/sharepoint-2010-remotestsadm-powershell-module/</link>
		<comments>http://blog.libinuko.com/2011/09/17/sharepoint-2010-remotestsadm-powershell-module/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 04:50:26 +0000</pubDate>
		<dc:creator>cakriwut</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[StsAdm]]></category>

		<guid isPermaLink="false">http://blog.libinuko.com/2011/09/17/sharepoint-2010-remotestsadm-powershell-module/</guid>
		<description><![CDATA[English The STSADM.exe is command-line tool for administration of Office SharePoint Server (SharePoint 2007, SharePoint 2010). It is installed on the same location as SharePoint Products and Technologies location: %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\bin (for SharePoint 2007) or %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\14\bin (for SharePoint 2010). You must be Farm Administrator to be able to run the tool. By [...] <a href="http://blog.libinuko.com/2011/09/17/sharepoint-2010-remotestsadm-powershell-module/">[read more...]</a>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>English</p>
<p>The STSADM.exe is command-line tool for administration of Office SharePoint Server (SharePoint 2007, SharePoint 2010). It is installed on the same location as SharePoint Products and Technologies location: %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\bin (for SharePoint 2007) or %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\14\bin (for SharePoint 2010). You must be Farm Administrator to be able to run the tool.</p>
<p>By default, the STSADM.exe must be executed locally since it will access SharePoint Object Model. It is also necessary for the tools to connect to the SQL Database using credential of the user who executes it. Therefore, normally the Administrator must remote-login to the SharePoint server before he/she can run the tools.</p>
<p>Remote execution of STSADM.exe using PowerShell <em>Invoke-Command </em>cmdlet faces double-hop challenges. This occurs when SQL Database for the farms is installed on different machine than the SharePoint server. The credential in the<em>Invoke-Command </em>session can not pass through to the SQL Database without configuring delegation in the WinRM services.<strong>This module solve double-hop problem without configuring CredSSP</strong>.</p>
<p>Download the module here:   <br /><a title="http://code.msdn.microsoft.com/Remote-StsAdm-in-6fec24b8" href="http://code.msdn.microsoft.com/Remote-StsAdm-in-6fec24b8">http://code.msdn.microsoft.com/Remote-StsAdm-in-6fec24b8</a></p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.libinuko.com/2011/09/17/sharepoint-2010-remotestsadm-powershell-module/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Troubleshoot: SPPropertyBag can not deserialize complex type.</title>
		<link>http://blog.libinuko.com/2009/10/11/troubleshoot-sppropertybag-can-not-deserialize-complex-type/</link>
		<comments>http://blog.libinuko.com/2009/10/11/troubleshoot-sppropertybag-can-not-deserialize-complex-type/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 05:13:41 +0000</pubDate>
		<dc:creator>cakriwut</dc:creator>
				<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[Troubleshoot]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.libinuko.com/2009/10/11/troubleshoot-sppropertybag-can-not-deserialize-complex-type/</guid>
		<description><![CDATA[&#160; English: In SharePoint, there is SPPropertyBag which can stores arbitrary key-and-value pairs into configuration database. And this is very good location compared with web.config. Moreover we can also create our custom class from SPPersistedObject to persist it state in a permanent store and retrieve it for later usage. (see MSDN refence SPPersistedObject) But don’t be so happy [...] <a href="http://blog.libinuko.com/2009/10/11/troubleshoot-sppropertybag-can-not-deserialize-complex-type/">[read more...]</a>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>&#160;
</p>
<p>English:</p>
<p>In SharePoint, there is SPPropertyBag which can stores arbitrary key-and-value pairs into configuration database. And this is very good location compared with web.config. Moreover we can also create our custom class from SPPersistedObject to persist it state in a permanent store and retrieve it for later usage. (see MSDN refence <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.sppersistedobject.aspx">SPPersistedObject</a>)</p>
<p>But don’t be so happy – the SPPropertyBag can only store primitive types such as strings, integers, and GUID; and collection of above. The main keyword to understand is SPPropertyBag can only store primitives type and not arbitrary key-and-value pairs.</p>
<p>When you try to store complex object, you&#8217;ll unstablize configuration DB. And most of the time, you will not be able to install WSP, or perform anything related with SPPropertyBag operation. For example the timer job will stops to work, any component that reads SPPropertyBag will suddenly stuck. All because SharePoint will try to retrieve any persisted object from configuration DB and it fails. It will then show you and error message like this,</p>
<blockquote><p>The platform does not know how to deserialize an object of type [TYPE]. The platform can deserialize primitive types such as strings, integers and GUID; other SPPersistedObjects or SPAutoserializingObjects or collections of any of the above. (..more..)</p>
</blockquote>
<p>The visual error will be something like this,</p>
<p><a href="http://blog.libinuko.com/wp-content/uploads/2009/10/SPBag1.gif"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="SPBag1" src="http://blog.libinuko.com/wp-content/uploads/2009/10/SPBag1_thumb.gif" width="684" height="363" /></a> </p>
<p>&#160;</p>
<p>So how to troubleshoot this issue?</p>
<blockquote><p>IMPORTANT!&#160; <br />1. Please backup configuration DB before proceeding with following procedure.      <br />2. This procedure will modify configuration DB directly , and is un-supported by Microsoft.</p>
</blockquote>
<p>TROUBLESHOOT.</p>
<p>1. Remove offending assembly from GAC (C:\Windows\Assembly) store.</p>
<p>2. Open Query Manager in SQL Management Studio, and connect to SharePoint content DB. Check that you have all reference to the offending property bag.</p>
<p><a href="http://blog.libinuko.com/wp-content/uploads/2009/10/SPBag2.gif"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="SPBag2" src="http://blog.libinuko.com/wp-content/uploads/2009/10/SPBag2_thumb.gif" width="682" height="358" /></a> </p>
<p>3.&#160; Offending property bag can be found in “Properties” field of Objects table. If you dig into the content you will find something like</p>
</p>
<blockquote><p>&lt;object type=……&gt;     <br />…&lt;fld type=”[YOUR TYPE]”&gt;&lt;/fld&gt;..      <br />&lt;/object&gt;</p>
</blockquote>
<p>where [YOUR TYPE] is the one causing problem. Once you have sure that you have all rows selected, then you can do clean up.</p>
<p>4. Replace SELECT [Fields] statement with DELETE statement.</p>
<p><a href="http://blog.libinuko.com/wp-content/uploads/2009/10/SPBag3.gif"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="SPBag3" src="http://blog.libinuko.com/wp-content/uploads/2009/10/SPBag3_thumb.gif" width="658" height="278" /></a> </p>
<p>And voila, I have saved you from big trouble.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.libinuko.com/2009/10/11/troubleshoot-sppropertybag-can-not-deserialize-complex-type/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Howto: Use lambda expression in SharePoint &#8211; Working with SPWeb</title>
		<link>http://blog.libinuko.com/2009/07/21/howto-use-lambda-expression-in-sharepoint-working-with-spweb/</link>
		<comments>http://blog.libinuko.com/2009/07/21/howto-use-lambda-expression-in-sharepoint-working-with-spweb/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 14:49:00 +0000</pubDate>
		<dc:creator>cakriwut</dc:creator>
				<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[Lambda]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.libinuko.com/2009/07/21/howto-use-lambda-expression-in-sharepoint-working-with-spweb/</guid>
		<description><![CDATA[English Before you continue reading this post, I hope you have read the basic task to start using lambda expression in SOM here. A.&#160; Find any Event list in site. SPWeb spWeb = SPContext.Current.Web var lists = spWeb.Lists.OfType&#60;SPList&#62;().Where( &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; l =&#62; l.BaseTemplate == SPListTemplateType.Events); &#160; foreach (SPList list in lists) [...] <a href="http://blog.libinuko.com/2009/07/21/howto-use-lambda-expression-in-sharepoint-working-with-spweb/">[read more...]</a>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>English</p>
<p>Before you continue reading this post, I hope you have read the basic task to start using lambda expression in SOM <a href="http://blog.libinuko.com/2009/04/21/howto-use-lambda-expression-in-sharepoint-object-model/">here</a>.</p>
<p>A.&#160; Find any Event list in site.</p>
<blockquote><p>SPWeb spWeb = SPContext.Current.Web</p>
<p>var lists = spWeb.Lists.OfType&lt;SPList&gt;().Where(     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; l =&gt; l.BaseTemplate == SPListTemplateType.Events);      <br />&#160; foreach (SPList list in lists)      <br /> {      <br />&#160;&#160;&#160;&#160;&#160;&#160; Console.WriteLine(&quot;{0} {1}&quot;, list.BaseTemplate.ToString(), list.Title);</p>
<p>&#160; }</p>
</blockquote>
<p>B.&#160; Find any list based on custom list definition with Type=20080</p>
<blockquote><p>SPWeb spWeb = SPContext.Current.Web</p>
<p>var lists = spWeb.Lists.OfType&lt;SPList&gt;().Where(     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; l =&gt; (int) l.BaseTemplate == 20080);      <br />&#160; foreach (SPList list in lists)      <br /> {      <br />&#160;&#160;&#160;&#160;&#160;&#160; Console.WriteLine(&quot;{0} {1}&quot;, list.BaseTemplate.ToString(), list.Title);</p>
<p>&#160; }</p>
</blockquote>
<p>C. Find any “Daily” alert in the site</p>
<blockquote><p>SPWeb spWeb = SPContext.Current.Web</p>
<p>var alerts = spWeb.Alerts.OfType&lt;SPAlert&gt;().Where(     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; a =&gt; a.AlertFrequency == SPAlertFrequency.Daily);</p>
<p>&#160; foreach (SPAler alert in alerts)      <br /> {      <br />&#160;&#160;&#160;&#160;&#160; // Do something with alert</p>
<p>&#160; }</p>
</blockquote>
<p>D.&#160; Find any user which are Domain group</p>
<blockquote><p>SPWeb spWeb = SPContext.Current.Web</p>
<p>var users = spWeb.SiteUsers.OfType&lt;SPUser&gt;().Where(     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u =&gt; u.IsDomainGroup );</p>
<p>&#160; foreach (SPUser user in users)      <br /> {      <br />&#160;&#160;&#160;&#160;&#160; // Do something with alert</p>
<p>&#160; }</p>
</blockquote>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.libinuko.com/2009/07/21/howto-use-lambda-expression-in-sharepoint-working-with-spweb/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A new born tool SharePoint Dispose Checker</title>
		<link>http://blog.libinuko.com/2009/01/31/a-new-born-tool-sharepoint-dispose-checker/</link>
		<comments>http://blog.libinuko.com/2009/01/31/a-new-born-tool-sharepoint-dispose-checker/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 02:38:50 +0000</pubDate>
		<dc:creator>cakriwut</dc:creator>
				<category><![CDATA[Office 12]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Dispose Check]]></category>
		<category><![CDATA[WSS 3.0]]></category>

		<guid isPermaLink="false">http://blog.libinuko.com/?p=264</guid>
		<description><![CDATA[English For anybody who works with SharePoint Object Model (SOM), you might have read these articles  : Common Coding Issues When Using the SharePoint Object Model Using Disposable Windows SharePoint Services Objects If you have not read those articles, I suggest to spend your 10 minutes to read them. It was posted 1 year ago, but still relevant [...] <a href="http://blog.libinuko.com/2009/01/31/a-new-born-tool-sharepoint-dispose-checker/">[read more...]</a>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>English</p>
<p>For anybody who works with SharePoint Object Model (SOM), you might have read these articles  :</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/bb687949.aspx"> Common Coding Issues When Using the SharePoint Object Model</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa973248.aspx">Using Disposable Windows SharePoint Services Objects</a></li>
</ul>
<p>If you have not read those articles, I suggest to spend your 10 minutes to read them. It was posted 1 year ago, but still relevant if you&#8217;re actively develop or do code quality control in SharePoint development.</p>
<p>I&#8217;ve been working with team that are new to SharePoint and even tough we have a brief explanation and code standards; they tends to miss at some points. I usually use the list from <a href="http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx">Roger Lamb</a> (SharePoint 2007 and WSS 3.0 Dispose Pattern by Example) for my reference to do sampling check on our controlled sources.</p>
<p>But, thanks to Pandrew &#8211; who made <a href="http://code.msdn.microsoft.com/SPDisposeCheck">SharePoint Dispose Checker </a>. With this tool, I would never do visual sampling check again. It will just make our quality control job easier. Run the tools and go grab the line in the source code to see if it is truly undispossed or just false positive.</p>
<p>Bahasa</p>
<p>Bagi rekan-rekan yang bekerja dengan SharePoint Object Model (SOM),  dua artikel ini mungkin sudah pernah Anda baca  :</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/bb687949.aspx"> Common Coding Issues When Using the SharePoint Object Model</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa973248.aspx">Using Disposable Windows SharePoint Services Objects</a></li>
</ul>
<p>Jika Anda belum sempat keduanya, cobalah untuk meluangkan sedikit waktu untuk membaca artikel tersebut.  Meskipun sudah cukup lama ditulis, namun tulisan itu masih relevan untuk rekan-rekan yang aktif mengembangkan aplikasi dengan SharePoint.</p>
<p>Biasanya saya menggunakan daftar yang dibuat oleh <a href="http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx">Roger Lamb</a> (SharePoint 2007 and WSS 3.0 Dispose Pattern by Example) untuk melakukan pengecekan terhadap hasil code rekan-rekan dalam satu tim. Caranya adalah dengan mengambil sampling dari semua code yang telah dibuat.</p>
<p>Tetapi pekerjaan itu sekarang menjadi jauh lebih mudah dengan adanya  <a href="http://code.msdn.microsoft.com/SPDisposeCheck">SharePoint Dispose Checker </a>, yang dibuat Pandrew dkk. Dengan utility ini, tidak perlu ada lagi pengecekan acak. Cukup dengan menjalankan utility dan memverifikasi ulang method yang dilaporkan &#8220;bermasalah&#8221;.  &#8220;Bermasalah&#8221; belum tentu benar-benar tidak melakukan dispose &#8211; tetapi bisa jadi hanya interpretasi berbeda dengan SPDisposeChecker; namun ini sudah cukup membantu kita untuk melakukan pengecekan secara langsung hanya pada baris-baris yang dicurigai saja.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.libinuko.com/2009/01/31/a-new-born-tool-sharepoint-dispose-checker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

