<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ck4NQ3c6fyp7ImA9WhRaFE8.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568</id><updated>2012-02-16T19:36:32.917Z</updated><category term="Visual Studio" /><category term="Scott Guthrie" /><category term="MVC" /><category term="SPBPC" /><category term="MailMessage" /><category term="Feeds" /><category term="Office" /><category term="System.Net.Mail" /><category term="Web Services" /><category term="SQL Server 2000" /><category term="PDB" /><category term="Deployment" /><category term=".Net" /><category term="BizTalk" /><category term="SharePoint" /><category term="Visio" /><category term="People Picker" /><category term="Triggers" /><category term="Workflow" /><category term="VB" /><category term="C#" /><category term="Best Practice" /><category term="Diary" /><category term="JQuery" /><category term="RSS" /><category term="Symbols" /><category term="Discussion" /><category term="SharePoint Designer" /><category term="Links" /><category term="Web Parts" /><category term="Tools" /><category term="Debugging" /><category term="Move" /><category term="Hardware" /><category term="Hyperlink" /><category term="Columns" /><category term="VB.Net" /><category term="Documentation" /><category term="ASP.Net" /><category term="Training" /><category term="VSTO 2005" /><category term="Utilities" /><title>F5 to Debug</title><subtitle type="html">The ramblings of a SharePoint and .net solution developer</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://f5todebug.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Charlie Lee</name><uri>http://www.blogger.com/profile/12737516548332452107</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://4.bp.blogspot.com/_kdyAAbRfBls/SjdXc9FDE6I/AAAAAAAAAAM/SerZyoWODKk/S220/Headshot.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/F5ToDebug" /><feedburner:info uri="f5todebug" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>F5ToDebug</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;C0QNRHw_cSp7ImA9WxJbEkg.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-7333142521755491642</id><published>2009-07-22T09:26:00.003+01:00</published><updated>2009-07-22T09:29:55.249+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-22T09:29:55.249+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Move" /><title>Feed has moved.</title><content type="html">I have finally got around to completing the move to WordPress:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.f5todebug.wordpress.com"&gt;www.f5todebug.wordpress.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will be my final post from the blogger account.  &lt;br /&gt;&lt;br /&gt;I have moved all articles over to the new site so please subscribe to the feed over there to keep up to date.&lt;br /&gt;&lt;br /&gt;Thanks for reading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-7333142521755491642?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=_CI3D2TQW0s:Y8SV44q6vgo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=_CI3D2TQW0s:Y8SV44q6vgo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=_CI3D2TQW0s:Y8SV44q6vgo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=_CI3D2TQW0s:Y8SV44q6vgo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=_CI3D2TQW0s:Y8SV44q6vgo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=_CI3D2TQW0s:Y8SV44q6vgo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=_CI3D2TQW0s:Y8SV44q6vgo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=_CI3D2TQW0s:Y8SV44q6vgo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/_CI3D2TQW0s" height="1" width="1"/&gt;</content><link rel="related" href="http://www.f5todebug.wordpress.com" title="Feed has moved." /><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/7333142521755491642/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/07/feed-has-moved.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7333142521755491642?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7333142521755491642?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/_CI3D2TQW0s/feed-has-moved.html" title="Feed has moved." /><author><name>Charlie Lee</name><uri>http://www.blogger.com/profile/12737516548332452107</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://4.bp.blogspot.com/_kdyAAbRfBls/SjdXc9FDE6I/AAAAAAAAAAM/SerZyoWODKk/S220/Headshot.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/07/feed-has-moved.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQMR3g8cCp7ImA9WxJWEUs.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-628914969569022620</id><published>2009-06-16T08:59:00.011+01:00</published><updated>2009-06-16T15:26:26.678+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-16T15:26:26.678+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JQuery" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net" /><category scheme="http://www.blogger.com/atom/ns#" term="Best Practice" /><category scheme="http://www.blogger.com/atom/ns#" term="Web Parts" /><title>Best Practice: Using the JQuery dialog widget in a custom web part</title><content type="html">If you have played around with the dialog widget in &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;UI&lt;/span&gt; you may have noticed a couple of things.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Like a lot of javascript libraries it messes with the DOM (Document Object Model) at what might be unexpected times and therefore it does not play well with &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;It breaks the web part verb menu (the 'edit' drop down menu)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Actually it (like a lot of the &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;UI&lt;/span&gt; widgets) is an incredibly powerful tool to your client side arsenal, and as long as you adhere to some best practice it will work perfectly happily within &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt;, or any other ASP.Net site.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;1. It messes with the DOM.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Specifically it does not play well with the ASP.Net page &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-corrected"&gt;post back&lt;/span&gt; model. This is fairly well documented across the &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;interweb&lt;/span&gt; (although the actual solution is not).&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The dialog widget is initiated via code similar to this:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;pre&gt;$('#dialog').dialog();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;When &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; sees this it &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-corrected"&gt;initiates&lt;/span&gt; the widget and actually moves your entire div tag to the root of the DOM (see screenshot below). Therefore outside of the form tag. So any ASP.Net controls which you may have in this div will not be included in any &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-corrected"&gt;post backs&lt;/span&gt; therefore none of their events will fire.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_kdyAAbRfBls/SjerPp3m8FI/AAAAAAAAAA4/pPDZq2U5508/s1600-h/JQueryDialogDOM.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 82px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5347931367951233106" border="0" alt="" src="http://2.bp.blogspot.com/_kdyAAbRfBls/SjerPp3m8FI/AAAAAAAAAA4/pPDZq2U5508/s320/JQueryDialogDOM.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Never fear however as this is easily fixed by moving the parent element of your div, which will be another div which is created by &lt;span id="SPELLING_ERROR_11" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; and putting this at the root of the form instead (see code sample below).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;2. It breaks the web part 'edit' menu.&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Actually it doesn't. But if you have followed some code examples that are out there then it might. Essentially it may mess with this if your call to initiate the dialog is happening before the page has entirely loaded.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Fortunately &lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; has a handy way of ensuring that no matter where your code is defined on the page it will only run when the page has loaded up. This is simply accessed using:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;pre&gt;$(document).ready();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Any function supplied to this method will be loaded in memory and run when the page has finished loading. How great is that!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;As long as you follow these two items of best practice you should have no problems using the &lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; dialog widget from within &lt;span id="SPELLING_ERROR_14" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt;.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The following code example is how I would use the dialog widget. At some point you need to run the &lt;span id="SPELLING_ERROR_15" class="blsp-spelling-error"&gt;initiateModalDialog&lt;/span&gt; method passing in the id of the div to use as a dialog. This will then run when the page is loaded and will initiate your dialog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;When you want to show it then call &lt;span id="SPELLING_ERROR_16" class="blsp-spelling-error"&gt;openModalDialog&lt;/span&gt; and optionally (because &lt;span id="SPELLING_ERROR_17" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; will render a nice close button in the top tight hand corner) you could call &lt;span id="SPELLING_ERROR_18" class="blsp-spelling-error"&gt;closeModalDialog&lt;/span&gt; to close it.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you are using this within a web part then make sure your selector (the id of your div) is unique to your web part in case you have multiple web parts on the same page.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;pre&gt;function &lt;span id="SPELLING_ERROR_19" class="blsp-spelling-error"&gt;initiateModalDialog&lt;/span&gt;(selector) {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//initiates the dialog when the page has finished loading&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$(document).ready(function() {    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $('#' + selector).dialog({   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span id="SPELLING_ERROR_20" class="blsp-spelling-error"&gt;autoOpen&lt;/span&gt;: false,   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span id="SPELLING_ERROR_21" class="blsp-spelling-error"&gt;bgiframe&lt;/span&gt;: true,    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span id="SPELLING_ERROR_22" class="blsp-spelling-error"&gt;draggable&lt;/span&gt;: false,   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        width: 600,   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span id="SPELLING_ERROR_23" class="blsp-spelling-error"&gt;resizable&lt;/span&gt;: false,   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        modal: true,   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        show: 'slide' &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    });  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}); &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;//Opens the selected div as a modal dialog&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function &lt;span id="SPELLING_ERROR_24" class="blsp-spelling-error"&gt;openModalDialog&lt;/span&gt;(selector) {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    //Opens the dialog&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $('#' + selector).dialog('open');           &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    //Appends the dialog to the ASP.Net form to allow &lt;span id="SPELLING_ERROR_25" class="blsp-spelling-error"&gt;postbacks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $('#' + selector).parent().appendTo($("form:first"));   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}    &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Closes the selected div dialog&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function &lt;span id="SPELLING_ERROR_26" class="blsp-spelling-error"&gt;closeModalDialog&lt;/span&gt;(selector) {           &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $('#' + selector).dialog('close');  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/p&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Obviously the options which are passed to the initiation method such as '&lt;span id="SPELLING_ERROR_27" class="blsp-spelling-error"&gt;draggable&lt;/span&gt;' and '&lt;span id="SPELLING_ERROR_28" class="blsp-spelling-error"&gt;resizable&lt;/span&gt;' are up to you, but for this to work you must set &lt;span id="SPELLING_ERROR_29" class="blsp-spelling-error"&gt;autoOpen&lt;/span&gt; to false otherwise your dialog will open straight away (unless that is what you &lt;span id="SPELLING_ERROR_30" class="blsp-spelling-corrected"&gt;intended&lt;/span&gt; of course).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.jquery.com/UI/Dialog"&gt;&lt;span id="SPELLING_ERROR_31" class="blsp-spelling-error"&gt;JQuery&lt;/span&gt; &lt;span id="SPELLING_ERROR_32" class="blsp-spelling-error"&gt;UI&lt;/span&gt; dialog widget documentation&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-628914969569022620?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=I0kEmOeVmDQ:IlcCYN8AThs:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=I0kEmOeVmDQ:IlcCYN8AThs:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=I0kEmOeVmDQ:IlcCYN8AThs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=I0kEmOeVmDQ:IlcCYN8AThs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=I0kEmOeVmDQ:IlcCYN8AThs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=I0kEmOeVmDQ:IlcCYN8AThs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=I0kEmOeVmDQ:IlcCYN8AThs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=I0kEmOeVmDQ:IlcCYN8AThs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/I0kEmOeVmDQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/628914969569022620/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/06/best-practice-using-jquery-dialog.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/628914969569022620?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/628914969569022620?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/I0kEmOeVmDQ/best-practice-using-jquery-dialog.html" title="Best Practice: Using the JQuery dialog widget in a custom web part" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_kdyAAbRfBls/SjerPp3m8FI/AAAAAAAAAA4/pPDZq2U5508/s72-c/JQueryDialogDOM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/06/best-practice-using-jquery-dialog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMMSX0-eyp7ImA9WxVaEU0.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-27711535837052161</id><published>2009-04-07T11:05:00.008+01:00</published><updated>2009-04-07T11:34:48.353+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-07T11:34:48.353+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Diary" /><category scheme="http://www.blogger.com/atom/ns#" term="SPBPC" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><title>Inside the European SharePoint Best Practices Conference</title><content type="html">I am currently attending the European &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SharePoint&lt;/span&gt; Best Practices Conference at the Queen Elizabeth Conference Centre in London. So far I have attended several of the sessions on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;developer&lt;/span&gt; track and have been &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;surprised&lt;/span&gt; by the quality of both the presenters and the quality of advice on offer.&lt;br /&gt;&lt;br /&gt;The web part development session, hosted by &lt;a href="http://sharepoint.mindsharpblogs.com/Todd/default.aspx"&gt;Todd &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Bleeker&lt;/span&gt;&lt;/a&gt; served as a good reminder of the topics covered in his course (which I took last year), but also he covered off some new issues and points of best practice.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.sharepointcowboy.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SharePoint&lt;/span&gt; Cowboy (Eric &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Shupps&lt;/span&gt;)&lt;/a&gt; and &lt;a href="http://www.andrewconnell.com/blog/Default.aspx"&gt;Andrew &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Connell&lt;/span&gt; &lt;/a&gt;have also given fascinating and insightful sessions on Custom Site Definitions and Field Controls/Web Parts respectively, both highlighting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;do's&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;dont's&lt;/span&gt; and areas that are likely to trip you up.&lt;br /&gt;&lt;br /&gt;The 'rose tinted' views of the presenting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;MVPs&lt;/span&gt; and experts is one thing, but to actually get to share issues and problems with others dealing with the realities of trying to develop and deploy custom applications in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SharePoint&lt;/span&gt; is much more revealing and insightful.&lt;br /&gt;&lt;br /&gt;So far this has been an enjoyable experience. I hope to post more detail later, but for now its fair to say I am suitably impressed. Obviously the free beer and casino last night helped! Hats off to Steve and the guys at &lt;a href="http://www.combined-knowledge.com/"&gt;Combined Knowledge&lt;/a&gt; for stepping up and organising this to ensure that the UK has a decent &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SharePoint&lt;/span&gt; conference which delivers great value for money.&lt;br /&gt;&lt;br /&gt;Follow the updates from the conference on twitter by tracking the &lt;a href="http://search.twitter.com/search?q=%23spbpc"&gt;#&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;spbpc&lt;/span&gt;&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;hashtag&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-27711535837052161?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=rMz2zN2wSVs:Y2x69W_t_e0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=rMz2zN2wSVs:Y2x69W_t_e0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=rMz2zN2wSVs:Y2x69W_t_e0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=rMz2zN2wSVs:Y2x69W_t_e0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=rMz2zN2wSVs:Y2x69W_t_e0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=rMz2zN2wSVs:Y2x69W_t_e0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=rMz2zN2wSVs:Y2x69W_t_e0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=rMz2zN2wSVs:Y2x69W_t_e0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/rMz2zN2wSVs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/27711535837052161/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/04/inside-european-sharepoint-best.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/27711535837052161?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/27711535837052161?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/rMz2zN2wSVs/inside-european-sharepoint-best.html" title="Inside the European SharePoint Best Practices Conference" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/04/inside-european-sharepoint-best.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMCSHg4cSp7ImA9WxVUEUQ.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-7672262458888054809</id><published>2009-03-16T09:53:00.002Z</published><updated>2009-03-16T09:57:49.639Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-16T09:57:49.639Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="Visio" /><category scheme="http://www.blogger.com/atom/ns#" term="Documentation" /><title>Documenting SharePoint - Visio Stencils</title><content type="html">Have you ever needed to create some SharePoint technical diagrams, that look as good as the ones produced by the SharePoint documentation team?  Well now you can as they have been kind enough to release them for all to use and abuse.&lt;br /&gt;&lt;br /&gt;You can view the documentation teams &lt;a href="http://blogs.technet.com/tothesharepoint/archive/2009/03/12/3212193.aspx"&gt;original blog post here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Alternatively you can &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=08105458-1d92-44ad-b7e0-744aa853a7bf"&gt;get the download package from here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-7672262458888054809?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=G8B0OJrSbbs:-a4z-Leo8m8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=G8B0OJrSbbs:-a4z-Leo8m8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=G8B0OJrSbbs:-a4z-Leo8m8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=G8B0OJrSbbs:-a4z-Leo8m8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=G8B0OJrSbbs:-a4z-Leo8m8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=G8B0OJrSbbs:-a4z-Leo8m8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=G8B0OJrSbbs:-a4z-Leo8m8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=G8B0OJrSbbs:-a4z-Leo8m8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/G8B0OJrSbbs" height="1" width="1"/&gt;</content><link rel="related" href="http://blogs.technet.com/tothesharepoint/archive/2009/03/12/3212193.aspx" title="Documenting SharePoint - Visio Stencils" /><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/7672262458888054809/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/03/documenting-sharepoint-visio-stencils.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7672262458888054809?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7672262458888054809?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/G8B0OJrSbbs/documenting-sharepoint-visio-stencils.html" title="Documenting SharePoint - Visio Stencils" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/03/documenting-sharepoint-visio-stencils.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YCSXgzfCp7ImA9WxVQFUs.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-5910221934770613632</id><published>2009-02-02T09:55:00.005Z</published><updated>2009-02-02T10:06:08.684Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T10:06:08.684Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="Utilities" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><title>SPDispose Tool</title><content type="html">If you often use the SP object model to write code then odds are that you have probably already had to deal with a memory leak of some kind. If you do not correctly dispose of some of the objects that you create (&lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;SPWeb&lt;/span&gt; amongst others) then you can get &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;memory&lt;/span&gt; leaks.&lt;br /&gt;&lt;br /&gt;&lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;SPDisposeCheck&lt;/span&gt; is a tool to allow you to check your compiled assemblies for poor use of the &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt; OM with regard to disposal of objects.&lt;br /&gt;&lt;br /&gt;Paul Andrew has just published a blog post announcing the release of v1.3.1 of this tool and I recommend you download it and use it as part of your development cycle.&lt;br /&gt;&lt;br /&gt;See Paul's &lt;a href="http://blogs.msdn.com/pandrew/archive/2009/01/29/spdisposecheck-v1-3-1-is-released.aspx"&gt;blog post &lt;/a&gt;or &lt;a href="http://code.msdn.microsoft.com/SPDisposeCheck"&gt;download it from this page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-5910221934770613632?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=hEzILl4negI:MtAv3EQOQvw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=hEzILl4negI:MtAv3EQOQvw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=hEzILl4negI:MtAv3EQOQvw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=hEzILl4negI:MtAv3EQOQvw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=hEzILl4negI:MtAv3EQOQvw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=hEzILl4negI:MtAv3EQOQvw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=hEzILl4negI:MtAv3EQOQvw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=hEzILl4negI:MtAv3EQOQvw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/hEzILl4negI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/5910221934770613632/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/02/spdispose-tool.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/5910221934770613632?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/5910221934770613632?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/hEzILl4negI/spdispose-tool.html" title="SPDispose Tool" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/02/spdispose-tool.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MNQXk5cCp7ImA9WxVQEk4.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-7574623797555692751</id><published>2009-01-29T14:16:00.006Z</published><updated>2009-01-29T14:31:30.728Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T14:31:30.728Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Columns" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="Hyperlink" /><title>Hyperlink Columns</title><content type="html">In &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt; if you are using hyperlink columns there are some &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;worthwhile&lt;/span&gt; things to bear in mind.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If you are setting a hyperlink column value in &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;workflow&lt;/span&gt; then the format is 'URL, Link Text', and the space after the comma is really important! Without it the link name will not get picked up.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The column has to be 255 characters or less. If you are &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-corrected"&gt;referring&lt;/span&gt; to an internal &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt; &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-corrected"&gt;URL&lt;/span&gt; using the 'Source' parameter&lt;strong&gt;*&lt;/strong&gt; within it then you may easily hit this limit.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;*Tip:&lt;/strong&gt; You don't have to specify the fully qualified URL for an internal source you could just use a relative URL such as '?source=../../default.aspx'.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Just a quick post today, but I have been caught out by these issues in the past.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-7574623797555692751?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=CBdmEVEM2is:TYPQTOJ7Nsw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=CBdmEVEM2is:TYPQTOJ7Nsw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=CBdmEVEM2is:TYPQTOJ7Nsw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=CBdmEVEM2is:TYPQTOJ7Nsw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=CBdmEVEM2is:TYPQTOJ7Nsw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=CBdmEVEM2is:TYPQTOJ7Nsw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=CBdmEVEM2is:TYPQTOJ7Nsw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=CBdmEVEM2is:TYPQTOJ7Nsw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/CBdmEVEM2is" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/7574623797555692751/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/01/hyperlink-columns.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7574623797555692751?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7574623797555692751?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/CBdmEVEM2is/hyperlink-columns.html" title="Hyperlink Columns" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/01/hyperlink-columns.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YHQ3k9eip7ImA9WxVQEk4.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-4441154529485529915</id><published>2009-01-27T08:46:00.003Z</published><updated>2009-01-29T14:25:32.762Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T14:25:32.762Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><title>Good showing for SharePoint in top intranets</title><content type="html">Its great to see that exactly half of the intranets featured in the 10 best-designed intranets for 2009 from usability expert Jakob Nielsen (Nielsen Group - www.useit.com), are based on the SharePoint platform.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.useit.com/alertbox/intranet_design.html"&gt;http://www.useit.com/alertbox/intranet_design.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-4441154529485529915?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ZjJeoaDTkoI:XVJxhq24SBM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=ZjJeoaDTkoI:XVJxhq24SBM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ZjJeoaDTkoI:XVJxhq24SBM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ZjJeoaDTkoI:XVJxhq24SBM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ZjJeoaDTkoI:XVJxhq24SBM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=ZjJeoaDTkoI:XVJxhq24SBM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ZjJeoaDTkoI:XVJxhq24SBM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=ZjJeoaDTkoI:XVJxhq24SBM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/ZjJeoaDTkoI" height="1" width="1"/&gt;</content><link rel="related" href="http://www.useit.com/alertbox/intranet_design.html" title="Good showing for SharePoint in top intranets" /><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/4441154529485529915/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/01/good-showing-for-sharepoint-in-top.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/4441154529485529915?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/4441154529485529915?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/ZjJeoaDTkoI/good-showing-for-sharepoint-in-top.html" title="Good showing for SharePoint in top intranets" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/01/good-showing-for-sharepoint-in-top.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFQXw5eSp7ImA9WxVQEk4.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-648602379703981165</id><published>2009-01-16T12:12:00.019Z</published><updated>2009-01-29T14:25:10.221Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T14:25:10.221Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="People Picker" /><category scheme="http://www.blogger.com/atom/ns#" term="Workflow" /><title>People Picker for SharePoint Designer Workflow Initiation</title><content type="html">Creating a workflow from SharePoint Designer is limiting in many ways, but it's also very quick and easy, and it covers a large majority of every day scenarios. One of the major flaws for me has always been the inability to select 'Person' as a data type for an initiation variable (assuming that this would render a nice people picker control in the initiation form and maybe pass back the UserID to the workflow).&lt;br /&gt;&lt;br /&gt;In the last few days I have been determined to resolve this and have come up with a quick and easy fix using some bespoke client side code within the initiation form.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; In my workflow I actually want to send an email so I am doing a little more in the javascript. This only works because on this project UserID@domain.com is a valid email alias. However the techniques outlined here should assist anyone who needs people data into a workflow.&lt;br /&gt;&lt;br /&gt;First of all create a new SPD workflow. Give it a name and select your list. Ensure that 'Allow this workflow to be started manually' is checked (so we get an initation form generated for us).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_x5cTJDj8DAI/SXB8ljj2KdI/AAAAAAAAADo/jV9C9ovWsw4/s1600-h/CreateWorkflow.png"&gt;&lt;img style="WIDTH: 320px; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5291866546802928082" border="0" alt="" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SXB8ljj2KdI/AAAAAAAAADo/jV9C9ovWsw4/s320/CreateWorkflow.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select Initiation... and Add...&lt;br /&gt;&lt;br /&gt;In the Add Field dialog enter a Field name, in my case 'email' and select 'Single line of text'.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5cTJDj8DAI/SXB_76-bFHI/AAAAAAAAADw/I_4sicDwQP8/s1600-h/InitData.png"&gt;&lt;img style="WIDTH: 271px; HEIGHT: 238px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5291870229580420210" border="0" alt="" src="http://1.bp.blogspot.com/_x5cTJDj8DAI/SXB_76-bFHI/AAAAAAAAADw/I_4sicDwQP8/s320/InitData.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Leave Default value blank and click on Finish. Then OK.&lt;br /&gt;&lt;br /&gt;Back in your Workflow Designer click Next.&lt;br /&gt;&lt;br /&gt;In this simple example I am just going to send an email, so click Actions and select Send an email. Click on 'this message' to define your email.&lt;br /&gt;&lt;br /&gt;Click the address book on the To: line and in the Select Users dialog select Workflow Lookup... and click Add &gt;&gt;.&lt;br /&gt;&lt;br /&gt;Define your workflow lookup as Source: Workflow Data and Field: Initiation: email (or whatever you called your initiation variable)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x5cTJDj8DAI/SXCBWfUgBpI/AAAAAAAAAD4/tVNIsKeChTo/s1600-h/WFLookup.png"&gt;&lt;img style="WIDTH: 320px; HEIGHT: 136px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5291871785524922002" border="0" alt="" src="http://4.bp.blogspot.com/_x5cTJDj8DAI/SXCBWfUgBpI/AAAAAAAAAD4/tVNIsKeChTo/s320/WFLookup.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click OK. Then OK again.&lt;br /&gt;&lt;br /&gt;Enter a value in Subject: And also for the body text. Click OK.&lt;br /&gt;&lt;br /&gt;Now click Finish as we are done creating this simple workflow.&lt;br /&gt;&lt;br /&gt;If you open up the folder structure which SPD has created under Workflows you will see that there should be three files created:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the xoml file&lt;/li&gt;&lt;br /&gt;&lt;li&gt;an xml config file&lt;/li&gt;&lt;br /&gt;&lt;li&gt;an aspx page&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_x5cTJDj8DAI/SXCCkGeaWpI/AAAAAAAAAEA/ENhCXLR4m5Y/s1600-h/files.png"&gt;&lt;img style="WIDTH: 227px; HEIGHT: 71px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5291873118885403282" border="0" alt="" src="http://1.bp.blogspot.com/_x5cTJDj8DAI/SXCCkGeaWpI/AAAAAAAAAEA/ENhCXLR4m5Y/s320/files.png" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;The final one is the one we are interested in as this contains the initiation form for our workflow.&lt;br /&gt;&lt;br /&gt;Double click on this so we can take a look.&lt;br /&gt;&lt;br /&gt;You will note that essentially this is a standard SharePoint page with a DataFormWebPart which is set up to pass the initiation data to our workflow. In this case we should have a single text box for our initiation variable.&lt;br /&gt;&lt;br /&gt;If you look at the code view you will see that various assemblies and namespaces have been included within this page already. Including the Microsoft.SharePoint.WebControls namespace which contains the PeopleEditor control. This is the key to getting people data from the users.&lt;br /&gt;&lt;br /&gt;In code view if you put some spaces above the DataFormWebPart definition then we can include this control on the page. Just copy the code below:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&amp;lt;sharepoint:peopleeditor id="pplPicker" runat="server" allowempty="False" validatorenabled="True" onvaluechangedclientscript="SetPeopleValues()" allowtypein="False"&amp;gt;&amp;lt;/sharepoint:peopleeditor&amp;gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Essentially this is adding the control to the page and setting some properties. The really important properties here are:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OnValueChangedClientScript&lt;/strong&gt;&lt;br /&gt;This property allows us to specify some client side javascript which we wish to run every time the value in the people picker is changed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AllowTypeIn &lt;/strong&gt;&lt;br /&gt;This property restricts the user from manually typing into the people picker and forces them to use the Browse dialog to select users. See final note.&lt;br /&gt;&lt;br /&gt;Next we need to add the javascript to our page.&lt;br /&gt;&lt;br /&gt;At the very top of your page after all the Page and Register tags you will notice the opening &amp;lt;asp:content&amp;gt; tag for PlaceHolderMain. We need to place the following code above this control on the page:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;&lt;code&gt;&amp;lt;asp:Content id="Content1" runat="server" contentplaceholderid="PlaceHolderAdditionalPageHead"&amp;gt;&lt;br /&gt;  &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;  &lt;br /&gt;    function SetPeopleValues()&lt;br /&gt;    {    &lt;br /&gt;      //Retrieve the semi-colon separated list of user id's&lt;br /&gt;      var people = document.getElementById('ctl00_PlaceHolderMain_pplPicker_downlevelTextBox').value;&lt;br /&gt;      document.getElementById('ctl00_PlaceHolderMain_InitiationForm_ff1_1').value = people;&lt;br /&gt;      if (people=='')&lt;br /&gt;      {&lt;br /&gt;        alert('No people selected');}&lt;br /&gt;      else&lt;br /&gt;      {&lt;br /&gt;        //Split the list by ; to get an array of domain user names&lt;br /&gt;        var arrPeople = new Array();&lt;br /&gt;        arrPeople = people.split(';');&lt;br /&gt;  &lt;br /&gt;        //Create an empty string to hold the email addresses&lt;br /&gt;        var strEmails = '';&lt;br /&gt;  &lt;br /&gt;        //Loop through the array of usernames&lt;br /&gt;        var arrEndIndex = arrPeople.length - 1;&lt;br /&gt;        var i=0;&lt;br /&gt;        while (i &amp;lt;= arrEndIndex)&lt;br /&gt;        {&lt;br /&gt;          //Strip the domain name off and append the email address elements&lt;br /&gt;          var person = String(arrPeople[i]);&lt;br /&gt;          person = person.toLowerCase().replace('DOMAIN\\','');&lt;br /&gt;          var email = person + '@domain.com';&lt;br /&gt;    &lt;br /&gt;          //Add this email address to our string&lt;br /&gt;          strEmails = strEmails + email;&lt;br /&gt;    &lt;br /&gt;          //If this is the final email then add this value to the text box in our initiation form control&lt;br /&gt;          //Otherwise add the semi-colon&lt;br /&gt;          if (i == arrEndIndex)&lt;br /&gt;          {&lt;br /&gt;            document.getElementById('ctl00_PlaceHolderMain_InitiationForm_ff1_1').value = strEmails;&lt;br /&gt;          } else&lt;br /&gt;          {&lt;br /&gt;            strEmails = strEmails + '; ';&lt;br /&gt;          }&lt;br /&gt;    &lt;br /&gt;          i=i+1;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;  &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;This uses the PlaceHolderAdditionalPageHead place holder to 'inject' some javascript into the head of the html page. &lt;p&gt;&lt;/p&gt;&lt;p&gt;Essentially this code is retrieving the value from our people picker and inserting it into the text box held on the DataFormWebPart. In my case I am doing some additional processing (to generate a semi-colon separated list of email addresses). &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; By default the PeoplePicker control (that is the TextArea html control that is rendered by the PeopleEditor SharePoint control) contains a semi-colon separated list of user names, of the form DOMAIN\UserName, so if you wanted to ignore the string parsing and processing elements of the javascript you could just set this value to the textbox straight away and then do any text processing on these values within your workflow. Like this:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;&lt;code&gt;function SetPeopleValues()&lt;br /&gt;{          &lt;br /&gt;    //Retrieve the semi-colon separated list of user id's&lt;br /&gt;    var people = document.getElementById('ctl00_PlaceHolderMain_pplPicker_downlevelTextBox').value;&lt;br /&gt;    document.getElementById('ctl00_PlaceHolderMain_InitiationForm_ff1_1').value = people;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;To tidy up the look and feel of your form select the &amp;lt;tr&amp;gt; &lt;tr&gt;tag that contains the textbox control from within your DataFormWebPart and set the style tag to:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;style="visibility: hidden"&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This will mean that the end user does not see the data being passed to this textbox they just select their users and click Start.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you save all the changes you have made to this form then try and initiate your workflow you will see that you should be able to select your users using the Browse button and then click start, an email containing the details set out in your workflow should be emailed to the users selected in your People Picker.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;And that's it.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; If you don't declare the PeopleEditor control with AllowTypeIn set to false then your end users could manually type in any name regardless of whether nor not it exists or can be resolved. In this scenario clicking start will not cause the people picker to resolve the names first and the value of your textbox will be empty as our javascript will not run. If anyone has any ideas on this could they please post comments as I would like to get this working.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-648602379703981165?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=kqwc_Yve5jc:Wr7cohW2_oU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=kqwc_Yve5jc:Wr7cohW2_oU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=kqwc_Yve5jc:Wr7cohW2_oU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=kqwc_Yve5jc:Wr7cohW2_oU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=kqwc_Yve5jc:Wr7cohW2_oU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=kqwc_Yve5jc:Wr7cohW2_oU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=kqwc_Yve5jc:Wr7cohW2_oU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=kqwc_Yve5jc:Wr7cohW2_oU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/kqwc_Yve5jc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/648602379703981165/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/01/people-picker-for-sharepoint-designer.html#comment-form" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/648602379703981165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/648602379703981165?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/kqwc_Yve5jc/people-picker-for-sharepoint-designer.html" title="People Picker for SharePoint Designer Workflow Initiation" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_x5cTJDj8DAI/SXB8ljj2KdI/AAAAAAAAADo/jV9C9ovWsw4/s72-c/CreateWorkflow.png" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/01/people-picker-for-sharepoint-designer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQAR3YyeCp7ImA9WxVSFE8.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-6899550133738729013</id><published>2009-01-08T13:40:00.003Z</published><updated>2009-01-08T13:45:46.890Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-08T13:45:46.890Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><title>What do SharePoint developers want from a blog post?</title><content type="html">I'm just interested in seeing and hearing what other people searching for blog posts on SharePoint are interested in? &lt;br /&gt;&lt;br /&gt;If there is a particular SharePoint development area that you are interested in then let me know and I will try to put together a post on my experience (or lack of it) in that area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-6899550133738729013?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=j5utXQ9hNPI:i2mbWZfC9TQ:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=j5utXQ9hNPI:i2mbWZfC9TQ:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=j5utXQ9hNPI:i2mbWZfC9TQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=j5utXQ9hNPI:i2mbWZfC9TQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=j5utXQ9hNPI:i2mbWZfC9TQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=j5utXQ9hNPI:i2mbWZfC9TQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=j5utXQ9hNPI:i2mbWZfC9TQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=j5utXQ9hNPI:i2mbWZfC9TQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/j5utXQ9hNPI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/6899550133738729013/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2009/01/what-do-sharepoint-developers-want-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/6899550133738729013?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/6899550133738729013?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/j5utXQ9hNPI/what-do-sharepoint-developers-want-from.html" title="What do SharePoint developers want from a blog post?" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2009/01/what-do-sharepoint-developers-want-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYNSHk_eCp7ImA9WxRaGUg.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-191001629130027521</id><published>2008-12-22T10:13:00.017Z</published><updated>2008-12-22T13:23:19.740Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-22T13:23:19.740Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Designer" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="Workflow" /><title>Initiate a SharePoint workflow from a button on the list view.</title><content type="html">I came across a scenario recently where a project required that a list of items could have a button or link on a list view, which would cause the workflow to start.&lt;br /&gt;&lt;br /&gt;Essentially the users involved were not happy using the OOB way that SharePoint (WSS 3.0) allows users to manually initiate workflows.  They believed there were too many steps involved.&lt;br /&gt;&lt;br /&gt;After a bit of searching and Googling, I discovered a method involving the use of a hyperlink column on the list in question, coupled with a very simple workflow.  I will outline the steps involved in this process below.  This is not the most graceful solution I am sure, but it is a simple solution to what can be a tricky problem.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How was it done?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt;  I am assuming that you have a simple workflow attached to a list, if not then please create a simple SharePoint Designer workflow.  &lt;a href="http://office.microsoft.com/en-us/sharepointdesigner/HA101005911033.aspx"&gt;You can see how to do this here.&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;1. Add a new hyperlink column to your list, this is going to represent the button which users click on to start the workflow, so give the column an appropriate name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9rD8e6RtI/AAAAAAAAABI/tDnVBm2LOfw/s1600-h/CreateWFColumn.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 216px; height: 320px;" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9rD8e6RtI/AAAAAAAAABI/tDnVBm2LOfw/s320/CreateWFColumn.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282558603448436434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Click on the list settings for your list and select 'Advanced settings', ensure that 'Allow management of content types' is set to 'Yes'.  This will allow us to hide the hyperlink column from the forms involved, if your list is a custom list then you may be able to go to 'Form settings' within list settings and make more detailed amendments to what appears on the new, display and edit forms.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU9sjB6rnlI/AAAAAAAAABQ/WbgrfZIGf88/s1600-h/ManageCTs.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 22px;" src="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU9sjB6rnlI/AAAAAAAAABQ/WbgrfZIGf88/s320/ManageCTs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282560236994666066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. In the 'Content Types' section of the 'List Settings' page, click on the content type for your list.  Then click on the name of your column. On the 'Change List Content Type Column' page click on the radio button for 'Hidden'.  Click 'OK'and return to your list, you should see an empty space for your new column.  However if you click on 'New' or try to edit an existing item your column should not display.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9tZ3o-ZLI/AAAAAAAAABY/iFtysBVUa2Q/s1600-h/HideColumn.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 236px;" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9tZ3o-ZLI/AAAAAAAAABY/iFtysBVUa2Q/s320/HideColumn.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282561179128849586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. I have a simple workflow attached to this list.  This basic workflow merely adds an entry to the workflow history list saying 'Workflow started OK'.  I assume your workflow is going to be slightly more complex, however the principle is the same.  If you click on an item in your list (if you don't have one then create a quick test entry), and select the 'Workflows' icon from the item toolbar.  Now click on the name of your workflow. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9v2TWUorI/AAAAAAAAABg/CZJHJerj5dU/s1600-h/ItemToolbar.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 14px;" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9v2TWUorI/AAAAAAAAABg/CZJHJerj5dU/s320/ItemToolbar.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282563866626400946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5.  You should now be looking at the initiation page which SharePoint Designer has created for us, now this page can be cutomised to say whatever you wish via SharePoint Designer, but I am going to leave it as the default for now.  The important part here is the URL and parameters.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9wr7G-LvI/AAAAAAAAABo/hopKsRgwhcQ/s1600-h/WFInit.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 30px;" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9wr7G-LvI/AAAAAAAAABo/hopKsRgwhcQ/s320/WFInit.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282564787832499954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The URL of this page will be something similar to:&lt;br /&gt;&lt;br /&gt;http://&lt;em&gt;SITE URL&lt;/em&gt;/&lt;em&gt;List Name&lt;/em&gt;/Workflows/&lt;em&gt;Workflow Name&lt;/em&gt;/&lt;em&gt;Workflow Name&lt;/em&gt;.aspx&lt;br /&gt;&lt;br /&gt;and it should have 4 URL parameters, these are as follows:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;List&lt;/strong&gt;&lt;br /&gt;The guid which identifies the list involved.  This will not change for each link required on our list.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ID&lt;/strong&gt;&lt;br /&gt;The numerical ID of the list item involved.  This is the key to making this process work.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TemplateID&lt;/strong&gt;&lt;br /&gt;The guid of the workflow to be initiated. This will not change for each link required on our list. Note: This guid, unlike the list guid above requires the braces {}, though these may be url encoded (so don't be suprised to see the guid starting %7B which is { when URL encoded).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Source&lt;/strong&gt;&lt;br /&gt;The referring URL, responses will be redirected back to here once the workflow is succesfully started.&lt;br /&gt;&lt;br /&gt;You can probably see that we could manipulate this URL to generate a link for our new hyperlink column by simply altering the ID parameter being sent to this page.  How can we do this?  We simply use another workflow!&lt;br /&gt;&lt;br /&gt;6.  Ensure you have copied the URL from step 5 to the clipboard.  Open SharePoint Designer and create a new workflow for this site.  This simple workflow should be set to 'Automatically start this workflow when a new item is created' only.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x5cTJDj8DAI/SU90T26P-9I/AAAAAAAAABw/oAvqSAL67Jg/s1600-h/WF1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 193px;" src="http://4.bp.blogspot.com/_x5cTJDj8DAI/SU90T26P-9I/AAAAAAAAABw/oAvqSAL67Jg/s320/WF1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282568772435049426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7. Click 'Next' and then add a 'Build Dynamic String' action click on 'dynamic string' and paste your URL into the 'String Builder' window.  Find the ID parameter and delete the value which you had pasted in.  Leaving the cursor in this location click on 'Add Lookup' and select the 'ID' column of the 'Current Item'.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-HYcrAmWI/AAAAAAAAACY/U-0TBMf0r1Q/s1600-h/WFLookup.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 266px;" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-HYcrAmWI/AAAAAAAAACY/U-0TBMf0r1Q/s320/WFLookup.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282589742012078434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click 'OK'.  Your URL should now look similar to that shown above.  At the end of the URL add a comma (,) followed by the text which you want your hyperlink column to display in the list view.  For example I have added ', Start my workflow'.  There must be a space between your comma and your link text.  Otherwise you will get the entire URL as the text for your hyperlink!&lt;br /&gt;&lt;br /&gt;Click 'OK' again.&lt;br /&gt;&lt;br /&gt;8. Add another action to 'Update List Item' and with Current Item selected click on 'Add'.  The 'Value Assignment' dialog will allow you to assign your new hyperlink column to the value of the URL string we have just generated.  Select your new hyperlink column from the 'Set this field:' list.  Next to the 'To this value:' list select the 'fx' button.  In the 'Source:' drop down select 'Workflow Data' and in the 'Field:' select your variable (probably named with the default 'Variable: variable')&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU93TpWJ3cI/AAAAAAAAACA/NIvV_4wxoYE/s1600-h/WFVariable.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 134px;" src="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU93TpWJ3cI/AAAAAAAAACA/NIvV_4wxoYE/s320/WFVariable.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282572067328875970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU93kqg9ytI/AAAAAAAAACI/EpnVM3O2ESg/s1600-h/ValueAssign.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 257px; height: 150px;" src="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU93kqg9ytI/AAAAAAAAACI/EpnVM3O2ESg/s320/ValueAssign.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282572359700433618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click 'OK' then 'OK' again on the 'Value Assignment' dialog.  The 'Update List Item' dialog should now show this field and value in the list of items to be updated.  Click 'OK' again.&lt;br /&gt;&lt;br /&gt;9. We can now click 'Finish' to complete our simple workflow.  SharePoint Designer will now generate the required files and bind this workflow to your list.&lt;br /&gt;&lt;br /&gt;10.  Go to your list and click on 'New' in the list toolbar, complete a test item (noting that your hyperlink column is not listed).  Click 'OK' and you should return to your list view and your hyperlink column should be populated with the display value you entered in stage 7.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU98Be3OAXI/AAAAAAAAACQ/lId8s-sUbxM/s1600-h/ListView.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 29px;" src="http://1.bp.blogspot.com/_x5cTJDj8DAI/SU98Be3OAXI/AAAAAAAAACQ/lId8s-sUbxM/s320/ListView.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282577252835262834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Clicking on this hyperlink should take you to the initiation page that SharePoint Designer created for you, but (crucially) the ID will be the ID for the item which the hyperlink column exists on.&lt;br /&gt;&lt;br /&gt;Clicking 'Start' on this page will start your workflow as designed in SharePoint Designer.&lt;br /&gt;&lt;br /&gt;So there you go! Wait for it...There are a few buts...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Issues&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Document Libraries with check in/out enabled &lt;/strong&gt;&lt;br /&gt;This is the same as designing any workflow which is going to update these items, you must handle checking in/out.  Because our workflow is only initiated on creation then this is not a major issue, but I did come across some problems in this scenario, but they were overcome by having the workflow check the item back in before updating.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Custom Workflow&lt;/strong&gt;&lt;br /&gt;This workaround is designed for dealing with either SharePoint Designer workflows or custom workflows which use an initiation form as SPD always creates a workflow initiation form anyway.  It will not work for custom workflows that do not require an initiation form as there is no URL to link to (This is a scenario that I am interested in so if anyone has any recommendations then please post a comment).  If your custom workflow uses an InfoPath form to initiate then you might want to look at creating links to the following URL:&lt;br /&gt;&lt;br /&gt;http://&lt;em&gt;SITE URL&lt;/em&gt;/_layouts/IniWrkflIP.aspx&lt;br /&gt;&lt;br /&gt;This page takes similar parameters to the SPD generated page except you can supply an xsn location for your infopath form too.  &lt;a href="http://msdn.microsoft.com/en-us/library/ms563325.aspx"&gt;More information can be found here&lt;/a&gt;.  The above technique should work perfectly well in this scenario, I just haven't tried it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Credit:&lt;/strong&gt; Thanks to Laura Rogers from the sharepointdiscussions Yahoo group for pointing me in the direction of this method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-191001629130027521?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=tDeEgzu7O9Q:E94ZRo9wAPQ:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=tDeEgzu7O9Q:E94ZRo9wAPQ:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=tDeEgzu7O9Q:E94ZRo9wAPQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=tDeEgzu7O9Q:E94ZRo9wAPQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=tDeEgzu7O9Q:E94ZRo9wAPQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=tDeEgzu7O9Q:E94ZRo9wAPQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=tDeEgzu7O9Q:E94ZRo9wAPQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=tDeEgzu7O9Q:E94ZRo9wAPQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/tDeEgzu7O9Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/191001629130027521/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/12/initiate-sharepoint-workflow-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/191001629130027521?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/191001629130027521?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/tDeEgzu7O9Q/initiate-sharepoint-workflow-from.html" title="Initiate a SharePoint workflow from a button on the list view." /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU9rD8e6RtI/AAAAAAAAABI/tDnVBm2LOfw/s72-c/CreateWFColumn.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/12/initiate-sharepoint-workflow-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IFRXk8eip7ImA9WxRaFE4.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-7888659831014228876</id><published>2008-12-16T11:55:00.012Z</published><updated>2008-12-16T13:51:54.772Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-16T13:51:54.772Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><title>Microsoft.SharePoint.SoapServer.SoapServerException whilst using the SharePoint web services</title><content type="html">Whilst trying out some development concepts using the SharePoint Lists.asmx web service I came across the above error message everytime I tried to call the GetList or GetListItems method. My code was simple:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; serLists &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; myService.Lists&lt;br /&gt;serLists.Credentials = System.Net.CredentialCache.DefaultCredentials&lt;br /&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; myItems &lt;span class="kwrd"&gt;as&lt;/span&gt; XmlNode = serLists.GetListItems(&lt;span class="str"&gt;"MyList"&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;However whenever I ran this through I got the mysterious error:&lt;br /&gt;&lt;br /&gt;Microsoft.SharePoint.SoapServer.SoapServerException&lt;br /&gt;&lt;br /&gt;Visual Studio debugging did not report any inner exceptions so I could not find out what the problem was.&lt;br /&gt;&lt;br /&gt;The solution is a simple one. The Lists web service will execute methods on the root web (SPWeb as in site) on the Site Collection, even if your web service reference is to a site further down the site collection.&lt;br /&gt;&lt;br /&gt;There is a URL property on the proxy class generated for the web service, you need to set this to the url of the web service within your sub site. This must be set &lt;strong&gt;BEFORE&lt;/strong&gt; you use the service proxy class to call the method.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'Set the Url property of the service for the path to a subsite.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;'Not setting this property will return the lists in the root web site.&lt;/span&gt;&lt;br /&gt;serLists.Url = http://Server_Name/Subsite_Name/_vti_bin/Lists.asmx&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-7888659831014228876?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=pmsbCBq1wjQ:kAHr_x_Z5tc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=pmsbCBq1wjQ:kAHr_x_Z5tc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=pmsbCBq1wjQ:kAHr_x_Z5tc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=pmsbCBq1wjQ:kAHr_x_Z5tc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=pmsbCBq1wjQ:kAHr_x_Z5tc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=pmsbCBq1wjQ:kAHr_x_Z5tc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=pmsbCBq1wjQ:kAHr_x_Z5tc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=pmsbCBq1wjQ:kAHr_x_Z5tc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/pmsbCBq1wjQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/7888659831014228876/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/12/microsoftsharepointsoapserversoapserver.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7888659831014228876?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/7888659831014228876?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/pmsbCBq1wjQ/microsoftsharepointsoapserversoapserver.html" title="Microsoft.SharePoint.SoapServer.SoapServerException whilst using the SharePoint web services" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/12/microsoftsharepointsoapserversoapserver.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIEQHw8cCp7ImA9WxdWFUk.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-2137600591680675276</id><published>2008-07-08T20:41:00.002+01:00</published><updated>2008-07-08T20:48:21.278+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-08T20:48:21.278+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="RSS" /><category scheme="http://www.blogger.com/atom/ns#" term="Feeds" /><category scheme="http://www.blogger.com/atom/ns#" term="Links" /><title>Keeping Up - SharePoint</title><content type="html">For those of you interested in the best ways of keeping up to date with information and developments with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SharePoint&lt;/span&gt; then the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SharePoint&lt;/span&gt; Product Team have posted a great blog article with links to a load of really useful &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;RSS&lt;/span&gt; feeds.&lt;br /&gt;&lt;br /&gt;Suck 'em up and keep updated!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/07/03/a-much-easier-way-to-keep-track-of-new-sharepoint-content-published-on-msdn-and-technet.aspx"&gt;Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SharePoint&lt;/span&gt; Team Blog - A much easier way to keep track of new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SharePoint&lt;/span&gt; content published on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;MSDN&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;TechNet&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-2137600591680675276?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=cFchtIvYOrc:tp_s5NCkt1E:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=cFchtIvYOrc:tp_s5NCkt1E:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=cFchtIvYOrc:tp_s5NCkt1E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=cFchtIvYOrc:tp_s5NCkt1E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=cFchtIvYOrc:tp_s5NCkt1E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=cFchtIvYOrc:tp_s5NCkt1E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=cFchtIvYOrc:tp_s5NCkt1E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=cFchtIvYOrc:tp_s5NCkt1E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/cFchtIvYOrc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/2137600591680675276/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/07/keeping-up-sharepoint.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2137600591680675276?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2137600591680675276?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/cFchtIvYOrc/keeping-up-sharepoint.html" title="Keeping Up - SharePoint" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/07/keeping-up-sharepoint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MMSX89fip7ImA9WxdWFUk.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-4533782402051840493</id><published>2008-07-08T12:51:00.001+01:00</published><updated>2008-07-08T20:31:28.166+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-08T20:31:28.166+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Training" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><title>SharePoint Developer Training</title><content type="html">This post comes as I am undertaking a SharePoint developer course with Combined Knowledge. The training is being delivered by Todd Bleeker a SharePoint MVP from US firm Mindsharp. Todd's enthusiasm for SharePoint is infectious and the training is highly detailed and relevant.&lt;br /&gt;&lt;br /&gt;I hope to post some articles on tips for SharePoint developers once the course is complete.&lt;br /&gt;&lt;br /&gt;For further info see &lt;a href="http://www.combined-knowledge.com/"&gt;Combined Knowledge&lt;/a&gt;, &lt;a href="http://mindsharp.com/"&gt;Mindsharp&lt;/a&gt;, &lt;a href="http://mindsharpblogs.com/Todd"&gt;Todd Bleeker&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-4533782402051840493?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=QoTlCDsP1Ns:6AIfOEgLXtc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=QoTlCDsP1Ns:6AIfOEgLXtc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=QoTlCDsP1Ns:6AIfOEgLXtc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=QoTlCDsP1Ns:6AIfOEgLXtc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=QoTlCDsP1Ns:6AIfOEgLXtc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=QoTlCDsP1Ns:6AIfOEgLXtc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=QoTlCDsP1Ns:6AIfOEgLXtc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=QoTlCDsP1Ns:6AIfOEgLXtc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/QoTlCDsP1Ns" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/4533782402051840493/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/07/sharepoint-developer-training.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/4533782402051840493?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/4533782402051840493?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/QoTlCDsP1Ns/sharepoint-developer-training.html" title="SharePoint Developer Training" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/07/sharepoint-developer-training.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EERn0-eyp7ImA9WxdWEUs.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-2896546160017482664</id><published>2008-07-04T12:03:00.001+01:00</published><updated>2008-07-04T12:06:47.353+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-04T12:06:47.353+01:00</app:edited><title>Update</title><content type="html">I appreciate that I have not updated my blog for a while, I have been busy learning new stuff...&lt;br /&gt;&lt;br /&gt;I am looking to write some interesting stuff on my experiences with SharePoint thus far as I am off to Ullesthorpe in Leicester next week to do the SharePoint developer training with Combined Knowledge.&lt;br /&gt;&lt;br /&gt;I also have some potings re: BizTalk developer tips that I will get on here next week.  So keepa  lookout.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-2896546160017482664?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=4Q6TrZVTV9Y:Z4HOWJOdTHg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=4Q6TrZVTV9Y:Z4HOWJOdTHg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=4Q6TrZVTV9Y:Z4HOWJOdTHg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=4Q6TrZVTV9Y:Z4HOWJOdTHg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=4Q6TrZVTV9Y:Z4HOWJOdTHg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=4Q6TrZVTV9Y:Z4HOWJOdTHg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=4Q6TrZVTV9Y:Z4HOWJOdTHg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=4Q6TrZVTV9Y:Z4HOWJOdTHg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/4Q6TrZVTV9Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/2896546160017482664/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/07/update.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2896546160017482664?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2896546160017482664?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/4Q6TrZVTV9Y/update.html" title="Update" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/07/update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ECSX46eyp7ImA9WxZVFkQ.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-376813929541961028</id><published>2008-03-28T09:03:00.003Z</published><updated>2008-03-28T09:14:28.013Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-28T09:14:28.013Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VB.Net" /><category scheme="http://www.blogger.com/atom/ns#" term="MailMessage" /><category scheme="http://www.blogger.com/atom/ns#" term="System.Net.Mail" /><title>System.Net.Mail and locked files</title><content type="html">For many years now I have had a functional class for making it easy to create and send emails.  I have over the years tweaked this class to support lots of additional features such as html and plain text templates, sending emails using alternate views, file attachments etc.&lt;br /&gt;&lt;br /&gt;However just recently I noticed that if I tried to do anything with a file after I had attached it to an email using my mailmanager class then I got problems as Windows was always retaining a file lock on the file.&lt;br /&gt;&lt;br /&gt;The solution was a simple one...write better code.  Essentially I was not correctly disposing of the System.Net.Mail.MailMessage after attaching files and sending the email.  Its a lesson in diligence that sometimes it doesn't matter how many times you have revised a piece of code over the years.  It can be the simplest of things that bites you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-376813929541961028?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=SXCwtc3BmRg:H-z9080EzOM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=SXCwtc3BmRg:H-z9080EzOM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=SXCwtc3BmRg:H-z9080EzOM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=SXCwtc3BmRg:H-z9080EzOM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=SXCwtc3BmRg:H-z9080EzOM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=SXCwtc3BmRg:H-z9080EzOM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=SXCwtc3BmRg:H-z9080EzOM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=SXCwtc3BmRg:H-z9080EzOM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/SXCwtc3BmRg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/376813929541961028/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/03/systemnetmail-and-locked-files.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/376813929541961028?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/376813929541961028?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/SXCwtc3BmRg/systemnetmail-and-locked-files.html" title="System.Net.Mail and locked files" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/03/systemnetmail-and-locked-files.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HRXk7fCp7ImA9WxZXFk4.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-1883885430299223405</id><published>2008-03-04T13:48:00.004Z</published><updated>2008-03-04T14:12:14.704Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-04T14:12:14.704Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term=".Net" /><title>Calling an External Assemby from a Scripting Functoid</title><content type="html">&lt;p&gt;Having completed the official Microsoft course on developing with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BizTalk&lt;/span&gt; (credit to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;QA&lt;/span&gt;-IQ for adding some great additional content to the course), I have been working on some projects in anger.&lt;/p&gt;&lt;p&gt;The most recent issue I had was around testing a map which used a scripting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;functoid&lt;/span&gt; to call my data layer to get some data out of a database.&lt;br /&gt;&lt;br /&gt;I built a class library project which provides various methods to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;retrieve&lt;/span&gt; the data I need using the data layer. However when I referenced the project in my maps project (note that I keep all &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BizTalk&lt;/span&gt; file types e.g. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;schemas&lt;/span&gt;, orchestrations, maps etc in their own project for ease of deployment) I got an error essentially saying that the assembly could not be loaded. After some rooting around I found the problems.&lt;br /&gt;&lt;br /&gt;The following is my checklist for things to look for if you are having problems with this:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Make sure that all functions used on your assembly are working correctly first. Its much easier to know that you can rule out problems with your referenced code prior to using it in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;BizTalk&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;DO NOT set-up shared (static in C#) functions on your referenced assembly if you want to call them from a scripting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;functoid&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;BizTalk&lt;/span&gt; will &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;natively&lt;/span&gt; try to instantiate your class so these will not work.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restart VS to ensure that all references have been freshly loaded.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ensure that the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;dll&lt;/span&gt; for your referenced project is installed in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;GAC&lt;/span&gt; on your development machine.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you are using the 'Test Map' functionality from within VS then you will also need to ensure that any &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;config&lt;/span&gt; settings that are required for your assembly (e.g &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;AppSettings&lt;/span&gt;) are included in the devenv.exe.config file. At &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;runtime&lt;/span&gt; these settings will need to be put into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;btsntsvc&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;config&lt;/span&gt; on your live configuration.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you have updated your assembly then ensure that VS is trying to use the correct version, remove all references to your assembly and add them again.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Refresh the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;GAC&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you wish to debug your referenced assembly then you will have to setup a test project to do this, however ensure that you &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;un-install&lt;/span&gt; your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;dll&lt;/span&gt; from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;GAC&lt;/span&gt; if you have already installed it as VS will try to use the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;GAC&lt;/span&gt; version first and this will not have a debug file associated with it. You will get an error saying that no debug information has been generated if VS is using the reference from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;GAC&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I hope that this has been helpful. I suspect I will be adding a few more &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;BizTalk&lt;/span&gt; related posts as I get to grips with some of the finer points of the technology.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-1883885430299223405?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=0YUFmQaGspo:hpybX93Ncis:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=0YUFmQaGspo:hpybX93Ncis:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=0YUFmQaGspo:hpybX93Ncis:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=0YUFmQaGspo:hpybX93Ncis:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=0YUFmQaGspo:hpybX93Ncis:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=0YUFmQaGspo:hpybX93Ncis:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=0YUFmQaGspo:hpybX93Ncis:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=0YUFmQaGspo:hpybX93Ncis:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/0YUFmQaGspo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/1883885430299223405/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/03/calling-external-assemby-from-scripting.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/1883885430299223405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/1883885430299223405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/0YUFmQaGspo/calling-external-assemby-from-scripting.html" title="Calling an External Assemby from a Scripting Functoid" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/03/calling-external-assemby-from-scripting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QEQH8zeCp7ImA9WxZRGUw.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-2506159473578112725</id><published>2008-02-13T15:04:00.005Z</published><updated>2008-02-13T15:08:21.180Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-13T15:08:21.180Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><category scheme="http://www.blogger.com/atom/ns#" term="Training" /><title>BizTalk</title><content type="html">I am heading off to London in a few short days to undertake the MS training for BizTalk Server 2006. I am hoping that my experiences will be a shade better than other times I have taken the official MS courses on new subjects.&lt;br /&gt;&lt;br /&gt;The idea of BizTalk is very new to me and it will be interesting to see how it all fits together. I have heard all kinds of comments on BizTalk so it remains to be seen how this pans out for me.&lt;br /&gt;&lt;br /&gt;I'll let you know how it goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-2506159473578112725?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=nXdXZWgV7cQ:J-__ZV8tuu4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=nXdXZWgV7cQ:J-__ZV8tuu4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=nXdXZWgV7cQ:J-__ZV8tuu4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=nXdXZWgV7cQ:J-__ZV8tuu4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=nXdXZWgV7cQ:J-__ZV8tuu4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=nXdXZWgV7cQ:J-__ZV8tuu4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=nXdXZWgV7cQ:J-__ZV8tuu4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=nXdXZWgV7cQ:J-__ZV8tuu4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/nXdXZWgV7cQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/2506159473578112725/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/02/biztalk.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2506159473578112725?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2506159473578112725?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/nXdXZWgV7cQ/biztalk.html" title="BizTalk" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/02/biztalk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QAQ3c_eSp7ImA9WxZRGUw.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-9052447979998512424</id><published>2008-02-13T14:47:00.004Z</published><updated>2008-02-13T15:09:02.941Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-13T15:09:02.941Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2000" /><category scheme="http://www.blogger.com/atom/ns#" term="Triggers" /><title>Auditing tables with ntext fields</title><content type="html">I need to track and audit changes to a field on a SQL Server 2000 database. Not difficult? I thought not. The first problem was with data typing, the field in question is an ntext field which is a problem.&lt;br /&gt;&lt;br /&gt;Normally I would use:&lt;br /&gt;&lt;br /&gt;CREATE TRIGGER &lt;em&gt;xxx&lt;/em&gt; ON &lt;em&gt;xxx&lt;/em&gt; FOR &lt;em&gt;Insert/Update/Delete&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This can't work in my scenario as neither the 'Inserted' nor the 'Deleted' tables will store the values of text, ntext or image fields in the case of a FOR trigger, otherwise known as an AFTER trigger as it takes place after the table change which triggered it.&lt;br /&gt;&lt;br /&gt;Enter the INSTEAD OF trigger. This trigger bought in from SQL 2000 onwards supports the use of ntext, text and image fields in the 'deleted' and 'inserted' tables. However I have now discovered that you cannot use the values from these fields in local variables or sub-queries so I cannot get them out of the 'inserted' table and record them into my audit table.&lt;br /&gt;&lt;br /&gt;The other problem with this approach is that the INSTEAD OF trigger (as the name rather handily implies) actually replaces the table change action which triggered it e.g. the original insert or update will be replaced by the trigger code. I could write code to re-perform the original action after my custom code, but this all sounds rather messy.&lt;br /&gt;&lt;br /&gt;In short I am still stumped, auditing changes to an ntext field cannot be a rare occurence, and yet the answer evades me.&lt;br /&gt;&lt;br /&gt;I should really say that I am not a SQL Server developer, but I am trying to debug a 3rd party application and suspect that there are problems when saving fields back to the database. Hence the need for an audit table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-9052447979998512424?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=KpJvsIjpFvo:3Gzqb51Ephc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=KpJvsIjpFvo:3Gzqb51Ephc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=KpJvsIjpFvo:3Gzqb51Ephc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=KpJvsIjpFvo:3Gzqb51Ephc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=KpJvsIjpFvo:3Gzqb51Ephc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=KpJvsIjpFvo:3Gzqb51Ephc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=KpJvsIjpFvo:3Gzqb51Ephc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=KpJvsIjpFvo:3Gzqb51Ephc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/KpJvsIjpFvo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/9052447979998512424/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/02/auditing-tables-with-ntext-fields.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/9052447979998512424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/9052447979998512424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/KpJvsIjpFvo/auditing-tables-with-ntext-fields.html" title="Auditing tables with ntext fields" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/02/auditing-tables-with-ntext-fields.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UHSHs4eyp7ImA9WxZREk8.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-1062815548844974833</id><published>2008-02-05T16:25:00.000Z</published><updated>2008-02-05T16:33:59.533Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-05T16:33:59.533Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VB" /><category scheme="http://www.blogger.com/atom/ns#" term=".Net" /><title>Determining data types at runtime in VB.Net</title><content type="html">I always forget how this should work.  So here its is quick and easy...&lt;br /&gt;&lt;br /&gt;To determine the data type of an object at runtime you can use the TypeOf() function.&lt;br /&gt;&lt;br /&gt;For example :&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;If TypeOf(Control) is TextBox Then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;    &lt;span style="color:#009900;"&gt;'Some function here&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;End If&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-1062815548844974833?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=YEzZxiHIMgs:NZ4NmKzoUX4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=YEzZxiHIMgs:NZ4NmKzoUX4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=YEzZxiHIMgs:NZ4NmKzoUX4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=YEzZxiHIMgs:NZ4NmKzoUX4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=YEzZxiHIMgs:NZ4NmKzoUX4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=YEzZxiHIMgs:NZ4NmKzoUX4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=YEzZxiHIMgs:NZ4NmKzoUX4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=YEzZxiHIMgs:NZ4NmKzoUX4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/YEzZxiHIMgs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/1062815548844974833/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2008/02/determining-data-types-at-runtime-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/1062815548844974833?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/1062815548844974833?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/YEzZxiHIMgs/determining-data-types-at-runtime-in.html" title="Determining data types at runtime in VB.Net" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2008/02/determining-data-types-at-runtime-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkENQHo_eCp7ImA9WB9UGUo.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-6487596239895118856</id><published>2007-12-18T10:16:00.000Z</published><updated>2007-12-18T10:44:51.440Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-18T10:44:51.440Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Debugging" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>VS2005 Unable to Complete Operation</title><content type="html">This irritating dialog box when trying to debug a project in Visual Studio 2005 is one of those things that you just get used to. When it reared its ugly head this morning I realised that perhaps there were folks out there who were stumped by this.&lt;br /&gt;&lt;br /&gt;I am not sure of the reasons for this but in order to debug your application VS creates two files in the bin &gt; debug folder for your project. These will both end with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;vshost&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;exe&lt;/span&gt; and vshost.exe.config and will be prefixed by your project name. For some reason sometimes these files &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;become&lt;/span&gt; corrupt and the VS gives the helpful dialog message above if you attempt to debug.&lt;br /&gt;&lt;br /&gt;You need to shut down VS2005 and manually delete these 2 files. They will be recreated as soon as you try to debug again. You have to shut down VS2005 as it retains a file lock on these from when you tried to debug and so you will not be able to delete them unless you shut down the application.&lt;br /&gt;&lt;br /&gt;Hope this helps someone out there trying to demystify this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;ridiculous&lt;/span&gt; dialog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-6487596239895118856?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=aFaAAB7r0Cg:vUQxvV79OGg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=aFaAAB7r0Cg:vUQxvV79OGg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=aFaAAB7r0Cg:vUQxvV79OGg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=aFaAAB7r0Cg:vUQxvV79OGg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=aFaAAB7r0Cg:vUQxvV79OGg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=aFaAAB7r0Cg:vUQxvV79OGg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=aFaAAB7r0Cg:vUQxvV79OGg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=aFaAAB7r0Cg:vUQxvV79OGg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/aFaAAB7r0Cg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/6487596239895118856/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2007/12/vs2005-unable-to-complete-operation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/6487596239895118856?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/6487596239895118856?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/aFaAAB7r0Cg/vs2005-unable-to-complete-operation.html" title="VS2005 Unable to Complete Operation" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2007/12/vs2005-unable-to-complete-operation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMGRn48fCp7ImA9WB9QGU4.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-9203678775303208172</id><published>2007-11-01T17:09:00.000Z</published><updated>2007-11-01T17:17:07.074Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-01T17:17:07.074Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hardware" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Ideal Hardware for Running Visual Studio</title><content type="html">Are you looking for the ideal hardware specification for running on a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;development&lt;/span&gt; machine? I have to be honest that this is really down to the kind of development you are planning on doing with it, but &lt;a href="http://weblogs.asp.net/scottgu/default.aspx"&gt;Scott Guthrie&lt;/a&gt; over at Microsoft has posted an interesting article on his blog.&lt;br /&gt;&lt;br /&gt;I would always have said that the key to a better development box is processor, processor, processor. However Scott proposes a spec which is more reliant on a speedy hard drive. Interested then &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx"&gt;check out the blog post and see what you think&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;He makes a compelling point but its probably one that you need to try out. He also links to some further resources on developer &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;specification&lt;/span&gt; hardware which are worth a look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-9203678775303208172?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=yBczLCytV8Q:tqVEnqWhPW8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=yBczLCytV8Q:tqVEnqWhPW8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=yBczLCytV8Q:tqVEnqWhPW8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=yBczLCytV8Q:tqVEnqWhPW8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=yBczLCytV8Q:tqVEnqWhPW8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=yBczLCytV8Q:tqVEnqWhPW8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=yBczLCytV8Q:tqVEnqWhPW8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=yBczLCytV8Q:tqVEnqWhPW8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/yBczLCytV8Q" height="1" width="1"/&gt;</content><link rel="related" href="http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx" title="Ideal Hardware for Running Visual Studio" /><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/9203678775303208172/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2007/11/ideal-hardware-for-running-visual.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/9203678775303208172?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/9203678775303208172?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/yBczLCytV8Q/ideal-hardware-for-running-visual.html" title="Ideal Hardware for Running Visual Studio" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2007/11/ideal-hardware-for-running-visual.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CR387eCp7ImA9WB9QFkg.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-4152841534290100414</id><published>2007-10-26T17:04:00.000+01:00</published><updated>2007-10-29T11:22:46.100Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-29T11:22:46.100Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VSTO 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="Deployment" /><category scheme="http://www.blogger.com/atom/ns#" term="VB" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="Office" /><title>Deploying VSTO 2005 Customisations in an Enterprise Environment</title><content type="html">&lt;p&gt;A colleague of mine asked me last week to take a look at some deployment issues with VSTO 2005 customizations. I did do some searching and there is lots of information out there for all kinds of scenarios but there is some misleading stuff too. I thought it may be worthwhile to post some details about the method I used to get this working.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; There are many different deployment scenarios that you may come across but this is the way that I dealt with it.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Firstly I built a VSTO 2005 customization. This was a simple document  action pane which connected to a database and retrieved some details which were used to replace some bookmarks in a word document. However for ease you could just use the following code within the ThisDocument class.&lt;br /&gt;&lt;pre class="vb.net" name="code"&gt;&lt;br /&gt;Public Class ThisDocument&lt;br /&gt;&lt;br /&gt;    Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup&lt;br /&gt;  &lt;br /&gt;        MessageBox.Show("This customization has been deployed!", "Success")&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub ThisDocument_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Once you have built something which works you will need to deploy it. The main consideration in our environment was that the code had to be separate to the document itself, this means that deploying updates is much easier as you only have to redistribute (to the client machines) the document and not the manifests or the compiled code.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;I established a network share with read access to the Everyone group and Full Control to a specific admin group for this type of work.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;In Visual Studio 2005, click on Build &amp;gt; Publish &amp;lt;ProjectName&amp;gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;At this point you must select the UNC address to your network share, if you don't use the UNC address then the permissions will be taken from the folder itself not the share.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;This will deploy the office document and all associated files to the specified share.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;At this point you could deploy the office document to all your client machines. However if anyone tries to run it they will get a .Net security error. This is because by default remote code execution is NOT allowed in the .Net Framework Configuration.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;You will need to use the caspol.exe command line application which sits in the c:\&lt;em&gt;&amp;lt;winfolder&amp;gt;&lt;/em&gt;\Micrsoft.Net\Framework\&lt;em&gt;&amp;lt;versionnumber&amp;gt;&lt;/em&gt;\ folder&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;I used the following to set FullTrust permissions on my network share:&lt;br /&gt;&lt;br /&gt;caspol.exe -machine -addgroup LocalIntranet_Zone -url &lt;em&gt;&amp;lt;yourUNCaddress&amp;gt;&lt;/em&gt;\* FullTrust -name "VSTOCustomizations" -description "Code group granting full trust to the code required for VSTO2005 extensions to Office"&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This should allow your VSTO code to execute from within the local office document.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;I hope you find this useful. I have written it rather fast so I may revisit this if it gets a lot of negative comments. I would have found this really useful a couple of days ago.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-4152841534290100414?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=eG-V7ZKIUic:gLCYWIM-EL0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=eG-V7ZKIUic:gLCYWIM-EL0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=eG-V7ZKIUic:gLCYWIM-EL0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=eG-V7ZKIUic:gLCYWIM-EL0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=eG-V7ZKIUic:gLCYWIM-EL0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=eG-V7ZKIUic:gLCYWIM-EL0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=eG-V7ZKIUic:gLCYWIM-EL0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=eG-V7ZKIUic:gLCYWIM-EL0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/eG-V7ZKIUic" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/4152841534290100414/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2007/10/deploying-vsto-2005-customisations-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/4152841534290100414?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/4152841534290100414?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/eG-V7ZKIUic/deploying-vsto-2005-customisations-in.html" title="Deploying VSTO 2005 Customisations in an Enterprise Environment" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2007/10/deploying-vsto-2005-customisations-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8MQ34zcCp7ImA9WB9QE00.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-2757836272086315927</id><published>2007-10-25T09:12:00.000+01:00</published><updated>2007-10-25T09:28:02.088+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-25T09:28:02.088+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VB" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Discussion" /><title>For Discussion : Languages</title><content type="html">Having been a VB developer since I started out on my programming career I am interested in hearing the arguments for and against C#. Speaking as an outsider to C# programming it all seems rather confusing.&lt;br /&gt;&lt;br /&gt;When I started out in programming VB was an easier language to learn/guess as it is phonetic, and not case sensitive (which I now see could be a disadvantage in terms of naming conventions etc.).&lt;br /&gt;&lt;br /&gt;{ } are a mystery to me (not really, but they do make the code look confusing).&lt;br /&gt;&lt;br /&gt;I understand that there are things that can not be achieved in VB that can be achieved in C# or are at least easier to achieve in C#, but I have never come across many.&lt;br /&gt;&lt;br /&gt;So I thought I would open this blog post up for some comments on either side as I have recently been considering adopting C#.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-2757836272086315927?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ihPgmH_MgmA:wkCcened3wI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=ihPgmH_MgmA:wkCcened3wI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ihPgmH_MgmA:wkCcened3wI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ihPgmH_MgmA:wkCcened3wI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ihPgmH_MgmA:wkCcened3wI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=ihPgmH_MgmA:wkCcened3wI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=ihPgmH_MgmA:wkCcened3wI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=ihPgmH_MgmA:wkCcened3wI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/ihPgmH_MgmA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/2757836272086315927/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2007/10/for-discussion-langauges.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2757836272086315927?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2757836272086315927?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/ihPgmH_MgmA/for-discussion-langauges.html" title="For Discussion : Languages" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2007/10/for-discussion-langauges.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YMQnsycSp7ImA9WB9QEk8.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-1329511946636604146</id><published>2007-10-24T09:14:00.000+01:00</published><updated>2007-10-24T12:26:23.599+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-24T12:26:23.599+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net" /><category scheme="http://www.blogger.com/atom/ns#" term="Scott Guthrie" /><title>ASP.Net MVC Framework</title><content type="html">What?! &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;MVC&lt;/span&gt;&lt;/span&gt;...???&lt;br /&gt;&lt;br /&gt;For those who haven't heard &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx"&gt;Scott Guthrie (of Microsoft) has announced the launch of the ASP.Net &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;MVC&lt;/span&gt;&lt;/span&gt; Framework&lt;/a&gt;. They are aiming for inclusion in ASP.Net in the early part of 2008.&lt;br /&gt;&lt;br /&gt;I had only heard of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;MVC&lt;/span&gt;&lt;/span&gt; model for application development through a course I attended on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHP&lt;/span&gt;&lt;/span&gt; development last year. Until that time I had never come across the concepts of Model - View - Controller. I am a mainly self taught developer and did not have the 'academic' introduction to development that one might expect from say a degree course or similar (my degree is in electronic media). I do have a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PGC&lt;/span&gt;&lt;/span&gt; in Computer Science, but in the real world this has proved to be of only limited value.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Info:&lt;/strong&gt; &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;What is the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;MVC&lt;/span&gt;&lt;/span&gt; concept (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Wikipedia&lt;/span&gt;&lt;/span&gt;)?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However I am more than willing to give due consideration to anything which can reduce the pain of '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Postback&lt;/span&gt;&lt;/span&gt; Purgatory'. Anyone who has had to deal with the vagaries of a page which could potentially be posted back with several hundred different &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;permutations&lt;/span&gt; has got to be with me on this.&lt;br /&gt;&lt;br /&gt;I am still looking into the details of this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;MVC&lt;/span&gt;&lt;/span&gt; Framework and will post more on this as details emerge but for now here are the links to the announcement on Scott Guthrie's blog and a video which Scott &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Hanselman&lt;/span&gt;&lt;/span&gt; shot at the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;announcement&lt;/span&gt; (Alt.Net Conference).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Info:&lt;/strong&gt; &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx"&gt;Scott Guthrie's Blog Announcement&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Info: &lt;/strong&gt;&lt;a href="http://www.hanselman.com/blog/ScottGuMVCPresentationAndScottHaScreencastFromALTNETConference.aspx"&gt;Scott &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Hanselman's&lt;/span&gt;&lt;/span&gt; Video&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-1329511946636604146?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=t-TTEFrAtkY:TBGDDi7MEq0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=t-TTEFrAtkY:TBGDDi7MEq0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=t-TTEFrAtkY:TBGDDi7MEq0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=t-TTEFrAtkY:TBGDDi7MEq0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=t-TTEFrAtkY:TBGDDi7MEq0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=t-TTEFrAtkY:TBGDDi7MEq0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=t-TTEFrAtkY:TBGDDi7MEq0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=t-TTEFrAtkY:TBGDDi7MEq0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/t-TTEFrAtkY" height="1" width="1"/&gt;</content><link rel="related" href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx" title="ASP.Net MVC Framework" /><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/1329511946636604146/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2007/10/aspnet-mvc-framework.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/1329511946636604146?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/1329511946636604146?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/t-TTEFrAtkY/aspnet-mvc-framework.html" title="ASP.Net MVC Framework" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2007/10/aspnet-mvc-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8MQHo9eSp7ImA9WB9QEUk.&quot;"><id>tag:blogger.com,1999:blog-3329418659075301568.post-2454050256155011605</id><published>2007-10-23T13:47:00.000+01:00</published><updated>2007-10-23T14:08:01.461+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-23T14:08:01.461+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Symbols" /><category scheme="http://www.blogger.com/atom/ns#" term="PDB" /><category scheme="http://www.blogger.com/atom/ns#" term="Debugging" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Error: The breakpoint will not currently be hit. No symbols have been loaded for this document</title><content type="html">Came across this little problem today whilst trying to make some amendments to an old project. My first thought was that the projects compile configuration was set to release so the .pdb file (this contains the 'symbols' reffered to in the error message) was not being generated in the 'bin' folder of the project.&lt;br /&gt;&lt;br /&gt;After several minutes of searching on Google I found some forum posts over at asp.net/forums and on MSDN which related but the solutions posted did not seem to make sense to me.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;strong&gt;Word of Warning - If you are new to .Net development then please do not trust the first solution that you find. A lot of posts on forums etc. contain long winded or misleading solutions. Get a consensus from a couple of sources before attempting to fix the problem.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#330099;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;I sat and thought for several minutes and the best solution to my mind was to first ensure that all reference to the project output were set to Debug.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are having this problem then please check the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Properties &gt; Compile &gt; Advanced Compile Options &gt; Generate Debug Info is set to either Full or pdb-only&lt;/li&gt;&lt;li&gt;Project Properties &gt; Compile &gt; Configuration set to Debug or Active (Debug)&lt;/li&gt;&lt;li&gt;Build &gt; Configuration Manager &gt; Active Solution Configuration set to Debug, and debug is set for all projects displayed here.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;After making the above checks then try &lt;strong&gt;REBUILDING&lt;/strong&gt; your project. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;pdb&lt;/span&gt; file should have now been regenerated. If not then close VS2005 delete all .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;pdb&lt;/span&gt; files for the project (from the bin folder). If you open your solution and try to rebuild again these &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;pdb&lt;/span&gt; files should be rebuilt in the bin directory allowing you to debug normally.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3329418659075301568-2454050256155011605?l=f5todebug.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=RUGzsADtdVA:BS51PkIuM_w:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=RUGzsADtdVA:BS51PkIuM_w:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=RUGzsADtdVA:BS51PkIuM_w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=RUGzsADtdVA:BS51PkIuM_w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=RUGzsADtdVA:BS51PkIuM_w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=RUGzsADtdVA:BS51PkIuM_w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/F5ToDebug?a=RUGzsADtdVA:BS51PkIuM_w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/F5ToDebug?i=RUGzsADtdVA:BS51PkIuM_w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/F5ToDebug/~4/RUGzsADtdVA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://f5todebug.blogspot.com/feeds/2454050256155011605/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://f5todebug.blogspot.com/2007/10/error-breakpoint-will-not-currently-be.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2454050256155011605?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3329418659075301568/posts/default/2454050256155011605?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/F5ToDebug/~3/RUGzsADtdVA/error-breakpoint-will-not-currently-be.html" title="Error: The breakpoint will not currently be hit. No symbols have been loaded for this document" /><author><name>Charles Lee</name><uri>http://www.blogger.com/profile/01669575338429663813</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="28" src="http://3.bp.blogspot.com/_x5cTJDj8DAI/SU-jVLpBt-I/AAAAAAAAACo/ioZJC-ZTy0M/S220/me_work.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://f5todebug.blogspot.com/2007/10/error-breakpoint-will-not-currently-be.html</feedburner:origLink></entry></feed>

