<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1754012037334164352</id><updated>2012-02-20T19:00:42.000-05:00</updated><category term='C#'/><category term='InfoPath 2010'/><category term='SharePoint 2007'/><category term='Team Foundation Server'/><category term='TFS 2010'/><category term='TFS'/><category term='SharePoint'/><category term='SharePoint Foundation 2010'/><category term='Branding'/><category term='Event Receivers'/><category term='Enterprise 2.0'/><category term='MySites'/><category term='Team Foundation Server 2010'/><category term='SharePoint 2010'/><category term='SharePoint Branding'/><category term='Web 2.0'/><category term='InfoPath'/><category term='Social Networking'/><title type='text'>SharePoint Jon</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-4002971110020271720</id><published>2010-10-11T14:25:00.001-04:00</published><updated>2010-10-11T14:25:49.228-04:00</updated><title type='text'>Strong Name Key–“Access Denied” Error on Windows 7 64-Bit in Visual Studio 2010</title><content type='html'>&lt;p&gt;I got bit my this again today, so thought I’d re-post:  &lt;p&gt;&lt;a title="http://thethoughtfulcoder.com/2010/03/16/Strong-Name-Access-Denied-Error-On-Windows-7-64bit-From-Visual-Studio-And-Snexe" href="http://thethoughtfulcoder.com/2010/03/16/Strong-Name-Access-Denied-Error-On-Windows-7-64bit-From-Visual-Studio-And-Snexe"&gt;http://thethoughtfulcoder.com/2010/03/16/Strong-Name-Access-Denied-Error-On-Windows-7-64bit-From-Visual-Studio-And-Snexe&lt;/a&gt; &lt;p&gt;I was trying to create a strong name for an assembly in Visual Studio from the project properties using the dialog:  &lt;p&gt;&lt;a href="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/CreateStrongNameKeyDialog_2.png"&gt;&lt;img title="Create Strong Name Key Dialog" border="0" alt="Create Strong Name Key Dialog" src="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/CreateStrongNameKeyDialog_thumb.png" width="458" height="284"&gt;&lt;/a&gt;  &lt;p&gt;After clicking OK I received the following error message: The operation could not be completed. Access is denied.  &lt;p&gt;&lt;a href="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/StrongNameAccessDeniedMessageBox_2.png"&gt;&lt;img title="Strong Name Access Denied Message Box" border="0" alt="Strong Name Access Denied Message Box" src="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/StrongNameAccessDeniedMessageBox_thumb.png" width="424" height="175"&gt;&lt;/a&gt;  &lt;p&gt;I then tried from the command prompt using sn.exe and received the same type of message: Failed to generate a strong name key pair -- Access is denied.  &lt;p&gt;&lt;a href="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/sn-AccessDeniedCommandPromptMessage_2.png"&gt;&lt;img title="sn-AccessDeniedCommandPromptMessage" border="0" alt="sn-AccessDeniedCommandPromptMessage" src="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/sn-AccessDeniedCommandPromptMessage_thumb.png" width="644" height="174"&gt;&lt;/a&gt;  &lt;p&gt;I found the following blog post &lt;a href="http://www.dasblonde.net/2006/02/19/ClickOnceCreateStrongNameKeyAccessDeniedError.aspx"&gt;Create Strong Name Key - Access Denied Error&lt;/a&gt;, but it applies to Windows XP. I searched around for a RSA\MachineKeys folder and found three different locations but it seems the folder C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys is the magic place.  &lt;p&gt;I gave my user the following permissions on the MachineKeys folder and then I was able to sign my assembly &lt;img alt=":-D" src="http://thethoughtfulcoder.com/smilies/veryhappy.gif"&gt;  &lt;p&gt;&lt;a href="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/ModifyPermissions_2.png"&gt;&lt;img title="Modify Permissions" border="0" alt="Modify Permissions" src="http://thethoughtfulcoder.com/content/binary/WindowsLiveWriter/StrongnameaccessdeniederroronWindows.exe_15108/ModifyPermissions_thumb.png" width="333" height="137"&gt;&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-4002971110020271720?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/4002971110020271720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=4002971110020271720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4002971110020271720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4002971110020271720'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2010/10/strong-name-keyaccess-denied-error-on.html' title='Strong Name Key–“Access Denied” Error on Windows 7 64-Bit in Visual Studio 2010'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-6790507902499628749</id><published>2010-10-03T06:17:00.000-04:00</published><updated>2010-10-04T06:17:36.509-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Branding'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Branding'/><title type='text'>How to Hide the “Ribbon” in SharePoint 2010</title><content type='html'>&lt;p&gt;&lt;br&gt;I struggled with this quite a bit before finding a solution that – as near as I can tell – simply hides the ribbon without any real consequences.&amp;nbsp; Of course, no ribbon means that when in a list or library you can’t do a whole lot.&amp;nbsp; In my case this requirement was handed down because the particular page we’re doing this in will only contain static content, and the customer wanted to save the screen real estate to make SharePoint look “more like our old version.”&amp;nbsp; &lt;/p&gt; &lt;p&gt;A frustrating request of course, but nonetheless I imagine many of us in the SharePoint world will come across this request at some point or another.&amp;nbsp; &lt;/p&gt; &lt;p&gt;After a few other attempts (such as simply deleting the controls in SharePoint Designer, or using different CSS methods and &amp;lt;asp:Panel&amp;gt; controls to set visibility and display properties, I kept getting JavaScript errors on the page, loss of the vertical scroll bar, and other odd behavior. &lt;/p&gt; &lt;p&gt;Here’s the solution I ended up with.&amp;nbsp; We didn’t want to do this at a site-level, so to do it at a page level we simply modified the appropriate &amp;lt;DIV&amp;gt; tags inline in the ASPX page (using SharePoint Designer): &lt;/p&gt; &lt;p&gt;&amp;lt;div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle" style="display:none"&amp;gt;  &lt;p&gt;&amp;lt;div id="s4-ribboncont"&amp;gt;  &lt;p&gt;&lt;br&gt;&lt;a href="http://www.jonschultz.com/BLOG/HideRibbon/noribbon.jpg" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="noribbon" border="0" alt="noribbon" src="http://lh5.ggpht.com/_jsOAWKnCslE/TKiibNf8vrI/AAAAAAABi7I/K4KYZFZ9Ie4/noribbon%5B6%5D.jpg?imgmax=800" width="492" height="195"&gt;&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-6790507902499628749?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/6790507902499628749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=6790507902499628749' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/6790507902499628749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/6790507902499628749'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2010/10/how-to-hide-ribbon-in-sharepoint-2010.html' title='How to Hide the “Ribbon” in SharePoint 2010'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_jsOAWKnCslE/TKiibNf8vrI/AAAAAAABi7I/K4KYZFZ9Ie4/s72-c/noribbon%5B6%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-1430265038392049588</id><published>2010-09-25T22:40:00.001-04:00</published><updated>2010-09-25T22:40:43.118-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Intro–InfoPath 2010 Form Design with C# Code-Behind (Part 1 of 2)</title><content type='html'>&lt;p&gt;&lt;br&gt;Last week I had to create my first InfoPath 2010 form with code-behind for some custom business logic (as the business requirements were explained to me it quickly became apparent that “Rules” available in InfoPath weren’t going to be sufficient). &lt;/p&gt; &lt;p&gt;InfoPath is admittedly &lt;strong&gt;not&lt;/strong&gt; a strong suit for me.&amp;nbsp; The small amount of interaction I had with it in IP 2007 and MOSS 2007 left me with a feeling that it wasn’t quite ready for prime-time, so I largely ignored it. &lt;/p&gt; &lt;p&gt;I have a new respect though for the most recent incarnation.&amp;nbsp; InfoPath 2010 is an incredibly powerful tool as I’ve learned.&amp;nbsp; Here’s Part 1 of a brief 2-part blog post describing how I went about implementing some custom business logic – including data access to a SQL 2008 R2 database – with custom C# code behind an InfoPath 2010 form, rendered as a browser form in SharePoint 2010. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-1430265038392049588?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/1430265038392049588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=1430265038392049588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/1430265038392049588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/1430265038392049588'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2010/09/introinfopath-2010-form-design-with-c.html' title='Intro–InfoPath 2010 Form Design with C# Code-Behind (Part 1 of 2)'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-5705496136867644305</id><published>2010-09-08T17:14:00.001-04:00</published><updated>2010-09-08T17:50:51.891-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Social Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='MySites'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise 2.0'/><title type='text'>“MySites” in SharePoint 2010</title><content type='html'>&lt;p&gt;&lt;br&gt;This post simply references a video I recorded for a customer a few months ago.&amp;nbsp; In it I give a brief overview of some of the new features of “MySites” in SharePoint 2010, and perhaps more importantly, some of the business reasons why these social features actually &lt;strong&gt;&lt;em&gt;provide value in the enterprise.&lt;/em&gt;&lt;/strong&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;Many clients I’ve worked with in these early days of deploying SharePoint have chosen to disable the social features of SharePoint 2010.&amp;nbsp; While I understand the initial impression (“I don’t want Facebook inside my company!”), there is real business value to be gained by many of these features.&amp;nbsp; &lt;/p&gt; &lt;p&gt;This screencast was recorded as a reference point so my client could revisit some of these business reasons later down the road when they made a final decision about whether or not social features will be enabled for their organization.&amp;nbsp; &lt;/p&gt; &lt;p&gt;(P.S., I’m also testing Google Alerts to see how quickly this gets picked up!)&lt;/p&gt; &lt;p&gt;Here’s the screencast (thank you Camtasia!): &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.screencast.com/users/JonSchultz/folders/Default/media/58e6fb89-f1fd-41a2-990d-a1f022fb3541" target="_blank"&gt;http://www.screencast.com/users/JonSchultz/folders/Default/media/58e6fb89-f1fd-41a2-990d-a1f022fb3541&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.screencast.com/users/JonSchultz/folders/Default/media/58e6fb89-f1fd-41a2-990d-a1f022fb3541" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="FirstFrame" border="0" alt="FirstFrame" src="http://lh6.ggpht.com/_jsOAWKnCslE/TIf8ovr8gpI/AAAAAAABi4o/Jk4Ne8Ce3s4/FirstFrame%5B4%5D.png?imgmax=800" width="396" height="306"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;strong&gt;Jonathon Schultz&lt;br&gt;mobile:&lt;/strong&gt; 407.923.4946 | &lt;b&gt;fax:&lt;/b&gt; 866.569.2615 | &lt;b&gt;email:&lt;/b&gt; &lt;a href="mailto:jon@jonschultz.com"&gt;jon@jonschultz.com&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-5705496136867644305?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/5705496136867644305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=5705496136867644305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5705496136867644305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5705496136867644305'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2010/09/mysites-in-sharepoint-2010.html' title='“MySites” in SharePoint 2010'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_jsOAWKnCslE/TIf8ovr8gpI/AAAAAAABi4o/Jk4Ne8Ce3s4/s72-c/FirstFrame%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-5769300886977336526</id><published>2010-09-07T09:54:00.001-04:00</published><updated>2010-09-08T17:51:11.417-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Foundation Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Foundation Server 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Team Foundation Server 2010–Work Item Basics</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here’s how to create a new bug in TFS, create custom queries, and track them in the SharePoint Foundation Site created for my sample TFS Project.&amp;nbsp;&amp;nbsp; &lt;h3&gt;&lt;br&gt;Creating and Assigning a Bug (or other type of Work Item)&lt;/h3&gt; &lt;p&gt;So most of the time you’ll create and assign bugs from within Visual Studio (within the Team Explorer plug-in for VS2010 to be precise).&amp;nbsp; So if you expand the tree view of the Team Project you’re working with and right-click “Work Items”, you can choose “New Work Item” &amp;gt; “Bug”:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/1.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/1.jpg" width="454" height="215"&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;Fill in the details, and assign it to someone (in this case I assigned it to my colleague Kagan):  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/2.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/2.jpg" width="511" height="363"&gt;&lt;/a&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Now we’re done creating and assigning the bug.&amp;nbsp; &lt;/i&gt;&lt;/b&gt; &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Querying Work Items&lt;/h3&gt; &lt;p&gt;If you expand “Work Items” then “Team Queries”, there’s already a bunch of queries to display “My Bugs”, “My Tasks”, etc.&amp;nbsp; You can also create your own:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/3.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/3.jpg"&gt;&lt;/a&gt;  &lt;p&gt;In this sample I created a custom query that shows me any type of work item, for any project, assigned to Kagan.&amp;nbsp; When I click “Run” you can see I get one result:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/4.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/4.jpg"&gt;&lt;/a&gt;  &lt;p&gt;When I change “Assigned To” to the parameterized “@Me” keyword, I get zero results:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/5.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/5.jpg"&gt;&lt;/a&gt;  &lt;p&gt;Hit the “Save Query” button and I can save this under “My Queries” (so only I can see the query), or under “Team Queries” so anyone can use it:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/6.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/6.jpg"&gt;&lt;/a&gt;  &lt;p&gt;Project Dashboard  &lt;p&gt;If I go to the project dashboard site (right-click the Team Project in Team Explorer and choose “Show Project Portal”), it takes me here (&lt;a href="http://hqsrv107/sites/DefaultCollection/UTPurchaseOrders/Dashboards/ProjectDashboard_wss.aspx"&gt;http://hqsrv107/sites/DefaultCollection/UTPurchaseOrders/Dashboards/ProjectDashboard_wss.aspx&lt;/a&gt;):  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/7.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/7.jpg" width="834" height="398"&gt;&lt;/a&gt;  &lt;p&gt;On the right side of the screen I can click where it says “1 Bug” and it takes me to a list of all active bugs:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/7b.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/7b.jpg"&gt;&lt;/a&gt;  &lt;p&gt;Double-click the bug and we get a window where we can see details of the work item, and make changes if we want.&amp;nbsp; I’ll change the “Assigned To” field to me and leave a comment.&amp;nbsp; Then click “Save and Close”:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/8.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/8.jpg" width="869" height="647"&gt;&lt;/a&gt;  &lt;p&gt;Now, when I click “My Dashboard” on the left-hand side of SharePoint, the “My Bugs” web part now shows that I have one bug that’s currently active and assigned to me:  &lt;p&gt;&lt;a href="http://www.jonschultz.com/blog/TFS1/9.jpg" target="_blank"&gt;&lt;img src="http://www.jonschultz.com/blog/TFS1/9.jpg" width="858" height="656"&gt;&lt;/a&gt;  &lt;p&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;strong&gt;Jonathon Schultz&lt;br&gt;mobile:&lt;/strong&gt; 407.923.4946 | &lt;b&gt;fax:&lt;/b&gt; 866.569.2615 | &lt;b&gt;email:&lt;/b&gt; &lt;a href="mailto:jon@jonschultz.com"&gt;jon@jonschultz.com&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-5769300886977336526?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/5769300886977336526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=5769300886977336526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5769300886977336526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5769300886977336526'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2010/09/team-foundation-server-2010work-item.html' title='Team Foundation Server 2010–Work Item Basics'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-1722414643440362547</id><published>2009-09-08T17:22:00.000-04:00</published><updated>2010-09-08T17:50:04.787-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Event Receivers'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Master “Roll-Up” Calendar in SharePoint 2007</title><content type='html'>&lt;p&gt;&lt;br&gt;This post simply references a video I recorded for a customer.&amp;nbsp; I was asked to build and demonstrate one approach to consolidating six calendars that were maintained independently across the organization into SharePoint 2007.&amp;nbsp; Some were updated simply by making changes to static HTML pages, while others were served up by a variety of application servers (classic ASP, Rails, PHP, etc.). &lt;/p&gt; &lt;p&gt;The premise of my solution was that all these individual calendars needed to be migrated to SharePoint, since that was a large organizational objective anyway.&amp;nbsp; Once that was done, a “master calendar” would be created in SharePoint, and a custom event handler would be written in C# so that create, update, and delete events in any of the six “child” calendars would be synchronized to the “master” calendar.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.screencast.com/users/JonSchultz/folders/Default/media/2663912c-23d0-4eb3-871e-91889baf0681" target="_blank"&gt;http://www.screencast.com/users/JonSchultz/folders/Default/media/2663912c-23d0-4eb3-871e-91889baf0681&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_jsOAWKnCslE/TIgFBySrlfI/AAAAAAABi40/7W0NA3My4_U/s1600-h/UT%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="UT" border="0" alt="UT" src="http://lh6.ggpht.com/_jsOAWKnCslE/TIgFCQw8ckI/AAAAAAABi48/WPp8gazBHxI/UT_thumb%5B1%5D.jpg?imgmax=800" width="395" height="281"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Caveat:&amp;nbsp; I realize that &lt;strong&gt;&lt;em&gt;most &lt;/em&gt;&lt;/strong&gt;of these stated requirements could have been achieved with some combination of either custom views or perhaps content types.&amp;nbsp; However, I was also instructed that our solution needed to connect to Outlook, Entourage, and essentially any other RSS reader our customer might choose to use.&amp;nbsp; The organization has a large percentage of Mac users, and after testing a few approaches using views and content types, we found a simple custom event receiver to be more reliable when serving the content across such a wide variety of consumer applications.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;br&gt;Jonathon Schultz&lt;br&gt;mobile:&lt;/strong&gt; 407.923.4946 | &lt;b&gt;fax:&lt;/b&gt; 866.569.2615 | &lt;b&gt;email:&lt;/b&gt; &lt;a href="mailto:jon@jonschultz.com"&gt;jon@jonschultz.com&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-1722414643440362547?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/1722414643440362547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=1722414643440362547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/1722414643440362547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/1722414643440362547'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2009/09/master-roll-up-calendar-in-sharepoint.html' title='Master “Roll-Up” Calendar in SharePoint 2007'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_jsOAWKnCslE/TIgFCQw8ckI/AAAAAAABi48/WPp8gazBHxI/s72-c/UT_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-929081352167880268</id><published>2008-11-12T13:04:00.001-05:00</published><updated>2008-11-12T13:04:22.225-05:00</updated><title type='text'>SharePoint Performance Analysis Tool</title><content type='html'>&lt;p&gt;This is a re-post from the Microsoft SharePoint Team Blog.&amp;#160; They’re releasing a tool in the next couple of weeks that allows you to do a very quick analysis of your SharePoint code’s performance. It focuses around disposing of SharePoint objects properly in your code, and “using (SPWeb web) …” coding techniques to ensure objects are released from memory when a code block exits.&amp;#160; &lt;/p&gt;  &lt;p&gt;As soon as it drops I’ll make sure I post about it again and provide a download link.&amp;#160; In the meantime, this blog post directs us to a few best practices articles about how to properly manage memory for high-performance SharePoint code:&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The SPSite and SPWeb Dispose() methods are an important thing for developers who work with Microsoft SharePoint Products and Technologies to master. Many SharePoint API's allocate COM based memory that is not released by CLR garbage collection and must be released by calling the Dispose() methods. Microsoft Guidance for when to call SPSite and SPWeb Dispose() methods have been published in &lt;a href="http://msdn.microsoft.com/en-us/library/aa973248.aspx"&gt;this MSDN whitepaper&lt;/a&gt; by Mike Ammerlaan and Scott Harris. In addition, Roger Lamb has provided additional detail and discussion on his &lt;a href="http://blogs.msdn.com/rogerla/default.aspx"&gt;MSDN SharePoint Developer blog&lt;/a&gt;. This guidance applies only to customers building custom software that they compiled to .NET assemblies that make use of SharePoint API calls.&amp;#160; Also, an update to the MSDN whitepaper is being planned to reflect key guidance from the blogs.&lt;/p&gt;  &lt;p&gt;Microsoft wants to help developers build better quality code that manages available memory better. We are now building a console tool that will help to evaluate customer code against the guidance that is provided. The tool, called&lt;b&gt;SPDisposeCheck&lt;/b&gt;, will open your custom compiled assemblies recursively and validate them against the Microsoft published guidance. The output from the tool will contain messages that may indicate the SPSite and SPWeb Dispose() methods guidance &lt;s&gt;is&lt;/s&gt; are not being followed in the customers source code. While these messages need expert evaluation in order to determine if the software is not performing properly, in some cases just running the tool on your custom code can lead you to simple fixes that improve the quality and performance of custom code on SharePoint. This tool is planned for release during the coming North American Winter.&amp;#160; Customers who are currently experiencing difficulties with memory management in their custom applications should review the guidance listed above.&amp;#160; Customers who are currently experiencing difficulties with Microsoft Office SharePoint Server 2007 should contact their regular Microsoft Customer Support Services contact, or refer to &lt;a href="http://support.microsoft.com/"&gt;http://support.microsoft.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;References:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa973248.aspx"&gt;Best Practices: Using Disposable Windows SharePoint Services Objects&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb687949.aspx"&gt;Best Practices: Common Coding Issues When Using the SharePoint Object Model&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/1754012037334164352-929081352167880268?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/929081352167880268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=929081352167880268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/929081352167880268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/929081352167880268'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/11/sharepoint-performance-analysis-tool.html' title='SharePoint Performance Analysis Tool'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-8037488342917709741</id><published>2008-11-12T11:18:00.001-05:00</published><updated>2008-11-12T11:18:45.716-05:00</updated><title type='text'>SharePoint Tools for Visual Studio 2010</title><content type='html'>&lt;p&gt;This is admittedly getting a bit ahead, but I ran across some information about tool support for SharePoint developers in the upcoming VS2010.&amp;#160; From what I had heard, there wasn’t much discussion at PDC.&amp;#160; At a more recent conference though they shed some light on what sounds like a great toolset for SharePoint developers in the upcoming release of Visual Studio:&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;Server Explorer for SharePoint viewing Lists and other artifacts in SharePoint directly inside of Visual Studio&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Windows SharePoint Services Project (WSP file) Import to create a new solution&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Added a new web part project item and showed the Visual web part designer which loads a user control as a web part for SharePoint&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Showed adding an event receiver for SharePoint and using the wizard to choose the event receiver and to just create a source file with that event receiver.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Added an ASPX workflow initiation form to a workflow project and showed how this workflow initiation form has designer capability&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Showed the packaging explorer and the packaging editor which lets you structure the SharePoint features and WSP file that is created&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;More on &lt;a href="http://channel9.msdn.com/tags/Visual+Studio+2010/"&gt;http://channel9.msdn.com/tags/Visual+Studio+2010/&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/1754012037334164352-8037488342917709741?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/8037488342917709741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=8037488342917709741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/8037488342917709741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/8037488342917709741'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/11/sharepoint-tools-for-visual-studio-2010.html' title='SharePoint Tools for Visual Studio 2010'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-4525328642458503299</id><published>2008-10-20T13:07:00.001-04:00</published><updated>2008-10-20T13:07:40.795-04:00</updated><title type='text'>SharePoint Timer Jobs (in a little more depth)</title><content type='html'>&lt;p&gt;I’ve posted before on an issue I ran into with a timer job related to using an “SPDailySchedule.”&amp;#160; That post didn’t show an example of creating and deploying a timer job end-to-end, so this post will.&amp;#160; &lt;/p&gt;  &lt;p&gt;This walk-through assumes you’re using STSDEV (which I strongly recommend – saves a bunch of time).&amp;#160; In STSDEV, choose a “Simple Feature Solution (C# assembly): &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/jonathon.schultz/SPy615SkHeI/AAAAAAAANHE/7ruZlr45DGg/s1600-h/1%5B6%5D.jpg" target="_blank"&gt;&lt;img title="1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="254" alt="1" src="http://lh3.ggpht.com/jonathon.schultz/SPy62M3K6bI/AAAAAAAANHM/toeaoHrzwe0/1_thumb%5B4%5D.jpg?imgmax=800" width="629" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;br /&gt;Also choose “Site” for the feature scope and remember to include a feature receiver: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/jonathon.schultz/SPy62wIju3I/AAAAAAAANHU/4I2sjHrXSxc/s1600-h/2%5B2%5D.jpg" target="_blank"&gt;&lt;img title="2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="181" alt="2" src="http://lh6.ggpht.com/jonathon.schultz/SPy63IjdgPI/AAAAAAAANHc/RPIZudf4u3Y/2_thumb.jpg?imgmax=800" width="272" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;STSDEV will give you the folder structure and FeatureReceiver.cs class you need to get started.&amp;#160; For the timer job, we just need to create a class that inherits from “SPJobDefinition” and overrides a few events and constructors.&amp;#160; (You’ll need to add “using” statements for “Microsoft.SharePoint” and “Microsoft.SharePoint.Administration.”)&amp;#160; &lt;/p&gt;  &lt;p&gt;All four of these constructors must be overridden.&amp;#160; Here’s what my class looks like with just the overridden constructors: &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;font color="#800000"&gt;using Microsoft.SharePoint;      &lt;br /&gt;using Microsoft.SharePoint.Administration; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;namespace ORNL.EnterpriseApplications.PublicationTracking.PtsRoleImport      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class RoleImportTimerJob : SPJobDefinition       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public RoleImportTimerJob() : base() { } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public RoleImportTimerJob(string jobName, SPService service, SPServer server, SPJobLockType targetType)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : base(jobName, service, server, targetType)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public RoleImportTimerJob(string jobName, SPWebApplication webApplication)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : base(jobName, webApplication, null, SPJobLockType.ContentDatabase)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.Title = &amp;quot;PTS Role Import Timer Job&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public RoleImportTimerJob(SPWebApplication webApp)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : base(&amp;quot;PTS Role Import Timer Job&amp;quot;, webApp, null, SPJobLockType.ContentDatabase)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.Title = &amp;quot;PTS Role Import Timer Job&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Override the Execute() Method&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The Execute() method is where the real work happens when your timer job fires.&amp;#160; The method signature looks like this: &lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;public override void Execute(Guid targetInstanceId) {&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Add the logic required to make your Execute() method do what’s required from your timer job, then you’re about 90% done.&amp;#160; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;The last thing to do is use your FeatureReceiver.cs class to handle the installation and un-installation of your timer job. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;FeatureReceiver Class&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The FeatureReceiver.cs class that STSDEV provides should give you the skeleton you need for your feature receiver (it’s also automatically wired up the necessary entries in your feature.xml, which is handy).&amp;#160; &lt;/p&gt;  &lt;p&gt;We just need to tell our feature receiver class how to install and uninstall the timer job.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here’s my overridden “&lt;strong&gt;FeatureActivated&lt;/strong&gt;” method: &lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;public override void FeatureActivated(SPFeatureReceiverProperties properties)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SPSite site = properties.Feature.Parent as SPSite; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160; // Make sure the timer job isn't already registered      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (job.Name == &amp;quot;PTS Role Import Timer Job&amp;quot; || job.Title == &amp;quot;PTS Role Import Timer Job&amp;quot;)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; job.Delete();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160; // Install the job      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RoleImportTimerJob timerJob = new RoleImportTimerJob(site.WebApplication); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160; // Set the schedule - nightly at 1:15 am      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SPSchedule customSchedule = SPSchedule.FromString(&amp;quot;daily at 01:15&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160; timerJob.Schedule = customSchedule;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; timerJob.Update(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And here’s my “&lt;strong&gt;FeatureDeactivating&lt;/strong&gt;” method: &lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;public override void FeatureDeactivating(SPFeatureReceiverProperties properties)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SPSite site = properties.Feature.Parent as SPSite; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&amp;#160;&amp;#160;&amp;#160; // Make sure the timer job isn't already registered      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (job.Name == &amp;quot;PTS Role Import Timer Job&amp;quot; || job.Title == &amp;quot;PTS Role Import Timer Job&amp;quot;)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; job.Delete();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-4525328642458503299?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/4525328642458503299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=4525328642458503299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4525328642458503299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4525328642458503299'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/sharepoint-timer-jobs-in-little-more.html' title='SharePoint Timer Jobs (in a little more depth)'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/jonathon.schultz/SPy62M3K6bI/AAAAAAAANHM/toeaoHrzwe0/s72-c/1_thumb%5B4%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-2114751132353887523</id><published>2008-10-14T15:01:00.001-04:00</published><updated>2008-10-14T15:01:19.013-04:00</updated><title type='text'>Custom Build Properties in Central Team Build</title><content type='html'>&lt;p&gt;I’m wrapping up the configuration of my Team Build in Team Foundation Server for a project, and ran into a problem with an MSBuild command.&amp;#160; My application writes to the SharePoint Unified Logging System (ULS) logs, and the class required to do that uses “unsafe” code.&amp;#160; Unsafe code causes the regular compiler (csc.exe) to throw an error while building in Visual Studio.&amp;#160; Overcoming that can be done in the IDE – simply open the “Properties” window for your project and check off “Allow unsafe code blocks” on the “Build” tab for all different configurations you plan to use (for example, “Debug” and “Release”).&amp;#160; &lt;/p&gt;  &lt;p&gt;It’s less straight-forward when your build is happening on another box, namely the Team Server.&amp;#160; To do this (assuming you’ve taken the steps from Rob’s posts to set up central build to begin with), you simply need to add this property in your TFSBuild.proj file:&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160; &amp;lt;CustomPropertiesForBuild&amp;gt;&lt;strong&gt;AllowUnsafeBlocks=true&lt;/strong&gt;&amp;lt;/CustomPropertiesForBuild&amp;gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;As we become more standardized on using the ULS logs as our primary mechanism for diagnostics in SharePoint web parts and other artifacts, you might run into this.&amp;#160; If you do, hope this helps! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-2114751132353887523?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/2114751132353887523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=2114751132353887523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/2114751132353887523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/2114751132353887523'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/custom-build-properties-in-central-team.html' title='Custom Build Properties in Central Team Build'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-5253699902684563528</id><published>2008-10-14T08:44:00.001-04:00</published><updated>2008-10-14T08:44:20.884-04:00</updated><title type='text'>Silverlight 2 Released</title><content type='html'>&lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;The final-release version of Silverlight 2.0 was just released.&amp;#160; This includes the Silverlight runtime, Visual Studio SDK and tools, and some other tools like Microsoft Expression Blend 2 and DeepZoom Composer.&amp;#160; I’m uncertain if DeepZoom is actually an updated version or if Microsoft is just drawing attention to it with this release, but if you’re interested in the tool might as well grab the latest copy.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here’s the best link I’ve found that has links to download all the components, as well as tutorials and video walk-throughs:&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://silverlight.net/GetStarted/"&gt;http://silverlight.net/GetStarted/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Enjoy! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-5253699902684563528?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/5253699902684563528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=5253699902684563528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5253699902684563528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5253699902684563528'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/silverlight-2-released.html' title='Silverlight 2 Released'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-734859063764317608</id><published>2008-10-08T03:46:00.001-04:00</published><updated>2008-10-08T03:46:58.644-04:00</updated><title type='text'>Programmatically Upload Documents to a SP Doc Library</title><content type='html'>&lt;p&gt;   &lt;br /&gt;I’m rather late getting around to posting this, but for anyone who has to program against a SharePoint document library (or the SPListItems that those documents correspond to), I hope this can be a quick jump-start.&amp;#160; &lt;/p&gt;  &lt;p&gt;While migrating a large enterprise application to SharePoint, we had to make sure that the &lt;strong&gt;&lt;em&gt;EIGHTEEN GIGABYTES &lt;/em&gt;&lt;/strong&gt;of documents came along with the rest of the application.&amp;#160; (For anyone who’s curious about the performance considerations involved in such an effort, I’d be glad to discuss).&amp;#160; &lt;/p&gt;  &lt;p&gt;But as far as the actual uploading of the documents to the SharePoint document library, then subsequently setting a few properties on the newly-uploaded documents, I think once you check out the source code you’ll agree it’s actually rather straight forward.&amp;#160; &lt;/p&gt;  &lt;p&gt;So I’ll let the source do the talking …    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;// Open the site and web      &lt;br /&gt;&lt;/strong&gt;SPSite site = new SPSite(txtSite.Text);     &lt;br /&gt;SPWeb web = site.OpenWeb();     &lt;br /&gt;SPFolder docLibFolder = web.GetFolder(txtDocumentLibrary.Text);&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;// Read the file on disk into a FileStream      &lt;br /&gt;&lt;/strong&gt;FileStream fs;     &lt;br /&gt;Byte[] docContents;     &lt;br /&gt;fs = File.OpenRead(fileName);     &lt;br /&gt;docContents = new byte[Convert.ToInt32(fs.Length)];     &lt;br /&gt;fs.Read(docContents, 0, Convert.ToInt32(fs.Length));&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;// Perform the actual upload to the SP doc library      &lt;br /&gt;&lt;/strong&gt;SPFile uploadedFile;     &lt;br /&gt;uploadedFile = docLibFolder.Files.Add(documentTitle, docContents);     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;// The “.Add()” method return to us a reference to the document’s      &lt;br /&gt;// corresponding SPListItem object. Here we can set properies as needed.       &lt;br /&gt;&lt;/strong&gt;SPListItem listItem;     &lt;br /&gt;listItem = uploadedFile.Item;&lt;/p&gt;  &lt;p&gt;listItem[&amp;quot;Title&amp;quot;] = documentTitle;    &lt;br /&gt;listItem[&amp;quot;Name&amp;quot;] = documentTitle;&lt;/p&gt;  &lt;p&gt;listItem.Update();    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;// Close our FileStream object to release the resources      &lt;br /&gt;&lt;/strong&gt;fs.Close();     &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-734859063764317608?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/734859063764317608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=734859063764317608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/734859063764317608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/734859063764317608'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/programmatically-upload-documents-to-sp.html' title='Programmatically Upload Documents to a SP Doc Library'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-7630788069340814070</id><published>2008-10-08T03:36:00.001-04:00</published><updated>2008-10-08T03:36:18.490-04:00</updated><title type='text'>Custom SharePoint Timer Jobs</title><content type='html'>&lt;p&gt;   &lt;br /&gt;This post certainly doesn’t walk you through the steps of authoring a custom SharePoint timer job.&amp;#160; It does highlight one issue I ran into though while I was building one recently that seems to be a plain old bug.&amp;#160; After struggling with it for some time, I thought I’d drop a quick post with the hopes it will save someone else the headache!&amp;#160; &lt;/p&gt;  &lt;p&gt;The structure of a customer timer job is actually pretty simple – you need a class that inherits from “SPJobDefinition,” that overrides a few constructors as well as the Execute() method.&amp;#160; The Execute() method defines what actually happens when your timer job elapses and gets fired.&amp;#160; &lt;/p&gt;  &lt;p&gt;To install your timer job and register in Central Admin, you need a FeatureReceiver.cs class.&amp;#160; It’s not in the scope of this brief post to go through the details of the FeatureReceiver class (but of course email me if you’re stuck!).&amp;#160; The FeatureReceiver for my timer job overrides the “FeatureActivated” and “FeatureDeactivating” events.&amp;#160; The area that was giving me trouble was in the “FeatureActivated” event.&amp;#160; I wanted my timer job to run once per day at 1:45 am.&amp;#160; The code looked something like this: &lt;/p&gt;  &lt;p&gt;// Install the job   &lt;br /&gt;AggregatorTimerJob aggregatorTimerJob = new AggregatorTimerJob(site.WebApplication); &lt;/p&gt;  &lt;p&gt;// Set the schedule - run once daily   &lt;br /&gt;SPDailySchedule dailySchedule = new SPDailySchedule();    &lt;br /&gt;dailySchedule.BeginHour = 1;    &lt;br /&gt;dailySchedule.BeginMinute = 45;    &lt;br /&gt;dailySchedule.BeginSecond = 0;&lt;/p&gt;  &lt;p&gt;aggregatorTimerJob.Schedule = dailySchedule;   &lt;br /&gt;aggregatorTimerJob.Update();&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Seems simple enough!&amp;#160; However after hours of experimenting with the SPDailySchedule, and searching for answers, I simply could NOT get this thing to run on a daily schedule.&amp;#160; Most frustrating was that using an “SPMinuteSchedule” or “SPHourlySchedule” worked beautifully! &lt;/p&gt;  &lt;p&gt;After much searching I finally concluded that using the “SPDailySchedule” approach seems to universally fail – that seemed to be the consensus amongst the community.&amp;#160; &lt;/p&gt;  &lt;h4&gt;So … the Workaround&lt;/h4&gt;  &lt;p&gt;I think this is an easier, more straight-forward approach anyway, so I hesitate to call it a “work-around” at all!&amp;#160; I ended up using the “SPCustomSchedule” class and defining its run schedule as a free-form string parameter as follows.&amp;#160; Works like a charm – on my environment, all the way through production without any issues! &lt;/p&gt;  &lt;p&gt;SPSchedule customSchedule = SPSchedule.FromString(&amp;quot;daily at 01:45&amp;quot;); &lt;/p&gt;  &lt;p&gt;aggregatorTimerJob.Schedule = customSchedule;   &lt;br /&gt;aggregatorTimerJob.Update();    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-7630788069340814070?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/7630788069340814070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=7630788069340814070' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/7630788069340814070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/7630788069340814070'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/custom-sharepoint-timer-jobs.html' title='Custom SharePoint Timer Jobs'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-3805677612622231652</id><published>2008-10-08T03:20:00.001-04:00</published><updated>2008-10-08T03:20:23.705-04:00</updated><title type='text'>Podcasting Kit for SharePoint (Sept. 2008)</title><content type='html'>&lt;p&gt;   &lt;br /&gt;I had been keeping my eye on this project on CodePlex for sometime, and the team recently dropped their September release.&amp;#160; The Podcasting Kit s really quite cool, and could provide and additional avenue for communication for within our Apps team, and possibly throughout the enterprise.&amp;#160; I could come up with dozens of uses for it, but I’ll spare you and simply cite the team’s description of its capabilities.&amp;#160; &lt;/p&gt;  &lt;p&gt;It’s located on CodePlex here:&amp;#160; &lt;br /&gt;&lt;a href="http://www.codeplex.com/pks"&gt;http://www.codeplex.com/pks&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;What Can You Do With Podcasting Kit for SharePoint (PKS)?:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Listen and watch audio/video podcasts, anywhere on your PC or mobile device (Zune, SmartPhone, or any podcasting device) &lt;/li&gt;    &lt;li&gt;Share content by producing your own audio/video podcasts and publish them on PKS on your own. &lt;/li&gt;    &lt;li&gt;Connect and engage with podcasters via your integrated instant messaging program &lt;/li&gt;    &lt;li&gt;Find the most relevant content using the five star rating system, tag cloud, search engine and provide your feedback via comments. &lt;/li&gt;    &lt;li&gt;Get automatic podcast updates by subscribing to RSS feeds fully compatible with Zune and other podcasting devices      &lt;ul&gt;       &lt;li&gt;Simple RSS feed based on a defined podcast series &lt;/li&gt;        &lt;li&gt;Simple RSS feed based on a person &lt;/li&gt;        &lt;li&gt;Dynamic RSS feed based on search results (will be implemented later in 2009) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Play podcasts in real-time using Microsoft® Silverlight™ and progressive playback &lt;/li&gt;    &lt;li&gt;Retrieve instant ROI and metrics with the ability to track the number of podcasts downloaded and/or viewed, instant feedback via rating system and comments, and subscribers via the RSS feed &lt;/li&gt;    &lt;li&gt;Access the richness of SharePoint to extend the solution: workflows, community sub-sites, access rights, editorial and more &lt;/li&gt;    &lt;li&gt;Customize your own PKS User Experience &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/1754012037334164352-3805677612622231652?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/3805677612622231652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=3805677612622231652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/3805677612622231652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/3805677612622231652'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/podcasting-kit-for-sharepoint-sept-2008.html' title='Podcasting Kit for SharePoint (Sept. 2008)'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-8423449513885047903</id><published>2008-10-08T03:13:00.001-04:00</published><updated>2008-10-08T03:13:43.140-04:00</updated><title type='text'>Enable the “Delete” Button in Timer Job Definitions</title><content type='html'>&lt;p&gt;   &lt;br /&gt;This is a trick I picked up from Brett when we were deploying a custom SharePoint timer job last week.&amp;#160; Quite a handy trick that allows you to delete a timer job definition directly from Central Administration without the needed for the STSADM.EXE commands.&amp;#160; &lt;/p&gt;  &lt;p&gt;From Central Administration &amp;gt; Operations &amp;gt; Timer Job Definitions, when you click on a job definition you see a screen similar to this: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/jonathon.schultz/SOxdnyVbKUI/AAAAAAAALqI/EuBALtSoyHo/s1600-h/TimerJobDeleteButton1%5B5%5D.jpg" target="_blank"&gt;&lt;img title="TimerJobDeleteButton1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="341" alt="TimerJobDeleteButton1" src="http://lh4.ggpht.com/jonathon.schultz/SOxdop65LsI/AAAAAAAALqQ/Uvr2H04mQSw/TimerJobDeleteButton1_thumb%5B3%5D.jpg?imgmax=800" width="594" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;To enable the “Delete” button from this same screen, we simply have to modify an ASPX file under the “12” hive.&amp;#160; Under “\12\TEMPLATE\ADMIN”, find the file named “JobEdit.aspx” and open it with Notepad.&amp;#160; Find the line of markup containing:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;OnClick=&amp;quot;BtnDeleteJob_Click&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That control has its “visible” property set to “false.”&amp;#160; Simply change that to “true” and save the file.&amp;#160; Then refresh the page, and sure enough – we have a Delete button! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/jonathon.schultz/SOxdpG2EwtI/AAAAAAAALqY/tzBjFZY1YAs/s1600-h/TimerJobDeleteButton2%5B6%5D.jpg" target="_blank"&gt;&lt;img title="TimerJobDeleteButton2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="356" alt="TimerJobDeleteButton2" src="http://lh4.ggpht.com/jonathon.schultz/SOxdpgVtVHI/AAAAAAAALqg/5H4a3IOvL3g/TimerJobDeleteButton2_thumb%5B4%5D.jpg?imgmax=800" width="600" border="0" /&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/1754012037334164352-8423449513885047903?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/8423449513885047903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=8423449513885047903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/8423449513885047903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/8423449513885047903'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/enable-delete-button-in-timer-job.html' title='Enable the “Delete” Button in Timer Job Definitions'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/jonathon.schultz/SOxdop65LsI/AAAAAAAALqQ/Uvr2H04mQSw/s72-c/TimerJobDeleteButton1_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-4982096807862615681</id><published>2008-10-08T02:53:00.001-04:00</published><updated>2008-10-08T02:53:46.097-04:00</updated><title type='text'>Free Upgrade for VMWare Fusion Users</title><content type='html'>&lt;p&gt;   &lt;br /&gt;For anyone running their SharePoint virtual environment on a Mac with VMWare Fusion, VMWare announced a free upgrade for users who purchased version 1.x of the product to upgrade to 2.0.&amp;#160; &lt;/p&gt;  &lt;p&gt;I’ve only played around with it briefly, but at a glance it’s a very worthwhile upgrade.&amp;#160; VMWare’s synopsis of the enhancements and additional features are below. And the download link is here:&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;a title="http://www.vmware.com/download/fusion/" href="http://www.vmware.com/download/fusion/"&gt;http://www.vmware.com/download/fusion/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Multiple Snapshots and AutoProtect&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Save your virtual machine in any number of states, and return to those states at any time &lt;/li&gt;    &lt;li&gt;New Snapshot UI to help you manage all the snapshots you have saved &lt;/li&gt;    &lt;li&gt;Automatically take snapshots at regular intervals with AutoProtect&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Shared Folders Improvement and Mirrored Folders&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Shared Folders are easier to discover. New Shared Folders option in Status bar and Virtual Machine menu. Can open all Shared Folders or just a specific Shared Folder in the virtual machine &lt;/li&gt;    &lt;li&gt;Greatly improved reliability of shared folders—now compatible with Microsoft Office, Visual Studio, and QuickBooks &lt;/li&gt;    &lt;li&gt;Improved compatibility running Java applications from a Shared Folder &lt;/li&gt;    &lt;li&gt;Map key folders in Windows Vista and Windows XP (Desktop, My Documents, My Music, My Pictures) to their corresponding Mac folders (Desktop, Documents, Music, and Pictures)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;URL Handling&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on a URL in a virtual machine and open it in your favorite Mac browser, or configure your Mac to open its links in a virtual machine &lt;/li&gt;    &lt;li&gt;VMware Fusion supports opening URLs of the following types: Web pages (http, https), Remote Sessions (telnet, ssh), Mail (mailto), Newsgroups (news), File transfers (ftp, sftp), and RSS feeds (feed)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Application Sharing&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Allow your Mac to open applications in the virtual machine—Finder can now open your Mac's files directly in Windows applications like Microsoft Word and Windows Media Player &lt;/li&gt;    &lt;li&gt;Allow the virtual machine to open applications on your Mac—VMware Fusion can configure virtual machines to open their files in Mac applications like Preview and iTunes &lt;/li&gt;    &lt;li&gt;VMware Fusion can directly open Windows programs (.exe) and installers (.msi) in a virtual machine just by double-clicking on them in Finder&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;True Multiple Display Support&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;VMware Fusion automatically detects multiple displays by default &lt;/li&gt;    &lt;li&gt;Your virtual machines will recognize each display you connect to your Mac as a separate virtual display &lt;/li&gt;    &lt;li&gt;Handles changes to resolution and display orientation automatically &lt;/li&gt;    &lt;li&gt;Option to use one or all screens in Full Screen mode &lt;/li&gt;    &lt;li&gt;Unity windows can be dragged between displays, and will maximize correctly to just the display they're on &lt;/li&gt;    &lt;li&gt;Correctly handles plugging and unplugging displays &lt;/li&gt;    &lt;li&gt;3D supported on primary display when using multiple displays&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/1754012037334164352-4982096807862615681?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/4982096807862615681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=4982096807862615681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4982096807862615681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4982096807862615681'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/free-upgrade-for-vmware-fusion-users.html' title='Free Upgrade for VMWare Fusion Users'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-927228021168245974</id><published>2008-10-03T19:08:00.001-04:00</published><updated>2008-10-06T11:48:09.962-04:00</updated><title type='text'>Manually Getting to the “Web Parts Maintenance Page”</title><content type='html'>&lt;p&gt;   &lt;br /&gt;Certainly every SharePoint developer has dropped a custom web part onto a page that killed the whole page.&amp;#160; Sometimes SharePoint will prompt you with a link to reach the Web Parts Maintenance Page, sometimes it won’t.&amp;#160; On some occasions (when I’ve really broken something) SharePoint will provide me a hyperlink to the maintenance page, but clicking the link simply throws another irrecoverable error.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here are a few screenshots of this rather infuriating error: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/jonathon.schultz/SOozNCgHHdI/AAAAAAAALpI/dwtFSrY4kTg/s1600-h/1%5B6%5D.jpg" target="_blank"&gt;&lt;img title="1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="252" alt="1" src="http://lh6.ggpht.com/jonathon.schultz/SOozNZ-CybI/AAAAAAAALpQ/BX6dufx7FLw/1_thumb%5B4%5D.jpg?imgmax=800" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Clicking the “Web Parts Maintenance Page” hyperlink results in something even &lt;strong&gt;less &lt;/strong&gt;helpful: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/jonathon.schultz/SOozNja1zlI/AAAAAAAALpY/w_i1aUnnwhk/s1600-h/2%5B2%5D.jpg" target="_blank"&gt;&lt;img title="2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="229" alt="2" src="http://lh4.ggpht.com/jonathon.schultz/SOozN0eKrvI/AAAAAAAALpg/NVvIuctxR6o/2_thumb.jpg?imgmax=800" width="329" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;The Fix / Workaround&lt;/h2&gt;  &lt;br /&gt;  &lt;p&gt;So it’s helpful to be able to get to that “web parts maintenance page” for any page, at any time we want.&amp;#160; This might be common knowledge, but I’ll throw this little trick out there in case it can be of any help.&amp;#160; &lt;/p&gt;  &lt;p&gt;For any web part page in your SharePoint environment, you can append the query string “&lt;font face="Verdana"&gt;&lt;strong&gt;?contents=1&lt;/strong&gt;&lt;/font&gt;” after the “&lt;font face="Tahoma"&gt;&lt;strong&gt;.aspx&lt;/strong&gt;&lt;/font&gt;” link and get directly to the web parts maintenance page.&amp;#160; &lt;strong&gt;&lt;em&gt;Works every time!&lt;/em&gt;&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;For example, if your problem page is “&lt;font face="tah"&gt;&lt;strong&gt;http://localhost/sites/MyBrokenSite/default.aspx&lt;/strong&gt;&lt;/font&gt;”, the URL to the maintenance page (where you can easily close or delete the problem web parts) would be “&lt;font face="tah"&gt;&lt;strong&gt;http://localhost/sites/MyBrokenSite/default.aspx?contents=1&lt;/strong&gt;&lt;/font&gt;.”&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/jonathon.schultz/SOozOGSRsUI/AAAAAAAALpo/9Z0wIKWLqkM/s1600-h/3%5B3%5D.jpg" target="_blank"&gt;&lt;img title="3" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="311" alt="3" src="http://lh4.ggpht.com/jonathon.schultz/SOozOaXgdOI/AAAAAAAALpw/yBKcAqvnx7Y/3_thumb%5B1%5D.jpg?imgmax=800" width="455" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope that helps … enjoy! &lt;/p&gt;  &lt;p&gt;-- Jon &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-927228021168245974?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/927228021168245974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=927228021168245974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/927228021168245974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/927228021168245974'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/10/manually-getting-to-web-parts.html' title='Manually Getting to the “Web Parts Maintenance Page”'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jonathon.schultz/SOozNZ-CybI/AAAAAAAALpQ/BX6dufx7FLw/s72-c/1_thumb%5B4%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-4491188908465056147</id><published>2008-09-21T02:07:00.001-04:00</published><updated>2008-09-21T02:07:39.436-04:00</updated><title type='text'>“Dryad” by Microsoft Research</title><content type='html'>&lt;p&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;Dryad is a Microsoft Research project – they refer to it as its own “infrastructure” actually – that allows programmers to target hugely-clustered platforms without having to change anything about the way in which they author their software.&amp;#160; In their introductory article explaining the project, they cite advantages such as executing code on &lt;strong&gt;&lt;em&gt;thousands &lt;/em&gt;&lt;/strong&gt;of machines across and enterprise or even entire datacenter.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here’s their summary of the project’s objectives: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Cordia New" size="4"&gt;Dryad is an infrastructure which allows a programmer to use the resources of a computer cluster or a data center for running data-parallel programs. A Dryad programmer can use thousands of machines, each of them with multiple processors or cores, without knowing anything about concurrent programming.&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I would imagine the supercomputers downstairs are probably off limits to us on the Apps team.&amp;#160; But even in much smaller (by comparison) environments, a cluster of &lt;em&gt;n&lt;/em&gt; number of computers could be leveraged to run code across a clustered environment, and that clustering and parallelism would be transparent to us as developers.&amp;#160; &lt;/p&gt;  &lt;p&gt;In the article, I found it particularly interesting that they mention Dryad being used with familiar technologies such as SSIS (SQL Server Integration Services), and LINQ.&amp;#160; &lt;/p&gt;  &lt;p&gt;You can check out the full article here: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://research.microsoft.com/research/sv/Dryad/"&gt;http://research.microsoft.com/research/sv/Dryad/&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/1754012037334164352-4491188908465056147?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/4491188908465056147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=4491188908465056147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4491188908465056147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/4491188908465056147'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/09/dryad-by-microsoft-research_20.html' title='“Dryad” by Microsoft Research'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-5521354892983779493</id><published>2008-09-21T02:00:00.001-04:00</published><updated>2008-09-21T02:04:26.439-04:00</updated><title type='text'>Enabling Remote Errors in SQL Reporting Services</title><content type='html'>&lt;p&gt;Recently working with reporting services, I ran into this error: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;“For more information about this error, navigate to the report server on the local server machine, or enable remote errors.”&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The scenario is that reporting services lives on a different box than the SharePoint installation.&amp;#160; The fix is to simply set a flag in a configuration table in the Reporting Services database on the report server.&amp;#160; Pull up a new query in SQL Server Management Studio and run the following UPDATE statement and you should be good to go!&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;font face="Century Schoolbook"&gt;USE ReportServer      &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Century Schoolbook"&gt;update configurationinfo      &lt;br /&gt;set value = 'True'       &lt;br /&gt;where name = 'EnableRemoteErrors'       &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-5521354892983779493?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/5521354892983779493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=5521354892983779493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5521354892983779493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/5521354892983779493'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/09/enabling-remote-errors-in-sql-reporting.html' title='Enabling Remote Errors in SQL Reporting Services'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-64052133675166660</id><published>2008-09-21T01:59:00.001-04:00</published><updated>2008-09-21T01:59:40.027-04:00</updated><title type='text'>Performance Update Roll-Up for WSS 3.0</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Microsoft dropped an Infrastructure Update today (7/15/2008) that addresses some key performance-related aspects of WSS 3.0. &lt;/p&gt;  &lt;p&gt;According to the post: &lt;/p&gt;  &lt;h6&gt;Overview&lt;/h6&gt;  &lt;p&gt;&lt;a name="Description"&gt;&lt;/a&gt;The Infrastructure Update for Windows SharePoint Services 3.0 (KB951695) includes the latest performance updates and fixes for Microsoft Windows SharePoint Services 3.0.     &lt;br /&gt;Key updates for Windows SharePoint Services 3.0 include: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Platform performance improvements and fixes. &lt;/li&gt;    &lt;li&gt;Several backup and restore fixes. &lt;/li&gt;    &lt;li&gt;Several core Workflow fixes. &lt;/li&gt; &lt;/ul&gt;  &lt;br /&gt;&lt;b&gt;It is strongly recommended that you install this update.&lt;/b&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;I have installed it on my DEV environment with no issue.&amp;#160; To be safe, it wouldn’t hurt to shut down your VPC, make a backup, then apply the update.&amp;#160; The link is here: &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=256ce3c3-6a42-4953-8e1b-e0bf27fd465b&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=256ce3c3-6a42-4953-8e1b-e0bf27fd465b&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=256ce3c3-6a42-4953-8e1b-e0bf27fd465b&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/1754012037334164352-64052133675166660?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/64052133675166660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=64052133675166660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/64052133675166660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/64052133675166660'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/09/performance-update-roll-up-for-wss-30.html' title='Performance Update Roll-Up for WSS 3.0'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1754012037334164352.post-6915992814770403878</id><published>2008-09-09T13:33:00.001-04:00</published><updated>2008-09-09T13:33:39.777-04:00</updated><title type='text'>Determine if Your Web Part is in Design Mode</title><content type='html'>&lt;p&gt;Credit for this goes to David Bond and Rick Phillips, I’m just posting because David mentioned it and I think it’s a helpful tip.&amp;#160; This is being used in PTS web part projects as well as the new RHACS solution.&amp;#160; I think David made a great point in the meeting Tuesday by stating if you’re in design mode, there’s probably no reason you need to be pinging a database or web service, etc. &lt;/p&gt;  &lt;p&gt;Here’s the code: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WebPartManager wpm = WebPartManager.GetCurrentWebPartManager(this.Page);      &lt;br /&gt;webPartIsInDesignMode = wpm.DisplayMode.AllowPageDesign;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1754012037334164352-6915992814770403878?l=sharepointjon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointjon.blogspot.com/feeds/6915992814770403878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1754012037334164352&amp;postID=6915992814770403878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/6915992814770403878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1754012037334164352/posts/default/6915992814770403878'/><link rel='alternate' type='text/html' href='http://sharepointjon.blogspot.com/2008/09/determine-if-your-web-part-is-in-design.html' title='Determine if Your Web Part is in Design Mode'/><author><name>Jon Schultz</name><uri>https://profiles.google.com/103759063673881499670</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xTpVmolsuWg/AAAAAAAAAAI/AAAAAAADddg/Xkh5cGkaPUQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
