<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Steve Fox's OBA Ramblings : MOSS platform</title><link>http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx</link><description>Tags: MOSS platform</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Retrieve SharePoint List Data with XLINQ using VS 2010 Beta 1</title><link>http://blogs.msdn.com/steve_fox/archive/2009/06/17/retrieve-sharepoint-list-data-with-xlinq-using-vs-2010-beta-1.aspx</link><pubDate>Wed, 17 Jun 2009 22:30:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9770250</guid><dc:creator>Steve Fox</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/9770250.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=9770250</wfw:commentRss><description>&lt;p&gt;One of the key things you’ll likely want to do with SharePoint is interact a lot with lists. In earlier posts on this blog, I’ve discussed adding data to a SharePoint list using both custom and native SharePoint services (i.e. services that ship with either WSS or MOSS—when I say SharePoint I include both of these SharePoint pieces). A recent &lt;a href="http://blogs.msdn.com/arpans/archive/2007/07/24/sharepoint-web-service-example-grabbing-wiki-content.aspx"&gt;post&lt;/a&gt; got me thinking about how to not only retrieve data from SharePoint, but then having the ability to take that data offline (e.g. save to a file) or to use it in-memory for other types of processing (e.g. filtering/management within a UI), so I put together a small application that does a couple of things: &lt;/p&gt;  &lt;p&gt;1. Retrieves data from a SharePoint list using the Lists web service (a service native to SharePoint 2007);&lt;/p&gt;  &lt;p&gt;2. Uses XML to add items to a custom object; and&lt;/p&gt;  &lt;p&gt;3. Uses LINQ to query the object and filter/manage into a XAML UI. &lt;/p&gt;  &lt;p&gt;All this using the latest Visual Studio 2010 Beta bits. &lt;/p&gt;  &lt;p&gt;First, let’s take a quick look at the SharePoint list. It’s called “Products” and lives on my test SharePoint server (“http://stefoxdemo”). You can see a cropped screenshot of the list. It’s pretty simple and should be thought of as such because we really just want to show data coming from the list—not hoards of data. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_14.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="102" alt="image" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_thumb_6.png" width="515" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you’ve never created a list, you open SharePoint, navigate to your home page, click View All Site Content, click Create, and under Custom Lists click Custom List. Complete the Name and Description fields for your new list and click Create. &lt;/p&gt;  &lt;p&gt;Now that you’ve created the list, open Visual Studio 2010 and click File, New Project. Select WPF Application and provide a name (e.g. MySharePointData) and location for your project and click OK—see the figure below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="334" alt="image" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_thumb.png" width="481" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We’re going to keep things simple here and add nine controls to the WPF UI:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Four labels&lt;/li&gt;    &lt;li&gt;One listbox&lt;/li&gt;    &lt;li&gt;Two textboxes&lt;/li&gt;    &lt;li&gt;Two buttons&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you inspect the XAML code below, you’ll see that this is the resulting code that was generated from me dragging and dropping controls from the VS 2010 Toolbox onto the XAML designer. Check out the different properties of the controls. &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;Window x:Class=&amp;quot;MySharePointData.Window1&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xmlns=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;"&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/font&gt;&lt;/a&gt;    &lt;br /&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xmlns:x=&amp;quot;&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;"&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/font&gt;&lt;/a&gt;    &lt;br /&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Title=&amp;quot;SharePoint Data&amp;quot; Height=&amp;quot;321&amp;quot; Width=&amp;quot;356&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Grid&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Button Content=&amp;quot;Get Data&amp;quot; Height=&amp;quot;23&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;54,233,0,0&amp;quot; Name=&amp;quot;btnGetData&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;75&amp;quot; Click=&amp;quot;btnGetData_Click&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Button Content=&amp;quot;Exit&amp;quot; Height=&amp;quot;23&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;163,233,0,0&amp;quot; Name=&amp;quot;btnExit&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;75&amp;quot; Click=&amp;quot;btnExit_Click&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Label Content=&amp;quot;My SharePoint List Data&amp;quot; Height=&amp;quot;28&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;21,12,0,0&amp;quot; Name=&amp;quot;lblFormTitle&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;232&amp;quot; FontSize=&amp;quot;14&amp;quot; FontWeight=&amp;quot;Bold&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Label Content=&amp;quot;Product Name:&amp;quot; Height=&amp;quot;28&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;21,64,0,0&amp;quot; Name=&amp;quot;lblTitle&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;89&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Label Content=&amp;quot;Product Num:&amp;quot; Height=&amp;quot;28&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;21,110,0,0&amp;quot; Name=&amp;quot;lblProductNum&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;120&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Label Content=&amp;quot;Product Sales:&amp;quot; Height=&amp;quot;28&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;21,161,0,0&amp;quot; Name=&amp;quot;lblSales&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;120&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ListBox SelectionChanged=&amp;quot;lstBxProducts_SelectionChanged&amp;quot; Height=&amp;quot;37&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;116,55,0,0&amp;quot; Name=&amp;quot;lstBxProducts&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;196&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBox Height=&amp;quot;25&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;116,110,0,0&amp;quot; Name=&amp;quot;txtBxProductNum&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;196&amp;quot; IsEnabled=&amp;quot;False&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBox Height=&amp;quot;25&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;116,161,0,0&amp;quot; Name=&amp;quot;txtBxSales&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;196&amp;quot; IsEnabled=&amp;quot;False&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Grid&amp;gt;      &lt;br /&gt;&amp;lt;/Window&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The resulting UI from the above code looks like the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="408" alt="image" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_thumb_1.png" width="524" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you’ve created your WPF UI, you now will want to add some code-behind to actually do something. The first thing you’ll want to do is to add the SharePoint Lists web service. This provides you with the ability to interact with lists and data in your lists. You can see from the figure below the subset of methods that are available to you. To add the web service to the VS 2010 project, right click References and select Service References. Click Advanced and then click Add Web Reference, and then discover the Lists web service by clicking Web Services on the Local Machine (or entering the service URL in the URL: field, e.g. “&lt;a title="http://stefoxdemo/_vti_bin/Lists.asmx" href="http://stefoxdemo/_vti_bin/Lists.asmx"&gt;http://stefoxdemo/_vti_bin/Lists.asmx&lt;/a&gt;”). Provide a name for the service reference (e.g. SPListGetData) and click Add Reference. You now have a reference added to the Lists web service and can use it in code. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="351" alt="image" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_thumb_2.png" width="506" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;One thing I used in my solution was a custom object, which I used to store (in-memory) a list collection of the different elements in my list. This allowed me to use the collection of objects later and run a simple LINQ query against it. To add an object, right-click the project node and select Add, and then select Class.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="396" alt="image" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_thumb_3.png" width="525" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The custom object comprises three strings (mapping to the three parts of my SharePoint list): 1) a title (or product name), 2) a product number, and 3) a sales figure. The code I have for my custom object is as follows—note that I’ve set the properties on my object to both read/write, but in this file all we’re really doing is reading.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System;     &lt;br /&gt;using System.Collections.Generic;      &lt;br /&gt;using System.Linq;      &lt;br /&gt;using System.Text; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;namespace MySharePointData     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160; public class MySPData      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string clsTitle { get; set; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string clsProductNum { get; set; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string clsSales { get; set; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;After you’ve added the class to the project, you can now add some of the heavier-weight code. This code is going to set some class-level variables, use the Lists web service to get the data in my list, iterate through the list and use XLINQ to create and populate the custom object, and then if the user changes the selection on the list the fields will be updated through a LINQ query. &lt;/p&gt;  &lt;p&gt;Let’s start with the class-level variables. I’ve added a string to represent the selected item in the listbox, a list collection object (which will be in-memory collection object) called lstSPData, and the declaration of an XDocument (called myXMLDoc), which will be used as the document to which I’ll add the items from the SharePoint list. &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;…&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string strSelectedItem = &amp;quot;&amp;quot;; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;List&amp;lt;MySPData&amp;gt; lstSPData = new List&amp;lt;MySPData&amp;gt;(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;XDocument myXMLDoc = new XDocument();     &lt;br /&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;…&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Once you’ve added these three top-level items to the class, you’ll want to double-click on one of the buttons you added to the UI and then add some code for that. In my case, the name of the button was btnGetData and the subsequent event was called btnGetData_Click. The code below shows what I added into that method. There are a few things that are interesting in the code. For example, note that one of the first things we do is create a proxy for the web service, pass my default credentials to call the service (SharePoint must know who you are even at the service level), and then uses an XMLNode object to get all of the items from the Products list. You’ll then also see that I’ve began creating an XML object, but creating an XElement and then setting the declaration type of the XML Document I created earlier. Then to get the data out of the object, you iterate through the nodes and grab the inner text of the XML. In this case, you need to be sure you’re pulling from the SharePoint XML (this is the “ows_Title,” “ows_ProductNum,” and “ows_Sales”). From there on, two major things are happening. The first is that I’m reassigning the XML data from the object being passed back from the web service call with some XML that I’m more comfortable with (and a structure that I prefer to work with), and then I’m creating an instance of the custom object I created and then am populating the list collection for that custom object as I iterate through each of the XML nodes of the returned XML data. You’ll then see two lines of code lying outside of the foreach statement, and this is where I’m first adding the more comfortable version of the XML data to my originally-created XML document, and then I’m saving that XML document to a file share. &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void btnGetData_Click(object sender, RoutedEventArgs e)     &lt;br /&gt;{ &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; MySharePointData.SPListGetData.Lists proxy = new MySharePointData.SPListGetData.Lists();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; proxy.Url = &amp;quot;&lt;/font&gt;&lt;a href="http://stefoxdemo/_vti_bin/Lists.asmx&amp;quot;;"&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://stefoxdemo/_vti_bin/Lists.asmx&amp;quot;;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; XmlNode myLIstItems = proxy.GetListItems(&amp;quot;Products&amp;quot;, null, null, null, null, null, null); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; XElement newRootElement = new XElement(&amp;quot;NewData&amp;quot;);&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; myXMLDoc.Declaration = new XDeclaration(&amp;quot;1.0&amp;quot;, &amp;quot;utf-8&amp;quot;, &amp;quot;true&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; foreach (XmlNode outerNode in myLIstItems.ChildNodes)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (outerNode.NodeType.Equals(System.Xml.XmlNodeType.Element))     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (XmlNode node in outerNode.ChildNodes)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (node.NodeType.Equals(System.Xml.XmlNodeType.Element))     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode listFieldTitle = node.Attributes.GetNamedItem(&amp;quot;ows_Title&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode listFieldProductNum = node.Attributes.GetNamedItem(&amp;quot;ows_ProductNum&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode listFieldSales = node.Attributes.GetNamedItem(&amp;quot;ows_Sales&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strListFieldTitle = listFieldTitle.InnerText;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strListFieldProductNum = listFieldProductNum.InnerText;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strListFieldSales = listFieldSales.InnerText; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XElement xmlData = new XElement(&amp;quot;MyData&amp;quot;,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new XElement(&amp;quot;Title&amp;quot;, strListFieldTitle),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new XElement(&amp;quot;ProductNum&amp;quot;, strListFieldProductNum),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new XElement(&amp;quot;Sales&amp;quot;, strListFieldSales)); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newRootElement.Add(xmlData);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstBxProducts.Items.Add(strListFieldTitle); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MySPData clsSPDataInstance = new MySPData(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clsSPDataInstance.clsTitle = strListFieldTitle;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clsSPDataInstance.clsProductNum = strListFieldProductNum;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clsSPDataInstance.clsSales = strListFieldSales;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstSPData.Add(clsSPDataInstance); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; myXMLDoc.Add(newRootElement);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; myXMLDoc.Save(&amp;quot;c:\\SPData\\MySharePointData.xml&amp;quot;);       &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The key takeaway from this, though, is that there are now two data structures in this app: one that I’ve created as an XML file and saved to disk (or alternatively could be used to inject into another program, say a Word document through Open XML); and one that now represents a list collection of the custom object—this is my in-memory version of the data that I can use for querying. &lt;/p&gt;  &lt;p&gt;The next bit of code we’ll look at handles the user interacting with the listbox; that is, when the user changes their selection this will invoke the lstBxProducts_SelectionChanged event, which triggers the following code. This code is fairly straight-forward. I’ve set three string variables as temporary variables, grabbed the currently selected item in the listbox (and am storing it in strSelectedItem) and then am using a LINQ query to get the other data in the record that maps to the product name selected in the listbox. Given the fact that this results in a list of one record, I’m then using the First method to grab the first (and only) element in that record and assigning the text property of the controls to those strings. &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void lstBxProducts_SelectionChanged(object sender, SelectionChangedEventArgs e)     &lt;br /&gt;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strTempTitle = &amp;quot;&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strTempProductNum = &amp;quot;&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strTempSales = &amp;quot;&amp;quot;; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strSelectedItem = lstBxProducts.SelectedItem.ToString(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var lstXMLObject = from lstXML in lstSPData     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where lstXML.clsTitle == strSelectedItem      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select new      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strTempTitle = lstXML.clsTitle,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strTempProductNum = lstXML.clsProductNum,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strTempSales = lstXML.clsSales &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; txtBxProductNum.Text = lstXMLObject.First().strTempProductNum;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; txtBxSales.Text = lstXMLObject.First().strTempSales; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The finished product results in the following cool and slick (okay, not so much…but functional) WPF UI first getting SharePoint list data and then allowing you to query that data in the context of your whiz-bang UI. Note that it also saves the XML to your local file system. When you F5, you should see the following UI. Click the Get Data button, which triggers the service call. This will populate the Product Name listbox and subsequently allow you to click on an item in the listbox and filter on that item. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_16.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="296" alt="image" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/RetrievingSharePointListDatausingXLINQ_9877/image_thumb_7.png" width="327" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you browse to the location where you saved your XML file (in my case this was c:\SPData), you will find an XML file that hopefully resembles the data you have in your list. &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;     &lt;br /&gt;&amp;lt;NewData&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;MyData&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title&amp;gt;ALK-Bike Crank&amp;lt;/Title&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ProductNum&amp;gt;0398021&amp;lt;/ProductNum&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Sales&amp;gt;$209,002.98&amp;lt;/Sales&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/MyData&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;MyData&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title&amp;gt;OUU-Bicycle Riding Helmet&amp;lt;/Title&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ProductNum&amp;gt;38271920&amp;lt;/ProductNum&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Sales&amp;gt;$901,199.23&amp;lt;/Sales&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/MyData&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;MyData&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title&amp;gt;YTT-Road Bicycle Wheel&amp;lt;/Title&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ProductNum&amp;gt;03929901&amp;lt;/ProductNum&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Sales&amp;gt;$890,872.12&amp;lt;/Sales&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/MyData&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;MyData&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title&amp;gt;HGT-Off-Road Bike Gear Pack&amp;lt;/Title&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ProductNum&amp;gt;3746281&amp;lt;/ProductNum&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Sales&amp;gt;$459,922.10&amp;lt;/Sales&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/MyData&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;MyData&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title&amp;gt;BKP-Bianchi Racing Bike&amp;lt;/Title&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ProductNum&amp;gt;3902443&amp;lt;/ProductNum&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Sales&amp;gt;$2,019,100.29&amp;lt;/Sales&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/MyData&amp;gt;      &lt;br /&gt;&amp;lt;/NewData&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Lastly, the Exit button you see on my UI also calls a method; basically a simple method to exit the application. The code for this is as follows: &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void btnExit_Click(object sender, RoutedEventArgs e)     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Application.Current.Shutdown();      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;And that’s it! Wasn’t that fun? I thought so. For your reference, the entire code sample from the core Windows.xaml.cs file is pasted below.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System;     &lt;br /&gt;using System.Collections.Generic;      &lt;br /&gt;using System.Linq;      &lt;br /&gt;using System.Text;      &lt;br /&gt;using System.Windows;      &lt;br /&gt;using System.Windows.Controls;      &lt;br /&gt;using System.Windows.Data;      &lt;br /&gt;using System.Windows.Documents;      &lt;br /&gt;using System.Windows.Input;      &lt;br /&gt;using System.Windows.Media;      &lt;br /&gt;using System.Windows.Media.Imaging;      &lt;br /&gt;using System.Windows.Navigation;      &lt;br /&gt;using System.Windows.Shapes;      &lt;br /&gt;using System.Xml;      &lt;br /&gt;using System.Xml.Linq; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;namespace MySharePointData     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public partial class Window1 : Window      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Window1()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strSelectedItem = &amp;quot;&amp;quot;; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;MySPData&amp;gt; lstSPData = new List&amp;lt;MySPData&amp;gt;(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XDocument myXMLDoc = new XDocument();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void btnGetData_Click(object sender, RoutedEventArgs e)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MySharePointData.SPListGetData.Lists proxy = new MySharePointData.SPListGetData.Lists();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; proxy.Url = &amp;quot;&lt;/font&gt;&lt;a href="http://stefoxdemo/_vti_bin/Lists.asmx&amp;quot;;"&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://stefoxdemo/_vti_bin/Lists.asmx&amp;quot;;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode myLIstItems = proxy.GetListItems(&amp;quot;TR8&amp;quot;, null, null, null, null, null, null);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Creation      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XElement newRootElement = new XElement(&amp;quot;NewData&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; myXMLDoc.Declaration = new XDeclaration(&amp;quot;1.0&amp;quot;, &amp;quot;utf-8&amp;quot;, &amp;quot;true&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (XmlNode outerNode in myLIstItems.ChildNodes)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (outerNode.NodeType.Equals(System.Xml.XmlNodeType.Element))     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (XmlNode node in outerNode.ChildNodes)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (node.NodeType.Equals(System.Xml.XmlNodeType.Element))     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode listFieldTitle = node.Attributes.GetNamedItem(&amp;quot;ows_Title&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode listFieldProductNum = node.Attributes.GetNamedItem(&amp;quot;ows_ProductNum&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XmlNode listFieldSales = node.Attributes.GetNamedItem(&amp;quot;ows_Sales&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strListFieldTitle = listFieldTitle.InnerText;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strListFieldProductNum = listFieldProductNum.InnerText;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strListFieldSales = listFieldSales.InnerText; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XElement xmlData = new XElement(&amp;quot;MyData&amp;quot;,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new XElement(&amp;quot;Title&amp;quot;, strListFieldTitle),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new XElement(&amp;quot;ProductNum&amp;quot;, strListFieldProductNum),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new XElement(&amp;quot;Sales&amp;quot;, strListFieldSales)); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newRootElement.Add(xmlData);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //tempAll = strListFieldTitle + &amp;quot; &amp;quot; + strListFieldProductNum + &amp;quot; &amp;quot; + strListFieldSales;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstBxProducts.Items.Add(strListFieldTitle); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MySPData clsSPDataInstance = new MySPData(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clsSPDataInstance.clsTitle = strListFieldTitle;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clsSPDataInstance.clsProductNum = strListFieldProductNum;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clsSPDataInstance.clsSales = strListFieldSales;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstSPData.Add(clsSPDataInstance); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; myXMLDoc.Add(newRootElement);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; myXMLDoc.Save(&amp;quot;c:\\SPData\\MySharePointData.xml&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MessageBox.Show(&amp;quot;XML Data Saved to File!&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void btnExit_Click(object sender, RoutedEventArgs e)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Application.Current.Shutdown();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void lstBxProducts_SelectionChanged(object sender, SelectionChangedEventArgs e)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strTempTitle = &amp;quot;&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strTempProductNum = &amp;quot;&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string strTempSales = &amp;quot;&amp;quot;; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strSelectedItem = lstBxProducts.SelectedItem.ToString(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var lstXMLObject = from lstXML in lstSPData     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where lstXML.clsTitle == strSelectedItem      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select new      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strTempTitle = lstXML.clsTitle,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strTempProductNum = lstXML.clsProductNum,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strTempSales = lstXML.clsSales &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; txtBxProductNum.Text = lstXMLObject.First().strTempProductNum;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; txtBxSales.Text = lstXMLObject.First().strTempSales; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Happy coding!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9770250" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Steve+Fox/default.aspx">Steve Fox</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Web+service/default.aspx">Web service</category></item><item><title>OBA Sample Application Kit for SAP &amp;amp; Siebel Released to Web</title><link>http://blogs.msdn.com/steve_fox/archive/2009/06/08/oba-sample-application-kit-for-sap-siebel-released-to-web.aspx</link><pubDate>Tue, 09 Jun 2009 00:57:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9709691</guid><dc:creator>Steve Fox</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/9709691.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=9709691</wfw:commentRss><description>&lt;p&gt;Over the past few months, we’ve received some very positive feedback on the OBA Sample Application Kits that we’ve released. Well, today we release to web the latest in the family of kits, the &lt;a href="http://code.msdn.microsoft.com/sapsiebel"&gt;OBA Sample Application Kit for SAP &amp;amp; Siebel&lt;/a&gt;. Included in this kit are: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Overview whitepaper &lt;/li&gt;    &lt;li&gt;Source code&lt;/li&gt;    &lt;li&gt;Installation guide&lt;/li&gt;    &lt;li&gt;Developer guide&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As per the diagram below, this latest OBA kit provides guidance on how developers can integrate Outlook and MOSS 2007 with Siebel and SAP. It integrates a variety of key MS technologies (e.g. BizTalk LOB adapters, WCF, VSTO, and so on) to help you understand how you can integrate LOB systems such as Siebel and SAP into your Office and SharePoint solutions. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/OBASampleApplicationKitforSAPSiebelRelea_D228/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="323" alt="image" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/OBASampleApplicationKitforSAPSiebelRelea_D228/image_thumb.png" width="507" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The actual developer kit can be found here: &lt;a title="http://code.msdn.microsoft.com/sapsiebel" href="http://code.msdn.microsoft.com/sapsiebel"&gt;http://code.msdn.microsoft.com/sapsiebel&lt;/a&gt;. And for more information on other OBA developer kits, you can go here: &lt;a title="http://msdn.microsoft.com/en-us/office/cc442491.aspx" href="http://msdn.microsoft.com/en-us/office/cc442491.aspx"&gt;http://msdn.microsoft.com/en-us/office/cc442491.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;Steve&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9709691" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+platform/default.aspx">OBA platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Outlook+Addin/default.aspx">Outlook Addin</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Outlook+OBA/default.aspx">Outlook OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+Sample+Application+Kit/default.aspx">OBA Sample Application Kit</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Custom+Outlook+Form+Region/default.aspx">Custom Outlook Form Region</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Advanced+OBA/default.aspx">Advanced OBA</category></item><item><title>Silverlight, SharePoint, Services…Oh Yeah!!!</title><link>http://blogs.msdn.com/steve_fox/archive/2009/02/15/silverlight-sharepoint-services-oh-yeah.aspx</link><pubDate>Sun, 15 Feb 2009 05:05:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9423169</guid><dc:creator>Steve Fox</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/9423169.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=9423169</wfw:commentRss><description>&lt;p&gt;The last blog post I wrote was on interacting with SharePoint using services. One of the things that I’ve been quite involved in over the past year or so has been Silverlight and SharePoint integration. You will definitely see more of this type of development, so building off of my last post I decided to write a blog on consuming a web service with SharePoint.&lt;/p&gt;  &lt;p&gt;That said, this blog post will walk you through how to create a Web service that integrates with the SharePoint object model and then uses that service in a Silverlight application (which we’ll embed within SharePoint). It is an excerpt from a wider Silverlight and SharePoint 1-day training that I’ve been building at work (with the help of Advaiya). It also complements a book Paul Stubbs and I just wrote called “Professional SharePoint 2007 Development using Silverlight 2.” You can check this book out here: &lt;a title="http://www.amazon.com/Professional-Microsoft-SharePoint-Development-Silverlight/dp/0470434007/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1234663767&amp;amp;sr=8-1" href="http://www.amazon.com/Professional-Microsoft-SharePoint-Development-Silverlight/dp/0470434007/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1234663767&amp;amp;sr=8-1"&gt;http://www.amazon.com/Professional-Microsoft-SharePoint-Development-Silverlight/dp/0470434007/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1234663767&amp;amp;sr=8-1&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: I will cover WCF, Siverlight and SharePoint in a future blog post.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Your Environment&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Before you begin, make sure you’ve got the following environment set up: &lt;/p&gt;  &lt;p&gt;1.&amp;#160; Your web.config supports Silverlight. Check out the SIlverlight and SharePoint Blueprint (&lt;a title="http://www.codeplex.com/SL4SP" href="http://www.codeplex.com/SL4SP"&gt;http://www.codeplex.com/SL4SP&lt;/a&gt;) for more information as well as the recent MSDN article on this subject (&lt;a title="http://msdn.microsoft.com/en-us/magazine/dd148643.aspx" href="http://msdn.microsoft.com/en-us/magazine/dd148643.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd148643.aspx&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;2. Windows Server 2003, 2008, Silverlight runtime, Silverlight Tools for VS 2008 SP 1, VS 2008 SP1, and VSeWSS 1.2.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Building the Service&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The first thing you need to do is build the Web service. The Web service will be an ASMX-based web service (i.e. ASP.NET). (We will cover WCF-based services and Silverlight later on in the workshop.) To create the service, open Visual Studio 2008. Select File, New Web Site and then select ASP.NET Web Service. Choose the File System as the location and then select the language (e.g. Visual C#) and provide a path for the project. Click OK. Figure 1 provides a screenshot of the New Web Site dialog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image002_2.jpg"&gt;&lt;img title="clip_image002" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="334" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image002_thumb.jpg" width="519" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222388845"&gt;Figure &lt;/a&gt;1: New Web Site Dialog&lt;/p&gt;  &lt;p&gt;In Solution Explorer, change the names of the .asmx and .cs service files from the default Service.asmx and Service.cs (in the App_Code folder) to MyFirstSPService.asmx and MyFirstSPService.cs. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image004_2.jpg"&gt;&lt;img title="clip_image004" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="213" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image004_thumb.jpg" width="276" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 2: Renaming the Service Files&lt;/p&gt;  &lt;p&gt;You’ll also need to update the class references and statements in the newly named files. For example, in MyFirstSPService.asmx ensure you have the following code:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;%@ WebService Language=&amp;quot;C#&amp;quot; CodeBehind=&amp;quot;~/App_Code/MyFirstSPService.cs&amp;quot; Class=&amp;quot;MyFirstSPService&amp;quot; %&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And in the MyFirstSPService.cs file, ensure you have the following code:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Collections.Generic;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Linq;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Web;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Web.Services;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[WebService(Namespace = &amp;quot;http://tempuri.org/&amp;quot;)]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;// [System.Web.Script.Services.ScriptService]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public class MyFirstSPService : System.Web.Services.WebService&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public MyFirstSPService () {&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;//Uncomment the following line if using designed components &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;//InitializeComponent(); &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[WebMethod]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public string HelloWorld() {&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;return &amp;quot;Hello World&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;To make sure that your solution compiles, hit F5 or select Debug, Start Debugging on the Visual Studio 2008 menu. You may be prompted with the dialog in Figure 3. If you are, click OK.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image006_2.jpg"&gt;&lt;img title="clip_image006" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="194" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image006_thumb.jpg" width="422" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222389566"&gt;Figure &lt;/a&gt;3: Debugging Not Enabled&lt;/p&gt;  &lt;p&gt;If your solution successfully compiles and debugs, you will be presented with the following debug screen.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image008_2.jpg"&gt;&lt;img title="clip_image008" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="369" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image008_thumb.jpg" width="470" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 4: Debug Screen&lt;/p&gt;  &lt;p&gt;In the debug screen, you will see a link at the top representing the one web method (HelloWorld) that is available within the service. Click the HelloWorld link and then to test the service click the Invoke button—which returns a string with the value: “Hello World.” See Figure 5. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image010_2.jpg"&gt;&lt;img title="clip_image010" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="226" alt="clip_image010" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image010_thumb.jpg" width="501" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222391550"&gt;Figure &lt;/a&gt;5: Invoking the Hello World Web Method&lt;/p&gt;  &lt;p&gt;Now that you’ve tested the default service that is created for you when you create a Web service, go back to the Visual Studio project and replace the HelloWorld web method code with the following web method:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[WebMethod]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public void useNormalMOSSApi(string SalesSPSite, string productName, string productNumber, string FY08Sales)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string strDashListRoot = SalesSPSite;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using (SPSite site = new SPSite(strDashListRoot))&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using (SPWeb web = site.OpenWeb())&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;web.AllowUnsafeUpdates = true;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SPList list = web.Lists[&amp;quot;FY 09 Sales&amp;quot;];&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SPListItem Item = list.Items.Add();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item[&amp;quot;Title&amp;quot;] = productName;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item[&amp;quot;ProductNum&amp;quot;] = productNumber;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item[&amp;quot;Sales&amp;quot;] = FY08Sales;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item.Update();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This code essentially enables you to set the context for a SharePoint web site and then add data to three different columns (Title, ProductNum and Sales) in a list called FY 09 Sales. &lt;/p&gt;  &lt;p&gt;When you add this code, you’ll get errors. This is because you need to add a reference to the Microsoft.SharePoint.dll. To do this, right-click the project name, select Add Reference and then select Windows SharePoint Services (as is shown in Figure 6) and click OK.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image012_2.jpg"&gt;&lt;img title="clip_image012" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="392" alt="clip_image012" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image012_thumb.jpg" width="465" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222392006"&gt;Figure &lt;/a&gt;6: Add Reference Dialog&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: In order for this service to work, you’d need to have created a custom list in SharePoint called “FY 09 Sales” with three columns of type Text called “Title,” “ProductNum,” and “Sales.” To do this, go to your SharePoint site and click View All Site Content at the root level site and then click Create. In the Custom Lists category, click Custom List. Make the Name “FY 09 Sales” and add a description to the Description field. When the list is created it will open by default. Click Settings and then select Create Column. Add each of the three aforementioned columns setting the type of information in the column to Single lines of text—see Figure 7. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image014_2.jpg"&gt;&lt;img title="clip_image014" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="286" alt="clip_image014" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image014_thumb.jpg" width="255" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222392293"&gt;Figure &lt;/a&gt;7: Setting the Column Type&lt;/p&gt;  &lt;p&gt;Getting back to the service, now that you’ve added the reference to the SharePoint DLL, add a using statement at the top of the class as follows:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using Microsoft.SharePoint;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The code errors should go away. The full MyFirstSPService.cs file should look like the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Collections.Generic;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Linq;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Web;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Web.Services;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using Microsoft.SharePoint;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[WebService(Namespace = &amp;quot;http://tempuri.org/&amp;quot;)]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;// [System.Web.Script.Services.ScriptService]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public class MyFirstSPService : System.Web.Services.WebService&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public MyFirstSPService () {&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;//Uncomment the following line if using designed components &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;//InitializeComponent(); &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[WebMethod]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public void useNormalMOSSApi(string SalesSPSite, string productName, string productNumber, string FY08Sales)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string strDashListRoot = SalesSPSite;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using (SPSite site = new SPSite(strDashListRoot))&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using (SPWeb web = site.OpenWeb())&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;web.AllowUnsafeUpdates = true;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SPList list = web.Lists[&amp;quot;FY 09 Sales&amp;quot;];&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SPListItem Item = list.Items.Add();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item[&amp;quot;Title&amp;quot;] = productName;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item[&amp;quot;ProductNum&amp;quot;] = productNumber;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item[&amp;quot;Sales&amp;quot;] = FY08Sales;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Item.Update();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;To test this, build the web site solution. Hit F5 and then test out the web method.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: You must create the SharePoint list before you can successfully test out the service.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image016_2.jpg"&gt;&lt;img title="clip_image016" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="362" alt="clip_image016" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image016_thumb.jpg" width="506" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 8: Testing the Service Call&lt;/p&gt;  &lt;p&gt;If your service is successful, you should have a result similar to the following in your SharePoint list:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image018_2.jpg"&gt;&lt;img title="clip_image018" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="87" alt="clip_image018" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image018_thumb.jpg" width="501" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 9: Service Result in SharePoint&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Deploying the Service&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Now that you’ve built the service, you need to deploy it. We’ll deploy it to IIS 7.0. If you’re using another version of IIS, the general process you’ll need to follow is to 1) Create a web site, 2) map the virtual path to the root web site path of the service, and 3) set permissions for the service. &lt;/p&gt;  &lt;p&gt;Open IIS and then expand the Connections until you see the web sites. Right-click Web Sites and select Add Web Site. Give the site a name, for example MyFirstSPServiceIISSite and then map the physical path of the service you just created to the IIS web site. See Figure 10. Assign an unused port. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: To test the service out on the local environment, click Test Settings. This will tell you if the service is reachable. If you do not get to successful tests, you’ll need to adjust the Connect as… settings. One way is to explicitly set the calling service with your (that is the local Windows credentials) to make sure the call will succeed. You then also need to go to the Authentication option in the Features view and set Windows Authentication to Enabled. In a production environment, you’ll need to use different settings—potentially having a user (e.g. IIS_User) for your service and enabling ASP.NET Authentication. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image020_2.jpg"&gt;&lt;img title="clip_image020" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="405" alt="clip_image020" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image020_thumb.jpg" width="419" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222393253"&gt;Figure &lt;/a&gt;10: Creating the IIS Site&lt;/p&gt;  &lt;p&gt;When you‘ve done this, click View, Refresh and then select MyFirstSPServiceIISSite in the Web Sites list and select Content View. You should see something similar to Figure 11. To make sure you’ll be able to &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image022_2.jpg"&gt;&lt;img title="clip_image022" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="350" alt="clip_image022" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image022_thumb.jpg" width="446" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222393561"&gt;Figure &lt;/a&gt;11: Content View of Web Site in IIS &lt;/p&gt;  &lt;p&gt;At this point, you’ll be able to right-click the MyFirstSPService.asmx file and select Browse. Test out the web method again to make sure you have another successful call in the service to the SharePoint site—see Figure 12. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image024_2.jpg"&gt;&lt;img title="clip_image024" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="90" alt="clip_image024" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image024_thumb.jpg" width="486" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222393763"&gt;Figure &lt;/a&gt;12: Second Successful Call&lt;/p&gt;  &lt;p&gt;While all the service testing at each step in the development process may seem monotonous, it is recommended as a good defensive programming practice. This way, if the service fails you have a better idea of where in the process it failed. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Building the Silverlight and SharePoint Application&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Now that you’ve created the service, you can now create the client side application, which is the Silverlight application that will eventually be deployed to SharePoint. Let’s first create the Silverlight application. &lt;/p&gt;  &lt;p&gt;Open Visual Studio 2008 and create a new solution, using the Blank Solution template. To do this, click File, New Project, and then select the Visual Studio Solutions and Blank Solution template. Provide a name for your solution and then click OK. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image026_2.jpg"&gt;&lt;img title="clip_image026" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="296" alt="clip_image026" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image026_thumb.jpg" width="439" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 13: Creating a Blank Solution&lt;/p&gt;  &lt;p&gt;Right-click the solution and then select Add ,New Project, and then in the Project Types category select Silverlight. In the Templates category select Silverlight Application and provide a name for your application, for example SPSilverlightClient. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image028_2.jpg"&gt;&lt;img title="clip_image028" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="285" alt="clip_image028" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image028_thumb.jpg" width="445" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 14: New Silverlight Application&lt;/p&gt;  &lt;p&gt;When prompted, just select Automatically generate a test page… as the test environment for the Silverlight application. You do not need the full web site for this solution. Navigate to the Page.xaml file and add the following XAML code to create your Silverlight UI.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;UserControl x:Class=&amp;quot;SPSilverlightClient.Page&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;xmlns=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;750&amp;quot; Height=&amp;quot;380&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;Canvas x:Name=&amp;quot;LayoutRoot&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;Canvas Width=&amp;quot;550&amp;quot; Height=&amp;quot;300&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;Path Width=&amp;quot;550&amp;quot; Height=&amp;quot;300&amp;quot; Canvas.Left=&amp;quot;38&amp;quot; Canvas.Top=&amp;quot;9&amp;quot; Stretch=&amp;quot;Fill&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Data=&amp;quot;F1 M 42.336,8.86813L 257.336,8.86813C 259.545,8.86813 261.336,10.659 261.336,12.8681L 261.336,77.8681C 261.336,80.0773 259.545,81.8681 257.336,81.8681L 42.336,81.8681C 40.1269,81.8681 38.336,80.0773 38.336,77.8681L 38.336,12.8681C 38.336,10.659 40.1269,8.86813 42.336,8.86813 Z &amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;Path.Fill&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;LinearGradientBrush StartPoint=&amp;quot;0.75,0.7&amp;quot; EndPoint=&amp;quot;0.75,-0.01&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;LinearGradientBrush.GradientStops&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;GradientStop Color=&amp;quot;Azure&amp;quot; Offset=&amp;quot;0&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;GradientStop Color=&amp;quot;#FFDCDCDC&amp;quot; Offset=&amp;quot;0.8&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;GradientStop Color=&amp;quot;#FFC3C3C3&amp;quot; Offset=&amp;quot;1&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/LinearGradientBrush.GradientStops&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/LinearGradientBrush&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/Path.Fill&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/Path&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/Canvas&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;15&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;18&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;Sales Information for FY 09&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;#FFF3F3F3&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;51&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;16&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;18&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;Sales Information for FY 09&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;#FF666666&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;!-- User entry form text and controls.--&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock x:Name=&amp;quot;txtBlckSites&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;12&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;Available SharePoint Sites: &amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;#FF666666&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;ComboBox x:Name=&amp;quot;cmboBoxOfferings&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;210&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Height=&amp;quot;20&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;290&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;DropDownClosed=&amp;quot;cmboBoxOfferings_DropDownClosed&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;ComboBoxItem x:Name=&amp;quot;optionOne&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock x:Name=&amp;quot;txtSPDev&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://stefoxdemo&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/TextBlock&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/ComboBoxItem&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;ComboBoxItem x:Name=&amp;quot;optionTwo&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock x:Name=&amp;quot;txtVSDev&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://sharepoint/sites/spotw&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/TextBlock&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/ComboBoxItem&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;ComboBoxItem x:Name=&amp;quot;OptionThree&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock x:Name=&amp;quot;txtSQLSRVDev&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://sharepoint/sites/sp14&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/TextBlock&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/ComboBoxItem&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;ComboBoxItem x:Name=&amp;quot;OptionFour&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock x:Name=&amp;quot;txtAdvSPDev&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://my/sites/stefox&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/TextBlock&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/ComboBoxItem&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;ComboBoxItem x:Name=&amp;quot;OptionFive&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock x:Name=&amp;quot;txtClientDev&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;http://sharepoint/sites/signup&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/TextBlock&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/ComboBoxItem&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/ComboBox&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;90&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;12&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;Site Description: &amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;#FF666666&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock x:Name=&amp;quot;txtSiteDescr&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;210&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;90&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;12&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;Description Here.&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;Black&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;290&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;TextWrapping=&amp;quot;Wrap&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;130&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;12&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;Product Name: &amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;#FF666666&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBox x:Name=&amp;quot;txtProductName&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Height=&amp;quot;25&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;200&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;210&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;125&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;170&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;12&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;Product Number: &amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;#FF666666&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBox x:Name=&amp;quot;txtProductNum&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Height=&amp;quot;25&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;200&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;210&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;165&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBlock&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;215&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontFamily=&amp;quot;Trebuchet MS&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FontWeight=&amp;quot;Bold&amp;quot; FontSize=&amp;quot;12&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Text=&amp;quot;FY 09 Sales: &amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Foreground=&amp;quot;#FF666666&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;TextBox x:Name=&amp;quot;txtFY08Sales&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Height=&amp;quot;25&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;200&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;210&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;210&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;Button x:Name=&amp;quot;btnWebServiceCall&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Height=&amp;quot;25&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;60&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Content=&amp;quot;Insert&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;125&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;260&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Click=&amp;quot;btnWebServiceCall_Click&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;Button x:Name=&amp;quot;btnFieldsClear&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Height=&amp;quot;25&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Width=&amp;quot;60&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Content=&amp;quot;Clear&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Left=&amp;quot;215&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Canvas.Top=&amp;quot;260&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Click=&amp;quot;btnFieldsClear_Click&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/Canvas&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/UserControl&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;When complete, your Silverlight client UI should similar to Figure 15. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image030_2.jpg"&gt;&lt;img title="clip_image030" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="357" alt="clip_image030" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image030_thumb.jpg" width="455" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222394487"&gt;Figure &lt;/a&gt;15: Silverlight Client&lt;/p&gt;  &lt;p&gt;Notice that there are a number of key events that are associated with some of the controls in the XAML code. These correspond to code-behind events in the Page.xaml.cs file. Before we jump to the code-behind, add a reference to the service you created earlier. To do this, right click References and select Add Service Reference. To get the service URL, you can go into your IIS view, right-click the ASMX file and select Browse. Copy and paste the URL from the browser to the Address field in the Add Service Reference dialog—see Figure 16. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image032_2.jpg"&gt;&lt;img title="clip_image032" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="373" alt="clip_image032" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image032_thumb.jpg" width="463" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222394812"&gt;Figure &lt;/a&gt;16: Adding a Service Reference&lt;/p&gt;  &lt;p&gt;With the service added to the Silverlight client application, you can now add the code-behind that maps to the Silverlight UI. &lt;/p&gt;  &lt;p&gt;The first thing you’ll need is four class-level variables, which represent the data that we’re going to pass to the web method in our service. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string productName = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string productNumber = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string FY08Sales = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string SalesSPSite = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Then, you’ll need to add the other logic, which in the code to follow includes an event from the Insert button in the Silverlight UI and some logic that maps to the Clear button. &lt;/p&gt;  &lt;p&gt;The web service call, which is triggered from the button, looks like the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void btnWebServiceCall_Click(object sender, RoutedEventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;productName = txtProductName.Text;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;productNumber = txtProductNum.Text;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FY08Sales = txtFY08Sales.Text;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SPSilverlightClient.ASMXUpdateSPList.MyFirstSPServiceSoapClient proxy = new SPSilverlightClient.ASMXUpdateSPList.MyFirstSPServiceSoapClient();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;proxy.useNormalMOSSApiCompleted += new EventHandler&amp;lt;System.ComponentModel.AsyncCompletedEventArgs&amp;gt;(proxy_useNormalMOSSApiCompleted);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;proxy.useNormalMOSSApiAsync(SalesSPSite, productName, productNumber, FY08Sales);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;proxy.CloseAsync();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note that Silverlight service calls are asynchronous, so you need to have a completed event, which in this application looks like the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;void proxy_useNormalMOSSApiCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;MessageBox.Show(&amp;quot;Can you believe it? This stuff actually works!&amp;quot;);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font face="tahoma" size="2"&gt;The code here obviously doesn’t do much other than issue a message to the user when the service call is complete. In production code, you would probably want to verify that there had been an update to the SharePoint list before issuing this type of message.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="tahoma" size="2"&gt;The btnFieldsClear_Click event, shown below, simply clears the user entries in the Silverlight UI.&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void btnFieldsClear_Click(object sender, RoutedEventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtFY08Sales.Text = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtProductName.Text = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtProductNum.Text = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You may also notice that there is an event that corresponds to the closing of the drop-down box. This is essentially place-holder code, but in reality should grab the text property of the selected item within the combo box and assign that value to SalesSPSite. However, since I only have one site to demo, I hard-coded the variable to always be that site. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void cmboBoxOfferings_DropDownClosed(object sender, EventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;//Be warned...lazy hard-coded variable data to follow.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;if (optionOne.IsSelected == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;FY 09 Sales Tracking Site&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (optionTwo.IsSelected == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;SharePoint on the Web Metrics&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (OptionThree.IsEnabled == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;Wave 14 Reports&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (OptionFour.IsEnabled == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;Personal Metrics&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (OptionFive.IsEnabled == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;Signage Reports&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;};&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you were to look at the code-behind in its entirety, this is what it would look like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Collections.Generic;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Linq;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Net;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Windows;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Windows.Controls;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Windows.Documents;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Windows.Input;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Windows.Media;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Windows.Media.Animation;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Windows.Shapes;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;namespace SPSilverlightClient&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public partial class Page : UserControl&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string productName = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string productNumber = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string FY08Sales = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string SalesSPSite = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public Page()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;InitializeComponent();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void btnWebServiceCall_Click(object sender, RoutedEventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;productName = txtProductName.Text;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;productNumber = txtProductNum.Text;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;FY08Sales = txtFY08Sales.Text;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SPSilverlightClient.ASMXUpdateSPList.MyFirstSPServiceSoapClient proxy = new SPSilverlightClient.ASMXUpdateSPList.MyFirstSPServiceSoapClient();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;proxy.useNormalMOSSApiCompleted += new EventHandler&amp;lt;System.ComponentModel.AsyncCompletedEventArgs&amp;gt;(proxy_useNormalMOSSApiCompleted);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;proxy.useNormalMOSSApiAsync(SalesSPSite, productName, productNumber, FY08Sales);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;proxy.CloseAsync();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;void proxy_useNormalMOSSApiCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;MessageBox.Show(&amp;quot;Can you believe it? This stuff actually works!&amp;quot;);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void btnFieldsClear_Click(object sender, RoutedEventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtFY08Sales.Text = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtProductName.Text = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtProductNum.Text = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private void cmboBoxOfferings_DropDownClosed(object sender, EventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;//Be warned...lazy hard-coded variable data to follow.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;if (optionOne.IsSelected == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;FY 09 Sales Tracking Site&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (optionTwo.IsSelected == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;SharePoint on the Web Metrics&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (OptionThree.IsEnabled == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;Wave 14 Reports&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (OptionFour.IsEnabled == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;Personal Metrics&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;else if (OptionFive.IsEnabled == true)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;txtSiteDescr.Text = &amp;quot;Signage Reports&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;SalesSPSite = &amp;quot;http://stefoxdemo&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;};&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;At this point, you are now done building the Silverlight UI. Let’s move on to the final part: building the SharePoint web part. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Building the SharePoint Web Part Host Container&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The SharePoint web part will serve as the object within SharePoint that will simply put host your Silverlight application. There are a number of ways to do this, of which this is one. &lt;/p&gt;  &lt;p&gt;Open the solution file (where you created your Silverlight application) and then right-click the solution and select Add, and New Project. Select the SharePoint project type and then select Web Part. Provide a name for your Web Part project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image034_2.jpg"&gt;&lt;img title="clip_image034" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="293" alt="clip_image034" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image034_thumb.jpg" width="458" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 17: Adding SharePoint Web Part&lt;/p&gt;  &lt;p&gt;When your project is created, right click References and select Add Reference. Add the System.Web.Extensions DLL and System.Web.Silverlight DLL and click OK. See Figure 18&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image036_2.jpg"&gt;&lt;img title="clip_image036" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="336" alt="clip_image036" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image036_thumb.jpg" width="399" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref222396028"&gt;Figure &lt;/a&gt;18: Adding Silverlight References&lt;/p&gt;  &lt;p&gt;In the WebPart1.cs file (I removed and re-added a new Web Part item and called mine MyFirstSPServiceCall), you’ll need to have the following code. This checks for a ScriptManager object and also sets some properties for the Silverlight control we’ll add to the Controls collection.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;protected override void OnLoad(EventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;base.OnLoad(e);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ScriptManager sm = ScriptManager.GetCurrent(this.Page);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;if (sm == null)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;sm = new ScriptManager();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Controls.AddAt(0, sm);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;protected override void CreateChildControls()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;base.CreateChildControls();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;System.Web.UI.SilverlightControls.Silverlight ctrl = new System.Web.UI.SilverlightControls.Silverlight();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.ID = &amp;quot;InsertSPListItem&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.Source = &amp;quot;http://stefoxdemo/XAPS1/SPListClient.xap&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.Width = new Unit(650);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.Height = new Unit(400);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Controls.Add(ctrl);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can edit the XML properties of your web part through the WSP View. For example, the following XML is from the .webpart XML file. You can see I’ve updated the name and description of the web part with something a little more intuitive.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;webParts&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;webPart xmlns=&amp;quot;http://schemas.microsoft.com/WebPart/v3&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;metaData&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;!--&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;The following Guid is used as a reference to the web part class, &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;and it will be automatically replaced with actual type name at deployment time.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;--&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;type name=&amp;quot;967945ef-8baa-406e-bda3-fe4b836b2f66&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;importErrorMessage&amp;gt;Cannot import MyFirstSPServiceCall Web Part.&amp;lt;/importErrorMessage&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/metaData&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;data&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;properties&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;property name=&amp;quot;Title&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;My First SharePoint Service Call Web Part&amp;lt;/property&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;property name=&amp;quot;Description&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;A web part that hosts a call into SharePoint to update a list.&amp;lt;/property&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/properties&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/data&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/webPart&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;&amp;lt;/webParts&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Jumping back to the code for the actual web part, the complete code that you’ll need to have in the webpart.cs file (in my case MyFirstSPServiceCall.cs) is as follows: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Runtime.InteropServices;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Web.UI;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Web.UI.WebControls;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Web.UI.WebControls.WebParts;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using System.Xml.Serialization;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using Microsoft.SharePoint;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using Microsoft.SharePoint.WebControls;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;using Microsoft.SharePoint.WebPartPages;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;namespace SPSilverlightSPWP&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;[Guid(&amp;quot;967945ef-8baa-406e-bda3-fe4b836b2f66&amp;quot;)]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public class MyFirstSPServiceCall : System.Web.UI.WebControls.WebParts.WebPart&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public MyFirstSPServiceCall()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;protected override void OnLoad(EventArgs e)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;base.OnLoad(e);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ScriptManager sm = ScriptManager.GetCurrent(this.Page);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;if (sm == null)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;sm = new ScriptManager();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Controls.AddAt(0, sm);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;protected override void CreateChildControls()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;base.CreateChildControls();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;System.Web.UI.SilverlightControls.Silverlight ctrl = new System.Web.UI.SilverlightControls.Silverlight();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.ID = &amp;quot;InsertSPListItem&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.Source = &amp;quot;http://stefoxdemo/XAPS1/SPListClient.xap&amp;quot;;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.Width = new Unit(650);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;ctrl.Height = new Unit(400);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Controls.Add(ctrl);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;At this point, you need to ensure the Debug property in your SharePoint project properties is set to your &lt;a href="http://localhost"&gt;http://localhost&lt;/a&gt; (or the correct server to which you’re deploying the web part), and you can deploy the web part. &lt;/p&gt;  &lt;p&gt;If you notice in the source property code of the Silverlight application, it references an absolute URL on a test server. This presupposes two things: 1) you’ve created a document library called XAPS1 and 2) you’ve added the XAP file (the compiled Silverlight application) into that document library. If you have not, then you will simply get a blank, white web part. Also, note that this is not the only way to do this. In &lt;i&gt;Professional SharePoint 2007 Development using Silverlight 2&lt;/i&gt;, there are a number of ways to deploy the web part that are discussed. &lt;/p&gt;  &lt;p&gt;To deploy the web part, right-click the SharePoint project and select Deploy. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Testing the Web Part&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Now that you’ve deployed the web part, you can now open your SharePoint server and add the new Silverlight web part to your SharePoint site. To do this, click Site Actions and Edit Page. Click Add a Web and then select your newly deployed web part from the Web gallery. Once you’ve added the web part, you can now interact with the Silverlight UI within SharePoint that further interacts with your SharePoint list (i.e. that SharePoint object model). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image038_2.jpg"&gt;&lt;img title="clip_image038" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="345" alt="clip_image038" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image038_thumb.jpg" width="506" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 19: Silverlight Web Part in SharePoint&lt;/p&gt;  &lt;p&gt;When you click Insert, a new record will be added to the SharePoint list and a message will be issued, as coded in our Silverlight UI, to the user.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image040_2.jpg"&gt;&lt;img title="clip_image040" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="280" alt="clip_image040" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image040_thumb.jpg" width="505" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 20: Message Indicating Success&lt;/p&gt;  &lt;p&gt;Of course the success message is only one indication. To verify that a new record was indeed added to the FY 09 Sales , navigate to the list and verify the new information on the list. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image042_2.jpg"&gt;&lt;img title="clip_image042" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="87" alt="clip_image042" src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/0e6f762ad145_FE01/clip_image042_thumb.jpg" width="478" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 21: Successful Addition of Record&lt;/p&gt;  &lt;p&gt;For more information on how to integrate Silverlight and SharePoint, check out &lt;i&gt;Professional SharePoint 2007 Development using Silverlight 2&lt;/i&gt; and &lt;a href="http://mssharepointdeveloper.com"&gt;http://mssharepointdeveloper.com&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9423169" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Silverlight+and+SharePoint/default.aspx">Silverlight and SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Advanced+OBA/default.aspx">Advanced OBA</category></item><item><title>Web Services and SharePoint: How do I do it?</title><link>http://blogs.msdn.com/steve_fox/archive/2009/02/08/web-services-and-sharepoint-how-do-i-do-it.aspx</link><pubDate>Sun, 08 Feb 2009 08:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9406430</guid><dc:creator>Steve Fox</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/9406430.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=9406430</wfw:commentRss><description>&lt;P&gt;When building an OBA, you’re often going to want to either integrate with the native Web services for SharePoint (when I say SharePoint, in this instance I’m referring to both the WSS and the MOSS services) or you’ll want to create your own custom services. The question often comes up is how? In this post, I’ll show you a couple of different ways of doing this by creating a custom client app that achieves the same thing (i.e., inserts a record into a SharePoint list). Before we get to the client app, though, let’s quickly review a few of the more common ways that we can deploy a service: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ASMX Web service that is deployed into the SharePoint hive (e.g. deployed into the _vti_bin or _layouts folder;&lt;/LI&gt;
&lt;LI&gt;ASMX Web service deployed to its own Web application domain;&lt;/LI&gt;
&lt;LI&gt;WCF service deployed into the _vti_bin or _layouts folder; and&lt;/LI&gt;
&lt;LI&gt;WCF service deployed into its own Web application domain.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;When deploying an ASMX service into the _vti_bin, there are a few things that you need to do in order to prepare your service to be supportable by SharePoint. While based on VS 2005, you can apply the same methods for VS 2008 by using the article here: &lt;A title=http://msdn.microsoft.com/en-us/library/ms464040.aspx href="http://msdn.microsoft.com/en-us/library/ms464040.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms464040.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms464040.aspx&lt;/A&gt;. Most important to remember are:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Add DLL to GAC;&lt;/LI&gt;
&lt;LI&gt;Run Disco tool against ASMX file;&lt;/LI&gt;
&lt;LI&gt;Add the appropriate amendments to the .dsco and .wsdl files (see the aforementioned article);&lt;/LI&gt;
&lt;LI&gt;Rename the x.dsco and x.wsdl files to be xdsco.aspx and xwsdl.aspx;&lt;/LI&gt;
&lt;LI&gt;Copy the .asmx file, xwsdl.aspx and xdisco.aspx files to the _vti_bin folder. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;When deploying a service (ASMX or WCF) to its own web app domain, you need to first make sure you create and publish your web service to a folder on your application server and then map that folder to an IIS web site. To do this:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Open IIS;&lt;/LI&gt;
&lt;LI&gt;Create a New Web Site;&lt;/LI&gt;
&lt;LI&gt;Map the Path to the folder where your service is published;&lt;/LI&gt;
&lt;LI&gt;Set Permissions (use either ASP.NET Impersonation or Windows Authentication and set to Enabled); and&lt;/LI&gt;
&lt;LI&gt;Refresh the view of your site.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Now you’ll likely need what is called a client access policy or cross-domain policy file, which are files that are required for cross-domain calls into SharePoint. You may also need to have the files in your published web site root folder as well as having them in your SharePoint site root folder. Note: While you can copy and paste the policy files into your IIS web site, remember that you should use SharePoint Designer to open the SharePoint site and then copy the policy files to the root directory of the site. Here is a snapshot of what the root folder in my Content View of IIS (7.0) looks like:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/MyIISView_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/MyIISView_2.jpg"&gt;&lt;IMG title=MyIISView style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=218 alt=MyIISView src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/MyIISView_thumb.jpg" width=513 border=0 mce_src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/MyIISView_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;When deploying a WCF service to SharePoint, you need to remember that you must create a VirtualPathProvider because SharePoint doesn’t support the loading of .svc files. A good summary of how to do this is here: &lt;A title=http://blah.winsmarts.com/2008-5-SharePoint_2007_as_a_WCF_host_-_Step_-4,_Write_a_Virtual_Path_Provider.aspx href="http://blah.winsmarts.com/2008-5-SharePoint_2007_as_a_WCF_host_-_Step_-4,_Write_a_Virtual_Path_Provider.aspx" mce_href="http://blah.winsmarts.com/2008-5-SharePoint_2007_as_a_WCF_host_-_Step_-4,_Write_a_Virtual_Path_Provider.aspx"&gt;http://blah.winsmarts.com/2008-5-SharePoint_2007_as_a_WCF_host_-_Step_-4,_Write_a_Virtual_Path_Provider.aspx&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;If you use the native Web services that ship with SharePoint (e.g. Lists, Excel Services, or BDC), you can simply open up a VS project and add these to your project. To discover the services, click Add a Web Reference and then click the Web services on this local machine (presumably you’ve got SharePoint on that machine), and then all of the SharePoint services will be listed. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/AvailableServices_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/AvailableServices_2.jpg"&gt;&lt;IMG title=AvailableServices style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=398 alt=AvailableServices src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/AvailableServices_thumb.jpg" width=538 border=0 mce_src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/AvailableServices_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;In my example, I’ll show you how to call a custom web service (that uses WCF and ASMX deployed to their own IIS web sites) and a native SharePoint web service that does the same thing as the custom code. The custom code in my service that I’m using to insert the record into a SharePoint list called “TR8” is listed as follows (at least this is how it looks for the ASMX service): &lt;/P&gt;
&lt;P&gt;using System; &lt;BR&gt;using System.Collections.Generic; &lt;BR&gt;using System.Linq; &lt;BR&gt;using System.Web; &lt;BR&gt;using System.Web.Services; &lt;BR&gt;using Microsoft.SharePoint; &lt;/P&gt;
&lt;P&gt;[WebService(Namespace = "&lt;A href="http://tempuri.org/%22)]" mce_href='http://tempuri.org/")]'&gt;http://tempuri.org/")]&lt;/A&gt; &lt;BR&gt;[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] &lt;BR&gt;// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. &lt;BR&gt;// [System.Web.Script.Services.ScriptService] &lt;BR&gt;public class UpdateSharePointList : System.Web.Services.WebService &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public UpdateSharePointList () { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Uncomment the following line if using designed components &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //InitializeComponent(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [WebMethod] &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void useNormalMOSSApi(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strDashListRoot = SalesSPSite; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPSite site = new SPSite(strDashListRoot)) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPWeb web = site.OpenWeb()) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; web.AllowUnsafeUpdates = true; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPList list = web.Lists["TR8"]; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPListItem Item = list.Items.Add(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["Title"] = productName; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["ProductNum"] = productNumber; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["Sales"] = FY08Sales; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item.Update(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;The core code is similar for the WCF service; however, the major differences are standard WCF/ASMX differences—e.g. uses contracts as opposed to Web method declarations, and so on. After I created the services, I then added them to a VS 2008 project using the Add Service and Add Web Reference functions within VS. Here’s a snapshot of my project, so you can see all of the standard references, WCF reference and ASMX references (both the native SharePoint Lists.asmx reference and the custom ASMX service I built). &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_4.jpg" mce_href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_4.jpg"&gt;&lt;IMG title=SimpleDataEntry style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=389 alt=SimpleDataEntry src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_thumb_1.jpg" width=545 border=0 mce_src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_thumb_1.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Okay, enough on the service side; let’s take a look at the client code. &lt;/P&gt;
&lt;P&gt;In this example, I built a simple client UI to test out a couple of different services. The following UI shows the form:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_2.jpg"&gt;&lt;IMG title=SimpleDataEntry style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=386 alt=SimpleDataEntry src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_thumb.jpg" width=365 border=0 mce_src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/SimpleDataEntry_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You can see that the form accepts a SharePoint site (selected from a combo-box), three separate user entries from textboxes (product name, product number, and sales), and then another input (type of service to call when executing the insertion of the record into SharePoint) from the other combo-box. &lt;/P&gt;
&lt;P&gt;In the code-behind my WinForm app, I’ve first got four key class-level variables that I’ll use to contain the input from the above form:&lt;/P&gt;
&lt;P&gt;string productName = ""; &lt;BR&gt;string productNumber = ""; &lt;BR&gt;string FY08Sales = ""; &lt;BR&gt;string SalesSPSite = "";&lt;/P&gt;
&lt;P&gt;Then, when the user clicks the Add button (which corresponds to the &lt;STRONG&gt;btnGetSPLists_Click&lt;/STRONG&gt; event), the application looks at the Type of Service control entry and then calls a specific method to handle the specific type of service.&lt;/P&gt;
&lt;P&gt;private void btnGetSPLists_Click(object sender, EventArgs e) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Setting the variables to link to specific site &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite = cmboBxSPSite.SelectedItem.ToString(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; productName = txtBxProduct.Text; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; productNumber = txtBxProductNum.Text; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FY08Sales = txtBoxSales.Text; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //User can set whether they can call the service or not. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cmbBxService.SelectedItem.ToString() == "Native SharePoint Web Service") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useSPListWebService( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (cmbBxService.SelectedItem.ToString() == "Standard SharePoint API") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useNormalMOSSApi( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (cmbBxService.SelectedItem.ToString() == "WCF Service") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useWCFService( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (cmbBxService.SelectedItem.ToString() == "ASP.NET Web Service") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useASMXService( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;The conditional code in the &lt;STRONG&gt;btnGetSPLists_Click&lt;/STRONG&gt; event sets the class-level variables and then calls one of four different methods depending on what the user has selected. &lt;/P&gt;
&lt;P&gt;One of the selections calls the ASMX code (which is the native Lists.asmx web service):&lt;/P&gt;
&lt;P&gt;//1. Using the Native SP Web Service. &lt;BR&gt;&amp;nbsp; private void useSPListWebService(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Declare and initialize a variable for the Lists Web Service. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TR8_ListServiceCall.SPListService.Lists listService = new TR8_ListServiceCall.SPListService.Lists(); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Authenticate to the current user. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listService.Credentials = System.Net.CredentialCache.DefaultCredentials; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set the Url property of the service for the path to a subsite. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listService.Url = SalesSPSite + "/_vti_bin/Lists.asmx"; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Get Name attribute values (GUIDs) for list and view. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Xml.XmlNode ndListView = listService.GetListAndView("TR8", ""); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strListID = ndListView.ChildNodes[0].Attributes["Name"].Value; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strViewID = ndListView.ChildNodes[1].Attributes["Name"].Value; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create an XmlDocument object and construct a Batch element &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //and its attributes.&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Xml.XmlElement batchElement = doc.CreateElement("Batch"); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create a CAML construct to insert data into the field into the TR8 list. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; batchElement.InnerXml = "&amp;lt;Method ID='1' Cmd='New'&amp;gt;&amp;lt;Field Name='Title'&amp;gt;" + productName + "&amp;lt;/Field&amp;gt;&amp;lt;Field Name='ProductNum'&amp;gt;" + productNumber + "&amp;lt;/Field&amp;gt;&amp;lt;Field Name='Sales'&amp;gt;" + FY08Sales + "&amp;lt;/Field&amp;gt;" + "&amp;lt;/Method&amp;gt;"; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Call the UpdateListItems method to insert the record into the list. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlNode ndReturn = listService.UpdateListItems(strListID, batchElement); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via Web Service)");&lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;One of the selections calls the normal MOSS API (which is essentially the custom code that runs directly against my SharePoint server):&lt;/P&gt;
&lt;P&gt;//2. Using the Normal SP API. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void useNormalMOSSApi(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strDashListRoot = SalesSPSite; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPSite site = new SPSite(strDashListRoot)) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPWeb web = site.OpenWeb()) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; web.AllowUnsafeUpdates = true; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPList list = web.Lists["TR8"]; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPListItem Item = list.Items.Add(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["Title"] = productName; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["ProductNum"] = productNumber; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["Sales"] = FY08Sales; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item.Update(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via API)"); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;One of the selections calls my custom ASMX service:&lt;/P&gt;
&lt;P&gt;//3. Using the ASMX Service. &lt;BR&gt;private void useASMXService(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TR8_ListServiceCall.ASMX_WebService.TR8ASPWebService myService = new TR8_ListServiceCall.ASMX_WebService.TR8ASPWebService(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myService.UseDefaultCredentials = true; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myService.useNormalMOSSApi(SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via ASMX)"); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myService.Dispose(); &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;And the last of the selections calls my custom WCF service:&lt;/P&gt;
&lt;P&gt;//4. Using the WCF Service. &lt;BR&gt;private void useWCFService(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TR8_ListServiceCall.WCF_SPListService.InsertItemsClient proxy = new TR8_ListServiceCall.WCF_SPListService.InsertItemsClient(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.useNormalMOSSApi(SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via WCF)"); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.Close(); &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;Each of these calls does exactly the same thing: inserts a record using the data from the input form into the SharePoint list called “TR8.” Note, though, that there are syntactical differences. For example, for the custom services we are really executing the code inside the custom service so we need the proxy, the default windows credentials, and the calling of the specific web method (&lt;STRONG&gt;useNormalMOSSApi&lt;/STRONG&gt;) to add the entries. And of course don’t forget to dispose/close the service to clean up your sessions. &lt;/P&gt;
&lt;P&gt;The biggest syntactical difference from the above, though, is the native Lists.asmx web service. Note the use of the CAML construct to create the XML ‘document’ that represents the data we’re inserting into the list. A tip here is if you’re going to use this method, the ‘field’ attribute in the CAML construct is not the column display name. To get the proper attribute, go to your SharePoint site, click List Settings, and then click the column in question. Note at the end of the URL is the field name. In the below figure, you can see ‘Field=Sales’ – this is the correct field attribute to use. (Hopefully, this will save you troubleshooting XML errors.)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FieldAttribute_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FieldAttribute_2.jpg"&gt;&lt;IMG title=FieldAttribute style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=250 alt=FieldAttribute src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FieldAttribute_thumb.jpg" width=532 border=0 mce_src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FieldAttribute_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;So, the only remaining code is that which corresponds to the other buttons, which is fairly self-explanatory.&lt;/P&gt;
&lt;P&gt;//Events to handle the clearing of the controls. &lt;BR&gt;private void ctnClear_Click(object sender, EventArgs e) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtBoxSales.Clear(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtBxProduct.Clear(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtBxProductNum.Clear(); &lt;BR&gt;} &lt;/P&gt;
&lt;P&gt;//Event to exit the application. &lt;BR&gt;private void btnExit_Click(object sender, EventArgs e) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.Exit(); &lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;When executing the code, what will happen is that you can insert records from the client app via a service that then update the SharePoint list. So, why is this cool? Because you can use the same method described above to interact with many different areas of SharePoint—expanding the breadth of your OBA to include OM calls and data management with SharePoint. Here’s a final view of what the end result of the above code (selecting and executing each of the services in my Type of Service combo-box) looks like:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FinalView_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FinalView_2.jpg"&gt;&lt;IMG title=FinalView style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=170 alt=FinalView src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FinalView_thumb.jpg" width=534 border=0 mce_src="http://blogs.msdn.com/blogfiles/steve_fox/WindowsLiveWriter/WebServicesandSharePointHowdoIdoit_11846/FinalView_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Note that I’ve added the complete code-behind for my sample app below. &lt;/P&gt;
&lt;P&gt;Hope this helps you in your quest!&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Complete Code-Behind for the WinForm App&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;using System; &lt;BR&gt;using System.Collections.Generic; &lt;BR&gt;using System.ComponentModel; &lt;BR&gt;using System.Data; &lt;BR&gt;using System.Drawing; &lt;BR&gt;using System.Linq; &lt;BR&gt;using System.Text; &lt;BR&gt;using System.Windows.Forms; &lt;BR&gt;using Microsoft.SharePoint; &lt;BR&gt;using System.Collections; &lt;BR&gt;using System.Data.SqlClient; &lt;BR&gt;using System.Xml.Linq; &lt;BR&gt;using System.Xml; &lt;BR&gt;using System.Xml.Serialization; &lt;BR&gt;using Microsoft.SharePoint.SoapServer; &lt;BR&gt;using System.ServiceModel; &lt;/P&gt;
&lt;P&gt;namespace TR8_ListServiceCall &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public partial class Form1 : Form &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Class-level variables &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string productName = ""; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string productNumber = ""; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string FY08Sales = ""; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string SalesSPSite = ""; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Form1() &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void btnGetSPLists_Click(object sender, EventArgs e) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Setting the variables to link to specific site &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite = cmboBxSPSite.SelectedItem.ToString(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; productName = txtBxProduct.Text; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; productNumber = txtBxProductNum.Text; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FY08Sales = txtBoxSales.Text; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //User can set whether they can call the service or not. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cmbBxService.SelectedItem.ToString() == "Native SharePoint Web Service") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useSPListWebService( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (cmbBxService.SelectedItem.ToString() == "Standard SharePoint API") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useNormalMOSSApi( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (cmbBxService.SelectedItem.ToString() == "WCF Service") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useWCFService( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (cmbBxService.SelectedItem.ToString() == "ASP.NET Web Service") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useASMXService( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //1. Using the Normal SP API. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void useNormalMOSSApi(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strDashListRoot = SalesSPSite; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPSite site = new SPSite(strDashListRoot)) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPWeb web = site.OpenWeb()) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; web.AllowUnsafeUpdates = true; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPList list = web.Lists["TR8"]; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPListItem Item = list.Items.Add(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["Title"] = productName; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["ProductNum"] = productNumber; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item["Sales"] = FY08Sales; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item.Update(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via API)"); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //2. Using the Native SP Web Service. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void useSPListWebService(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Declare and initialize a variable for the Lists Web Service. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TR8_ListServiceCall.SPListService.Lists listService = new TR8_ListServiceCall.SPListService.Lists(); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Authenticate to the current user. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listService.Credentials = System.Net.CredentialCache.DefaultCredentials; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set the Url property of the service for the path to a subsite. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listService.Url = SalesSPSite + "/_vti_bin/Lists.asmx"; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Get Name attribute values (GUIDs) for list and view. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Xml.XmlNode ndListView = listService.GetListAndView("TR8", ""); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strListID = ndListView.ChildNodes[0].Attributes["Name"].Value; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strViewID = ndListView.ChildNodes[1].Attributes["Name"].Value; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create an XmlDocument object and construct a Batch element &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //and its attributes.&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Xml.XmlElement batchElement = doc.CreateElement("Batch"); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create a CAML construct to insert data into the field into the TR8 list. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; batchElement.InnerXml = "&amp;lt;Method ID='1' Cmd='New'&amp;gt;&amp;lt;Field Name='Title'&amp;gt;" + productName + "&amp;lt;/Field&amp;gt;&amp;lt;Field Name='ProductNum'&amp;gt;" + productNumber + "&amp;lt;/Field&amp;gt;&amp;lt;Field Name='Sales'&amp;gt;" + FY08Sales + "&amp;lt;/Field&amp;gt;" + "&amp;lt;/Method&amp;gt;"; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Call the UpdateListItems method to insert the record into the list. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlNode ndReturn = listService.UpdateListItems(strListID, batchElement); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via Web Service)");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //3. Using the ASMX Service. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void useASMXService(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TR8_ListServiceCall.ASMX_WebService.TR8ASPWebService myService = new TR8_ListServiceCall.ASMX_WebService.TR8ASPWebService(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myService.UseDefaultCredentials = true; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myService.useNormalMOSSApi(SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via ASMX)"); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myService.Dispose(); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //4. Using the WCF Service. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void useWCFService(string SalesSPSite, string productName, string productNumber, string FY08Sales) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TR8_ListServiceCall.WCF_SPListService.InsertItemsClient proxy = new TR8_ListServiceCall.WCF_SPListService.InsertItemsClient(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.useNormalMOSSApi(SalesSPSite, productName, productNumber, FY08Sales); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Record Added (Via WCF)"); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.Close(); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Events to handle the clearing of the controls. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void ctnClear_Click(object sender, EventArgs e) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtBoxSales.Clear(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtBxProduct.Clear(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtBxProductNum.Clear(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Event to exit the application. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void btnExit_Click(object sender, EventArgs e) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.Exit(); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;}&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9406430" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+platform/default.aspx">OBA platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Web+service/default.aspx">Web service</category></item><item><title>Silverlight RTM and SharePoint Blueprints Ship on Codeplex</title><link>http://blogs.msdn.com/steve_fox/archive/2009/01/09/silverlight-rtm-and-sharepoint-blueprints-ship-on-codeplex.aspx</link><pubDate>Fri, 09 Jan 2009 05:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9301206</guid><dc:creator>Steve Fox</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/9301206.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=9301206</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;Today,&amp;nbsp;additional&amp;nbsp;SharePoint and Silverlight Blueprints on CodePlex were uploaded to include two more Silverlight RTM samples: custom navigation in SharePoint and the colleague viewer. These blueprints provide samples for you to build and explore using Silverlight as an alternate way to develop and integrate powerful user experiences within SharePoint and add rich Internet application functionality to your SharePoint sites. Included in the overall set of samples are a Hello World sample, a Slider sample, and the recently added Custom Navigation and Colleague Viewer samples added today. You can download the samples along with documentation and screencasts at &lt;/FONT&gt;&lt;A href="http://www.codeplex.com/SL4SP"&gt;&lt;FONT face=Calibri size=3&gt;http://www.codeplex.com/SL4SP&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;Over the next few weeks, I'll publish a couple of other blog posts on Silverlight and SharePoint. I think there is tremendous opportunity here for building rich Internet applications that can also be thought of as OBAs. For example, think about skinning an integration with SAP with Silverlight and then dropping it into a SharePoint site. This not brings the LOB system world into SharePoint, but does it in a way that improves the look and feel of the UI as well as providing additional controls that you can build around the UI to, for example, filter on SAP, Dynamics or other LOB system&amp;nbsp;data. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;For more resources on how to integrate Silverlight and SharePoint, be sure to visit &lt;/FONT&gt;&lt;A href="http://mssharepointdeveloper.com/"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://mssharepointdeveloper.com&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. Keep an eye out on this site over the next few weeks, as we're going publish a new round of content for WCM and MOSS. Some cool SharePoint and Silverlight stuff will be shipping. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;Happy coding!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;Steve&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9301206" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Silverlight+Blueprint+for+SharePoint/default.aspx">Silverlight Blueprint for SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>SharePoint Connections Deck</title><link>http://blogs.msdn.com/steve_fox/archive/2008/11/13/sharepoint-connections-deck.aspx</link><pubDate>Thu, 13 Nov 2008 20:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9066804</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/9066804.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=9066804</wfw:commentRss><description>&lt;P&gt;I'm just wrapping up my week here in Las Vegas for SharePoint Connections, and one of the requests I had was to post my decks for those who attended my sessions. I've posted my decks to a public skydrive folder here: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://cid-40a717fc7fcd7e40.skydrive.live.com/self.aspx/SharePointConnections/Final%7C_Presentations.zip"&gt;http://cid-40a717fc7fcd7e40.skydrive.live.com/self.aspx/SharePointConnections/Final%7C_Presentations.zip&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;If you have any issues connecting and retrieving the decks, let me know. &lt;/P&gt;
&lt;P&gt;I'll also upload the code samples and some videos that go along with these, but wanted to get these uploaded first. As for the questions we discussed in the sessions, I'll be posting answers to those as well.&lt;/P&gt;
&lt;P&gt;Thanks to all of you who attended the sessions and made SharePoint Connections another successful event. &lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9066804" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>End-to-End Sales Forecast OBA Released To Web! </title><link>http://blogs.msdn.com/steve_fox/archive/2008/10/25/end-to-end-sales-forecast-oba-released-to-web.aspx</link><pubDate>Sat, 25 Oct 2008 05:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9015625</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/9015625.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=9015625</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;It's been a while, but I wanted to let&amp;nbsp;all you OBA developers out there know of something cool that&amp;nbsp;we recently released, which is the End-to-End (E2E) Sales Forecast OBA. As you know from reading this blog, you know that OBA is an Office Business Application and involves mutltiple technologies within the Office platform. &lt;/FONT&gt;&lt;/o:p&gt;&lt;FONT face=Calibri size=3&gt;The E2E Sales Forecast OBA is a solution that walks you through a scenario where&amp;nbsp;a salesperson creates and submits a quarterly sales forecast. Using a customized Excel template (built using VS 2008/VSTO), our salesperson has the ability to navigate to the team Sales Forecast portal (SharePoint portal), invoke a custom Excel sales forecast template from the New button (content type mapping to a custom template), load line-of-business sales data into the document (via WPF custom actions pane), generate executive reports for the forecast (via Open XML), and submit the document for approval (through SharePoint workflow). It essentially uses all of the concepts and technologies that I've discussed thus far in this blog--plus a few that I haven't.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;In the demo solution (which is available on CodePlex--see link below), the approving manager can interact directly with SharePoint or choose to approve the workflow via a custom Outlook Form Region (built using VS 2008/VSTO). Messaging of the workflow is marshaled by SharePoint, and Open XML enables the solution to parse out the necessary data and attach to workflow and to the custom Outlook from region. This is a great starter solution if you're looking to get your hands on some code, and includes the technologies below:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;SharePoint&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Office Client Ribbon and Action Pane Customizations (VS 2008/VSTO)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Outlook Custom Form Regions&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Open XML&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Unified Communications (UC)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;SharePoint Workflow&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Windows Presentation Foundation (WPF)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;++&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Courier New'"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri color=#000000 size=3&gt;For the community source-code download and accompanying book, you can check out the following resources:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri color=#000000 size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1"&gt;&lt;B&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Calibri&gt;Sales Forecast Codeplex Source Code Site&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/LI&gt;
&lt;UL style="MARGIN-TOP: 0in" type=circle&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;A href="http://www.codeplex.com/obasales"&gt;&lt;FONT face=Calibri size=3&gt;http://www.codeplex.com/obasales&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Calibri&gt;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1"&gt;&lt;B&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Calibri&gt;Sales Forecast Wrox Book Accompaniment&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/LI&gt;
&lt;UL style="MARGIN-TOP: 0in" type=circle&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;A href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470377313.html"&gt;&lt;FONT face=Calibri size=3&gt;http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470377313.html&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Calibri&gt;The goal of the book is to walk you through all of the code and you would set up and deploy the sales forecast OBA. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri color=#000000 size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri color=#000000 size=3&gt;Enjoy!!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri color=#000000 size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri color=#000000 size=3&gt;Steve&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9015625" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Steve+Fox/default.aspx">Steve Fox</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Custom+Outlook+Form+Region/default.aspx">Custom Outlook Form Region</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OFR/default.aspx">OFR</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Use Silverlight to Enhance your SharePoint-Based OBAs with the Silverlight Blueprints for SharePoint</title><link>http://blogs.msdn.com/steve_fox/archive/2008/08/19/use-silverlight-to-enhance-your-sharepoint-based-obas-with-the-silverlight-blueprints-for-sharepoint.aspx</link><pubDate>Tue, 19 Aug 2008 18:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8878936</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/8878936.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=8878936</wfw:commentRss><description>&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Silverlight Blueprints for SharePoint Released to CodePlex!&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Today we released the source code for the Silverlight Blueprints for SharePoint—based on the Silverlight Beta 2 release. The Silverlight Blueprints for SharePoint provide a way for developers to better understand how to integrate Silverlight applications with SharePoint. &lt;/FONT&gt;&lt;A href="http://www.silverlight.net/"&gt;&lt;FONT size=3 face=Calibri&gt;Silverlight&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; is an incredibly popular technology and with the increase in SharePoint adoption we’re finding an increased call for integrating technologies like Silverlight with SharePoint. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In this release, you’ll find five blueprint samples: &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Hello World &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Media Player&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Slider Control&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Custom Navigation&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Colleague Viewer&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Included in the release are documentation for each of the samples and the source code (go to the Releases tab of the CodePlex site). Also posted to the site is an FAQ document. In the coming days and week, we’ll publish additional screen-casts and any other supporting documentation we create or that is provided to us through the developer community. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The links to get to the Silverlight Blueprints for SharePoint are: &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A href="http://www.ssblueprints.net/sharepoint/"&gt;&lt;FONT color=#800080 size=3 face=Calibri&gt;http://www.ssblueprints.net/sharepoint/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&amp;nbsp; --or direct at the CodePlex site&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A href="http://www.codeplex.com/SL4SP"&gt;&lt;FONT color=#800080 size=3 face=Calibri&gt;http://www.codeplex.com/SL4SP&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Enjoy!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Steve&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8878936" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Silverlight+Blueprint+for+SharePoint/default.aspx">Silverlight Blueprint for SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Create Your First OBA: Part 5</title><link>http://blogs.msdn.com/steve_fox/archive/2008/08/12/create-your-first-oba-part-5.aspx</link><pubDate>Tue, 12 Aug 2008 23:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8853588</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/8853588.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=8853588</wfw:commentRss><description>&lt;P&gt;Hey gang, &lt;/P&gt;
&lt;P&gt;It's been a while since I've posted, but I've been on the road. I attended TechEd 2008 (USA), our internal field conference TechReady 7, and then travelled to South Africa to TechEd 2008 (S. Africa). Now, I'm back in Seattle--albeit a little jet-lagged. Over the past few weeks, I've continued to give talks on OBA, but have been doing a lot more SharePoint lately--especially Silverlight and SharePoint (I'll put some blog posts up about this in the near future). &lt;/P&gt;
&lt;P&gt;In the past, I've been doing a lot of writing in my blogs, so for this blog I put together a short screen-cast to go along with the blog. Essentially, in this blog I'm going to show you how you can create a Business Data Catalog (BDC) web part in SharePoint using the Business Data Catalog Definition Editor. Specifically, the web part will actually implement a couple of web methods from a Web service. I get this question a lot, so I really wanted to make this a part of the OBA series. (Plus, the BDC is one of the more common objects that SharePoint developers use.) This is part 5 of the Create Your First OBA series (Customizing SharePoint (BDC)):&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;1.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt; &lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;/SPAN&gt;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt;Creating the VSTO document-level solution (i.e. the custom document)&lt;/SPAN&gt;&lt;/A&gt;; &lt;BR&gt;2.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt; &lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;/SPAN&gt;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt;Deploying the VSTO document-level solution&lt;/SPAN&gt;&lt;/A&gt;;&lt;BR&gt;3.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;A href="http://blogs.msdn.com/steve_fox/archive/2008/05/02/create-your-first-oba-part-3.aspx"&gt;Integrating the VSTO with SharePoint content type&lt;/A&gt;;&lt;BR&gt;4.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;A class="" href="http://blogs.msdn.com/steve_fox/archive/2008/06/18/create-your-first-oba-part-4.aspx" mce_href="http://blogs.msdn.com/steve_fox/archive/2008/06/18/create-your-first-oba-part-4.aspx"&gt;Associating SharePoint workflow with VSTO document-level solution&lt;/A&gt;;&lt;BR&gt;5.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Customizing SharePoint (BDC);&lt;BR&gt;6.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Customizing SharePoint (Excel Services). &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Before you get started, a couple of notes on your environment. You can download the MOSS 2007 SDK from here: &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en&lt;/A&gt;. The SDK contains the BDC Definition Editor, which you will use to create the application definition file (ADF)--a metadata representation of the data source that you're connecting to with the BDC web part. I also used VS 2008 to create my Web service, which I deployed to my local Win 2003 Server which was also running MOSS (Enterprise edition). The BDC is available in the MOSS Enterprise Edition, so if you're looking to use the BDC you'll need to make sure you have this MOSS SKU installed.&lt;/P&gt;
&lt;P&gt;Okay, so below I've added a Silverlight video player with the WMV screencast embedded in it:&lt;/P&gt;
&lt;P&gt;&lt;IFRAME style="WIDTH: 500px; HEIGHT: 375px" src="http://silverlight.services.live.com/invoke/75885/How%20to%20Create%20a%20BDC%20Web%20Part%20that%20Consumes%20a%20Web%20Method/iframe.html" frameBorder=0 scrolling=no mce_src="http://silverlight.services.live.com/invoke/75885/How%20to%20Create%20a%20BDC%20Web%20Part%20that%20Consumes%20a%20Web%20Method/iframe.html"&gt;&lt;/IFRAME&gt;&lt;/P&gt;
&lt;P&gt;If you have any problems with this, you can also get the WMV directly here: &lt;A href="http://silverlight.services.live.com/75885/How%20to%20Create%20a%20BDC%20Web%20Part%20that%20Consumes%20a%20Web%20Method/video.wmv"&gt;http://silverlight.services.live.com/75885/How%20to%20Create%20a%20BDC%20Web%20Part%20that%20Consumes%20a%20Web%20Method/video.wmv&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Have a great day!&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8853588" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+platform/default.aspx">OBA platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Your+First+OBA/default.aspx">Your First OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Your+First+Office+Business+Application/default.aspx">Your First Office Business Application</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Web+service/default.aspx">Web service</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/BDC/default.aspx">BDC</category></item><item><title>Create Your First OBA: Part 4</title><link>http://blogs.msdn.com/steve_fox/archive/2008/06/18/create-your-first-oba-part-4.aspx</link><pubDate>Wed, 18 Jun 2008 05:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8613782</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/8613782.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=8613782</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Wow, it's been a while since I blogged on this...time flies. If you've been following along with my previous posts, you'll have seen some of the other Create Your First OBA posts. Here they are if you haven’t seen them:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;1.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt; &lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;/SPAN&gt;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt;Creating the VSTO document-level solution (i.e. the custom document)&lt;/SPAN&gt;&lt;/A&gt;; &lt;BR&gt;2.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt; &lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;/SPAN&gt;&lt;A href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx"&gt;&lt;SPAN style="COLOR: #006ff7"&gt;Deploying the VSTO document-level solution&lt;/SPAN&gt;&lt;/A&gt;;&lt;BR&gt;3.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;A href="http://blogs.msdn.com/steve_fox/archive/2008/05/02/create-your-first-oba-part-3.aspx"&gt;Integrating the VSTO with SharePoint content type&lt;/A&gt;;&lt;BR&gt;4.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Associating SharePoint workflow with VSTO document-level solution;&lt;BR&gt;5.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Customizing SharePoint (BDC);&lt;BR&gt;6.&lt;SPAN style="font-size-adjust: none; font-stretch: normal"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Customizing SharePoint (Excel Services). &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;This post describes how you can add workflow to your OBA. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;First, let me say that I can’t believe the amount of people who are asking me about this. I’ve presented at a number of conferences over the last few months and I’ve been getting more questions around this particular subject. That said, a specific walkthrough on exactly how to do this is quite long so I’ll walk through at a high level what you need to do, and then I’ve added a few references for you and also attached a hands-on lab that you can use as well to walk through—complete with code samples. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;You’ll also note that the code samples cover other areas of OBA development—mainly covering client-side development using VS 2008 (specifically VSTO 3.0). Some great code samples and walkthroughs, so enjoy. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Okay, back to workflow. To create a SharePoint (SP) workflow you first need to make sure you have an ‘object’ within SP against which you’ll build the workflow. A Word document might be an example or an InfoPath can be another example. You then need to figure out what type of workflow you’re going to build and what the workflow will do. The SP workflow derives from the Windows Workflow Foundation (WF) workflow types in the .NET Framework 3.0, so the two main types are Sequential and State Machine. Sequential being as it sounds: a workflow that follows a particular sequence. And State Machine being a workflow that moves along to the next ‘activity’ depending on the state of the workflow. An activity are the individual actions that make up a workflow. If you’d like more details on SP WF, you can check out these links here: &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Book excerpt from Programming Office Business Applications: &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc534997.aspx"&gt;&lt;FONT color=#800080 size=3 face=Calibri&gt;http://msdn.microsoft.com/en-us/library/cc534997.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;You can also find some articles here in the VSTO 3.0 documentation: &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb386211.aspx"&gt;&lt;FONT color=#800080 size=3 face=Calibri&gt;http://msdn.microsoft.com/en-us/library/bb386211.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, once you’ve figured out what your workflow will do (and let’s assume for simplicity sake that you’re going to build a Sequential workflow), you then open Visual Studio 2008, click File, New, Project, select the Office node under the language node of your choice (i.e. either VB or C#) and then select SharePoint 2007 Sequential Workflow, give it a name and click OK. This will invoke a wizard that will enable you to give the workflow a name and map the workflow template (each workflow is built and deployed as a template) to your specific SP site. Once this is done, click Next and then you can select the library or list you want to associate your SP workflow with, the History list and then the Tasks. In mine, I had a document library for the custom Word document I built earlier in the blog series (called Annual Reviews) so I built a small approval workflow (that updated a status note that corresponds to that particular document library. At this point, VS creates a project shell with a number of items in it. You can drag and drop activities onto the designer, add code behind for the activities and then map the properties of the workflow to the activities to make sure everything works. You can then press F5 to test out your workflow and it will invoke SP and run your workflow. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Now, keep in mind I just encapsulated in one paragraph what will take you an hour to walk through in the attached hands-on lab—which is why I chose the really condensed version—and even longer when you’re planning out your own SP workflow. I did this to not only save some time in writing the blog, but also because the resources I’ll provide below will help you just as much if not better. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, here’s what I would recommend as next steps for you to get really get stuck into learning SP workflow:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Take a look at the attached hands-on lab and walk through lab #4. It’s an awesome and simple example of how to quickly create a simple workflow. (The lab uses VS 2008 (VSTO 3.0), and you'll need to have Office 2007 installed and a MOSS 2007 server available to build your workflow against.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Take a look at the following web cast. It’s a great intro to SP workflow and provides you with some deeper-level information: &lt;/FONT&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032378840&amp;amp;CountryCode=US"&gt;&lt;FONT color=#800080 size=3 face=Calibri&gt;http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032378840&amp;amp;CountryCode=US&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Take a look at following new site for SP developers; it’s got some awesome content: &lt;/FONT&gt;&lt;A href="http://mssharepointdeveloper.com/"&gt;&lt;FONT size=3 face=Calibri&gt;http://mssharepointdeveloper.com&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Okay, hopefully that will get you started. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Steve&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8613782" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/steve_fox/attachment/8613782.ashx" length="4134793" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Your+First+OBA/default.aspx">Your First OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Your+First+Office+Business+Application/default.aspx">Your First Office Business Application</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>SharePoint Development Conference (FireStarter) at Microsoft on June 11th</title><link>http://blogs.msdn.com/steve_fox/archive/2008/05/20/sharepoint-development-conference-firestarter-at-microsoft-on-june-11th.aspx</link><pubDate>Tue, 20 May 2008 19:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8523644</guid><dc:creator>Steve Fox</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/8523644.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=8523644</wfw:commentRss><description>&lt;P&gt;OBA is a broad area and we're seeing an increase in the number of developers who are building SharePoint solutions--both internally to an enterprise and externally on the web. Microsoft is hosting a 1-day event for those of you interested in learning more about SharePoint development. More information on this event, how to register and who to contact for more information is below: &lt;/P&gt;
&lt;P&gt;&lt;FONT size=3 face=Calibri&gt;&lt;B&gt;&lt;I&gt;&lt;U&gt;SharePoint Web 2.0 Fire Starter!&lt;/U&gt;&lt;/I&gt;&lt;/B&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In typical FireStarter event style, we aim at delivering a first class experience to all attendees and make them experts on developing on SharePoint technologies before the end of the event. We have great speakers from the Microsoft rooster presenting some awesome topics that will help you build and customize websites with SharePoint and Web 2.0 technologies. You &lt;I&gt;&lt;U&gt;cannot&lt;/U&gt;&lt;/I&gt; miss this action packed day! &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Here’s what the agenda looks like:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style="MARGIN: auto 6.75pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-table-lspace: 9.0pt; mso-table-rspace: 9.0pt; mso-table-anchor-vertical: paragraph; mso-table-anchor-horizontal: column; mso-table-left: left; mso-padding-alt: 0in 0in 0in 0in" class=MsoNormalTable border=0 cellSpacing=0 cellPadding=0 align=left class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: black 1pt solid; BACKGROUND: black; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;AGENDA&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: black 1pt solid; BACKGROUND: black; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: black 1pt solid; BACKGROUND: black; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.6pt; mso-yfti-irow: 1"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 16.6pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;8:00 am – 8:30 am&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 16.6pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Breakfast &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 16.6pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 2"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;8:30 am – 9:00 am &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Introduction to day&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/mithund" mce_href="http://blogs.msdn.com/mithund"&gt;&lt;FONT size=3 face=Calibri&gt;Mithun Dhar&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 3"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;9:00 am – 10:00 am&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Whirlwind SharePoint on Visual Studio - VSeWSS&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/pandrew/default.aspx" mce_href="http://blogs.msdn.com/pandrew/default.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;Paul Andrew&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 4"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;I&gt;10:00&lt;/I&gt;&lt;/B&gt;&lt;I&gt; am&lt;B&gt; – 10:15&lt;/B&gt; am&lt;B&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Break&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;I&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 5"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;10:15 am – 11:15 am&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Silverlight on SharePoint&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/steve_fox/" mce_href="http://blogs.msdn.com/steve_fox/"&gt;&lt;FONT color=#800080 size=3 face=Calibri&gt;Steve Fox&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 6"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;11:15 am&amp;nbsp; – 12:15 pm&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Web Parts on SharePoint&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/johnrdurant/" mce_href="http://blogs.msdn.com/johnrdurant/"&gt;&lt;FONT size=3 face=Calibri&gt;John Durant&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 7"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;I&gt;12:15 &lt;/I&gt;&lt;/B&gt;&lt;I&gt;pm&lt;B&gt; – 1:00 &lt;/B&gt;pm&lt;B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Lunch&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;I&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 8"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;1:00 pm&amp;nbsp; – 2:00 pm&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Web Services on SharePoint&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/pstubbs/" mce_href="http://blogs.msdn.com/pstubbs/"&gt;&lt;FONT size=3 face=Calibri&gt;Paul Stubbs&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 9"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;2:00 pm&amp;nbsp; – 3:00 pm&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Workflow on SharePoint&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/odc2008architecture/" mce_href="http://blogs.msdn.com/odc2008architecture/"&gt;&lt;FONT size=3 face=Calibri&gt;Eilene Hao&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 10"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I&gt;3:00&lt;/I&gt; pm &lt;I&gt;&amp;nbsp;– 3:15&lt;/I&gt; pm&lt;I&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Break&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 11"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;3:15 pm&amp;nbsp; – 4:15 pm&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Event Handlers on SharePoint&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/cjohnson/" mce_href="http://blogs.msdn.com/cjohnson/"&gt;&lt;FONT size=3 face=Calibri&gt;Chris Johnson&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 12"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;4:15 pm&amp;nbsp; – 5:00 pm&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Page Branding on SharePoint&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt; BACKGROUND-COLOR: transparent" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/pandrew" mce_href="http://blogs.msdn.com/pandrew"&gt;&lt;FONT size=3 face=Calibri&gt;Paul Andrew&lt;/FONT&gt;&lt;/A&gt;&lt;B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 1pt; mso-yfti-irow: 13; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Post Event&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pizza and Networking&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #eeeed0; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #eeeed0; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; HEIGHT: 1pt" class="" vAlign=top&gt;
&lt;P style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; mso-margin-bottom-alt: auto; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly" class=MsoNormal&gt;&lt;B&gt;&lt;I&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I&gt;Where&lt;/I&gt;: &lt;B&gt;Microsoft Conference Center (Building 33) – Kodiak Room&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I&gt;When&lt;/I&gt;: &lt;B&gt;June 11&lt;SUP&gt;th&lt;/SUP&gt; 2008 - Wednesday&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 13pt"&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=~CMTYDataSvcParams%5E~arg+Name%3D%22ID%22+Value%3D%221032379380%22%2F%5E~arg+Name%3D%22ProviderID%22+Value%3D%22A6B43178-497C-4225-BA42-DF595171F04C%22%2F%5E~arg+Name%3D%22la" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=~CMTYDataSvcParams%5E~arg+Name%3D%22ID%22+Value%3D%221032379380%22%2F%5E~arg+Name%3D%22ProviderID%22+Value%3D%22A6B43178-497C-4225-BA42-DF595171F04C%22%2F%5E~arg+Name%3D%22la"&gt;&lt;FONT face=Calibri&gt;Register NOW!&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 13pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;If you have any questions, please contact&amp;nbsp;Mithun Dhar&amp;nbsp;at&lt;/FONT&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;A href="mailto:mithund@microsoft.com" mce_href="mailto:mithund@microsoft.com"&gt;&lt;FONT size=3 face=Calibri&gt;mithund@microsoft.com&lt;/FONT&gt;&lt;/A&gt;.&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8523644" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/FireStarter/default.aspx">FireStarter</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint+development/default.aspx">SharePoint development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Create Your First OBA: Part 3</title><link>http://blogs.msdn.com/steve_fox/archive/2008/05/02/create-your-first-oba-part-3.aspx</link><pubDate>Sat, 03 May 2008 00:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8452082</guid><dc:creator>Steve Fox</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/8452082.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=8452082</wfw:commentRss><description>&lt;P&gt;Hey gang, &lt;/P&gt;
&lt;P&gt;If you've been following along with the Create Your First OBA series, I've published the first two of the six parts - see below. &lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx"&gt; &lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A class="" href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/15/create-your-first-oba-part-1.aspx"&gt;Creating the VSTO document-level solution (i.e. the custom document)&lt;/A&gt;; &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx"&gt; &lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A class="" href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx" mce_href="http://blogs.gotdotnet.com/steve_fox/archive/2008/04/24/create-your-first-oba-part-2.aspx"&gt;Deploying the VSTO document-level solution&lt;/A&gt;;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Integrating the VSTO with SharePoint content type;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;4.&lt;SPAN style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Associating SharePoint workflow with VSTO document-level solution;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;5.&lt;SPAN style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Customizing SharePoint (BDC);&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;6.&lt;SPAN style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Customizing SharePoint (Excel Services). &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I was actually hedging on posting for the third item because I wrote an article for MSDN Magazine that covers it. So, I'll provide you with a link to the article which lives here: &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc507632.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc507632.aspx&lt;/A&gt;. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I'm on the road again at Sapphire for the next few days, so if you're in Orlando at the conference look me up...I'll be dutifully hanging out at our booth. When I get back, I'll post on SharePoint workflow. As I mentioned in an earlier post, there's been a lot of requests for this so hang tight and I'll get to it soon. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Have a great weekend!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Steve&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8452082" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+platform/default.aspx">OBA platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Outlook+OBA/default.aspx">Outlook OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Your+First+OBA/default.aspx">Your First OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Your+First+Office+Business+Application/default.aspx">Your First Office Business Application</category></item><item><title>Integrate Office with SAP...</title><link>http://blogs.msdn.com/steve_fox/archive/2008/03/28/integrate-office-with-sap.aspx</link><pubDate>Fri, 28 Mar 2008 16:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8341672</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/8341672.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=8341672</wfw:commentRss><description>&lt;P&gt;You may have heard of Duet, an out of the box OBA that supports a number of different scenarios for the enterprise (&lt;A href="http://office.microsoft.com/en-us/duet/FX101686211033.aspx?ofcresset=1"&gt;http://office.microsoft.com/en-us/duet/FX101686211033.aspx?ofcresset=1&lt;/A&gt;). Duet is a great solution and covers a wide variety of scenarios. If you're looking to hook the Office system into SAP programmatically on a smaller scale, though, what do you do? You have a couple of options depending on what you're trying to integrate with. Assuming you've got your Web services created, you can either hook into the Office client using Visual Studio and you can integrate with MOSS using either the iView Web part,&amp;nbsp;the Business Data Catalog (BDC), or through&amp;nbsp;PerformancePoint&amp;nbsp;Server. If you're looking to integrate with the client or through the BDC, I've posted some&amp;nbsp;guidance that may be able to help you. I developed this in partnership with Softagon, an IT firm based out of San Francisco, and have delivered this guidance in the form of a 'kit' -- more precisely&amp;nbsp;an OBA Sample Application Kit for SAP (v. 2.0).&amp;nbsp;The&amp;nbsp;kit includes a whitepaper, install guide, technical overview, and some source code to get&amp;nbsp;you started. The only bummer is that you'll need to recreate the SAP environment. But once you do that, you can recreate the solution around which the kit was built (a&amp;nbsp;specialty travel package application). &lt;/P&gt;
&lt;P&gt;You&amp;nbsp;can find the kit here: &lt;A href="http://code.msdn.microsoft.com/obasapsak"&gt;http://code.msdn.microsoft.com/obasapsak&lt;/A&gt;. The kit shows you how to integrate SAP Web services with Excel 2007 and&amp;nbsp;PowerPoint 2007 and MOSS 2007 using Visual Studio 2008 (specifically Visual Studio Tools for Office&amp;nbsp;3.0). &lt;/P&gt;
&lt;P&gt;If you're looking for guidance for earlier&amp;nbsp;versions of Visual Studio, I've also released the OBA Sample Application Kit for SAP, v. 1.0. You can find that here: &lt;A href="http://msdn2.microsoft.com/en-us/library/bb498189.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb498189.aspx&lt;/A&gt;. This shows you how to integrate SAP Web services with Excel and PowerPoint 2007 using VSTO 2005 SE. &lt;/P&gt;
&lt;P&gt;More kits will come in the future, so check back for more information or go to the OBA Developer Portal: &lt;A href="http://msdn2.microsoft.com/en-us/office/aa905528.aspx"&gt;http://msdn2.microsoft.com/en-us/office/aa905528.aspx&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8341672" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+platform/default.aspx">OBA platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+Sample+Application+Kit/default.aspx">OBA Sample Application Kit</category></item><item><title>The ramblings continue...starting out on OBA</title><link>http://blogs.msdn.com/steve_fox/archive/2008/03/11/the-ramblings-continue-starting-out-on-oba.aspx</link><pubDate>Wed, 12 Mar 2008 00:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8161799</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/8161799.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=8161799</wfw:commentRss><description>&lt;P&gt;It's been a while since I've blogged last, and things have been very busy. Over the past three months, I've been to a number of conferences including the most recent Office Developer Conference and SharePoint Conference. It was great to see more OBA-centric content at these events.&amp;nbsp;Coming up, I'll also be hitting VSLive, DevConnections, Collaborate,&amp;nbsp;TechEd, SAP TechEd, Oracle OpenWorld, and PDC.&amp;nbsp;And&amp;nbsp;at these events, you're going to see some additional OBA content that will help you get on your way. &lt;/P&gt;
&lt;P&gt;To start&amp;nbsp;though, I'd like to offer those who are new to OBA some key resources...the things you might take a look at if you're a developer not necessarily new to .NET, but new to developing Office solutions.So, in this blog I'm going to list out a few places you might go to get more information. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;OBA Overview: &lt;A href="http://msdn2.microsoft.com/en-us/library/bb614538.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb614538.aspx&lt;/A&gt;. This is a good&amp;nbsp;article (chapter excerpt actually) to get your hands dirty. &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;OBA Central: &lt;A href="http://www.obacentral.com/"&gt;www.obacentral.com&lt;/A&gt;. A&amp;nbsp;decent portal for partner and customer&amp;nbsp;OBA information. I've worked with some of the companies on&amp;nbsp;here, and it's always great to see companies highlighted and on OBA Central.&lt;/LI&gt;
&lt;LI&gt;Office Developer Center: &lt;A href="http://r.office.microsoft.com/r/rlidOfficeDeveloperCenter?clid=th-TH"&gt;http://r.office.microsoft.com/r/rlidOfficeDeveloperCenter?clid=th-TH&lt;/A&gt;. This is a good place to go for general Office development information. There are a ton of decent How-to videos you can find here (which I think are one of the quickest ways to&amp;nbsp;get yourself up to speed on very specific&amp;nbsp;areas of&amp;nbsp;development).&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;VSTO Developer Center: &lt;A href="http://msdn2.microsoft.com/en-us/office/aa905533.aspx"&gt;http://msdn2.microsoft.com/en-us/office/aa905533.aspx&lt;/A&gt;. VSTO is key to developing the client-side portion of OBAs (as well as doing some server-side stuff such as SharePoint workflow). It's come a long way, so I encourage you to check it out (VSTO 3.0 is the most current version). &lt;/LI&gt;
&lt;LI&gt;SharePoint (WSS)&amp;nbsp;Developer Center: &lt;A href="http://msdn2.microsoft.com/en-us/sharepoint/default.aspx"&gt;http://msdn2.microsoft.com/en-us/sharepoint/default.aspx&lt;/A&gt;. This is Windows SharePoint Services (WSS), the underlying infrstructure and object model for Microsoft Office SharePoint Server (MOSS) 2007.&amp;nbsp;&amp;nbsp;WSS is great for those of you who want to get into understanding the object model and dynamic creation of sites, lists, etc. &lt;/LI&gt;
&lt;LI&gt;SharePoint (MOSS) Developer Cetner: &lt;A href="http://msdn2.microsoft.com/en-us/office/aa905503.aspx"&gt;http://msdn2.microsoft.com/en-us/office/aa905503.aspx&lt;/A&gt;. This is the MOSS portal, where you can find lots of great information. There are a number of key features you'll want to learn about when beginning to build OBAs. For example, you'll want to understand how to build Key Performance Indicators (KPIs), Excel Services, Business Data Catalog (BDC) Web parts to build integration into your line-of-business systems and provide business intelligence into your MOSS-based solutions. &lt;/LI&gt;
&lt;LI&gt;OBA Solution Patterns: &lt;A href="http://msdn2.microsoft.com/en-us/library/bb614541.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb614541.aspx&lt;/A&gt;. OBA&amp;nbsp;solution patterns provide some guidance to architects and developers on&amp;nbsp;design patterns.&amp;nbsp;We have some ways to on these, but they're a great&amp;nbsp;step towards&amp;nbsp;guiding you on how to craft your solution after an existing pattern. &lt;/LI&gt;
&lt;LI&gt;OBA RAPs: &lt;A href="http://msdn2.microsoft.com/en-us/architecture/bb643797.aspx"&gt;http://msdn2.microsoft.com/en-us/architecture/bb643797.aspx&lt;/A&gt;. This is the link to one OBA Reference Architecture Pack (RAP), which is a great way to&amp;nbsp;learn about industry-specific OBAs. Mike has created a number of other ones, so make sure you check those out as well. &lt;/LI&gt;
&lt;LI&gt;Six Office Business Applications for&amp;nbsp;Office SharePoint Server (MS Press): &lt;A href="http://www.microsoft.com/MSPress/books/9471.aspx"&gt;http://www.microsoft.com/MSPress/books/9471.aspx&lt;/A&gt;. A book that provides an overview of six different OBAs and how developers could go about building them. &lt;/LI&gt;
&lt;LI&gt;Programming Office Business Applications (MS Press): &lt;A href="http://www.microsoft.com/MSPress/books/12194.aspx"&gt;http://www.microsoft.com/MSPress/books/12194.aspx&lt;/A&gt;. A book that&amp;nbsp;looks at the different technologies that makie up an OBA--ranging from business intelligence, to social networking, to OpenXML, to SharePoint Workflow. Again, a developer-focused book. &amp;nbsp;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;In future blogs, I'm going to walk through some specifics about OBAs and try and cover them from top-to-bottom. I'll also try and find some additional things that you might find useful in your OBA ramp-up. &lt;/P&gt;
&lt;P&gt;Until then (which I promise will not be too long), happy reading, coding. &lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8161799" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+platform/default.aspx">OBA platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Steve+Fox/default.aspx">Steve Fox</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category></item><item><title>The ramblings begin...</title><link>http://blogs.msdn.com/steve_fox/archive/2007/12/14/the-ramblings-begin.aspx</link><pubDate>Fri, 14 Dec 2007 03:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6766296</guid><dc:creator>Steve Fox</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/steve_fox/comments/6766296.aspx</comments><wfw:commentRss>http://blogs.msdn.com/steve_fox/commentrss.aspx?PostID=6766296</wfw:commentRss><description>&lt;P&gt;Well it's December 13th, and I have not really started my Holiday shopping yet...how sad is that. But alas, I'm sure you're not tuning into this blog to hear about the lameness of my shopping habits, but you're probably looking for a little info on this mysterious thing called OBA. And if you have, then great...because I'll be using this blog to update you regularly on all things OBA. And while the title of the blog implies perambulation, fear not; I'll try and be somewhat structured in my delivery of information to you as I find it or create it. &lt;/P&gt;
&lt;P&gt;In this blog entry, all I'm going to do is define OBA to keep things simple. As this blog grows, I'll add more information, sample code, and pointers to great content so you can fulfill your quest to learn, build and deploy OBAs in your organization. So, without further delay: What is OBA?&lt;/P&gt;
&lt;P&gt;OBA, which stands for Office Business Application, is not a product SKU; moreover, it is the building of composite applications that leverage the Office development platform - or what some are also referring to as the OBA framework. I simplify my definition of OBA to the potential integration of three major components: i) a LOB system that manages your organization's business processes (e.g. SAP, PeopleSoft, Siebel, MS Dynamics, etc.). ii) the customization of the Office client (using tools like VSTO), and iii) the development and/or customization of MOSS 2007. The server side, while predominantly MOSS-centric (MOSS being Microsoft Office SharePoint Server) is not necessarily restricted to SharePoint; however, it is a primary piece of the pie.). And I say potential because you can different flavors of OBAs. For example, I could build an OBA that is Office client customizations tied to a LOB system; another type of OBA is server-side customizations (think MOSS BDC web part) tied to a LOB system; and yet another that combines both client and server customizations and one or more LOB systems. More forward looking, we'll likely see more OBAs that leverage hosted services/mash-ups in the cloud&lt;/P&gt;
&lt;P&gt;There are various levels of value from creating OBAs in the organization today. For example, large-scale LOB systems are often cumbersome to learn and use and often don't return the desired investments. This means training costs, change management costs, etc. Thus, OBAs (through leveraging the Office platform) enable developers to integrate LOB systems into the Office client and MOSS and accomplish two primary things: i) keep the information worker in the context of a familiar and comfortable environment, and ii) drive specific disciplinary and/or business data directly into the purview of the people who need and use it.&amp;nbsp;This integration can mitigate some of the aforementioned costs thus decreasing&amp;nbsp;total cost of ownership and driving productivity into the&amp;nbsp;appropriate&amp;nbsp;organizational disciplines. &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is a lot of OBA momentum underway, and you can check out &lt;A href="http://www.obacentral.com/" mce_href="http://www.obacentral.com/"&gt;www.obacentral.com&lt;/A&gt; to see some of what's happening out there. However, in future blogs I'll be posting lots of useful information, so look out for client customization information, integration techniques with MOSS, and more. Of course, I'll also provide some additional business value information (and pointers to other blogs, articles, etc.) that may also be useful to you.&lt;/P&gt;
&lt;P&gt;Until then, I hope you'll find our chats useful and fun!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6766296" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/steve_fox/archive/tags/MOSS+platform/default.aspx">MOSS platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+platform/default.aspx">Office platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Development/default.aspx">Office Development</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Office+Business+Applications/default.aspx">Office Business Applications</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA+platform/default.aspx">OBA platform</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/Steve+Fox/default.aspx">Steve Fox</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBAs/default.aspx">OBAs</category><category domain="http://blogs.msdn.com/steve_fox/archive/tags/OBA/default.aspx">OBA</category></item></channel></rss>