<?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:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-33612499</atom:id><lastBuildDate>Thu, 19 Jan 2012 23:57:24 +0000</lastBuildDate><category>wcf</category><category>setup</category><category>cqwp</category><category>iis</category><category>hyper-v</category><category>javascript</category><category>personal</category><category>workflow</category><category>silverlight</category><category>books</category><category>vmware</category><category>sharepoint 2010</category><category>interoperability</category><category>com</category><category>Road to SP2010</category><category>user profiles</category><category>spd</category><category>windows 7</category><category>visual studio</category><category>spc09</category><category>sharepoint</category><category>travel</category><category>tutorials</category><category>sql</category><category>analysis</category><category>task</category><category>cks</category><category>asp.net</category><category>governance</category><category>content type</category><category>fun</category><category>activation</category><category>hotfix</category><category>sharepoint 2009</category><category>error</category><category>moss</category><category>training</category><category>vista 64</category><category>vista</category><category>update</category><category>sharepoint cks</category><category>utilities</category><category>.NET</category><title>Res Cogitans - a SharePoint and NET blog by Edin Kapic</title><description>Mainly about SharePoint, Software Engineering and .NET development</description><link>http://edinkapic.blogspot.com/</link><managingEditor>noreply@blogger.com (Edin)</managingEditor><generator>Blogger</generator><openSearch:totalResults>150</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ResCogitans" /><feedburner:info uri="rescogitans" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-2212449067796913702</guid><pubDate>Fri, 14 Jan 2011 07:55:00 +0000</pubDate><atom:updated>2011-01-14T08:55:38.902+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">interoperability</category><category domain="http://www.blogger.com/atom/ns#">.NET</category><title>How to Set Printer Default Paper Bin in .NET</title><description>&lt;p&gt;Yesterday I was challenged with a task that seemed trivial but it was a real pain to solve. &lt;/p&gt;  &lt;p&gt;The customer had a VB.NET application that spawns Adobe Reader via command line options to force a specific PDF file to be printed on a specified printer (using the “semi-clandestine” /t switch). The problem that they were facing was that the VB.NET Compatibility Power Pack’s Printer object (used to simulate the equivalent object in VB6) didn’t change the default paper bin (or tray) for the printer. The change just sticks to the application’s session lifetime.&lt;/p&gt;  &lt;p&gt;I turned to Win32 API for the solution. Indeed, there is a &lt;strong&gt;winspool.drv&lt;/strong&gt; library that has the necessary functions to change several printer parameters. I used many blogs and forum posts for a source, which I list here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-general/9001/Changing-printer-setting-using-NET" href="http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-general/9001/Changing-printer-setting-using-NET"&gt;http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-general/9001/Changing-printer-setting-using-NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://social.msdn.microsoft.com/forums/en-US/winforms/thread/5de19cbf-aadc-48cb-b1d3-2b700fef4540" href="http://social.msdn.microsoft.com/forums/en-US/winforms/thread/5de19cbf-aadc-48cb-b1d3-2b700fef4540"&gt;http://social.msdn.microsoft.com/forums/en-US/winforms/thread/5de19cbf-aadc-48cb-b1d3-2b700fef4540&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.lessanvaezi.com/changing-printer-settings-using-the-windows-api/" href="http://www.lessanvaezi.com/changing-printer-settings-using-the-windows-api/"&gt;http://www.lessanvaezi.com/changing-printer-settings-using-the-windows-api/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.alexcrossley.net/?p=162" href="http://www.alexcrossley.net/?p=162"&gt;http://www.alexcrossley.net/?p=162&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/8cc8ddfc-4822-4a64-974b-4fdb87eaeab1" href="http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/8cc8ddfc-4822-4a64-974b-4fdb87eaeab1"&gt;http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/8cc8ddfc-4822-4a64-974b-4fdb87eaeab1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.pinvoke.net/default.aspx/winspool/DocumentProperties.html" href="http://www.pinvoke.net/default.aspx/winspool/DocumentProperties.html"&gt;http://www.pinvoke.net/default.aspx/winspool/DocumentProperties.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://nicholas.piasecki.name/blog/2008/11/programmatically-selecting-complex-printer-options-in-c-shar/" href="http://nicholas.piasecki.name/blog/2008/11/programmatically-selecting-complex-printer-options-in-c-shar/"&gt;http://nicholas.piasecki.name/blog/2008/11/programmatically-selecting-complex-printer-options-in-c-shar/&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Finally, the solution involved coaxing the Win32 API structures into the .NET world using marshalling (using &lt;strong&gt;System.Marshal&lt;/strong&gt; namespace and its methods). I had no success until I set the &lt;strong&gt;CharSet&lt;/strong&gt; attribute to Auto encoding for the API structures. It seems that by default it uses Ansi encoding and the data is messed up. &lt;/p&gt;  &lt;p&gt;The final code for the tray change routine is here (it’s in VB.NET but easily translated into C#). It has four main methods:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SetTray (sets the default printer tray to a tray number. In VB.NET it’s the Printer.PaperBin or RawKind property)&lt;/li&gt;    &lt;li&gt;GetPrinterName (gets the default printer name)&lt;/li&gt;    &lt;li&gt;SavePrinterSettings (copies the printer settings into memory)&lt;/li&gt;    &lt;li&gt;RestorePrinterSettings (replaces the printer settings with previously saved ones)&lt;/li&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ccd89e42-2e2a-4dda-be0e-3dd937b29426" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 3em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Imports&lt;/span&gt; System.Drawing.Printing&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;Imports&lt;/span&gt; System.Runtime.InteropServices&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PrinterNative&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Declare&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Auto&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; DocumentProperties &lt;span style="color:#0000ff"&gt;Lib&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;winspool.drv&amp;quot;&lt;/span&gt; _&lt;/li&gt; &lt;li&gt;     (&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; hWnd &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pDeviceName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;, _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;      &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pDevModeOutput &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pDevModeInput &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; fMode &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Int32&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Declare&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; GetPrinter &lt;span style="color:#0000ff"&gt;Lib&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;winspool.drv&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Alias&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;GetPrinterW&amp;quot;&lt;/span&gt; _&lt;/li&gt; &lt;li&gt;     (&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; Level &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;      &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; cbBuf &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByRef&lt;/span&gt; pcbNeeded &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Declare&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; SetPrinter &lt;span style="color:#0000ff"&gt;Lib&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;winspool.drv&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Alias&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;SetPrinterA&amp;quot;&lt;/span&gt; _&lt;/li&gt; &lt;li&gt;     (&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; level &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pPrinterInfoIn &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;      &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; command &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Int32&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Boolean&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &amp;lt;&lt;span style="color:#2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;winspool.drv&amp;quot;&lt;/span&gt;, EntryPoint:=&lt;span style="color:#a31515"&gt;&amp;quot;OpenPrinterA&amp;quot;&lt;/span&gt;, ExactSpelling:=&lt;span style="color:#0000ff"&gt;True&lt;/span&gt;, _&lt;/li&gt; &lt;li&gt;       SetLastError:=&lt;span style="color:#0000ff"&gt;True&lt;/span&gt;, CallingConvention:=&lt;span style="color:#2b91af"&gt;CallingConvention&lt;/span&gt;.StdCall, _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;       CharSet:=&lt;span style="color:#2b91af"&gt;CharSet&lt;/span&gt;.Ansi)&amp;gt; _&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Shared&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; OpenPrinter(&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pPrinterName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;, _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;  &lt;span style="color:#0000ff"&gt;ByRef&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByRef&lt;/span&gt; pDefault &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PRINTER_DEFAULTS&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Boolean&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &amp;lt;&lt;span style="color:#2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;winspool.drv&amp;quot;&lt;/span&gt;, EntryPoint:=&lt;span style="color:#a31515"&gt;&amp;quot;ClosePrinter&amp;quot;&lt;/span&gt;, SetLastError:=&lt;span style="color:#0000ff"&gt;True&lt;/span&gt;, ExactSpelling:=&lt;span style="color:#0000ff"&gt;True&lt;/span&gt;, _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;     CallingConvention:=&lt;span style="color:#2b91af"&gt;CallingConvention&lt;/span&gt;.StdCall)&amp;gt; _&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Shared&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; ClosePrinter(&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Int32&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Boolean&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Declare&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; GetDefaultPrinter &lt;span style="color:#0000ff"&gt;Lib&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;winspool.drv&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Alias&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;GetDefaultPrinterA&amp;quot;&lt;/span&gt; _&lt;/li&gt; &lt;li&gt;     (&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pszBuffer &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; System.Text.&lt;span style="color:#2b91af"&gt;StringBuilder&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByRef&lt;/span&gt; pcchBuffer &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Int32&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Boolean&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Declare&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; SetDefaultPrinter &lt;span style="color:#0000ff"&gt;Lib&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;winspool.drv&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Alias&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;SetDefaultPrinterA&amp;quot;&lt;/span&gt; _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;     (&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; pszPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Boolean&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Declare&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt; CopyMemory &lt;span style="color:#0000ff"&gt;Lib&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;kernel32&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Alias&lt;/span&gt; &lt;span style="color:#a31515"&gt;&amp;quot;RtlMoveMemory&amp;quot;&lt;/span&gt; _&lt;/li&gt; &lt;li&gt;     (&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; hpvDest &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; hpvSource &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; cbCopy &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Long&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PRINTER_DEFAULTS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pDatatype &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pDevMode &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Long&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pDesiredAccess &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Long&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Const&lt;/span&gt; STANDARD_RIGHTS_REQUIRED = &amp;amp;HF0000&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Const&lt;/span&gt; PRINTER_ACCESS_ADMINISTER = &amp;amp;H4&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Const&lt;/span&gt; PRINTER_ACCESS_USE = &amp;amp;H8&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Const&lt;/span&gt; PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED &lt;span style="color:#0000ff"&gt;Or&lt;/span&gt; PRINTER_ACCESS_ADMINISTER &lt;span style="color:#0000ff"&gt;Or&lt;/span&gt; PRINTER_ACCESS_USE)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Const&lt;/span&gt; DM_IN_BUFFER &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt; = 8&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Const&lt;/span&gt; DM_IN_PROMPT &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt; = 4&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Const&lt;/span&gt; DM_OUT_BUFFER &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt; = 2&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PRINTER_INFO_9&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pDevMode &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &amp;lt;&lt;span style="color:#2b91af"&gt;StructLayout&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;LayoutKind&lt;/span&gt;.Sequential)&amp;gt; _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PRINTER_INFO_2&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pServerName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pPrinterName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pShareName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pPortName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pDriverName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pComment &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pLocation &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pDevMode &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pSepFile &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pPrintProcessor &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pDatatype &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.LPTStr)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pParameters &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pSecurityDescriptor &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; Attributes &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; Priority &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; DefaultPriority &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; StartTime &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; UntilTime &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; Status &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; cJobs &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; AveragePPM &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &amp;lt;&lt;span style="color:#2b91af"&gt;StructLayout&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;LayoutKind&lt;/span&gt;.Sequential, CharSet:=&lt;span style="color:#2b91af"&gt;CharSet&lt;/span&gt;.Auto)&amp;gt; _&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt; &lt;span style="color:#2b91af"&gt;DEVMODE&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.ByValTStr, Sizeconst:=32)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; pDeviceName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmSpecVersion &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmDriverVersion &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmSize &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmDriverExtra &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmFields &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmOrientation &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPaperSize &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPaperLength &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPaperWidth &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmScale &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmCopies &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmDefaultSource &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPrintQuality &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmColor &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmDuplex &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmYResolution &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmTTOption &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmCollate &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &amp;lt;&lt;span style="color:#2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;UnmanagedType&lt;/span&gt;.ByValTStr, Sizeconst:=32)&amp;gt; &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmFormName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmUnusedPadding &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Short&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmBitsPerPel &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPelsWidth &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPelsHeight &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmNup &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmDisplayFrequency &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmICMMethod &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmICMIntent &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmMediaType &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmDitherType &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmReserved1 &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmReserved2 &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPanningWidth &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; dmPanningHeight &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Structure&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Private&lt;/span&gt; pOriginalDEVMODE &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt; SavePrinterSettings(&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; printerName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; Needed &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;If&lt;/span&gt; printerName = &lt;span style="color:#a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Then&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Exit Sub&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Try&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#0000ff"&gt;If&lt;/span&gt; OpenPrinter(printerName, hPrinter, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;) = &lt;span style="color:#0000ff"&gt;False&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Then&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Exit Sub&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#008000"&gt;&amp;#39;Save original printer settings data (DEVMODE structure)&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            Needed = DocumentProperties(&lt;span style="color:#2b91af"&gt;Form1&lt;/span&gt;.Handle, hPrinter, printerName, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;, 0)&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pFullDevMode &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt; = &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.AllocHGlobal(Needed) &lt;span style="color:#008000"&gt;&amp;#39;buffer for DEVMODE structure&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            DocumentProperties(&lt;span style="color:#2b91af"&gt;Form1&lt;/span&gt;.Handle, hPrinter, printerName, pFullDevMode, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;, DM_OUT_BUFFER)&lt;/li&gt; &lt;li&gt;            pOriginalDEVMODE = &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.AllocHGlobal(Needed)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            CopyMemory(pOriginalDEVMODE, pFullDevMode, Needed)&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Catch&lt;/span&gt; ex &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Exception&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            MsgBox(ex.Message)&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Try&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt; RestorePrinterSettings(&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; printerName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;If&lt;/span&gt; printerName = &lt;span style="color:#a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Then&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Exit Sub&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Try&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#0000ff"&gt;If&lt;/span&gt; OpenPrinter(printerName, hPrinter, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;) = &lt;span style="color:#0000ff"&gt;False&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Then&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Exit Sub&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; PI9 &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PRINTER_INFO_9&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            PI9.pDevMode = pOriginalDEVMODE&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pPI9 &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt; = &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.AllocHGlobal(&lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.SizeOf(PI9))&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.StructureToPtr(PI9, pPI9, &lt;span style="color:#0000ff"&gt;True&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            SetPrinter(hPrinter, 9, pPI9, 0&amp;amp;)&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.FreeHGlobal(pPI9) &lt;span style="color:#008000"&gt;&amp;#39;pOriginalDEVMODE will be free too&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            ClosePrinter(hPrinter)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Catch&lt;/span&gt; ex &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Exception&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            MsgBox(ex.Message)&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Try&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt; GetPrinterName() &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; buffer &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; System.Text.&lt;span style="color:#2b91af"&gt;StringBuilder&lt;/span&gt;(256)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; PrinterName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt; = &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;.Empty&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#008000"&gt;&amp;#39;Get default printer&amp;#39;s name&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        GetDefaultPrinter(buffer, 256)&lt;/li&gt; &lt;li&gt;        PrinterName = buffer.ToString&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;If&lt;/span&gt; PrinterName = &lt;span style="color:#a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Then&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            MsgBox(&lt;span style="color:#a31515"&gt;&amp;quot;Can&amp;#39;t find default printer.&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;If&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Return&lt;/span&gt; PrinterName&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Function&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt; SetTray(&lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; printerName &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;ByVal&lt;/span&gt; trayNumber &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; hPrinter &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; Needed &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Integer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        OpenPrinter(printerName, hPrinter, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#008000"&gt;&amp;#39;Get original printer settings data (DEVMODE structure)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        Needed = DocumentProperties(&lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;.Zero, hPrinter, printerName, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;, 0)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pFullDevMode &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt; = &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.AllocHGlobal(Needed) &lt;span style="color:#008000"&gt;&amp;#39;buffer for DEVMODE structure&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        DocumentProperties(&lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt;.Zero, hPrinter, printerName, pFullDevMode, &lt;span style="color:#0000ff"&gt;Nothing&lt;/span&gt;, DM_OUT_BUFFER)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pDevMode9 &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;DEVMODE&lt;/span&gt; = &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.PtrToStructure(pFullDevMode, &lt;span style="color:#0000ff"&gt;GetType&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;DEVMODE&lt;/span&gt;))&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#008000"&gt;&amp;#39; Tray change&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        pDevMode9.dmDefaultSource = trayNumber&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.StructureToPtr(pDevMode9, pFullDevMode, &lt;span style="color:#0000ff"&gt;True&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; PI9 &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PRINTER_INFO_9&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        PI9.pDevMode = pFullDevMode&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; pPI9 &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IntPtr&lt;/span&gt; = &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.AllocHGlobal(&lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.SizeOf(PI9))&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.StructureToPtr(PI9, pPI9, &lt;span style="color:#0000ff"&gt;True&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;        SetPrinter(hPrinter, 9, pPI9, 0&amp;amp;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#2b91af"&gt;Marshal&lt;/span&gt;.FreeHGlobal(pPI9) &lt;span style="color:#008000"&gt;&amp;#39;pFullDevMode will be free too&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        ClosePrinter(hPrinter)&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;I hope it can be useful to somebody and spare him or her a day or two looking for an answer.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-2212449067796913702?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/jk_PKIHbEQM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/jk_PKIHbEQM/how-to-set-printer-default-paper-bin-in.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2011/01/how-to-set-printer-default-paper-bin-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-2575066877360217971</guid><pubDate>Tue, 19 Oct 2010 10:47:00 +0000</pubDate><atom:updated>2010-10-19T12:47:16.405+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><category domain="http://www.blogger.com/atom/ns#">error</category><title>Reconfigure A Rogue SharePoint 2010 Search Service</title><description>&lt;p&gt;Hello again to all the readers of my blog. I haven’t been around lately, but I have a good excuse for that: I was getting &lt;em&gt;married&lt;/em&gt;. Now, as the feasts are over, I’ll be back in business as usual.&lt;/p&gt;  &lt;p&gt;Today I’ve stumped across a puzzling problem with an existing SharePoint 2010 installation. The problem was that the &lt;strong&gt;Search Service Application was misbehaving&lt;/strong&gt;, giving weird errors of not being able to connect to itself.&lt;/p&gt;  &lt;p&gt;After some extensive googling, &lt;a href="http://social.technet.microsoft.com/Forums/en/sharepoint2010setup/thread/bde529ba-5f61-462e-9be4-60a01e86030d"&gt;this forum post&lt;/a&gt; led to a clue: &lt;strong&gt;remove the service application&lt;/strong&gt; altogether and &lt;strong&gt;rebuild it again&lt;/strong&gt; from scratch. The command to remove the service application is done in the old reliable STSADM:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;stsadm.exe –o deleteconfigurationobject –id &amp;lt;GUID_of_the_service_application&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That did the trick! After that, make a new search service application in Central Administration and you are good to go.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Note:&lt;/u&gt; the same forum post mentioned &lt;a href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/88f7998f-4a88-4928-ba59-e76d7f6afcdc"&gt;another post&lt;/a&gt;, which has a script to remove the service applications, for the PowerShell-savvy among you.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-2575066877360217971?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/sBSjuQ2IJUY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/sBSjuQ2IJUY/reconfigure-rogue-sharepoint-2010.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2010/10/reconfigure-rogue-sharepoint-2010.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-1762589808808619722</guid><pubDate>Fri, 14 May 2010 08:51:00 +0000</pubDate><atom:updated>2010-05-14T10:51:46.376+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sql</category><category domain="http://www.blogger.com/atom/ns#">sharepoint</category><category domain="http://www.blogger.com/atom/ns#">error</category><title>SharePoint Configuration Database IP Address Blues</title><description>&lt;p&gt;A really &lt;em&gt;weird&lt;/em&gt; situation happened yesterday at work.&lt;/p&gt;  &lt;h3&gt;The Symptoms&lt;/h3&gt;  &lt;p&gt;We wanted to &lt;strong&gt;move the Virtual Machine&lt;/strong&gt; that serves as a SQL Server for our development SharePoint environment, &lt;strong&gt;from one host computer to another host computer&lt;/strong&gt;. No renaming, no changes…it should have been really transparent to SharePoint.&lt;/p&gt;  &lt;p&gt;Well, &lt;strong&gt;it wasn’t.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_6n9KD8lylQU/S-0PHD_EjHI/AAAAAAAAAfg/jRTmzKq_t-E/s1600-h/image%5B4%5D.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://lh4.ggpht.com/_6n9KD8lylQU/S-0PH24nEiI/AAAAAAAAAfk/mcFiK9L6PEk/image_thumb%5B2%5D.png?imgmax=800" width="400" height="368" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once we moved and restarted the server, the &lt;font color="#ff0000"&gt;SharePoint refused to work&lt;/font&gt;. We were starting to dig within the log files and we found out that the front-end was trying to &lt;strong&gt;contact a fixed IP address as a SQL Server&lt;/strong&gt;. This was the old IP address of the database server virtual machine before it was moved. We scanned the Registry for references to this IP address but none was found.&lt;/p&gt;  &lt;p&gt;We even made a brand-new virtual machine with SharePoint 2007 and tried to connect it to the SQL Server. It did, but the dreaded error connecting the old IP address persisted. So, we deduced that the &lt;strong&gt;culprit IP was stored somewhere in SharePoint databases&lt;/strong&gt;.&lt;/p&gt;  &lt;h3&gt;The Workaround&lt;/h3&gt;  &lt;p&gt;The solution to this problem was simple, once we found out what it was. The network card on the database server was set to &lt;strong&gt;multicast IP&lt;/strong&gt; with the old IP address as a “&lt;em&gt;second identity&lt;/em&gt;” for the card. In this way, SharePoint could connect itself to the databases using the bad IP address.&lt;/p&gt;  &lt;p&gt;Once we got into &lt;strong&gt;Central Administration&lt;/strong&gt;, we removed the server that showed as bad IP address in &lt;strong&gt;Server Topology&lt;/strong&gt; page. Furthermore, we did a &lt;strong&gt;STSADM –o &lt;a href="http://technet.microsoft.com/en-us/library/cc263117.aspx"&gt;renameserver&lt;/a&gt;&lt;/strong&gt; to change the references &lt;strong&gt;from the old IP-address name to fully-qualified domain name&lt;/strong&gt; of the server. Bravely, we removed the alternate IP from the database server NIC card settings and did an &lt;strong&gt;IISRESET&lt;/strong&gt; on the SharePoint side.&lt;/p&gt;  &lt;p&gt;Worked as a charm. Two days lost fixing this, though :-(&lt;/p&gt;  &lt;h3&gt;The Learning&lt;/h3&gt;  &lt;p&gt;In this case, cut the right hand of the SharePoint administrator who first added the reference to the database server by IP address alone. &lt;em&gt;(Just kidding, of course)&lt;/em&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-1762589808808619722?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/jDDOj80fbOQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/jDDOj80fbOQ/sharepoint-configuration-database-ip.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_6n9KD8lylQU/S-0PH24nEiI/AAAAAAAAAfk/mcFiK9L6PEk/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2010/05/sharepoint-configuration-database-ip.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-2682449477310654919</guid><pubDate>Wed, 12 May 2010 07:59:00 +0000</pubDate><atom:updated>2010-05-12T09:59:21.079+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">utilities</category><title>Balsamiq Mockups: A Review</title><description>&lt;p&gt;As you can probably remember, my frequency of blog posts here has been reduced in the last months. The reason is simple: I’ve been engaged in a enterpreneur startup course, organized by &lt;a href="http://www.tetuanvalley.com/"&gt;Tetuan Valley&lt;/a&gt; in Barcelona. I had an idea for some time already to make a &lt;strong&gt;browser business management game&lt;/strong&gt;, but with a funny touch. The result of all this activity is &lt;a href="http://www.whitecollargame.com"&gt;White Collar Game&lt;/a&gt;, still in development. You can check the &lt;a href="http://blog.whitecollargame.com/"&gt;project blog&lt;/a&gt; for more details.&lt;/p&gt;  &lt;p&gt;&lt;a name="bownce"&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="left" src="http://www.balsamiq.com/images/bownce.gif" width="164" height="240" /&gt;&lt;/a&gt;I had to look for a suitable application for making mock-up screens quickly (and I mean &lt;em&gt;really quickly&lt;/em&gt;!). &lt;strong&gt;Microsoft Visio&lt;/strong&gt; was too “polished” to be really useful for quick mocking up and &lt;strong&gt;drawing by hand&lt;/strong&gt; had the inconvenience of scanning and the costly retouching and modification.&lt;/p&gt;  &lt;p&gt;I stumbled upon &lt;a href="http://www.balsamiq.com/products/mockups"&gt;balsamiq studio’s Mockups&lt;/a&gt;, an &lt;strong&gt;Adobe AIR&lt;/strong&gt; application available as both &lt;strong&gt;web and desktop&lt;/strong&gt; application. The mockups are extremely easy to make: just &lt;strong&gt;drag a widget&lt;/strong&gt; from the toolbar,&lt;strong&gt; double-click&lt;/strong&gt;, &lt;strong&gt;write&lt;/strong&gt; the text and that’s it. The application is updated really fast (almost every week) and there’s a huge repository of pre-made elements available at &lt;a href="http://mockupstogo.net/"&gt;MockupsToGo&lt;/a&gt;. The look-and-feel of the mockups is just right: they aren’t hand-drawn but they look like that. It gives you this funny feeling of freedom to criticise and rearrange things, which is not easy to do with a more “polished” mockup that looks like it’s the real thing.&lt;/p&gt;  &lt;p&gt;The fact I like the most, besides being almost perfect tool for doing mockups, is the fact that &lt;a href="http://www.balsamiq.com/company"&gt;the company is&lt;/a&gt; also a startup, created by &lt;strong&gt;Peldi Guilizzoni&lt;/strong&gt; as a side project when he was working at Adobe. Now he has established the company in Italy and keeps a &lt;a href="http://balsamiq.com/blog"&gt;really interesting blog about the company&lt;/a&gt;, including &lt;a href="http://balsamiq.com/blog/2010/01/03/a-look-back-at-2009/"&gt;yearly figures&lt;/a&gt; and publicly disclosing the company insights in it.&lt;/p&gt;  &lt;p&gt;For more information about the &lt;strong&gt;balsamiq Mockups tool&lt;/strong&gt;, check this &lt;a href="http://www.youtube.com/watch?v=zLysy3IPfFI"&gt;short video on YouTube&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Thumbs up for Balsamiq!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-2682449477310654919?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/u_fOSyawR6k" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/u_fOSyawR6k/balsamiq-mockups-review.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2010/05/balsamiq-mockups-review.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-7376730339126156385</guid><pubDate>Sat, 17 Apr 2010 16:40:00 +0000</pubDate><atom:updated>2010-04-17T18:40:20.108+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">windows 7</category><category domain="http://www.blogger.com/atom/ns#">error</category><title>IE8 Developer Tools Not Working?</title><description>&lt;p&gt;I’ve been pulling my (scarce) hair when suddenly the &lt;strong&gt;Developer Tools&lt;/strong&gt; in &lt;strong&gt;IE8&lt;/strong&gt; didn’t appear as expected, on one day. The taskbar in Windows showed the tools’ window but there were none to be seen.&lt;/p&gt;  &lt;p&gt;Luckily, a quick Google search unshoveled this &lt;a href="http://stackoverflow.com/questions/1234163/ie-8-developer-tools-not-working-in-windows"&gt;StackOverflow question&lt;/a&gt;. The reason was that the tools were off-screen.&lt;/p&gt;  &lt;p&gt;It was just a matter of&lt;strong&gt; right-clicking the taskbar tools’ window&lt;/strong&gt;, choosing “&lt;strong&gt;Maximize&lt;/strong&gt;” and &lt;strong&gt;pin&lt;/strong&gt; the tools back to the main IE8 screen.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-7376730339126156385?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/_9YqvrHlKZk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/_9YqvrHlKZk/ie8-developer-tools-not-working.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2010/04/ie8-developer-tools-not-working.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-9116110218585872730</guid><pubDate>Fri, 26 Mar 2010 12:06:00 +0000</pubDate><atom:updated>2010-03-26T13:06:03.239+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">windows 7</category><category domain="http://www.blogger.com/atom/ns#">error</category><title>Hunt For BSOD in Windows 7 x64</title><description>&lt;p&gt;I have a shiny new &lt;strong&gt;Windows 7 Ultimate&lt;/strong&gt; 64-bit edition installed on my Dell laptop but in the last month I’ve been suffering intermittent BSOD errors (the infamous Windows’ &lt;em&gt;Blue Screens of Death&lt;/em&gt;). They just seem to happen randomly every few days.&lt;/p&gt;  &lt;p&gt;First I tried the &lt;strong&gt;Windows online solution check&lt;/strong&gt; included in Windows 7, but found nothing.&lt;/p&gt;  &lt;p&gt;Then I downloaded a free tool called &lt;a href="http://www.resplendence.com/downloads"&gt;WhoCrashed&lt;/a&gt;. It showed me that the error was inside the standard Windows &lt;strong&gt;NTOSKRNL.EXE&lt;/strong&gt; module.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_6n9KD8lylQU/S6yjG8djKyI/AAAAAAAAAeY/MWmUXfpbphE/s1600-h/image%5B4%5D.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://lh3.ggpht.com/_6n9KD8lylQU/S6yjHV4p5FI/AAAAAAAAAec/SQrmGelHI24/image_thumb%5B2%5D.png?imgmax=800" width="699" height="373" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I was not satisfied with the answer. I downloaded the &lt;strong&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx"&gt;WinDBG tool&lt;/a&gt;&lt;/strong&gt; (necessary to run &lt;strong&gt;WhoCrashed&lt;/strong&gt;), I downloaded the &lt;strong&gt;Debug Symbols&lt;/strong&gt; from Microsoft (by setting up the tool correctly, as explained in &lt;a href="http://www.microsoft.com/whdc/DevTools/Debugging/debugstart.mspx"&gt;this page from Microsoft&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;I opened a &lt;strong&gt;crash dump file&lt;/strong&gt; generated by Windows in &lt;strong&gt;Minidump&lt;/strong&gt; folder.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/S6yjIVYSZaI/AAAAAAAAAeg/HodgEvlhuYA/s1600-h/image%5B23%5D.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://lh5.ggpht.com/_6n9KD8lylQU/S6yjJCpc_RI/AAAAAAAAAek/ywaXD1pvn0M/image_thumb%5B13%5D.png?imgmax=800" width="645" height="485" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I run a deep analysis with&lt;strong&gt; !analyze –v &lt;/strong&gt;option&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/S6yjJygpE7I/AAAAAAAAAeo/V54OFQz91VM/s1600-h/image%5B15%5D.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://lh6.ggpht.com/_6n9KD8lylQU/S6yjKlfzPNI/AAAAAAAAAes/TP6QCMm7bp8/image_thumb%5B9%5D.png?imgmax=800" width="640" height="326" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And I found the culprit: the &lt;strong&gt;ShrewSoft VPN Client&lt;/strong&gt; I had installed a month ago! It seems that the last stable version has issues with Windows 7 x64 and &lt;a href="http://superuser.com/questions/106357/regular-windows-7-bsod-with-shrew-vpn-client"&gt;sometimes causes BSOD&lt;/a&gt;. I’ve downloaded the &lt;a href="http://www.shrew.net/download/vpn"&gt;latest beta of the client&lt;/a&gt; and the problem seems gone.&lt;/p&gt;  &lt;p&gt;I installed the &lt;strong&gt;ShrewSoft VPN client&lt;/strong&gt; because &lt;strong&gt;it’s free&lt;/strong&gt; and it works (well, mainly) with &lt;strong&gt;Windows 7 in 64-bit&lt;/strong&gt; mode, unlike &lt;strong&gt;Cisco VPN client&lt;/strong&gt; that does not. There is an &lt;a href="http://www.ncp-e.com/en.html"&gt;alternative client from NCP&lt;/a&gt;, but it costs about 120 EUR.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-9116110218585872730?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/Bhjqm27NiTM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/Bhjqm27NiTM/hunt-for-bsod-in-windows-7-x64.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_6n9KD8lylQU/S6yjHV4p5FI/AAAAAAAAAec/SQrmGelHI24/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2010/03/hunt-for-bsod-in-windows-7-x64.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-7774099852273507630</guid><pubDate>Fri, 19 Mar 2010 21:47:00 +0000</pubDate><atom:updated>2010-03-19T22:47:44.196+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">sharepoint</category><category domain="http://www.blogger.com/atom/ns#">wcf</category><title>Things I Have Been Reading Lately</title><description>&lt;p&gt;&lt;a title="http://spg.codeplex.com/" href="http://spg.codeplex.com/"&gt;http://spg.codeplex.com/&lt;/a&gt;    &lt;br /&gt;A new drop of the official &lt;strong&gt;SharePoint Guidance&lt;/strong&gt;. It now covers SharePoint 2010 and further expands on the SharePoint solution architectural decisions and implementation guidelines.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://webclientguidance.codeplex.com/" href="http://webclientguidance.codeplex.com/"&gt;http://webclientguidance.codeplex.com/&lt;/a&gt;&amp;#160; &lt;br /&gt;After some time using &lt;strong&gt;Web Client Software Factory&lt;/strong&gt; (WCSF) guidance from Microsoft p&amp;amp;p team, they are now coming with a new version of &lt;strong&gt;web client guidance&lt;/strong&gt;, oriented to ASP.NET with jQuery, AJAX and even ASP.NET MVC. Excellent read, even in the present rough form.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ff423674.aspx" href="http://msdn.microsoft.com/en-us/library/ff423674.aspx"&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/S6Pw9nuq9GI/AAAAAAAAAeQ/iqGJGGkDB3o/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_6n9KD8lylQU/S6Pw_tzru5I/AAAAAAAAAeU/by9hY_8OWmw/image_thumb%5B7%5D.png?imgmax=800" width="240" height="180" /&gt;&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff423674.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff423674.aspx&lt;/a&gt;     &lt;br /&gt;&lt;a title="http://claimsid.codeplex.com/" href="http://claimsid.codeplex.com/"&gt;http://claimsid.codeplex.com/&lt;/a&gt;&amp;#160;&amp;#160; &lt;br /&gt;A guide to &lt;strong&gt;Claims-based Identity and Access Control&lt;/strong&gt;, with a &lt;strong&gt;downloadable book&lt;/strong&gt; in PDF format. It’s invaluable in understanding the new &lt;strong&gt;Windows Identity Framework &lt;/strong&gt;&lt;em&gt;(former Geneva Framework)&lt;/em&gt; and SharePoint 2010 claims-based authentication.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/cc949034.aspx" href="http://msdn.microsoft.com/en-us/library/cc949034.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc949034.aspx&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://www.codeplex.com/WCFSecurityGuide" href="http://www.codeplex.com/WCFSecurityGuide"&gt;http://www.codeplex.com/WCFSecurityGuide&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;strong&gt;Web Service Security Guidance for WCF,&lt;/strong&gt; available as an online book and as a PDF file. I admit that WCF is a huge step forward in distributed applications but the security implications are too important to be left unattended. After reading this guide I had clearer image of all those pesky web.config WCF tags and their effect. Priceless when you are debugging cross-domain WCF calls :-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-7774099852273507630?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/-2hUGvhBQjM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/-2hUGvhBQjM/things-i-have-been-reading-lately.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_6n9KD8lylQU/S6Pw_tzru5I/AAAAAAAAAeU/by9hY_8OWmw/s72-c/image_thumb%5B7%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2010/03/things-i-have-been-reading-lately.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-7842738610480646033</guid><pubDate>Thu, 25 Feb 2010 21:16:00 +0000</pubDate><atom:updated>2010-02-25T22:16:29.361+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint</category><category domain="http://www.blogger.com/atom/ns#">tutorials</category><title>STP2WSP File Converter, Part 1: The Anatomy of A .STP</title><description>&lt;p&gt;Recently, together with my colleague Martin Schmidt, I gave a session on MOSS 2007 to SharePoint 2010 migration. Among other things I mentioned that the &lt;strong&gt;site template .STP files&lt;/strong&gt; are &lt;strong&gt;&lt;font color="#ff0000"&gt;no longer supported&lt;/font&gt; in SharePoint 2010&lt;/strong&gt;. STP files are still supported for &lt;strong&gt;list templates&lt;/strong&gt;, though.&lt;/p&gt;  &lt;p&gt;From my professional experience I know that there are &lt;strong&gt;many people&lt;/strong&gt; who have a lot of site templates in .STP format and they don’t want to lose their work. Microsoft suggests that the right way is to create a site with each template, upgrade to SP2010 and then save as WSP template in the new version. It’s an overkill, if you ask me.&lt;/p&gt;  &lt;p&gt;My goal is to create a &lt;strong&gt;converter&lt;/strong&gt; written in .NET that would crack open an STP site template and write a shiny new WSP file with the same structure. You will follow my journey in the following days.&lt;/p&gt;  &lt;h2&gt;An .STP Site Template&lt;/h2&gt;  &lt;p&gt;Let’s create a normal site, with blank site template. I will add a document library and a webpart to expose the library on the default site page.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/S4boVs3fi4I/AAAAAAAAAck/TuLPs1q98WQ/s1600-h/image%5B15%5D.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://lh6.ggpht.com/_6n9KD8lylQU/S4boW8ZwCnI/AAAAAAAAAco/593nnC8_nyc/image_thumb%5B7%5D.png?imgmax=800" width="644" height="364" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now, save it as a STP file by going to &lt;strong&gt;Site Settings / Save Site as Template&lt;/strong&gt; option.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/S4boXluHAHI/AAAAAAAAAcs/m8i-CFEOOUY/s1600-h/image%5B14%5D.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://lh4.ggpht.com/_6n9KD8lylQU/S4boZshPuzI/AAAAAAAAAcw/QEFgltDhfKc/image_thumb%5B6%5D.png?imgmax=800" width="644" height="385" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The template is now safe in the &lt;strong&gt;Site Template Gallery &lt;/strong&gt;in the root of the site collection.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_6n9KD8lylQU/S4boah6RkxI/AAAAAAAAAc0/UpHv3KcB-94/s1600-h/image%5B13%5D.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://lh6.ggpht.com/_6n9KD8lylQU/S4bocq151fI/AAAAAAAAAc4/n6FG5DM3p7Y/image_thumb%5B5%5D.png?imgmax=800" width="644" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h2&gt;Prying the Lid Off&lt;/h2&gt;  &lt;p&gt;Let’s download the STP file and extract its contents with the &lt;a href="http://support.microsoft.com/default.aspx/kb/310618"&gt;Microsoft Cabinet SDK Tools&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_6n9KD8lylQU/S4bodSfeimI/AAAAAAAAAc8/3sNja_QUJmQ/s1600-h/image%5B12%5D.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://lh6.ggpht.com/_6n9KD8lylQU/S4boeDQzWxI/AAAAAAAAAdA/snbiprZrhRU/image_thumb%5B4%5D.png?imgmax=800" width="644" height="148" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;In this case it’s only a single &lt;strong&gt;manifest.xml&lt;/strong&gt; file. A quick inspection reveals that it has the site template header and a site definition metadata.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/S4bofS-gdUI/AAAAAAAAAdE/maxyDvZRc-I/s1600-h/image%5B20%5D.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://lh4.ggpht.com/_6n9KD8lylQU/S4bog-RiCgI/AAAAAAAAAdI/do7M7YNU2W4/image_thumb%5B10%5D.png?imgmax=800" width="640" height="257" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Opening &lt;strong&gt;SharePoint Manager 2007&lt;/strong&gt; to inspect the source web raw properties, we see that there is a clear mapping between the &amp;lt;&lt;strong&gt;MetaKey&amp;gt;&lt;/strong&gt; tags and the site &lt;strong&gt;property bag&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/S4bojjW3TdI/AAAAAAAAAdQ/3maRED5HQpU/s1600-h/image%5B25%5D.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://lh5.ggpht.com/_6n9KD8lylQU/S4bonZgFwbI/AAAAAAAAAdU/0rI2mKpcreE/image_thumb%5B13%5D.png?imgmax=800" width="640" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Furthermore, the &lt;strong&gt;manifest.xml&lt;/strong&gt; file&lt;strong&gt; keeps reference to the original site definition&lt;/strong&gt; (in this case, “&lt;em&gt;Blank site&lt;/em&gt;”) from which the original site is created. &lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="550"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="258"&gt;&lt;strong&gt;STP Manifest.xml&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="290"&gt;&lt;strong&gt;12\TEMPLATE\1033\XML\WEBTEMP.XML&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="254"&gt;&lt;a href="http://lh3.ggpht.com/_6n9KD8lylQU/S4booMgUdTI/AAAAAAAAAdY/2qvnalSRyWo/s1600-h/image%5B29%5D.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://lh4.ggpht.com/_6n9KD8lylQU/S4boo2_C3rI/AAAAAAAAAdc/wIyjiOcnJ6A/image_thumb%5B15%5D.png?imgmax=800" width="240" height="81" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="290"&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/S4bop3F615I/AAAAAAAAAdg/WoekJtr_-Ns/s1600-h/image%5B39%5D.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://lh5.ggpht.com/_6n9KD8lylQU/S4boqwTzL_I/AAAAAAAAAdk/-irusiT87EI/image_thumb%5B19%5D.png?imgmax=800" width="240" height="76" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="254"&gt;Note the &lt;strong&gt;TemplateID&lt;/strong&gt; and &lt;strong&gt;Configuration&lt;/strong&gt; attributes&lt;/td&gt;        &lt;td valign="top" width="290"&gt;Note the &lt;strong&gt;ID&lt;/strong&gt; attribute of the &lt;strong&gt;Template&lt;/strong&gt; tag and the &lt;strong&gt;ID&lt;/strong&gt; attribute of the &lt;strong&gt;Configuration&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I’ll keep investigating. The rest of the story, in Part 2, soon.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-7842738610480646033?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/7JFaDkFw6qM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/7JFaDkFw6qM/stp2wsp-file-converter-part-1-anatomy.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_6n9KD8lylQU/S4boW8ZwCnI/AAAAAAAAAco/593nnC8_nyc/s72-c/image_thumb%5B7%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2010/02/stp2wsp-file-converter-part-1-anatomy.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-3830399552885827432</guid><pubDate>Wed, 24 Feb 2010 23:36:00 +0000</pubDate><atom:updated>2010-02-25T00:36:38.693+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><title>My New Blog in Spanish: SPEdinKapic.Blog</title><description>&lt;p&gt;I’ve decided to write a &lt;strong&gt;new blog,&lt;/strong&gt; in parallel with this one, with the &lt;strong&gt;Spanish-speaking SharePoint audience&lt;/strong&gt; in mind. As I work in &lt;strong&gt;Barcelona&lt;/strong&gt; (Spain), there are many readers of this blog that come from there and I believe that a localised content for them is a good thing. What I don’t know is which blog is going to be my “&lt;em&gt;primary&lt;/em&gt;” blog. Only time will show it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://spblogedin.blogspot.com/"&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://lh3.ggpht.com/_6n9KD8lylQU/S4W4Bd18otI/AAAAAAAAAcg/4lIjsVY0P78/image%5B5%5D.png?imgmax=800" width="244" height="151" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The URL of &lt;strong&gt;my “other” blog&lt;/strong&gt; is &lt;a href="http://spblogedin.blogspot.com"&gt;http://spblogedin.blogspot.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;¡Bienvenidos!&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-3830399552885827432?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/7A8jewsaGQs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/7A8jewsaGQs/my-new-blog-in-spanish-spedinkapicblog.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_6n9KD8lylQU/S4W4Bd18otI/AAAAAAAAAcg/4lIjsVY0P78/s72-c/image%5B5%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2010/02/my-new-blog-in-spanish-spedinkapicblog.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-3323966918429150262</guid><pubDate>Wed, 17 Feb 2010 15:26:00 +0000</pubDate><atom:updated>2010-02-17T16:26:44.503+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><category domain="http://www.blogger.com/atom/ns#">spc09</category><title>My SPC 2009 Coverage Article at DotNetMania November Issue</title><description>&lt;p&gt;I wrote a short article in Spanish .NET magazine called &lt;a href="http://www.dotnetmania.com"&gt;DotNetManía&lt;/a&gt; about the &lt;strong&gt;SharePoint Conference 2009&lt;/strong&gt; in &lt;strong&gt;Las Vegas&lt;/strong&gt;. I’ve just found out that the PDF file of the article is available online at their site:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.dotnetmania.com/articulos/dnm064/pdf/dnm06402.pdf" href="http://www.dotnetmania.com/articulos/dnm064/pdf/dnm06402.pdf"&gt;http://www.dotnetmania.com/articulos/dnm064/pdf/dnm06402.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(of course, it’s in Spanish only) ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-3323966918429150262?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/-5bGM4i9HDI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/-5bGM4i9HDI/my-spc-2009-coverage-article-at.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2010/02/my-spc-2009-coverage-article-at.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-6965011647748013726</guid><pubDate>Wed, 27 Jan 2010 19:28:00 +0000</pubDate><atom:updated>2010-01-27T20:28:57.078+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><category domain="http://www.blogger.com/atom/ns#">hyper-v</category><title>SharePoint 2010 Hyper-V Virtual Machines Available</title><description>&lt;p&gt;Microsoft has announced that &lt;strong&gt;pre-configured machines with Office 2010 Beta and SharePoint 2010 Beta 2&lt;/strong&gt; are now available for download. &lt;/p&gt;  &lt;p&gt;There are two machines: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint 2010/SQL Server 2008/Visual Studio 2010/Office 2010 VM&lt;/li&gt;    &lt;li&gt;Exchange 2010 VM&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;joined in the same &lt;em&gt;“contoso.com”&lt;/em&gt; domain.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8 GB of RAM&lt;/strong&gt; are recommended for running the machines.&lt;/p&gt;  &lt;p&gt;The download page for the virtual machines is available at &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=0c51819b-3d40-435c-a103-a5481fe0a0d2&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0c51819b-3d40-435c-a103-a5481fe0a0d2&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=0c51819b-3d40-435c-a103-a5481fe0a0d2&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-6965011647748013726?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/jUn_h_vDlT4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/jUn_h_vDlT4/sharepoint-2010-hyper-v-virtual.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2010/01/sharepoint-2010-hyper-v-virtual.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-6707494489412667343</guid><pubDate>Mon, 25 Jan 2010 16:50:00 +0000</pubDate><atom:updated>2010-01-25T17:50:00.351+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">visual studio</category><category domain="http://www.blogger.com/atom/ns#">tutorials</category><title>Visual Studio 2010 Quick Reference Cards on CodePlex</title><description>&lt;p&gt;The good people at &lt;strong&gt;Visual Studio Rangers&lt;/strong&gt; have provided quick reference cards for many VS2010 features. Their aim is to use them as a quick 5-min guide for the new users of VS2010.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_6n9KD8lylQU/S1x6gFR9uXI/AAAAAAAAAb0/g4sb4KVHaqE/s1600-h/image%5B3%5D.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://lh6.ggpht.com/_6n9KD8lylQU/S1x6h3teYVI/AAAAAAAAAb4/Ve59cT9wcCg/image_thumb%5B1%5D.png?imgmax=800" width="404" height="209" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The reference cards are &lt;a href="http://vs2010quickref.codeplex.com/"&gt;available on CodePlex&lt;/a&gt; and are in XPS format only.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-6707494489412667343?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/ZGN50NnMD7c" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/ZGN50NnMD7c/visual-studio-2010-quick-reference.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_6n9KD8lylQU/S1x6h3teYVI/AAAAAAAAAb4/Ve59cT9wcCg/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2010/01/visual-studio-2010-quick-reference.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-4545173039923711151</guid><pubDate>Sun, 24 Jan 2010 16:45:00 +0000</pubDate><atom:updated>2010-01-24T17:45:49.761+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><category domain="http://www.blogger.com/atom/ns#">training</category><title>SharePoint 2010 Certifications Announced</title><description>&lt;h3&gt;Certification Path for Developers&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;b&gt;70-573 TS: Microsoft SharePoint 2010, Application Development&lt;/b&gt;        &lt;br /&gt;&lt;em&gt;Microsoft Official Curriculum:&lt;/em&gt; Five-day instructor-led course designed for developers with six months or more of .NET development experience. Course covers what you need to know to be an effective member of a SharePoint development team using Visual Studio 2010. &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;70-576 PRO: Designing and Developing Microsoft SharePoint 2010 Applications&lt;/b&gt;        &lt;br /&gt;&lt;em&gt;Microsoft Official Curriculum:&lt;/em&gt; Five-day instructor-led training course designed for development team leads who have already passed the Developing on SharePoint 2010 technical specialist exam. The course covers choosing technologies for and scoping a SharePoint project, best practices for SharePoint development, configuring a SharePoint development environment, advanced use of SharePoint developer features, and debugging of code in a SharePoint project. &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Certification Path for IT professionals&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;b&gt;70-667 TS: Microsoft SharePoint 2010, Configuring&lt;/b&gt;        &lt;br /&gt;&lt;em&gt;Microsoft Official Curriculum:&lt;/em&gt; Will cover configuration of SharePoint 2010 including deployment, upgrade, management, and operation on a server farm. &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;70-668 PRO: SharePoint 2010, Administrator&lt;/b&gt;        &lt;br /&gt;&lt;em&gt;Microsoft Official Curriculum:&lt;/em&gt; Will cover advanced SharePoint 2010 topics including capacity planning, topology designing, and performance tuning. &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;strong&gt;Microsoft Partners&lt;/strong&gt; web site (&lt;a title="https://partner.microsoft.com/global/40121316" href="https://partner.microsoft.com/global/40121316"&gt;https://partner.microsoft.com/global/40121316&lt;/a&gt;)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-4545173039923711151?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/XWW0Irsr61w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/XWW0Irsr61w/sharepoint-2010-certifications.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2010/01/sharepoint-2010-certifications.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-2059419937892077803</guid><pubDate>Wed, 13 Jan 2010 09:11:00 +0000</pubDate><atom:updated>2010-01-13T10:16:14.706+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><category domain="http://www.blogger.com/atom/ns#">analysis</category><title>How Did The Prediction End on SP2010?</title><description>&lt;p&gt;More than a year ago, I wrote a &lt;a href="http://edinkapic.blogspot.com/2008/10/sharepoint-v14-2009-feature-list.html"&gt;summary post&lt;/a&gt; about the rumours and buzz around the next version of SharePoint (SP2010). My post has seen a lot of translations and links to it from different blogs. Now I’d like to revisit it and check what has been correctly predicted and what has not.&lt;/p&gt;  &lt;p&gt;Let’s see how do I stand as a crystal-ball reader.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="622"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="312"&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;strong&gt;Outcome&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;The SharePoint v14 / 2009 will be shipped only as x64 installation&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in SP2010&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;         &lt;p&gt;Silverlight 2.0 webparts or UI will be present.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in SP2010&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;SQL tables-like behaviour for SharePoint lists&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in SP2010 as External Content Types&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;If the user has Groove client installed, more options will be displayed for data synchronization, in more seamless way.&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in SP2010 as SharePoint Workspace&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;Master data source for keeping only one version of the truth.&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in SP2010 as centralized metadata management&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;SharePoint UI will produce clean XHTML-compliant output.&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#ff0000"&gt;Not included in SP2010. The output is WCAG-compliant (no tables) but not strict XHTML.&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;FAST-based enterprise search as a Search replacement. Webparts that show FAST search results.&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in Enterprise license of SP2010&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;Custom filters won’t be necessary to index and extract metadata from ODF and PDF files.&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#ff0000"&gt;Not included in SP2010. Third-party IFilters are still necessary&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;Content Management Interoperability Services will allow SharePoint to communicate with other ECMs via web services.&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in SP2010&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="312"&gt;Claims-based Authentication mechanism&lt;/td&gt;        &lt;td valign="top" width="308"&gt;&lt;font color="#008000"&gt;Included in SP2010&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;8 out of 10 predictions&lt;/strong&gt; turned true. Maybe I’ve been in the wrong industry all this time :-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-2059419937892077803?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/8cDe-UgRSvA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/8cDe-UgRSvA/how-did-prediction-end-on-sp2010.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2010/01/how-did-prediction-end-on-sp2010.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-6176272025620064196</guid><pubDate>Thu, 17 Dec 2009 10:33:00 +0000</pubDate><atom:updated>2009-12-17T11:33:03.363+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">setup</category><category domain="http://www.blogger.com/atom/ns#">hyper-v</category><title>Setting Up Hyper-V Server 2008 R2 in Workgroup</title><description>&lt;p&gt;I’ve been able to set up a &lt;strong&gt;Hyper-V Server 2008 R2&lt;/strong&gt; in a spare server box at work. I wanted to set up remote management from my &lt;strong&gt;Windows 7&lt;/strong&gt;, also a workgroup laptop, but it was not a trivial task.&lt;/p&gt;  &lt;p&gt;First, I had to set up the Hyper-V box correctly, as per Microsoft instructions in the readme file. Then I installed the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=7d2f6ad7-656b-4313-a005-4e344e43997d"&gt;Windows 7 Hyper-V Management extensions&lt;/a&gt; on my laptop. I enabled them in Windows Features but I kept getting this error message:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;You do not have the required permission to complete this task. Contact the administrator of the authorization policy for the computer ‘COMPUTERNAME’&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I found out the excellent posts by &lt;strong&gt;John Howard&lt;/strong&gt; that explained the process of setting up the &lt;a href="http://blogs.technet.com/jhoward/archive/2008/03/28/part-1-hyper-v-remote-management-you-do-not-have-the-requested-permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx"&gt;server&lt;/a&gt; and the &lt;a href="http://blogs.technet.com/jhoward/archive/2008/03/28/part-2-hyper-v-remote-management-you-do-not-have-the-requested-permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx"&gt;client&lt;/a&gt; machine correctly.&lt;/p&gt;  &lt;p&gt;I had to disable the &lt;strong&gt;password complexity requirements&lt;/strong&gt; on Hyper-V server, as my current password in Windows 7 is not complex enough. It’s &lt;a href="http://medo64.blogspot.com/2009/09/disabling-password-complexity.html"&gt;described in Medo64’s blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;After all the setup, I still got this error message in Hyper-V Management snap-in:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;Cannot connect to the RPC service, make sure your RPC service is running&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The culprit was the &lt;strong&gt;hosts&lt;/strong&gt; file, as the DNS service didn’t resolve correctly the hyper-v server name. I had to add a manual entry in HOSTS file and then it worked:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/SyoI3LIaSQI/AAAAAAAAAbo/O_47VfIJ9jw/s1600-h/image%5B3%5D.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://lh5.ggpht.com/_6n9KD8lylQU/SyoI3tsYxEI/AAAAAAAAAbs/nyVniwH8QGU/image_thumb%5B1%5D.png?imgmax=800" width="644" height="289" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-6176272025620064196?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/P2aNCIFI7jE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/P2aNCIFI7jE/setting-up-hyper-v-server-2008-r2-in.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_6n9KD8lylQU/SyoI3tsYxEI/AAAAAAAAAbs/nyVniwH8QGU/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2009/12/setting-up-hyper-v-server-2008-r2-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-5524383859890342272</guid><pubDate>Fri, 27 Nov 2009 09:52:00 +0000</pubDate><atom:updated>2009-11-27T10:52:39.379+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><title>My First SharePoint 2010 Beta Machine</title><description>&lt;p&gt;I run it on a VMWare Workstation 6.5 inside Windows 7 32-bits. The virtual machine is 64-bits, of course. My first impression is that SP2010 is so memory-hungry!!! Much more than the MOSS 2007.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_6n9KD8lylQU/Sw-hZEoH38I/AAAAAAAAAbg/saKfIJPFLhM/s1600-h/image%5B2%5D.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://lh5.ggpht.com/_6n9KD8lylQU/Sw-hZlWb73I/AAAAAAAAAbk/7gjKKXdMTGc/image_thumb.png?imgmax=800" width="244" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-5524383859890342272?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/9kBg1suyVhk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/9kBg1suyVhk/my-first-sharepoint-2010-beta-machine.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_6n9KD8lylQU/Sw-hZlWb73I/AAAAAAAAAbk/7gjKKXdMTGc/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2009/11/my-first-sharepoint-2010-beta-machine.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-2726797250913450190</guid><pubDate>Tue, 17 Nov 2009 07:37:00 +0000</pubDate><atom:updated>2009-11-17T08:37:09.861+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><title>The Day Has Arrived: SharePoint 2010 Public Beta Is Here!</title><description>&lt;p&gt;For the &lt;strong&gt;MSDN Subscribers&lt;/strong&gt; only, for the moment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_6n9KD8lylQU/SwJSn9z9F4I/AAAAAAAAAbY/chIl9N120J0/s1600-h/image%5B4%5D.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://lh5.ggpht.com/_6n9KD8lylQU/SwJSpNr2sLI/AAAAAAAAAbc/WOcCwwu6CbI/image_thumb%5B2%5D.png?imgmax=800" width="644" height="251" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-2726797250913450190?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/9w3hC5H2_lU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/9w3hC5H2_lU/day-has-arrived-sharepoint-2010-public.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_6n9KD8lylQU/SwJSpNr2sLI/AAAAAAAAAbc/WOcCwwu6CbI/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2009/11/day-has-arrived-sharepoint-2010-public.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-3439906462551018564</guid><pubDate>Thu, 22 Oct 2009 23:47:00 +0000</pubDate><atom:updated>2009-10-23T01:47:31.600+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">spc09</category><title>[SPC09] Upgrading SharePoint 2007 Code to SharePoint 2010</title><description>&lt;p&gt;This was my last session at the&lt;strong&gt; SharePoint Conference 2009&lt;/strong&gt; in Las Vegas. Tomorrow I fly back to the real world :-( At least, I splashed up a little at the &lt;a href="http://www.mandalaybay.com/thingstodo/beach.aspx"&gt;Mandalay Bay Beach Wave Pool&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This session was very instructive, too. It versed about how to migrate existing SharePoint 2007 code and projects into SharePoint 2010 world. The presenter was a New Zealand guy called &lt;a href="http://www.syringe.net.nz/"&gt;Chris JT Auld&lt;/a&gt;, from &lt;a href="http://www.intergen.co.nz/"&gt;Intergen Limited&lt;/a&gt;. Here are my notes on that:&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 14pt; font-weight: bold" lang="ca"&gt;Upgrading existing VSeWSS projects&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;VS2010 template (a .VSIX file) allow import VSEWSS 1.1 and after into VS2010. It recreates the project structure only. You should do some refactoring around the solution structure, as VSEWSS had a 1:1 feature-artifact relation. New &lt;strong&gt;Feature Designer&lt;/strong&gt; is more flexible that the VSEWSS, it now allows you to have more artifacts in a single feature.&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;There are &lt;span style="font-weight: bold"&gt;several issues&lt;/span&gt; that may arise:&lt;/p&gt;  &lt;ul style="margin-top: 0in; unicode-bidi: embed; direction: ltr; margin-bottom: 0in; margin-left: 0.75in" type="disc"&gt;   &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;STP files are not supported&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; anymore. You will have to vreate V3 site, upgrade to V4, fix issues and then save as template into WSP&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;UI Changes:&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; the backwards-compatible UI (no ribbon, no in-place wiki edits, no interactive calendars). There are now &amp;quot;versioned controls&amp;quot; that are aware of the version-specific content. The UIVersionControl has an UIVersion attribute, and the version-specific content will honor the correct version and be shown. It allows to supress the rendering of a version-specific markup.&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;CSS has changed completely&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;. Any customizations on CSS or master pages&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;will have to be redone. The new UI is fully XHTML and WCAG 2.0 AA level compliant.&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;No more toolbars&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; in the new UI. All the custom toolbar actions go to &amp;quot;Custom commands&amp;quot; on the Ribbon&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;Actions with codebehind code&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; are not migrated automatically, they will have to be redone.&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;Queries that return large number of results&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; may fail. You might have to adjust the thresholds through the Central Application and catch the exception in the code and treat it. The limit applies only to the non-admin users, so tests should be done with a non-admin user. An index on the queries columns should be made to ensure that all items should not be scanned when executing the query. The query limit override can be done by code but it has to be allowed by the administrator.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p style="margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 14pt; font-weight: bold" lang="ca"&gt;Upgrading custom code for SharePoint&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 14pt; font-weight: bold" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Any code that &lt;span style="font-weight: bold"&gt;runs in IIS&lt;/span&gt; should need &lt;span style="font-weight: bold"&gt;no recompilation&lt;/span&gt;. The code that runs in the &lt;span style="font-weight: bold"&gt;Timer Service&lt;/span&gt; must be recompiled.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;The code outside SharePoint will have to be &lt;span style="font-weight: bold"&gt;recompiled or redirected&lt;/span&gt; using bindingAssembly declarations.&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Many APIs have been &lt;span style="font-weight: bold"&gt;deprecated&lt;/span&gt;. In most cases it will give you a warning during the recompilation but it should work. Examples: SPFarm.Create now uses SPFarm.Create(passphrase), SPVirtualServer is deprecated by SPWebApplication. A &lt;span style="font-weight: bold"&gt;Reflector add-in&lt;/span&gt; will be made by &lt;a href="http://www.syringe.net.nz/"&gt;Chris&lt;/a&gt; to scan an assembly for deprecated code.&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Any &lt;strong&gt;hard-coded path to &amp;quot;12&amp;quot; hive&lt;/strong&gt; must now point to the new &amp;quot;14&amp;quot; hive.&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;There have been numerous improvements in the WSP&lt;span style="font-weight: bold"&gt; solution upgrade process&lt;/span&gt;: &lt;/p&gt;  &lt;ul style="margin-top: 0in; unicode-bidi: embed; direction: ltr; margin-bottom: 0in; margin-left: 0.75in" type="disc"&gt;   &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;BindingRedirects&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; are now supported in the manifest file&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;Features can be&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt; upgraded declaratively and programmatically&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;You can &lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;query the farm&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; (QueryFeatures method) to see &lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;what features are there and which version are they&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;, so they can be upgraded by code (SPFeature.Upgrade method). The version range element in Feature.xml allows for&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt; upgrading from multiple versions&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;.&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;STSADM command for solution upgrade&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; (upgradesolution) is also available. For more granular upgrade, object model will have to be used.&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;In the object model, there's a &lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;FeatureUpgrading event&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; where to add the upgrade code. Be careful to check for the right version-dependant upgrade action to be called.&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;To upgrade the feature&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt; for new instances&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;, ,use &lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;STSADM -upgradesolution&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt;. For upgrading the instances already created , &lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;psconfig cmd&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;upgrade -inplace -b2b&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; command should be run.&lt;/span&gt;&lt;/li&gt;    &lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" lang="ca"&gt;&lt;span style="font-family: calibri; font-size: 11pt; font-weight: bold"&gt;Sandboxed solutions&lt;/span&gt;&lt;span style="font-family: calibri; font-size: 11pt"&gt; can be upgraded by uploading a new versions and choosing &amp;quot;Upgrade&amp;quot; from the UI.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p style="margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt"&gt;&lt;span lang="ca"&gt;A complete whitepaper was released on Monday, called &lt;/span&gt;&lt;span style="font-weight: bold" lang="ca"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold" lang="es"&gt;Redeploying Customizations and Solutions in SharePoint Foundation 2010 and SharePoint Server 2010&amp;quot;&lt;/span&gt;&lt;span lang="ca"&gt;. It's avaliable on &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee662217%28office.14%29.aspx"&gt;&lt;span lang="ca"&gt;http://msdn.microsoft.com/en-us/library/ee662217%28office.14%29.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-3439906462551018564?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/RsiTuCTI4TU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/RsiTuCTI4TU/spc09-upgrading-sharepoint-2007-code-to.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/spc09-upgrading-sharepoint-2007-code-to.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-4276885027344271669</guid><pubDate>Thu, 22 Oct 2009 18:29:00 +0000</pubDate><atom:updated>2009-10-22T20:29:22.539+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">spc09</category><title>[SPC09] Driving End User Adoption</title><description>&lt;p&gt;This session was dear to my heart, as the end-user adoption is really a tough thing to achieve. The session was presented by Scott Jamison of &lt;a href="http://www.jornata.com"&gt;Jornata&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here are my notes on the session:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Users don't &amp;quot;have&amp;quot; to use SharePoint&lt;/strong&gt; to get their job done&lt;/li&gt;    &lt;li&gt;Cultural changes (such as a SharePoint solution) &lt;strong&gt;take 18-36 months to stick&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It's essential to have an adoption plan&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;That increase perceived value for the users&lt;/li&gt;    &lt;li&gt;That increase users' skills and confidence&lt;/li&gt;    &lt;li&gt;Should have progression from clueless to skeptic to productive to advocate&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Take the &amp;quot;What's in it for me?&amp;quot; factor into account&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Connect SharePoint to business goals&lt;/li&gt;    &lt;li&gt;Elegant solution: don't make them go through five screens&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Must-have elements in the adoption strategy&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Communication Plan     &lt;ul&gt;       &lt;li&gt;Leverage power users and champions&lt;/li&gt;        &lt;li&gt;Send CEO/HR/VP Memos&lt;/li&gt;        &lt;li&gt;Prepare &amp;quot;Town Hall&amp;quot; meetings&lt;/li&gt;        &lt;li&gt;Put Break Room posters         &lt;ul&gt;           &lt;li&gt;On WC backdoors ;-)&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Prepare Scavenger Hunt (the pieces to find are on SharePoint: a concrete document, a user's favorite color) with small rewards (20-50 $)&lt;/li&gt;        &lt;li&gt;Put &amp;quot;birth&amp;quot; announcements cards of a new portal on the desk&lt;/li&gt;        &lt;li&gt;Keep continuous communication&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Training Plan     &lt;ul&gt;       &lt;li&gt;Not only for developers or IT staff&lt;/li&gt;        &lt;li&gt;But also Power users, visitors, members, content contributors, workflow approvers&lt;/li&gt;        &lt;li&gt;&amp;quot;just in time&amp;quot; and &amp;quot;just enough&amp;quot; training&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Content Conversion Plan     &lt;ul&gt;       &lt;li&gt;Three approaches         &lt;ul&gt;           &lt;li&gt;Clean and migrate everything&lt;/li&gt;            &lt;li&gt;Migrate nothing, index old content, new content in new system&lt;/li&gt;            &lt;li&gt;Clean and migrate recent content only&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Don't migrate without cleaning!!&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;User Support Plan     &lt;ul&gt;       &lt;li&gt;Contact person for every page (with pictures and contact info). There's no global webmaster.&lt;/li&gt;        &lt;li&gt;Form internal site owner user groups to help each other&lt;/li&gt;        &lt;li&gt;IT Help Desk should prepare for more questions&lt;/li&gt;        &lt;li&gt;Capture end-user feedback: with metrics or anecdotes (find a user that likes the solution and show him to the others)&lt;/li&gt;        &lt;li&gt;Have some end-user resources ready (guides, help...)&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Incentives and Reward Plan     &lt;ul&gt;       &lt;li&gt;Answer &amp;quot;What's in it for me&amp;quot; factor showing the usefulness of something with real data&lt;/li&gt;        &lt;li&gt;Make it fun (posters, scavenger hunt...)&lt;/li&gt;        &lt;li&gt;Provide recognitions for the content contribution users&lt;/li&gt;        &lt;li&gt;Invest in information architecture to ensure fantastic user experience&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Must Have Resources (free)&lt;/h3&gt;  &lt;p&gt;SharePoint Buzz Kit from Microsoft (will be updated for SharePoint 2010)&lt;a href="http://sharepoint.microsoft.com/rampup/sharepoint/Pages/buzzkit.aspx"&gt;     &lt;br /&gt;http://sharepoint.microsoft.com/rampup/sharepoint/Pages/buzzkit.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;SharePoint Training Kit (will be updated for SharePoint 2010)   &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7BB3A2A3-6A9F-49F4-84E8-FF3FB71046DF&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=7BB3A2A3-6A9F-49F4-84E8-FF3FB71046DF&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Productivity Hub   &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=277fefca-d62f-41bc-943d-79002254cfee&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=277fefca-d62f-41bc-943d-79002254cfee&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Get the Point Blog   &lt;br /&gt;&lt;a href="http://sharepoint.microsoft.com/blogs/GetThePoint/default.aspx"&gt;http://sharepoint.microsoft.com/blogs/GetThePoint/default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Summary&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Adoption won't happen by chance&lt;/li&gt;    &lt;li&gt;Have a plan (better, have many plans)&lt;/li&gt;    &lt;li&gt;Use the resources, lot of them are free&lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-4276885027344271669?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/pysWVcNK1VI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/pysWVcNK1VI/spc09-driving-end-user-adoption.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/spc09-driving-end-user-adoption.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-796147121969154942</guid><pubDate>Wed, 21 Oct 2009 05:59:00 +0000</pubDate><atom:updated>2009-10-21T07:59:31.839+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><title>SharePoint Server 2010 Overview Available for Download</title><description>&lt;p&gt;On Microsoft &lt;strong&gt;TechNet&lt;/strong&gt;:     &lt;br /&gt;&lt;a title="http://download.microsoft.com/download/8/C/6/8C65AC6A-C09A-4E47-B2AD-0719EAA062F9/EvaluateSharePointServer2010-IT%20Pro_v4.docx" href="http://download.microsoft.com/download/8/C/6/8C65AC6A-C09A-4E47-B2AD-0719EAA062F9/EvaluateSharePointServer2010-IT%20Pro_v4.docx"&gt;http://download.microsoft.com/download/8/C/6/8C65AC6A-C09A-4E47-B2AD-0719EAA062F9/EvaluateSharePointServer2010-IT%20Pro_v4.docx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s very comprehensive and outlines all the features that SharePoint Server 2010 includes.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-796147121969154942?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/0iacZO_S_yg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/0iacZO_S_yg/sharepoint-server-2010-overview.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/sharepoint-server-2010-overview.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-545426366898524011</guid><pubDate>Wed, 21 Oct 2009 05:45:00 +0000</pubDate><atom:updated>2009-10-21T07:45:05.867+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><category domain="http://www.blogger.com/atom/ns#">spc09</category><title>[SPC09] Document Management Improvements</title><description>&lt;p&gt;On this second day of &lt;strong&gt;SharePoint Conference&lt;/strong&gt; in Las Vegas, I attended two sessions that were specific on &lt;strong&gt;document management improvements&lt;/strong&gt; in SharePoint 2010:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;“Growing SharePoint From Small Libraries to Large Scale Repositories and Archives”&lt;/strong&gt; by &lt;strong&gt;Adam Harmetz&lt;/strong&gt; (Microsoft) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;“Document Management Deep Dive”&lt;/strong&gt; by &lt;strong&gt;Ryan Duguid&lt;/strong&gt; (Microsoft) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The main takeaways from these two session are these:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;There are &lt;strong&gt;new SharePoint features&lt;/strong&gt; that make it easier to manage and apply metadata to the content:       &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Unique Document Numbering&lt;/strong&gt; &lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Metadata Service&lt;/strong&gt; for centralized management of content types and metadata &lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Tagging and Rating&lt;/strong&gt; &lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Taxonomy navigation &lt;/strong&gt;based on the current metadata &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;There are also improvements on the file record / archive features, too:      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Multiple “Send To”&lt;/strong&gt; locations &lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Automatic routing&lt;/strong&gt; of the documents, based on the metadata &lt;/li&gt;        &lt;li&gt;Automatic document &lt;strong&gt;obsoletization and archiving&lt;/strong&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are &lt;strong&gt;4 main approaches&lt;/strong&gt; on how to use these settings in &lt;strong&gt;Document Management&lt;/strong&gt;, depending on the scale of the document repository that we need:&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;div style="direction: ltr"&gt;   &lt;table style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; border-collapse: collapse; direction: ltr; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid" border="1" cellspacing="0" cellpadding="0" valign="top"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.202in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Document management approach&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.24in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Number of documents stored&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 7.944in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;How SharePoint 2010 helps&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.202in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Ad Hoc Team Library&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.24in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Up to 200 documents&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 7.944in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Focus on easy and lightweight features, while the metadata are centralized.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Content types are now centralized into &lt;strong&gt;Metadata Service&lt;/strong&gt;, across the site collection boundary.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Taxonomy&lt;/strong&gt; can be used in columns and is &lt;strong&gt;hierarchical&lt;/strong&gt; and &lt;strong&gt;multi-lingual&lt;/strong&gt;.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Default values&lt;/strong&gt; for columns at document library level can be set. This allows document library to automatically populate the values of the content type that’s shared across the organization.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Managed Keywords&lt;/strong&gt; are suggested as you are typing.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;The tags are now surfaced in the “Save document” shell window. &lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;The tags appear in tag cloud for the site. The tags can be further drilled down, subscribed to and filtered. Tag security: only private and public tags are covered.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.202in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Managed Library&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.24in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Hundreds to thousands&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 7.944in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;More structured than the ad hoc library. (Document Center). The system should help the user to use and create metadata.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Unique document IDs&lt;/strong&gt; for the enterprise can be generated. You can get the document by the ID using a &lt;strong&gt;“Get Document by ID” web part&lt;/strong&gt;.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Metadata navigation&lt;/strong&gt; can be used as a &amp;quot;virtual&amp;quot; folder structure. You can still use the static folders. &lt;strong&gt;Key Filters&lt;/strong&gt; can be used to further slice the navigation result set. These settings are defined on the document library settings. &lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;The taxonomy is defined by each user, but the structure is centralized. Metadata can be centrally managed or user-managed (“folksonomy”).&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Document archiving can now be done directly in the library.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.202in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Repository / Archive&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.24in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Millions to tens of millions&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 7.944in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;There should be a best-practice team that manages the metadata for the repository. &lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;The users submit documents (finished ones) for broad consumption. The end users don't even know what are they looking for. For instance, a Knowledge Management Repository.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Content type and metadata classification is essential.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Additional filters are now indexed in the background, as compound indexes in SQL Server).&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;The metadata navigation results are now &lt;strong&gt;shown in batches&lt;/strong&gt; (and announced to the user), so not to hamper the performance when navigating huge archives. Furthermore, the navigation results are cached across users.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Search can be contextual to the navigation results&lt;/strong&gt;. (very cool feature)&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Content Organizer settings: content can be sent to the archive manually, by the workflow, uploaded etc. The document can be routed to the corresponding folder by Content Organizer component. Folders can be used to set permissions on a larger basis. The retention policy is also bound to the folder.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Content Query Web Part (CQWP) is now suited for document library results. The demo shows &lt;em&gt;&amp;quot;Suzie recommends&amp;quot;&lt;/em&gt; and &lt;em&gt;&amp;quot;Newest added biographies&amp;quot;&lt;/em&gt; CQWP results.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.202in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Massive, Distributed Archive&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 1.24in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;Hundreds of millions of documents&lt;/p&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 4pt; padding-left: 4pt; width: 7.944in; padding-right: 4pt; vertical-align: top; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 4pt"&gt;           &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;The documents are added automatically. High-volume back-end systems are involved instead of the end user. Logical organization and hierarchy are a key.&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&lt;strong&gt;Content Organizer&lt;/strong&gt; can route content to correct site collection in the archive. &lt;strong&gt;Content Type Syndication&lt;/strong&gt; enables central management of distributed archive. FAST search is used to retrieve content.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0in; font-family: calibri; font-size: 11pt" lang="ca"&gt;There are several &lt;strong&gt;back-end optimizations&lt;/strong&gt; that make these scale-out scenarios easier: database reorganization, compound indexing, remote BLOB storage in SQL Server 2008, per-item throughput maximization.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Office 2010 can interrogate SharePoint Metadata Service&lt;/strong&gt; in background, which allows the user to create new document based on the latest content type document templates.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Word Automation Services&lt;/strong&gt; are also available to automatize Office document conversion (into PDF, XPS and so on), printing and document composition.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-545426366898524011?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/rg7N9zAZG1o" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/rg7N9zAZG1o/spc09-document-management-improvements.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/spc09-document-management-improvements.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-324248798182313758</guid><pubDate>Wed, 21 Oct 2009 05:32:00 +0000</pubDate><atom:updated>2009-10-21T07:32:57.977+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><title>SharePoint 2010: The New Pie Chart</title><description>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/St6c-3W_ilI/AAAAAAAAAbQ/xhQtWXaIijE/s1600-h/image%5B4%5D.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://lh6.ggpht.com/_6n9KD8lylQU/St6dCJBvycI/AAAAAAAAAbU/Y1D9ME5Appc/image_thumb%5B2%5D.png?imgmax=800" width="644" height="404" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-324248798182313758?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/K63exeLMO0w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/K63exeLMO0w/sharepoint-2010-new-pie-chart.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_6n9KD8lylQU/St6dCJBvycI/AAAAAAAAAbU/Y1D9ME5Appc/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/sharepoint-2010-new-pie-chart.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-5506777271333548052</guid><pubDate>Tue, 20 Oct 2009 06:53:00 +0000</pubDate><atom:updated>2009-10-20T08:53:50.661+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sharepoint 2010</category><category domain="http://www.blogger.com/atom/ns#">spc09</category><title>[SPC09] SharePoint 2010 Administration Improvements</title><description>&lt;p&gt;This afternoon, the sessions I attended were about &lt;strong&gt;SharePoint Administration improvements&lt;/strong&gt;. The sessions (Part 1 and Part 2) were delivered by the comic duo made by &lt;a href="http://msmvps.com/shane"&gt;Shane Young&lt;/a&gt; and &lt;a href="http://www.toddklindt.com/blog"&gt;Todd Klindt&lt;/a&gt;. They demonstrated the new shiny tools and features that will ease the life of a SharePoint Administrator.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;New hierarchy containment objects: &lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Services (in a way of a modularized SSP: metadata service, search, profiles…)&lt;/li&gt;    &lt;li&gt;Service applications&lt;/li&gt;    &lt;li&gt;Service application databases (a LOT of them will be created by default)&lt;/li&gt;    &lt;li&gt;Services can be linked to specific site collections (&amp;quot;multi-tenancy&amp;quot;)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Server 2008 SP2 or later or Windows Server 2008 R2&lt;/li&gt;    &lt;li&gt;SQL Server 2005 SP2 / SQL Server 2008 SP1 CU2 or later&lt;/li&gt;    &lt;li&gt;“Geneva” Framework&lt;/li&gt;    &lt;li&gt;Sync Framework&lt;/li&gt;    &lt;li&gt;There's a prerequisite installer that will install the missing pieces&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;p&gt;&lt;strong&gt;Install Process&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Farm Passphrase, the master password to recreate the security key. It removes the dependency on the install account&lt;/li&gt;      &lt;li&gt;GPO policies can restrict where can SharePoint be installed&lt;/li&gt;   &lt;/ul&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Configuration Wizard &lt;/strong&gt;(like SharePoint 2007 Setup has)      &lt;ul&gt;       &lt;li&gt;&amp;quot;14&amp;quot; hive instead of “12”&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Farm Configuration&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;New wizard In Central Administration&lt;/li&gt;        &lt;li&gt;It performs the common Farm configuration&lt;/li&gt;        &lt;li&gt;Pops up on first Central Administration run&lt;/li&gt;        &lt;li&gt;Gotcha: the browser must have Central Administration set to trusted zone&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;4 GB limit in Basic Install (no more unlimited internal database :-( )&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Managed Accounts&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Manage password changes according to your AD policies&lt;/li&gt;    &lt;li&gt;Automatic password changes performed by SharePoint&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Other stuff&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint 2010 is mirror-aware and failover-aware, you have to specify the failover SQL server&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Claims Providers&lt;/strong&gt; (Geneva Framework) now allow more than one authentication provider per web application&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;PowerShell&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Default tool for administration&lt;/li&gt;    &lt;li&gt;SharePoint Management Shell link or SharePoint Snap-in&lt;/li&gt;    &lt;li&gt;Faster than STSADM (it doesn't unload from memory)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;p&gt;&lt;strong&gt;Backup and Restore&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Farm backups are the same format as before, but they can make configuration-only backup and use multiple threads&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Granular Backup &lt;/strong&gt;is now supported for Site collections, webs and lists&lt;/li&gt;      &lt;li&gt;Recover data from and unattached content database (the URL dropdown is broken but works)&lt;/li&gt;   &lt;/ul&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Throttling&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The performance is monitored and the users are kept from &lt;em&gt;&amp;quot;shooting themselves in the foot&amp;quot;&lt;/em&gt;      &lt;ul&gt;       &lt;li&gt;No more 2000 items limit, now it’s 50 million items&lt;/li&gt;        &lt;li&gt;The output is throttled in order not to overload the server&lt;/li&gt;        &lt;li&gt;Can be overriden by Object Model, but the Admins can disable the override&lt;/li&gt;        &lt;li&gt;&lt;strong&gt;“Happy Hour” Settings&lt;/strong&gt; (Daily Time Windows for Large Queries): you can program when the result limit trimming is disabled&lt;/li&gt;        &lt;li&gt;Admins and Users have different settings for throttling&lt;/li&gt;        &lt;li&gt;HTTP Requests are monitored and 503 errors (Server busy) are launched for GET requests and timer jobs (PUT requests are still allowed)         &lt;ul&gt;           &lt;li&gt;Launched by 3 indicator peaks over limit&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Developer Dashboard&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;It can be used to monitor page load and performance&lt;/li&gt;        &lt;li&gt;It can be activated on demand&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;p&gt;Logging&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;ULS logs now accept &lt;strong&gt;correlation ID for a specific request&lt;/strong&gt; (shown at Developer Dashboard) and can trace a whole request from the beginning to the end&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Event Log flood protection&lt;/strong&gt;: it removes the duplicated error messages in Event Log (triggered by default when it’s repeated&amp;#160; times in a row)&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;“Set to default” &lt;/strong&gt;option for ULS logging settings. The new UI shows the non-default settings in bold.&lt;/li&gt;      &lt;li&gt;Logging can be exported to &lt;strong&gt;SQL Logging database&lt;/strong&gt; (the schema will publicly be announced by MS)&lt;/li&gt;      &lt;li&gt;Log Space can be restricted so not to overrun the disk space&lt;/li&gt;   &lt;/ul&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;strong&gt;Best Practices Analyzer&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Health Rules that run periodically, integrated into SharePoint Central Administration&lt;/li&gt;      &lt;li&gt;These rules are extensible&lt;/li&gt;      &lt;li&gt;These rules can automatically repair some rule violations&lt;/li&gt;   &lt;/ul&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;strong&gt;Timer Jobs&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Server Affinity: you can specify which server will run which timer job&lt;/li&gt;      &lt;li&gt;“Run on demand” command&lt;/li&gt;      &lt;li&gt;Progress bar for timer jobs&lt;/li&gt;      &lt;li&gt;Report for the jobs that executed (with error messages and run details)&lt;/li&gt;   &lt;/ul&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;Patching and Upgrade&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;You can now have servers and database at &lt;strong&gt;different patch level&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;Database can be at lower version than the binaries that you have installed&lt;/li&gt;      &lt;li&gt;Lowers the downtime of the farm&lt;/li&gt;   &lt;/ul&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-5506777271333548052?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/WqoPYD3j1JI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/WqoPYD3j1JI/spc09-sharepoint-2010-administration.html</link><author>noreply@blogger.com (Edin)</author><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/spc09-sharepoint-2010-administration.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-6482442420506466846</guid><pubDate>Tue, 20 Oct 2009 04:19:00 +0000</pubDate><atom:updated>2009-10-20T06:19:30.118+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">spc09</category><title>[SPC09] Overview of the SharePoint 2010 Development Platform</title><description>&lt;p&gt;This session was delivered by &lt;strong&gt;Paul Andrews&lt;/strong&gt;, Microsoft Technical Product Manager for SharePoint. It was really “techie” stuff, but summarized enough to squeeze into 75 minutes.&lt;/p&gt;  &lt;p&gt;Here are my notes from the session:&lt;/p&gt;  &lt;h3&gt;Developer Productivity Improvements&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint 2010 now runs on Windows 7 or Windows Vista SP1 (in 64 bits, standalone install only)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Visual Studio 2010&lt;/strong&gt; (Beta 2 now available for download) enhances development on SharePoint 2010      &lt;ul&gt;       &lt;li&gt;WSP packages import and export&lt;/li&gt;        &lt;li&gt;Server Explorer now shows SharePoint artifacts&lt;/li&gt;        &lt;li&gt;Full TFS Integration&lt;/li&gt;        &lt;li&gt;Web Part, Business Data Connectivity entities and Workflow designer&lt;/li&gt;        &lt;li&gt;Extensible, you can add your custom artifacts&lt;/li&gt;        &lt;li&gt;Visual Web Part designer creates ASCX control that's loaded into the web part&lt;/li&gt;        &lt;li&gt;LINQ-to-Sharepoint is now supported&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;SPMetal tool creates the LINQ entities from SharePoint lists&lt;/li&gt;       &lt;/ul&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SharePoint Designer 2010 &lt;/strong&gt;(still free)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Tool to create BDC entities, list schemas, custom actions, task and approval forms &lt;/li&gt;      &lt;li&gt;Improved page editor and workflow designer&lt;/li&gt;      &lt;li&gt;“Save Site as Template” action now saves into a WSP that you can import into VS2010&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Developer Dashboard&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;Quick debug or page performance monitor&lt;/li&gt;        &lt;li&gt;Has to be enabled with STSADM tool&lt;/li&gt;        &lt;li&gt;Shows the detailed ASP.NET and back-end operations (event the SQL queries in full)&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Web parts can be inserted into page content (it uses a hidden WebPartZone controls)&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Platform Services Improvements&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Business Connectivity Services &lt;/strong&gt;(the new BDC)      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Read/Write access&lt;/strong&gt; to the LOB data&lt;/li&gt;        &lt;li&gt;Available in SharePoint Foundation (new WSS name), too&lt;/li&gt;        &lt;li&gt;BDC &lt;strong&gt;Entity Designer&lt;/strong&gt; in VS2010&lt;/li&gt;        &lt;li&gt;The data are surfaced as &lt;strong&gt;External Content Type &lt;/strong&gt;in SharePoint list templates&lt;/li&gt;        &lt;li&gt;Monitored by Service Applications option in Central Admin&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;List Improvements&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Cascaded and Block Relationships&lt;/strong&gt; in SharePoint lists (really good news)&lt;/li&gt;      &lt;li&gt;Validation and uniqueness check on the list edit form&lt;/li&gt;      &lt;li&gt;Lookup to multiple columns&lt;/li&gt;      &lt;li&gt;Large lists are now possible (but you must limit the view elements)&lt;/li&gt;      &lt;li&gt;CAML in views is now replaced by XSLT (CAML is still used for queries)&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Data Retrieval&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;REST APIs&lt;/strong&gt;          &lt;ul&gt;           &lt;li&gt;Built on &lt;strong&gt;ADO.NET Data Services&lt;/strong&gt;&lt;/li&gt;            &lt;li&gt;Visual Studio Data Source wizard now supports SharePoint as a data source&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Client Object Model&lt;/strong&gt;          &lt;ul&gt;           &lt;li&gt;ExecuteQuery() method must be called explicitly&lt;/li&gt;            &lt;li&gt;Batched for performance reasons&lt;/li&gt;            &lt;li&gt;Available from for NET, Silverlight and JavaScript CLR&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;LINQ with list joins and field projections without schema changes&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Events&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;There are now event templates in VS2010&lt;/li&gt;        &lt;li&gt;&lt;strong&gt;After-synchronous events&lt;/strong&gt; (like the &lt;em&gt;–ing&lt;/em&gt; events in SharePoint 2007 but for the&lt;em&gt; –ed&lt;/em&gt; events)&lt;/li&gt;        &lt;li&gt;New events such as workflow events or list creation events&lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Custom error pages&lt;/strong&gt; for event validation errors&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Workflows&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;There are now “&lt;strong&gt;Reusable declarative workflows&lt;/strong&gt;” available (no code)&lt;/li&gt;        &lt;li&gt;Site workflows (not bound to a list, they show in the &lt;strong&gt;Site Actions&lt;/strong&gt; menu)&lt;/li&gt;        &lt;li&gt;High privilege workflows (as opposed to normal user permission-limited workflows)&lt;/li&gt;        &lt;li&gt;Pluggable WF services (can be triggered by external events)&lt;/li&gt;        &lt;li&gt;VS2010 can make workflow form UI with code-behind&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Service Applications&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;Improvement upon SSPs&lt;/li&gt;        &lt;li&gt;Built on WCF&lt;/li&gt;        &lt;li&gt;Sits on the Application Server machines&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;UI Ribbon and Dialog Framework &lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Status bar&lt;/strong&gt; beneath the ribbon&lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Notification Area&lt;/strong&gt; (balloon, like the GMail “Loading” notification)&lt;/li&gt;        &lt;li&gt;Dialog box (in AJAX and JavaScript)&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Deployment Improvements&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Sandboxed Solutions&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;Balance between agility and stability&lt;/li&gt;        &lt;li&gt;Limited API access, separated process and monitored resources&lt;/li&gt;        &lt;li&gt;Uploaded into site &lt;strong&gt;Solution Gallery&lt;/strong&gt; (in Site Settings)&lt;/li&gt;        &lt;li&gt;&lt;strong&gt;SPUCWorkerProcess.exe&lt;/strong&gt; executes the code, in proxy fashion&lt;/li&gt;        &lt;li&gt;If too many resources have been consumed, the solution is shut down&lt;/li&gt;        &lt;li&gt;There's a job that monitors the resource usage and shows it in the gallery&lt;/li&gt;        &lt;li&gt;It will be used in SharePoint 2010 Online &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Upgrade&lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;Assembly Redirects for 2007 DLLs, so they will be running without recompilation&lt;/li&gt;        &lt;li&gt;Upgrade mappings (not really clear on this one)&lt;/li&gt;        &lt;li&gt;Feature upgrades with code&lt;/li&gt;        &lt;li&gt;Visual Upgrade for SharePoint 2007 sites, on demand&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I can’t wait to try these new improvements on my own!!! However, we will still have to wait until November to get our hands on the Beta version binaries.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/St06RHseztI/AAAAAAAAAbA/VE-c1I1q4u0/s1600-h/DSC_0026%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0026" border="0" alt="DSC_0026" src="http://lh6.ggpht.com/_6n9KD8lylQU/St06RrGiwgI/AAAAAAAAAbE/CPLklF3MJ5U/DSC_0026_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;     &lt;br /&gt;List Throttling for large lists&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/St06Sc29yWI/AAAAAAAAAbI/egrfNlQpGiw/s1600-h/DSC_0027%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0027" border="0" alt="DSC_0027" src="http://lh4.ggpht.com/_6n9KD8lylQU/St06TIkKDaI/AAAAAAAAAbM/lxOhX-ZxuiM/DSC_0027_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;MOSS 2007 in SP2010, without running Visual Upgrade&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-6482442420506466846?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/LL91OA9F1kk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/LL91OA9F1kk/spc09-overview-of-sharepoint-2010.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_6n9KD8lylQU/St06RrGiwgI/AAAAAAAAAbE/CPLklF3MJ5U/s72-c/DSC_0026_thumb.jpg?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/spc09-overview-of-sharepoint-2010.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33612499.post-2555168956175151142</guid><pubDate>Tue, 20 Oct 2009 03:54:00 +0000</pubDate><atom:updated>2009-10-20T05:54:16.792+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">spc09</category><title>[SPC09] Day One: Keynote</title><description>&lt;p&gt;Today the HUGE information stream began flowing, starting with a keynote by Microsoft CEO &lt;strong&gt;Steve Ballmer&lt;/strong&gt; and SharePoint directors &lt;strong&gt;Jeff Teper&lt;/strong&gt; and &lt;strong&gt;Tom Rizzo&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/St00GIpW-uI/AAAAAAAAAZo/ec4UTsrzxfY/s1600-h/image2.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://lh6.ggpht.com/_6n9KD8lylQU/St00HwO1S3I/AAAAAAAAAZs/n4DrGok1hy0/image_thumb.png?imgmax=800" width="244" height="140" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;I’ll summarize the main points of the keynote.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;SharePoint 2010 Public Beta&lt;/strong&gt; will be launched in &lt;strong&gt;November 2009&lt;/strong&gt;. The RTM version is to follow in the &lt;strong&gt;first half of 2010 together with Office 2010&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;SharePoint can now be installed on &lt;strong&gt;Windows Vista or Windows 7&lt;/strong&gt; for development &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Visual Studio 2010&lt;/strong&gt; (beta available) fully supports SharePoint 2010 development &lt;/li&gt;    &lt;li&gt;Windows SharePoint Services 4.0 will now be called &lt;strong&gt;SharePoint 2010 Foundation&lt;/strong&gt; and will include more features (Business Data Connectivity, for instance) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Office 2010&lt;/strong&gt; adds &lt;strong&gt;Web Edit&lt;/strong&gt; capabilities for Office files stored in SharePoint, without opening them in the client applications &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SharePoint Workspace&lt;/strong&gt; will let you work offline and sync the changes (even the external data) &lt;/li&gt;    &lt;li&gt;SharePoint document management now include &lt;strong&gt;document sets&lt;/strong&gt; and &lt;strong&gt;farm-wide taxonomy &lt;/strong&gt;(&lt;strong&gt;Managed Metadata Service&lt;/strong&gt;) &lt;/li&gt;    &lt;li&gt;Metadata-driven navigation and tagging &lt;/li&gt;    &lt;li&gt;Large lists are now throttled and millions of items can be stored in them &lt;/li&gt;    &lt;li&gt;Business Intelligence is now enhanced with &lt;strong&gt;SQL Server PowerPivots&lt;/strong&gt; (that now allow Excel and Excel Services to manage millions of rows seamlessly) and &lt;strong&gt;PerformancePoint Services&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Visio Services&lt;/strong&gt; and &lt;strong&gt;Access Services&lt;/strong&gt; are added &lt;/li&gt;    &lt;li&gt;Silverlight &lt;strong&gt;Organization Chart Navigator&lt;/strong&gt; and &lt;strong&gt;Media Player&lt;/strong&gt; web part are available &lt;/li&gt;    &lt;li&gt;External content types now surface &lt;strong&gt;external data into the SharePoint lists &lt;/strong&gt;with read and write access &lt;/li&gt;    &lt;li&gt;Pervasive AJAX: Dialogs, Ribbon, Notification Area, Status Bar &lt;/li&gt;    &lt;li&gt;REST-ful API for Lists and Excel Services &lt;/li&gt;    &lt;li&gt;SharePoint Online now use Sandboxed WSP solutions to run user code securely &lt;/li&gt;    &lt;li&gt;You can now stream multimedia content stored in SharePoint &lt;/li&gt;    &lt;li&gt;Multi-browser compatibility &lt;/li&gt;    &lt;li&gt;Multi-lingual interface &lt;/li&gt;    &lt;li&gt;Seamless on-premise, mixed and cloud deployment with the same administration &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;PowerShell&lt;/strong&gt; administration with 300+ cmdlets &lt;/li&gt;    &lt;li&gt;Logging data can now be surfaced in a database that you can extend (yes, the only database that MS will let us touch) &lt;/li&gt;    &lt;li&gt;Mobile access to SharePoint and Office data &lt;/li&gt;    &lt;li&gt;Revamped search with optional &lt;strong&gt;FAST integration&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/St00JPE3PeI/AAAAAAAAAZw/Zgd5g0eHGx0/s1600-h/DSC_0004%5B7%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0004" border="0" alt="DSC_0004" src="http://lh3.ggpht.com/_6n9KD8lylQU/St00Jx6iS6I/AAAAAAAAAZ0/DLx29Qb1HRc/DSC_0004_thumb%5B3%5D.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;Entering the Keynote Room&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_6n9KD8lylQU/St00KmFHb7I/AAAAAAAAAZ4/5zPtQyYIv1o/s1600-h/DSC_0007%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0007" border="0" alt="DSC_0007" src="http://lh6.ggpht.com/_6n9KD8lylQU/St00LEWYIWI/AAAAAAAAAZ8/TQ5LXCR5ISU/DSC_0007_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;    &lt;br /&gt;Tom Rizzo introduces the keynote &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/St00MSVq2eI/AAAAAAAAAaA/fXdxCOZGzqg/s1600-h/DSC_0009%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0009" border="0" alt="DSC_0009" src="http://lh5.ggpht.com/_6n9KD8lylQU/St00NJZz4TI/AAAAAAAAAaE/C1ehN0vmQPw/DSC_0009_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;    &lt;br /&gt;Steve Ballmer during the keynote&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh6.ggpht.com/_6n9KD8lylQU/St00Ny0NOvI/AAAAAAAAAaI/5WUSOt_DwhM/s1600-h/DSC_0012%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0012" border="0" alt="DSC_0012" src="http://lh5.ggpht.com/_6n9KD8lylQU/St00OfbWA2I/AAAAAAAAAaM/VH5_XtnTJmE/DSC_0012_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;     &lt;br /&gt;SharePoint 2010 Search Licensing unveiled&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/St00PBRi-wI/AAAAAAAAAaQ/SGDxibE5OZg/s1600-h/DSC_0014%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0014" border="0" alt="DSC_0014" src="http://lh4.ggpht.com/_6n9KD8lylQU/St00PRWJzJI/AAAAAAAAAaU/zGjU9453VW8/DSC_0014_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;    &lt;br /&gt;FAST Search for SharePoint 2010 with rich and dynamic user interface&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/_6n9KD8lylQU/St00QTJVXFI/AAAAAAAAAaY/WXi4wqzSCo4/s1600-h/DSC_0015%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0015" border="0" alt="DSC_0015" src="http://lh6.ggpht.com/_6n9KD8lylQU/St00RHQMxiI/AAAAAAAAAac/JDPl82vaeFE/DSC_0015_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;     &lt;br /&gt;SharePoint 2010 Licensing, both on-premise and on-cloud&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/St00SxFwkzI/AAAAAAAAAag/bE6AL-O464w/s1600-h/DSC_0016%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0016" border="0" alt="DSC_0016" src="http://lh3.ggpht.com/_6n9KD8lylQU/St00UH_pylI/AAAAAAAAAak/VrHyQyYJnPc/DSC_0016_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;    &lt;br /&gt;Steve Ballmer and Tom Rizzo answering the questions (Steve actually said “The right answer is YES, now what’s the REAL answer?”. Kind of a funny quote…)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/St00WWp6btI/AAAAAAAAAao/cxWg99UVMLQ/s1600-h/DSC_0019%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0019" border="0" alt="DSC_0019" src="http://lh3.ggpht.com/_6n9KD8lylQU/St00Wz5yCFI/AAAAAAAAAas/_q_2SHsw0ZA/DSC_0019_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;     &lt;br /&gt;SQL Server PowerPivot is presented&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_6n9KD8lylQU/St00X8mVOTI/AAAAAAAAAaw/7zUnnZ82Vkg/s1600-h/DSC_0020%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0020" border="0" alt="DSC_0020" src="http://lh3.ggpht.com/_6n9KD8lylQU/St00YRw0N4I/AAAAAAAAAa0/JL5bDeHM6E0/DSC_0020_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;    &lt;br /&gt;SharePoint 2010 Mobile Access in a mobile browser&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_6n9KD8lylQU/St00ZgM9d7I/AAAAAAAAAa4/G0EjbnktETE/s1600-h/DSC_0022%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC_0022" border="0" alt="DSC_0022" src="http://lh6.ggpht.com/_6n9KD8lylQU/St00aCrkcoI/AAAAAAAAAa8/jk3XccvubtU/DSC_0022_thumb.jpg?imgmax=800" width="244" height="163" /&gt;&lt;/a&gt;     &lt;br /&gt;SharePoint PowerShell cmdlets &lt;/p&gt;  &lt;p&gt;There were funny moments during the keynote speech, I liked the joke about the &lt;em&gt;“fruit company”&lt;/em&gt; (Apple, of course) when referring to multibrowser capabilities of SP2010.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33612499-2555168956175151142?l=edinkapic.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ResCogitans/~4/AQ-MB83W3GQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ResCogitans/~3/AQ-MB83W3GQ/spc09-day-one-keynote.html</link><author>noreply@blogger.com (Edin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_6n9KD8lylQU/St00HwO1S3I/AAAAAAAAAZs/n4DrGok1hy0/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://edinkapic.blogspot.com/2009/10/spc09-day-one-keynote.html</feedburner:origLink></item></channel></rss>

