<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>.NET General</title>
        <link>http://waynester.net/blog/category/1.aspx</link>
        <description>Microsoft .NET Framework - including ASP.NET, Windows Forms, .NET development, etc.</description>
        <language>en-US</language>
        <copyright>Wayne Larimore</copyright>
        <managingEditor>wayne@waynester.net</managingEditor>
        <generator>Subtext Version 1.9.3.51</generator>
        <item>
            <title>Duplicate Items in DropDownList using AppendDataBoundItems</title>
            <link>http://waynester.net/blog/archive/2008/10/23/Duplicate-Items-in-DropDownList-using-AppendDataBoundItems.aspx</link>
            <description>&lt;p&gt;Are you getting duplicate entries in your DropDownList control when using AppendDataBoundItems="true" and pulling in data from a datasource?  This is one of those things that trips me up ever so often.  The solution is to set &lt;strong&gt;EnableViewState="false"&lt;/strong&gt; on the control.  This prevents the previous items from being cached in the ViewState.&lt;/p&gt;
&lt;p&gt;Hope this helps.  If so, leave a comment of your experience.&lt;/p&gt;&lt;img src="http://waynester.net/blog/aggbug/5741.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/10/23/Duplicate-Items-in-DropDownList-using-AppendDataBoundItems.aspx</guid>
            <pubDate>Fri, 24 Oct 2008 03:46:19 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5741.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/10/23/Duplicate-Items-in-DropDownList-using-AppendDataBoundItems.aspx#feedback</comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5741.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5741.aspx</trackback:ping>
        </item>
        <item>
            <title>subText 2.0 not ready for shared environment hosting</title>
            <link>http://waynester.net/blog/archive/2008/08/24/subText-2.0-not-ready-for-shared-environment-hosting.aspx</link>
            <description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;This weekend I took it upon myself to upgrade my subText blog to version 2.0.  I'm glad I backed up everything before attempting the debacle.  My first clue should have been it's only a few days old since it was released.  I went through the steps of wiping out all old files and ftp'ing all the new ones and merging my web [dot] config differences.  I got an error pointing to an assembly that was suspect.  After searching on SourceForge.net forums I downloaded the latest DotNetOpenID assembly and copied it over to the bin folder.  Then I got the Upgrading in Progress splash screen.  Then, I came across a posting from Paul Wideman.  He found the bug in the code related to not working well with partial trust environments like GoDaddy, Webhost4life and others.  I downloaded his patch and applied it with TortoiseMerge and compiled the Framework assembly, copied it up to the bin directory - thinking this would fix that problem.  Nadda!  Still had the Upgrading - be patient screen.  So, after 24 hours of my blog being down I made the decision to roll back to version 1.x.  And I was so looking forward to the new version 2 features.  I apologize to anyone trying to access anything on my blog during this down time.  I think I'll wait until a new verified and seasoned version is released.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt; [update] &lt;/strong&gt;&lt;/font&gt;For my sake as well as others, here are some references of others having problems and how they worked them out:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://www.kowitz.net/archive/2008/08/15/upgrading-to-subtext-2.0-fail.aspx"&gt;http://www.kowitz.net/archive/2008/08/15/upgrading-to-subtext-2.0-fail.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://waynester.net/blog/aggbug/5736.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/08/24/subText-2.0-not-ready-for-shared-environment-hosting.aspx</guid>
            <pubDate>Mon, 25 Aug 2008 03:51:39 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5736.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/08/24/subText-2.0-not-ready-for-shared-environment-hosting.aspx#feedback</comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5736.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5736.aspx</trackback:ping>
        </item>
        <item>
            <title>Hands on Labs for Developing Apps on WSS 3.0</title>
            <link>http://waynester.net/blog/archive/2008/06/02/Hands-on-Labs-for-Developing-Apps-on-WSS-3.0.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;[via &lt;a title="Andrew Connell" href="http://feeds.feedburner.com/AndrewConnell" target="_blank"&gt;AC&lt;/a&gt;]&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Do you need hands-on development experience with Windows SharePoint Services 3.0 Applications?  Here's a link to start your journey:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b885dce8-c93f-48aa-b798-4422febcc200&amp;amp;DisplayLang=en"&gt;Hands on Labs for Developing Applications on Windows SharePoint Services 3.0&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://waynester.net/blog/aggbug/5725.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/06/02/Hands-on-Labs-for-Developing-Apps-on-WSS-3.0.aspx</guid>
            <pubDate>Tue, 03 Jun 2008 04:28:54 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5725.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/06/02/Hands-on-Labs-for-Developing-Apps-on-WSS-3.0.aspx#feedback</comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5725.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5725.aspx</trackback:ping>
        </item>
        <item>
            <title>Sharepoint Developer Training for Newbies</title>
            <link>http://waynester.net/blog/archive/2008/05/18/Sharepoint-Developer-Training-for-Newbies.aspx</link>
            <description>&lt;p&gt;[via &lt;a title="Andrew Connell" href="http://feeds.feedburner.com/AndrewConnell" target="_blank"&gt;AC&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;If you can, and it's free, hook into these upcoming SharePoint developer training series:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;a href="http://blogs.msdn.com/pandrew/archive/2008/05/12/sharepoint-developer-msdn-web-cast-series.aspx"&gt;SharePoint Developer MSDN Web Cast Series&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://waynester.net/blog/aggbug/5723.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/05/18/Sharepoint-Developer-Training-for-Newbies.aspx</guid>
            <pubDate>Mon, 19 May 2008 04:07:21 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5723.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/05/18/Sharepoint-Developer-Training-for-Newbies.aspx#feedback</comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5723.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5723.aspx</trackback:ping>
        </item>
        <item>
            <title>14 1/2 Years Of Loyalty Comes To an End</title>
            <link>http://waynester.net/blog/archive/2008/04/13/14-12-Years-Of-Loyalty--Then-Betrayal.aspx</link>
            <description>&lt;p&gt;Last Thursday I got "the call" that all employees dread - "you're no longer needed".  Our company went through yet another round of layoffs and this time my number was called.  I had survived so many of these over the 14 1/2 years of my career - with the same company (very rare, I know).  It caught me by complete surprise.  I was their number one "MOSS" man, they told me just days before.  Then came "the call".&lt;/p&gt;
&lt;p&gt;I guess I've been very fortunate in my career.  I've only experienced two layoffs in 20 years.  I do not recommend it to anyone.  It kind of feels like being betrayed.  At one moment you're part of the family, then the next you're thrown to the curb and locked out of the home (networks).  It feels lonely.  For two hours after that phone call, I didn't call my wife.  I needed time to reflect of what just happened.  Working remote, I wasn't escorted out of the building or asked to embarrasingly carry my box of personals out of the building (thank God!).  However, I just sat there and reflected on what it all meant.&lt;/p&gt;
&lt;p&gt;At the same time, I am not bitter.  In fact, for the most part, I am at peace with the outcome.  I know I'm going to be alright.  My family and I &lt;a href="http://www.debtfreefivekids.com"&gt;don't have any debt&lt;/a&gt;, we have an emergency fund and I do not need to make any rash decisions on the next step of my career.  I would love to keep &lt;a href="http://www.waynester.net/blog/archive/2006/08/16/ExtremeOfficeMakeOver.aspx"&gt;my office&lt;/a&gt; and work for someone remote.  However, I know that might not work out.  I'm hoping to find a situation that I enjoy.  There's got to be a place for a guy with my experience.  If you know and / or looking for someone feel free to contact me.&lt;/p&gt;
&lt;p&gt;I look forward to this new season of my career.  I believe there's a reason for everything and nothing gets by God that He doesn't approve (refer to Job in the Bible).  I'm not limiting myself to a specific technology or platform.  I am a problem-solver and troubleshooter.  I enjoy seeing my work make a difference in the workplace - a process more efficient, less paperwork to handle and / or simply lessening human workload.  I guess you could say I'm a computer geek at heart.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[update]&lt;/strong&gt; I have edited this posting and removed previous interview-related ones in deference to those who construe them offensive.&lt;/p&gt;&lt;img src="http://waynester.net/blog/aggbug/5715.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/04/13/14-12-Years-Of-Loyalty--Then-Betrayal.aspx</guid>
            <pubDate>Sun, 13 Apr 2008 07:05:36 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5715.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/04/13/14-12-Years-Of-Loyalty--Then-Betrayal.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5715.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5715.aspx</trackback:ping>
        </item>
        <item>
            <title>InfoPath SharePoint Integration: Add List Item</title>
            <link>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-Add-List-Item.aspx</link>
            <description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Let's say you would like to add an item to a SharePoint List.  This is where CAML (Collaborative Application Markup Language) comes in.  It may seem whacky at first glance, but once you get the hang of it you'll feel comfortable.  Use the following code as a template and apply your personal needs:&lt;/font&gt;&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;WebMethod()&amp;gt; _&lt;br /&gt;Public Function SubmitSharepointListItem(ByVal ListLocation As String, ByVal SharepointListID As String, _&lt;br /&gt;ByVal id As Integer, ByVal title As String, ByVal owner As String, _&lt;br /&gt;ByVal category As String, ByVal topic As String, _&lt;br /&gt;ByVal projecttype As String, ByVal areaofresponsibility As String, _&lt;br /&gt;    ByVal purpose As String, ByVal takenote As String, ByVal documentstate As String, ByVal reasonforarchival As String, _&lt;br /&gt;    ByVal reasonfordeletion As String, ByVal documenttext As XmlNode) As String&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If ListLocation Is Nothing Or ListLocation.Length = 0 Then&lt;br /&gt;            ListLocation = ConfigurationManager.AppSettings("SharepointListLocation")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If SharepointListID Is Nothing Or SharepointListID.Length = 0 Then&lt;br /&gt;            SharepointListID = ConfigurationManager.AppSettings("SharepointListGUID")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim myDoc As New MyDocument&lt;br /&gt;        myDoc.ID = id&lt;br /&gt;        myDoc.Title = title&lt;br /&gt;        myDoc.Owner = owner&lt;br /&gt;        myDoc.Category = category&lt;br /&gt;        myDoc.Topic = topic&lt;br /&gt;        myDoc.ProjectType = projecttype&lt;br /&gt;        myDoc.AreaOfResponsibility = areaofresponsibility&lt;br /&gt;        myDoc.Purpose = purpose&lt;br /&gt;        myDoc.TakeNote = takenote&lt;br /&gt;        myDoc.DocumentState = documentstate&lt;br /&gt;        myDoc.ReasonForArchival = reasonforarchival&lt;br /&gt;        myDoc.ReasonForDeletion = reasonfordeletion&lt;br /&gt;        myDoc.DocumentText = documenttext&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim returnString As String&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Try&lt;br /&gt;            'determine batch type based on id value&lt;br /&gt;            Dim CamlMethodString As String&lt;br /&gt;            If id &amp;gt; 0 Then&lt;br /&gt;                'Customize the building of the Caml Batch String here&lt;br /&gt;                CamlMethodString = myDoc.BuildSharePointBatch(MyDocument.SPDocType.UpdateDoc)&lt;br /&gt;            Else&lt;br /&gt;                CamlMethodString = myDoc.BuildSharePointBatch(MyDocument.SPDocType.NewDoc)&lt;br /&gt;            End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            Dim xmldoc As New System.Xml.XmlDocument&lt;br /&gt;            Dim elBatch As System.Xml.XmlElement = xmldoc.CreateElement("Batch")&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            With elBatch&lt;br /&gt;                .SetAttribute("OnError", "Continue")&lt;br /&gt;                '.SetAttribute("ListVersion", ListVersion)&lt;br /&gt;                '.SetAttribute("ViewName", ViewID)&lt;br /&gt;                .InnerXml = CamlMethodString&lt;br /&gt;            End With&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            Dim url As Uri = New Uri(New Uri(ListLocation), "_vti_bin/Lists.asmx")&lt;br /&gt;            Dim list As New com.fnfis.cssddev.Lists()&lt;br /&gt;            list.Url = url.ToString()&lt;br /&gt;            list.Credentials = getUserCredentials()&lt;br /&gt;            Dim ndReturn As System.Xml.XmlNode = list.UpdateListItems(SharepointListID, elBatch)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            If id &amp;gt; 0 Then&lt;br /&gt;                'Existing entry - look for any errors returned from SharePoint&lt;br /&gt;                If ndReturn.InnerXml.IndexOf("&amp;lt;ErrorText&amp;gt;") &amp;gt; 0 AndAlso _&lt;br /&gt;                Not ndReturn.SelectSingleNode("/").FirstChild.InnerText.Equals("0x00000000") Then&lt;br /&gt;                    returnString = String.Concat("&amp;lt;br/&amp;gt;Error:" &amp;amp; ndReturn.InnerXml)&lt;br /&gt;                Else&lt;br /&gt;                    'Return back the existing id&lt;br /&gt;                    Return id.ToString()&lt;br /&gt;                End If&lt;br /&gt;            Else&lt;br /&gt;                'return back the newly established unique identifier from SharePoint&lt;br /&gt;                returnString = ndReturn.FirstChild.LastChild.Attributes("ows_ID").Value&lt;br /&gt;            End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Catch ex As System.Web.Services.Protocols.SoapException&lt;br /&gt;            Dim xd As XmlDataDocument = New XmlDataDocument&lt;br /&gt;            xd.LoadXml("&amp;lt;?xml version='1.0' ?&amp;gt;" &amp;amp; _&lt;br /&gt;                "&amp;lt;listitems xmlns:s=""uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882""&lt;br /&gt;xmlns:dt=""uuid:C2F41010-65B3-11d1-A29F-00AA00C14882""&lt;br /&gt;xmlns:rs=""urn:schemas-microsoft-com:rowset""&lt;br /&gt;xmlns:z=""#RowsetSchema""&lt;br /&gt;xmlns=""http://schemas.microsoft.com/sharepoint/soap/""&amp;gt; " &amp;amp; _&lt;br /&gt;                "&amp;lt;ErrorMessage&amp;gt;Message:" &amp;amp; ex.Message &amp;amp; " Detail:" &amp;amp; ex.Detail.InnerText &amp;amp; " StackTrace:" &amp;amp; ex.StackTrace &amp;amp; "&amp;lt;/ErrorMessage&amp;gt;" &amp;amp; _&lt;br /&gt;                "&amp;lt;rs:data ItemCount=""0""&amp;gt; &amp;lt;/rs:data&amp;gt;&amp;lt;/listitems&amp;gt;")&lt;br /&gt;            returnString = xd.InnerText&lt;br /&gt;        End Try&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Return returnString&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;    End Function&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The following method is found inside a seperate class called myDocument.&lt;br /&gt;The class also includes all necessary attributes.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;    Public Function BuildSharePointBatch(ByVal spDocType As SPDocType) As String&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim sbCamlMethod As New System.Text.StringBuilder&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        'method ID only needed if sending more than one command&lt;br /&gt;        Dim DocTypeString As String = "None"&lt;br /&gt;        Select Case spDocType&lt;br /&gt;            Case MyDocument.SPDocType.NewDoc&lt;br /&gt;                DocTypeString = "New"&lt;br /&gt;            Case MyDocument.SPDocType.UpdateDoc&lt;br /&gt;                DocTypeString = "Update"&lt;br /&gt;            Case MyDocument.SPDocType.DeleteDoc&lt;br /&gt;                DocTypeString = "Delete"&lt;br /&gt;        End Select&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        sbCamlMethod.AppendFormat("&amp;lt;Method ID=""1"" Cmd=""{0}""&amp;gt;", DocTypeString)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        'Cmd=new indicates adding an item&lt;br /&gt;        'Cmd=update indicates updating an item&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        'ID field required when updating or deleting a document&lt;br /&gt;        If spDocType = MyDocument.SPDocType.UpdateDoc Or _&lt;br /&gt;        spDocType = MyDocument.SPDocType.DeleteDoc Then&lt;br /&gt;            sbCamlMethod.AppendFormat("&amp;lt;Field Name=""ID""&amp;gt;{0}&amp;lt;/Field&amp;gt;", Me.ID)&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        'These Field Names are VITAL to get correct&lt;br /&gt;        'They MUST MATCH the exact GUID representation within Sharepoint&lt;br /&gt;        'You can find it by going into the Modify Settings and Columns section of&lt;br /&gt;        ' the Custom List&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.Title.Length &amp;gt; 0 Then&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Title""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.Title)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.Owner.Length &amp;gt; 0 Then&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Owner""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.Owner)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.Category.Length &amp;gt; 0 Then&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Category""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.Category)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.Topic.Length &amp;gt; 0 Then&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Topic""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.Topic)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.ProjectType.Length &amp;gt; 0 Then&lt;br /&gt;            '_x0020_ represents a space (Unicode)&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Project_x0020_Type""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.ProjectType)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.AreaOfResponsibility.Length &amp;gt; 0 Then&lt;br /&gt;            '_x0020_ represents a space (Unicode)&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Area_x0020_of_x0020_Responsibili""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.AreaOfResponsibility)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Not IsNothing(Me.Purpose) Then&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Purpose""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.Purpose)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Not IsNothing(Me.TakeNote) Then&lt;br /&gt;            '_x0020_ represents a space (Unicode)&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Take_x0020_Note""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.TakeNote)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.DocumentState.Length &amp;gt; 0 Then&lt;br /&gt;            '_x0020_ represents a space (Unicode)&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Document_x0020_State""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.DocumentState)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.ReasonForArchival.Length &amp;gt; 0 Then&lt;br /&gt;            '_x0020_ represents a space (Unicode)&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Reason_x0020_for_x0020_Archival""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.ReasonForArchival)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Me.ReasonForDeletion.Length &amp;gt; 0 Then&lt;br /&gt;            '_x0020_ represents a space (Unicode)&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Reason_x0020_for_x0020_Deletion""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.ReasonForDeletion)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If Not IsNothing(Me.DocumentText) Then&lt;br /&gt;            '_x0020_ represents a space (Unicode)&lt;br /&gt;            sbCamlMethod.Append("&amp;lt;Field Name=""Document_x0020_Text_x0020_Block""&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;            sbCamlMethod.Append(Me.DocumentText.InnerXml)&lt;br /&gt;            sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        'for date related fields here is an example&lt;br /&gt;        'dates are in UTC format. Where time is not used, set to midnight&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        'sbCamlMethod.Append("&amp;lt;Field Name='Date'&amp;gt;&amp;lt;![CDATA[")&lt;br /&gt;        'sbCamlMethod.Append(Format(Me.DocDate, "yyyy-MM-dd") &amp;amp; "T00:00:00Z")&lt;br /&gt;        'sbCamlMethod.Append("]]&amp;gt;&amp;lt;/Field&amp;gt;")&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        sbCamlMethod.Append("&amp;lt;/Method&amp;gt;")&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Return sbCamlMethod.ToString&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;    End Function&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;/pre&gt;&lt;img src="http://waynester.net/blog/aggbug/5711.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-Add-List-Item.aspx</guid>
            <pubDate>Wed, 02 Apr 2008 20:44:24 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5711.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-Add-List-Item.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5711.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5711.aspx</trackback:ping>
        </item>
        <item>
            <title>InfoPath SharePoint Integration: List Services</title>
            <link>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-List-Services.aspx</link>
            <description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;In order to pull specific column data from a SharePoint List you must structure the XML query properly.  In this example, I am querying for the Category column.  I have defined the SharePoint List Location and List GUID inside the Web.config file.  Here is how the web method is laid out:&lt;/font&gt;&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;WebMethod()&amp;gt; _&lt;br /&gt;Public Function GetListItemCategories(ByVal ListLocation As String, ByVal ListName As String) As XmlDataDocument&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If ListLocation Is Nothing Or ListLocation.Length = 0 Then&lt;br /&gt;            ListLocation = ConfigurationManager.AppSettings("SharepointListLocation")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If ListName Is Nothing Or ListName.Length = 0 Then&lt;br /&gt;            ListName = ConfigurationManager.AppSettings("SharepointListGUID")&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim url As Uri = New Uri(New Uri(ListLocation), "_vti_bin/Lists.asmx")&lt;br /&gt;        Dim list As New com.fnfis.cssddev.Lists()&lt;br /&gt;        list.Url = url.ToString()&lt;br /&gt;        list.Credentials = getUserCredentials()&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim Doc As New XmlDocument()&lt;br /&gt;        Dim Query As XmlNode = Doc.CreateNode(XmlNodeType.Element, "Query", "")&lt;br /&gt;        Dim ViewFields As XmlNode = Doc.CreateNode(XmlNodeType.Element, "ViewFields", "")&lt;br /&gt;        ViewFields.InnerXml = "&amp;lt;FieldRef Name='Category' /&amp;gt;"&lt;br /&gt;        Dim QueryOptions As XmlNode = Doc.CreateNode(XmlNodeType.Element, "QueryOptions", "")&lt;br /&gt;        Dim node As XmlNode = Nothing&lt;br /&gt;        Try&lt;br /&gt;            node = list.GetListItems(ListName, Nothing, Query, ViewFields, Nothing, QueryOptions)&lt;br /&gt;        Catch ex As Exception&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        End Try&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim xd As XmlDataDocument = New XmlDataDocument&lt;br /&gt;        If node Is Nothing Then&lt;br /&gt;            xd.LoadXml("&amp;lt;?xml version='1.0' ?&amp;gt;" &amp;amp; _&lt;br /&gt;            "&amp;lt;listitems&lt;br /&gt;xmlns:s=""uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882""&lt;br /&gt;xmlns:dt=""uuid:C2F41010-65B3-11d1-A29F-00AA00C14882""&lt;br /&gt;xmlns:rs=""urn:schemas-microsoft-com:rowset"" &lt;br /&gt;xmlns:z=""#RowsetSchema"" &lt;br /&gt;xmlns=""http://schemas.microsoft.com/sharepoint/soap/""&amp;gt; &amp;lt;rs:data ItemCount=""0""&amp;gt; &amp;lt;/rs:data&amp;gt;&amp;lt;/listitems&amp;gt;")&lt;br /&gt;        Else&lt;br /&gt;            xd.LoadXml("&amp;lt;?xml version='1.0' ?&amp;gt;" &amp;amp; node.OuterXml)&lt;br /&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Return xd&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        '--- example of how to access xml node values&lt;br /&gt;        'For Each n As XmlNode In node.FirstChild.ChildNodes&lt;br /&gt;        '    Dim node1 As TreeNode = New TreeNode(n.Attributes("Title").Value)&lt;br /&gt;        '    Dim node2 As TreeNode = New TreeNode(n.Attributes("Body").Value)&lt;br /&gt;        'Next&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;    End Function&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;&lt;img src="http://waynester.net/blog/aggbug/5710.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-List-Services.aspx</guid>
            <pubDate>Wed, 02 Apr 2008 20:22:38 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5710.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-List-Services.aspx#feedback</comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5710.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5710.aspx</trackback:ping>
        </item>
        <item>
            <title>InfoPath SharePoint Integration: Web Services</title>
            <link>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-Web-Services.aspx</link>
            <description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;When pulling data into InfoPath 2003 you must build it to be in a compatible format.  Here's an example of a web service method providing said format from a MS SQL Server Source.&lt;/font&gt;&lt;/p&gt;
&lt;pre&gt; &lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;WebMethod()&amp;gt; _&lt;br /&gt;Public Function GetCategories() As XmlDataDocument&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim conn As New SqlConnection(GetConnectString)&lt;br /&gt;        Dim ds As New DataSet&lt;br /&gt;        Dim cmd As New SqlCommand()&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        cmd.Connection = conn&lt;br /&gt;        cmd.CommandType = CommandType.StoredProcedure&lt;br /&gt;        cmd.CommandText = "sl_Category"&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Dim adapter As New SqlDataAdapter(cmd)&lt;br /&gt;        Dim result As Boolean = False&lt;br /&gt;        Dim previousConnectionState1 As ConnectionState = conn.State&lt;br /&gt;        Dim errMessage As String = Nothing&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Try&lt;br /&gt;            If conn.State = ConnectionState.Closed Then&lt;br /&gt;                conn.Open()&lt;br /&gt;            End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            adapter.Fill(ds)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            result = True&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Catch ex As SqlException&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            result = False&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            errMessage = ex.Message&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        Finally&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            If previousConnectionState1 = ConnectionState.Closed Then&lt;br /&gt;                conn.Close()&lt;br /&gt;            End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        End Try&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        If result Then&lt;br /&gt;            Dim XmlDataDoc As XmlDataDocument = New XmlDataDocument(ds)&lt;br /&gt;            Return XmlDataDoc&lt;br /&gt;        Else&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            Dim XmlDataDoc As New XmlDataDocument()&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            XmlDataDoc.LoadXml("&amp;lt;?xml version='1.0' ?&amp;gt;" &amp;amp; _&lt;br /&gt;"&amp;lt;GetCategories&lt;br /&gt;xmlns:s=""uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882""&lt;br /&gt;xmlns:dt=""uuid:C2F41010-65B3-11d1-A29F-00AA00C14882""&lt;br /&gt;xmlns:rs=""urn:schemas-microsoft-com:rowset""&lt;br /&gt;xmlns:z=""#RowsetSchema""&lt;br /&gt; xmlns=""http://schemas.microsoft.com/sharepoint/soap/""&amp;gt; &amp;lt;rs:data ItemCount=""0"" errmsg=""" &amp;amp; errMessage &amp;amp; """&amp;gt; &amp;lt;/rs:data&amp;gt;&amp;lt;/GetCategories&amp;gt;")&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;            Return XmlDataDoc&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;        End If&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;    End Function&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;&lt;img src="http://waynester.net/blog/aggbug/5709.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-Web-Services.aspx</guid>
            <pubDate>Wed, 02 Apr 2008 20:01:02 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5709.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/04/02/InfoPath-SharePoint-Integration-Web-Services.aspx#feedback</comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5709.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5709.aspx</trackback:ping>
        </item>
        <item>
            <title>Have you lost your designer.vb file - lost your intellisense?</title>
            <link>http://waynester.net/blog/archive/2008/01/15/Have-you-lost-your-designer.vb-file--lost-your-intellisense.aspx</link>
            <description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;There is a fix when you've lost your designer.vb file(s).  I ran across this problem recently when copying some VS2008 code into a VS2005 Project.  I failed to copy the designer.vb files and was left with no intellisense available - a life stopper!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Here's the fix.  Right click on your project file and choose 'Convert To Web Application'.  This will regenerate all those necessary designer files.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Happy coding!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://waynester.net/blog/aggbug/5706.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2008/01/15/Have-you-lost-your-designer.vb-file--lost-your-intellisense.aspx</guid>
            <pubDate>Tue, 15 Jan 2008 15:56:21 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5706.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2008/01/15/Have-you-lost-your-designer.vb-file--lost-your-intellisense.aspx#feedback</comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5706.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5706.aspx</trackback:ping>
        </item>
        <item>
            <title>Developing in Sharepoint v3 with Code Behind Files</title>
            <link>http://waynester.net/blog/archive/2007/10/07/Developing-in-Sharepoint-v3-with-Code-Behind-Files.aspx</link>
            <description>&lt;p&gt;In a &lt;a href="http://waynester.net/blog/archive/2007/09/13/Developer-Training-on-SharePoint-Server-2007-WCM.aspx"&gt;previous posting&lt;/a&gt; I mentioned a training course I was taking by &lt;a href="http://www.andrewconnell.com/blog"&gt;Andrew Connell&lt;/a&gt; in Dallas.  It focused on Web Content Management (WCM) Sharepoint 2007.  One of the highlights was how &lt;a title="Andrew Connell" href="http://feeds.feedburner.com/AndrewConnell" target="_blank"&gt;AC&lt;/a&gt; showed us how to create and deploy solutions.  This involved code behind files in your basic ASP.NET 2 environment.  Most of the Microsoft development world has probably heard of bad experiences from us "V2" warriors.  Well, "V3" brings to the table none of that.  All is forgotten and old things have passed away and Good-God, Sharepoint was built on top of ASP.NET 2.0 - making life for us a lot nicer.&lt;/p&gt;
&lt;p&gt;Well, after taking &lt;a href="http://www.andrewconnell.com/blog/articles/MossWcmDeveloperClasses.aspx"&gt;Andrew's course&lt;/a&gt; I walked away thinking I could do anything in Sharepoint 2007.  He blew me away by some of his tips and tricks he has added to his toolbox since leaving our company.  For instance, one afternoon during lunch break, he demonstrated some of his Code Rush tips &amp;amp; tricks.  With very little keystrokes he was able to self-generate tons of often needed constructs - just PRICELESS!&lt;/p&gt;
&lt;p&gt;Well, this evening, I was catching up on &lt;a title="Andrew Connell" href="http://feeds.feedburner.com/AndrewConnell" target="_blank"&gt;AC&lt;/a&gt;'s blog and noticed his latest article.  It was laying out exactly how he deploys his Sharepoint Code Behind projects via Features.  And I ask myself, "Why in God's green earth is he disclosing this stuff?!?!"  I mean, this is his bread and butter as an author, instructor, consultant.  He could charge a hefty price (and get it) by keeping all this inside his books and classes.  Well, Andrew is passionate about coding - especially Sharepoint development.  He is one of the very few folks who has the blueprints to successfully make developing in MOSS 2007 "developer-fun-friendly".  And, I'm sure these postings will help his sales and class interest.&lt;/p&gt;
&lt;p&gt;I thought rather than post what I learned from the class I would point to his blog article and allow you to learn from the master himself...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.andrewconnell.com/blog/articles/UsingCodeBehindFilesInSharePointSites.aspx"&gt;Using ASP.NET 2.0 Code Behind Files in SharePoint v3 Sites&lt;/a&gt;&lt;/p&gt;&lt;img src="http://waynester.net/blog/aggbug/5703.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Wayne Larimore</dc:creator>
            <guid>http://waynester.net/blog/archive/2007/10/07/Developing-in-Sharepoint-v3-with-Code-Behind-Files.aspx</guid>
            <pubDate>Sun, 07 Oct 2007 05:11:37 GMT</pubDate>
            <wfw:comment>http://waynester.net/blog/comments/5703.aspx</wfw:comment>
            <comments>http://waynester.net/blog/archive/2007/10/07/Developing-in-Sharepoint-v3-with-Code-Behind-Files.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://waynester.net/blog/comments/commentRss/5703.aspx</wfw:commentRss>
            <trackback:ping>http://waynester.net/blog/services/trackbacks/5703.aspx</trackback:ping>
        </item>
    </channel>
</rss>