<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>Microsoft</title>
        <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/category/43.aspx</link>
        <description>Microsoft</description>
        <language>en-US</language>
        <copyright>Shawn Weisfeld</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <item>
            <title>Microsoft: Wanted: Killer apps! Reward: $12,000 prize!</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/10/30/microsoft-wanted-killer-apps-reward-12000-prize.aspx</link>
            <description>&lt;p&gt;Saw this from Microsoft, thought I would share. . . If you win the car I want a ride!&lt;/p&gt;  &lt;p&gt;Spread the word—there’s a contest for developers blazing trails with the .NET Framework and Visual Studio, Windows, Windows Server, Windows Azure, SQL Server, or SharePoint. &lt;/p&gt;  &lt;p&gt;We’re looking for interesting, powerful and unique solutions based on the latest Microsoft technologies. &lt;/p&gt;  &lt;p&gt;And the winners get their choice of a &lt;b&gt;15 day Galapagos Islands Adventure&lt;/b&gt; or a &lt;b&gt;new Smart Car!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Two ways to win!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Judges Choice:&lt;/b&gt; Impress the panel of technology industry leaders and Microsoft gurus for the trip, the car, a home entertainment system or an internet tablet PC.&lt;/p&gt;  &lt;p&gt;&lt;b /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;People’s Choice:&lt;/b&gt; Get friends, family and colleagues to vote for your solution. Receive the most votes and win one of three ARCHOS 320 GB Media Internet Tablet PCs.&lt;/p&gt;  &lt;p&gt;Our current campaign site ‘Expect the Unexpected’ features some unique developers and their amazing solutions. Check them out at &lt;a href="http://www.DotNETstories.com"&gt;www.DotNETstories.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;But we’re looking for &lt;u&gt;more&lt;/u&gt; great solutions!!! Have you used .NET Framework to create an amazing app?  Are you doing remarkable work in the market with a solution built with Microsoft dev tools?  Give us the details and you could win a prize worth US$12,000. The contest launches Wednesday, November 4&lt;sup&gt;th&lt;/sup&gt; so submit your story at &lt;a href="http://www.myDotNETstory.com"&gt;www.myDotNETstory.com&lt;/a&gt; and spread the word!&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/557.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/10/30/microsoft-wanted-killer-apps-reward-12000-prize.aspx</guid>
            <pubDate>Fri, 30 Oct 2009 11:31:27 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/557.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/10/30/microsoft-wanted-killer-apps-reward-12000-prize.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/557.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/557.aspx</trackback:ping>
        </item>
        <item>
            <title>Austin Code Camp 2009</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/05/30/austin-code-camp-2009.aspx</link>
            <description>&lt;p&gt;Coming from Florida where I attended every code camp and spoke at every code camp except for one, well until I moved it is nice to be getting into the swing of things out here in Texas. Today I will be giving my ASP.NET Dynamic Data talk at the Austin Code Camp and I cannot wait. I will be repeating the presentation at the Dallas Tech Fest on June 19 if you cannot make it today. &lt;/p&gt;  &lt;p&gt;Austin Code Camp: &lt;a title="http://www.adnug.org/AustinCodeCamp09" href="http://www.adnug.org/AustinCodeCamp09"&gt;http://www.adnug.org/AustinCodeCamp09&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Presentation &lt;a title="Download" href="http://www.developerroundtable.com/Libraries/Misc_Stuff/DynamicData_Demo.sflb.ashx?download=true"&gt;Download&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dallas Tech Fest: &lt;a title="http://dallastechfest.com/" href="http://dallastechfest.com/"&gt;http://dallastechfest.com/&lt;/a&gt; (while the early bird discount is over, you can still use the discount code DOTNET to get $25 off admission)&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/298.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/05/30/austin-code-camp-2009.aspx</guid>
            <pubDate>Sat, 30 May 2009 17:32:19 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/298.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/05/30/austin-code-camp-2009.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/298.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/298.aspx</trackback:ping>
        </item>
        <item>
            <title>Mac vs. PC ads: Apple Please Stop the Hypocrisy</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/05/03/mac-vs-pc-ads-apple-please-stop-the-hypocrisy.aspx</link>
            <description>&lt;p&gt;Below is the text of one of their latest adds titled "Legal Copy", that is far too small and scrolls way too fast for any normal human to read. My purpose for posting this is to show the shear lunacy of Apples recent line of commercials. ALL computers require maintenance. ALL computers require anti-virus and malware protection. ALL computers require backup. This is nothing new. I think that Apple is doing a disservice to its customers with the implications that their computers do not require the afore mentioned items. However we live in a free country and people vote with their feet and their wallets. But I will let you read it and make up your mind yourself. . . . &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Text of "Legal Copy" Apple Ad &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Please note that when you first receive your PC there is some suggested work that needs to be done before PCs can perform at their peak. These steps include, but are not limited to, downloading and installing necessary drivers for peripherals. These drivers may include printers, scanners, cameras, storage devices, music players, and other media devices. There may be more depending on your needs. It is also recommended that first time users removed all unneeded bloatware and remove all optional components. To remove unneeded bloatware first open uninstaller, select applications to remove, and uninstall. To remove optional components, click start, go to all programs and open control panel, select remove components, select components you want to remove, select next, when done, select finish. Once initial prep is complete, PCs may then be easy&lt;a href="http://drowningintechnicaldebt.com/blogs/shawnweisfeld/LegalCopy_5243ED56.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="LegalCopy" border="0" alt="LegalCopy" align="right" src="http://drowningintechnicaldebt.com/blogs/shawnweisfeld/LegalCopy_thumb_10C93AFD.jpg" width="423" height="281" /&gt;&lt;/a&gt; to use under certain controlled conditions and when properly maintained. In order for PCs to achieve optimal performance on a regular basis and for long periods of time, routine maintenance should include (but is not limited to) the following: download and install updated anti-virus software, run anti-virus software; check for system updates, clean out registry, defragment hard drive, free up disk space, remove temporary internet files, empty the recycle bin, remove unnecessary programs, run error check utility and fix file system errors. It is recommended that a maintenance schedule is developed and adhered to in order to make sure your PC is running safe and secure. Update your software, do a virus scan, and run error check utility once a week. Search for and download software and driver updates, free up disk space, and defragment your hard drive at least once a month. Empty the recycle bin and remove unnecessary programs once every three months. Back up all your files once a year. Please see instruction manual for more details. Failure to perform these function may result in the following: freezing, viruses, slow performance, and/or error messages. If problems persist after routine maintenance is performed, please contact your local IT professional who may or may not refer you to your software or hardware manufacturer depending on where the problem originated. Important information about easy to use PCs. PCs may become more difficult to use if the following occurs, sluggish operating system, viruses, and error messages, crashing and freezing. Unfortunately, freezing ant/or crashing are sometimes unavoidable. To avoid sluggish operating systems, crashing and freezing, it is recommended that your clean up your system registry, defragment your hard drive, free up your disk space, and perform other routine maintenance tasks. To clean out your system registry, first backup your data, backup your registry, purchase, download and install Registry Repair program, then quit all programs, scan registry, determine safe registry items to repair/delete/remove, select ok, and repeat if necessary. To defragment your hard drive, click start, and go to all programs&amp;gt;accessories&amp;gt; system tools&amp;gt; and open disk defragmenter, then select the c: drive, select defragment and wait. To free up disk space on your PC, click start go to all programs&amp;gt;accessories&amp;gt; system tools&amp;gt; and open disk cleanup. Scan will automatically start. From scan results, select files to be removed, select ok. Restarting your PC may then be necessary upon completion of system registry clean up, hard drive defragmentation, and disk space clean out. Please note: trying to remove registry items on your own is not recommended. It is often difficult to determine which items correspond to which application, and by attempting to remove items yourself, you might accidentally remove a valid registry item causing software crashes and errors. If a system registry becomes corrupt because you made a mistake when cleaning out the registry, follow these step: back up data, back up registry, purchase download and install Registry Repair program, quit all programs, scan registry, determine safe registry items to repair/delete/remove, then select ok and repeat if necessary. Also, easy to use PCs can experience difficulty if malware, viruses, or spyware infect your PC's system. There are 1.5 million signature-based malware detection with 20,000 new ones discovered everyday (based on 2008 reporting). Although some viruses are unavoidable, there are some preventative measures that you can take. When you first get your PC, configure your security settings (including things like Internet firewall, automatic updating, anti-virus, anti-spyware and other malware protection, other Internet security settings, and user account control). Eventually you may have to download and install security patches for your operating system and then as security updates become available download and install again. If your PC does get infected with malware talk to your IT professional first about the risks and benefits of treating the problem on your own. Do not try to remove a virus unless your IT professional has taught you and you understand everything. Ask them if you have any questions. Please see accompanying important information about virus protection on your hardware and software manufacture's website. Anyone can sit down and edit photos on their PC as long as their computer is running properly. Please note that proper maintenance, specifically disk defragmentation can take anywhere from minutes to hours to run depending on the size of your hard drive and how fragmented it is. Therefore, editing photos might be postponed if you choose to run maintenance on your computer prior to this act. Please note: your camera drive must be installed on your PC in order to review and edit your photos. Your camera will not work with your PC if the software/drivers are not downloaded first. Editing photos on a PC may be difficult for children under a certain age, or for people who are unfamiliar with how a PC works and how to download camera software and drivers. Also, no PC connected to the internet is one hundred percent immune to viruses, spyware, adware, and other forms of malware. Once a year, PC users should back up a year's worth of photos and files to a CD or DVD. Power PC users should start fresh and back up all their files and applications on an external hard drive, then use your original system installer disks to erase, rebuild and reinstall your operating system from scratch. Therefore, if your PC is not one hundred percent trouble free at least you won't lose all of your files. PC does not claim ownership of problems that occur from materials or software that you download off the internet. If your warranty has expired, and your PC is not one hundred percent trouble free, you are not eligible for a refund or replacement under the terms of the warranty. In addition, we cannot help you with software or hardware obtained without a warranty, such as software provides "as is" or for free". Again, if problems continue, please contact your IT professional. &lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/293.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/05/03/mac-vs-pc-ads-apple-please-stop-the-hypocrisy.aspx</guid>
            <pubDate>Sun, 03 May 2009 06:31:42 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/293.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/05/03/mac-vs-pc-ads-apple-please-stop-the-hypocrisy.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/293.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/293.aspx</trackback:ping>
        </item>
        <item>
            <title>SharePoint WebServices are your friend</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/02/24/sharepoint-webservice-are-your-friend.aspx</link>
            <description>&lt;p&gt;Ever wanted access to that treasure trove of information available in SharePoint lists scattered across your enterprise? Ever wanted to provide a quick and dirty UI for users to enter data, but need to have programmatic access to the data? Use SharePoint! SharePoint provides WebServices that give you access to just about everything you can think of (&lt;a href="http://msdn.microsoft.com/en-us/library/ms954015.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms954015.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms954015.aspx&lt;/a&gt;). For the purposes of this article I am going to use the Lists WebService to 1) get data from a list, 2) Add an item to the list and 3) Delete an item from the list. &lt;/p&gt;
&lt;p&gt;The first step is to add two service references to Sharepoint. The first is to the Lists WebService (http://server/_vti_bin/Lists.asmx), and the second is to the Views WebService (http://server/_vti_bin/Views.asmx). Before you go and add the services references you need to ensure you have permissions to the service. You do this by putting the url to the asmx in the browser and adding "?WSDL" to the end. If you get a blank html page then you do NOT have permissions to that service, well at least for that node. In my environment I only have permissions to a sub site in SharePoint. To that end I had to point directly to the WebService for the SharePoint site that I have access to. For example the address that I have to use is (http://server/site1/subsite2/subsite3/subsite4/_vti_bin/Lists.asmx). So after you ensured you have the correct URL you can now add the service references to your project. Easy enough to do right click on the project in the solution explorer in VS.NET and select "Add Service Reference" (Note I am using VS.NET 2008). &lt;/p&gt;
&lt;p&gt;Now that you have your 2 service references you need to check your WCF configuration in the app/web config file. Due to my environment I had to set it to the following: &lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;1: &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;security&lt;/span&gt; &lt;span class="attr"&gt;mode&lt;/span&gt;&lt;span class="kwrd"&gt;="TransportCredentialOnly"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;2: &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;transport&lt;/span&gt; &lt;span class="attr"&gt;clientCredentialType&lt;/span&gt;&lt;span class="kwrd"&gt;="Ntlm"&lt;/span&gt; &lt;span class="attr"&gt;proxyCredentialType&lt;/span&gt;&lt;span class="kwrd"&gt;="None"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;3: &lt;/span&gt;        &lt;span class="attr"&gt;realm&lt;/span&gt;&lt;span class="kwrd"&gt;=""&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;4: &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;message&lt;/span&gt; &lt;span class="attr"&gt;clientCredentialType&lt;/span&gt;&lt;span class="kwrd"&gt;="UserName"&lt;/span&gt; &lt;span class="attr"&gt;algorithmSuite&lt;/span&gt;&lt;span class="kwrd"&gt;="Default"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;5: &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;security&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The next step is to get the ID’s for the List and View that you want to pull the data for. The code below converts the name or title of the list/view into the ID. From what I read it is recommended that you use the ID’s however passing in the name to the web methods will work in most cases. &lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;1: &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetListID(&lt;span class="kwrd"&gt;string&lt;/span&gt; listName)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;2: &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;3: &lt;/span&gt;            &lt;span class="rem"&gt;//Find the list we want&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;4: &lt;/span&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; listID = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;5: &lt;/span&gt;            ListsSoapClient ws = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListsSoapClient();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;6: &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;7: &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;8: &lt;/span&gt;                XDocument doc = XDocument.Parse(ws.GetListCollection().OuterXml);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;9: &lt;/span&gt;                listID = (from x &lt;span class="kwrd"&gt;in&lt;/span&gt; doc.Elements().First().Elements()&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;10: &lt;/span&gt;                          &lt;span class="kwrd"&gt;where&lt;/span&gt; x.Attribute(&lt;span class="str"&gt;"Title"&lt;/span&gt;).Value.Equals(listName)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;11: &lt;/span&gt;                          select x.Attribute(&lt;span class="str"&gt;"ID"&lt;/span&gt;).Value).FirstOrDefault();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;12: &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;13: &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (TimeoutException timeout)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;14: &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;15: &lt;/span&gt;                &lt;span class="rem"&gt;//Handle the timeout exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;16: &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;17: &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;18: &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (CommunicationException commException)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;19: &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;20: &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the communication exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;21: &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;22: &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;23: &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;24: &lt;/span&gt;            Console.WriteLine(&lt;span class="str"&gt;"\n\nI found that List '{0}' has ID '{1}'"&lt;/span&gt;, listName, listID);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;25: &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; listID;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;26: &lt;/span&gt;        }&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;1: &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetViewID(&lt;span class="kwrd"&gt;string&lt;/span&gt; viewName, &lt;span class="kwrd"&gt;string&lt;/span&gt; listID)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;2: &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;3: &lt;/span&gt;            &lt;span class="rem"&gt;//Find the view we want&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;4: &lt;/span&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; viewID = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;5: &lt;/span&gt;            ViewsSoapClient ws = &lt;span class="kwrd"&gt;new&lt;/span&gt; ViewsSoapClient();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;6: &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;7: &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;8: &lt;/span&gt;                XDocument doc = XDocument.Parse(ws.GetViewCollection(listID).OuterXml);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;9: &lt;/span&gt;                viewID = (from x &lt;span class="kwrd"&gt;in&lt;/span&gt; doc.Elements().First().Elements()&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;10: &lt;/span&gt;                          &lt;span class="kwrd"&gt;where&lt;/span&gt; x.Attribute(&lt;span class="str"&gt;"DisplayName"&lt;/span&gt;).Value.Equals(viewName)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;11: &lt;/span&gt;                          select x.Attribute(&lt;span class="str"&gt;"Name"&lt;/span&gt;).Value).FirstOrDefault();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;12: &lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;13: &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;14: &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (TimeoutException timeout)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;15: &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;16: &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the timeout exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;17: &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;18: &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;19: &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (CommunicationException commException)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;20: &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;21: &lt;/span&gt;                &lt;span class="rem"&gt;//Handle the communication exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;22: &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;23: &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;24: &lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;25: &lt;/span&gt;            Console.WriteLine(&lt;span class="str"&gt;"\n\nI found that View '{0}' has ID '{1}'"&lt;/span&gt;, viewName, viewID);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;26: &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; viewID;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;27: &lt;/span&gt;        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;With all the plumbing out of the way I can now call the service to retrieve all the data in my list. &lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; XDocument GetListData(&lt;span class="kwrd"&gt;string&lt;/span&gt; listID, &lt;span class="kwrd"&gt;string&lt;/span&gt; viewID)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            XDocument list_data = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            ListsSoapClient ws = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListsSoapClient();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                list_data = XDocument.Parse(ws.GetListItems(listID, viewID, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;).OuterXml);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                var q = (from x &lt;span class="kwrd"&gt;in&lt;/span&gt; list_data.Elements().First().Elements().First().Elements()&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                         select &lt;span class="kwrd"&gt;new&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                         {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                             Title = x.Attribute(&lt;span class="str"&gt;"ows_LinkTitle"&lt;/span&gt;).Value,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                             Field1 = x.Attribute(&lt;span class="str"&gt;"ows_Field1"&lt;/span&gt;).Value,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                             Field2 = x.Attribute(&lt;span class="str"&gt;"ows_Field2"&lt;/span&gt;).Value&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                         });&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;"\n\nThe List has the following items"&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var r &lt;span class="kwrd"&gt;in&lt;/span&gt; q.ToList())&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;                    Console.WriteLine(&lt;span class="str"&gt;"{0}\t{1}\t{2}"&lt;/span&gt;, r.Title, r.Field1, r.Field2);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;                }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (TimeoutException timeout)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the timeout exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (CommunicationException commException)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the communication exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; list_data;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I can also Add an item to the list: &lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddListItem(&lt;span class="kwrd"&gt;string&lt;/span&gt; listID)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;span class="rem"&gt;//Add List Item&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            XElement new_item = &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Batch"&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"OnError"&lt;/span&gt;, &lt;span class="str"&gt;"Continue"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"ListVersion"&lt;/span&gt;, &lt;span class="str"&gt;"1"&lt;/span&gt;),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Method"&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"ID"&lt;/span&gt;, &lt;span class="str"&gt;"1"&lt;/span&gt;),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"Cmd"&lt;/span&gt;, &lt;span class="str"&gt;"New"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Field"&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"Name"&lt;/span&gt;, &lt;span class="str"&gt;"Title"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                        &lt;span class="str"&gt;"New Title"&lt;/span&gt;),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Field"&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"Name"&lt;/span&gt;, &lt;span class="str"&gt;"Field1"&lt;/span&gt;),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                        &lt;span class="str"&gt;"new field 1"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Field"&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"Name"&lt;/span&gt;, &lt;span class="str"&gt;"Field2"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                        &lt;span class="str"&gt;"new field 2"&lt;/span&gt;)));&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            ListsSoapClient ws = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListsSoapClient();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;"\n\nAdding Item to the list . . ."&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                Console.WriteLine(ws.UpdateListItems(listID, new_item.GetXmlElement()).OuterXml);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (TimeoutException timeout)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the timeout exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (CommunicationException commException)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the communication exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And delete an item from the list: &lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DeleteListItem(&lt;span class="kwrd"&gt;string&lt;/span&gt; listID, &lt;span class="kwrd"&gt;string&lt;/span&gt; item_id)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            ListsSoapClient ws = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListsSoapClient();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                XElement delete_item = &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Batch"&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"OnError"&lt;/span&gt;, &lt;span class="str"&gt;"Continue"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"ListVersion"&lt;/span&gt;, &lt;span class="str"&gt;"1"&lt;/span&gt;),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Method"&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"ID"&lt;/span&gt;, &lt;span class="str"&gt;"1"&lt;/span&gt;),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"Cmd"&lt;/span&gt;, &lt;span class="str"&gt;"Delete"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;"Field"&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                                &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;"Name"&lt;/span&gt;, &lt;span class="str"&gt;"ID"&lt;/span&gt;),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                                item_id)));&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;"\n\nDeleting Item to the list . . ."&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                Console.WriteLine(ws.UpdateListItems(listID, delete_item.GetXmlElement()).OuterXml);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (TimeoutException timeout)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the timeout exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (CommunicationException commException)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;                &lt;span class="rem"&gt;// Handle the communication exception.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                ws.Abort();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;BTW the web service takes a XmlElement but I like working with the new XElement better. I altered an extension method &lt;a href="http://blogs.msdn.com/ericwhite/archive/2008/12/22/convert-xelement-to-xmlnode-and-convert-xmlnode-to-xelement.aspx" mce_href="http://blogs.msdn.com/ericwhite/archive/2008/12/22/convert-xelement-to-xmlnode-and-convert-xmlnode-to-xelement.aspx"&gt;Eric White&lt;/a&gt; wrote that does the conversion. &lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; XmlElement GetXmlElement(&lt;span class="kwrd"&gt;this&lt;/span&gt; XElement element)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (XmlReader xmlReader = element.CreateReader())&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                XmlDocument xmlDoc = &lt;span class="kwrd"&gt;new&lt;/span&gt; XmlDocument();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                xmlDoc.Load(xmlReader);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; xmlDoc.FirstChild &lt;span class="kwrd"&gt;as&lt;/span&gt; XmlElement;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;There are a bunch of libraries out there to aid in this process. The one that has got me the most excited is LINQ to SharePoint &lt;a href="http://www.codeplex.com/LINQtoSharePoint" mce_href="http://www.codeplex.com/LINQtoSharePoint"&gt;http://www.codeplex.com/LINQtoSharePoint&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/279.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/02/24/sharepoint-webservice-are-your-friend.aspx</guid>
            <pubDate>Wed, 25 Feb 2009 00:50:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/279.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/02/24/sharepoint-webservice-are-your-friend.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/279.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/279.aspx</trackback:ping>
        </item>
        <item>
            <title>Ramp Up</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/01/06/ramp-up.aspx</link>
            <description>&lt;p mce_keep="true"&gt;Microsoft has started a new program called Ramp UP (&lt;a href="http://msdn.microsoft.com/en-us/rampup/default.aspx" mce_href="http://msdn.microsoft.com/en-us/rampup/default.aspx"&gt;http://msdn.microsoft.com/en-us/rampup/default.aspx&lt;/a&gt;). “Ramp Up is a free, online, community-based learning program, with a number of different tracks that will help you build your portfolio of professional development skills. Ramp Up has a solid foundation of premium technical content from subject-matter gurus, and provides easy-to-access content in a variety of forms that guide you in learning the important skills.”&lt;br /&gt;At this time they have 6 tracks. . . &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div mce_keep="true"&gt;SharePoint for Developers (Part 1)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div mce_keep="true"&gt;Visual Studio 2008&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div mce_keep="true"&gt;Aspiring Developer (migrating to VS 2005)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div mce_keep="true"&gt;Java Developer (migrating to VS 2005)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div mce_keep="true"&gt;VB 6.0 Developer (migrating to VS 2005)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div mce_keep="true"&gt;VS 2002/2003 Developer (migrating to VS 2005)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p mce_keep="true"&gt;Check it out!&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/276.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/01/06/ramp-up.aspx</guid>
            <pubDate>Tue, 06 Jan 2009 18:08:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/276.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2009/01/06/ramp-up.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/276.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/276.aspx</trackback:ping>
        </item>
        <item>
            <title>Microsoft Web Platform Installer</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/11/04/microsoft-web-platform-installer.aspx</link>
            <description>While I was not able to attend PDC, Microsoft did good by the community and has provided free recordings of many of the sessions (&lt;a href="http://www.microsoftpdc.com/"&gt;http://www.microsoftpdc.com&lt;/a&gt;). While this is cool and has some great content, the purpose of this blog post is to talk about the Microsoft Web Platform Installer (&lt;a href="http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx"&gt;http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx&lt;/a&gt;). This tool allows for single deployment model for all the bits and pieces needed to put together a clean PC image for a developer use (i.e. VS.NET, SQL SVR, and IIS). IMHO this is a great idea and Microsoft is only scratching the surface of what they could  do in this space. Currently the tool works for the express editions, which is good for the hobbyist and more importantly at schools. With my experiences teaching .NET at the University anything that helps bring students into a working development environment faster and easier is goodness. However this will become much more valuable when it gets pushed into the enterprise environment. Currently one of the most frustrating jobs that I have my day job is helping team members with the setup of development machines. Anything that MSFT can do to stream line and reduce errors in the process of installing the entire suite of development tools is much appreciated.&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/270.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/11/04/microsoft-web-platform-installer.aspx</guid>
            <pubDate>Tue, 04 Nov 2008 07:39:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/270.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/11/04/microsoft-web-platform-installer.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/270.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/270.aspx</trackback:ping>
        </item>
        <item>
            <title>ZooomIt</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/10/30/zooomit.aspx</link>
            <description>A must have presentation aid for any technical presentation, additionally good if you have a hard time seeing area’s of the screen and it is free. Get it here &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx"&gt;http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx&lt;/a&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/269.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/10/30/zooomit.aspx</guid>
            <pubDate>Thu, 30 Oct 2008 21:54:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/269.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/10/30/zooomit.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/269.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/269.aspx</trackback:ping>
        </item>
        <item>
            <title>ALM Advisor</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/10/23/alm-advisor.aspx</link>
            <description>&lt;p mce_keep="true"&gt;Microsoft has a free tool called the ALM Advisor. As you know ALM or application lifecycle management is “the process of delivering software as a continuously repeating cycle of inter-related steps: definition, design, development, testing, deployment and management” (&lt;a href="http://en.wikipedia.org/wiki/Application_lifecycle_management"&gt;http://en.wikipedia.org/wiki/Application_lifecycle_management&lt;/a&gt;). What the tool does is ask you a bunch of questions about how things are done currently. It then assess the maturity of your ALM process, and make recommendations on steps to make the process more mature. The good thing from what I have seen is that it breaks the process down into steps that can be more easily phased in over time and it provides a mechanism to do longer term process improvement planning. &lt;/p&gt;
&lt;p mce_keep="true"&gt;&lt;a href="https://www.microsoft.com/almassessment"&gt;https://www.microsoft.com/almassessment&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/266.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/10/23/alm-advisor.aspx</guid>
            <pubDate>Thu, 23 Oct 2008 17:40:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/266.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/10/23/alm-advisor.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/266.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/266.aspx</trackback:ping>
        </item>
        <item>
            <title>Shawn @ Tech ED</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/09/10/shawn-tech-ed.aspx</link>
            <description>&lt;p&gt;While I was at Tech ED 2008 in Orlando FL I participated in a roundtable discussion on "How to make community better" with Dan Egan (President of INETA, &lt;a href="http://www.ineta.org/"&gt;http://www.ineta.org&lt;/a&gt;), Dave Noderer (UG Leader, CO Founder of INETA, &lt;a href="http://www.fladotnet.net/"&gt;http://www.fladotnet.net&lt;/a&gt;),  Christine Betts (GM of the Technical Audience Global Marketing for Microsoft) and Mark Wilson (Charlotte Enterprise Dev Guild, &lt;a href="http://www.developersguild.org/"&gt;http://www.developersguild.org&lt;/a&gt;). They thought it was a good idea to record it, so I figured I would share &lt;a href="http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/08_NA_DEV_TEOPanel_36_low.asx"&gt;http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/08_NA_DEV_TEOPanel_36_low.asx&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/264.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/09/10/shawn-tech-ed.aspx</guid>
            <pubDate>Wed, 10 Sep 2008 05:13:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/264.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/09/10/shawn-tech-ed.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/264.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/264.aspx</trackback:ping>
        </item>
        <item>
            <title>Building a solution with many projects is SLOWWWWWWW</title>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/06/04/building-a-solution-with-many-projects-is-slowwwwwww.aspx</link>
            <description>&lt;p&gt;This week I am attending TechEd in Orlando FL and I was honored to be requested to work the C# booth by the MVP and C# teams. I got many great questions from attendees and I thought I would post some of the more interesting ones. So here goes. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;An attendee, let’s call him Bob, came up and said that his builds were very slow. After some chatting Bob told me that he has a huge number of projects in his solution all “joined” together using project references. This is a convent feature of Visual Studio that provides for “cascading” builds. By that I mean if you change some code in a business library when VS does the build it will build that library first, copy the dll into any projects that reference it, then build those projects. This is very convent but as Bob noted when he changes one line of code in a method it causes the entire project to rebuild. This is not a big deal if the project is small and the builds are quick but if the project is large this could be a very painful experience. So we tossed around some things I would classify as workarounds like for example writing some post build steps that would move dll’s around and the like. But in my opinion the best solution is a properly architected solution. To that end I pointed Bob to an article put together by the P&amp;amp;P group at Microsoft that provides guidance for the architecture of large application with many projects and how to break them up into manageable chunks. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Structuring Projects and Solutions &lt;br /&gt;&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=Chapter%203%20-%20Structuring%20Projects%20and%20Solutions%20in%20Source%20Control"&gt;http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=Chapter%203%20-%20Structuring%20Projects%20and%20Solutions%20in%20Source%20Control&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt; &lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/250.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>sweisfeld</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/06/04/building-a-solution-with-many-projects-is-slowwwwwww.aspx</guid>
            <pubDate>Wed, 04 Jun 2008 16:47:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/250.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2008/06/04/building-a-solution-with-many-projects-is-slowwwwwww.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/250.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/250.aspx</trackback:ping>
        </item>
    </channel>
</rss>
