<?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>Microsoft InfoPath 2010</title><link>http://blogs.msdn.com/infopath/default.aspx</link><description>The official blog of the Microsoft InfoPath product team</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>We want to see your Cool Forms!</title><link>http://blogs.msdn.com/infopath/archive/2010/02/09/we-want-to-see-your-cool-forms.aspx</link><pubDate>Tue, 09 Feb 2010 19:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9960691</guid><dc:creator>infopath</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9960691.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9960691</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9960691</wfw:comment><description>&lt;P&gt;Today sees the launch of “InfoPath Cool Forms”. In this series, we will feature cool forms that showcase a form design practice or interesting scenario.&lt;/P&gt;
&lt;P&gt;This week’s cool form is the “Ask Kanesha” request form.&amp;nbsp; This is a neat little form that we use on the InfoPath team to submit requests to our Group Business Administrator, Kanesha. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/infopath/WindowsLiveWriter/WewanttoseeyourCoolForms_AC31/Ask%20Kanesha_2.png" mce_href="http://blogs.msdn.com/blogfiles/infopath/WindowsLiveWriter/WewanttoseeyourCoolForms_AC31/Ask%20Kanesha_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Ask Kanesha" border=0 alt="Ask Kanesha" src="http://blogs.msdn.com/blogfiles/infopath/WindowsLiveWriter/WewanttoseeyourCoolForms_AC31/Ask%20Kanesha_thumb.png" width=520 height=484 mce_src="http://blogs.msdn.com/blogfiles/infopath/WindowsLiveWriter/WewanttoseeyourCoolForms_AC31/Ask%20Kanesha_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Kanesha was being flooded with requests from team members and tracking all these requests was becoming a challenge. To help manage the requests, we created an ‘Ask Kanesha’ InfoPath browser form that submitted all requests to a SharePoint list. Team members use this form to submit requests. A simple workflow fires alerting Kanesha to the new request. Certain requests such as those for small hardware can be completed in minutes. The dropdowns in the form automatically filter to guide us to the right hardware. Other custom requests may take longer and can be managed by Kanesha online. The form saves us time and helps Kanesha keep track of all the requests that come her way.&lt;/P&gt;
&lt;P&gt;If you have a “cool” form that you would like to share with us, please send an e-mail with the following details to &lt;A href="mailto:coolform@microsoft.com" mce_href="mailto:coolform@microsoft.com"&gt;coolform@microsoft.com&lt;/A&gt; - &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Attach 1 or 2 screenshots of your form &lt;/LI&gt;
&lt;LI&gt;Provide a brief description of the form &lt;/LI&gt;
&lt;LI&gt;You may also attach the XSN file &lt;STRONG&gt;(optional)&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The most popular submissions will be featured on our blog in future posts.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9960691" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint+Lists/default.aspx">SharePoint Lists</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Cool+Forms/default.aspx">Cool Forms</category></item><item><title>Create a Loan Calculator using the InfoPath and Excel Web Parts</title><link>http://blogs.msdn.com/infopath/archive/2010/02/04/create-a-loan-calculator-using-the-infopath-and-excel-web-parts.aspx</link><pubDate>Thu, 04 Feb 2010 18:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9958322</guid><dc:creator>infopath</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9958322.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9958322</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9958322</wfw:comment><description>&lt;p&gt;In this week’s “5 for Forms” video demo, Nick Dallett will show you how to create a loan calculator application without writing a line of code. This simple application leverages the power of the InfoPath and Excel Web Parts by using an InfoPath form to input the values that are sent to an Excel Workbook which contains the complex formulas that calculate the repayments.&lt;/p&gt;

&lt;p&gt;If you want to learn more about the new InfoPath Form Web Part, check out Nick’s earlier video demo – &lt;a href="http://blogs.msdn.com/infopath/archive/2010/01/14/one-of-the-powerful-new-features-in-infopath-2010-is-the-infopath-form-web-part-this-is-the-1st-in-a-series-of-videos-where-we-will-show-how-to-use-the-infopath-form-web-part-to-create-rich-mashups-on-portal-pages-in-sharepoi.aspx" mce_href="http://blogs.msdn.com/infopath/archive/2010/01/14/one-of-the-powerful-new-features-in-infopath-2010-is-the-infopath-form-web-part-this-is-the-1st-in-a-series-of-videos-where-we-will-show-how-to-use-the-infopath-form-web-part-to-create-rich-mashups-on-portal-pages-in-sharepoi.aspx" target="_blank"&gt;&lt;font color="#8c3cc8"&gt;Managing data in your SharePoint Lists using the InfoPath Form Web Part&lt;/font&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap"&gt; &lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/8/2/2/3/2/5/InfoPathWebPartLoanCalculator_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, postid=523228"&gt; &lt;param name="background" value="#00FFFFFF"&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none;"&gt; &lt;/a&gt; &lt;/object&gt;
&lt;p&gt;Enjoy and please let us know what you think!&lt;/p&gt;

&lt;p&gt;The InfoPath Team&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9958322" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://blogs.msdn.com/infopath/archive/tags/5+for+forms/default.aspx">5 for forms</category><category domain="http://blogs.msdn.com/infopath/archive/tags/EWA/default.aspx">EWA</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Mashups/default.aspx">Mashups</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Excel+Web+Access/default.aspx">Excel Web Access</category><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+Form+Web+Part/default.aspx">InfoPath Form Web Part</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Excel+Calculations/default.aspx">Excel Calculations</category></item><item><title>Sign up now for the InfoPath 2010 Academy Live Series!</title><link>http://blogs.msdn.com/infopath/archive/2010/01/28/sign-up-now-for-the-infopath-2010-academy-live-series.aspx</link><pubDate>Fri, 29 Jan 2010 00:25:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9955053</guid><dc:creator>infopath</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9955053.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9955053</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9955053</wfw:comment><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Registration is now open for the 1st session in the &lt;a href="http://blogs.msdn.com/infopath/archive/2010/01/26/announcing-the-infopath-2010-academy-live-series.aspx" target="_blank"&gt;InfoPath 2010 Academy Live Series&lt;/a&gt;, An Introduction to SharePoint Applications using InfoPath 2010, presented by Bojana Duke.&lt;/p&gt;  &lt;p&gt;In this series, you will hear directly from InfoPath product team members who will talk in-depth about&amp;#160; InfoPath and Forms Services 2010 and how you can quickly and&amp;#160; easily build applications in SharePoint without writing a line of code. &lt;/p&gt;  &lt;p&gt;Click the link below to sign up for this &lt;strong&gt;free&lt;/strong&gt; event.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Event Title:&lt;/strong&gt; An Introduction to SharePoint Applications using InfoPath 2010 (INP02AL)     &lt;br /&gt;&lt;strong&gt;Date/Time:&lt;/strong&gt; Wed Feb 10, 2010, 8:30 AM, USA Pacific     &lt;br /&gt;&lt;strong&gt;Event Registration URL:&lt;/strong&gt; &lt;a href="https://www.eventbuilder.com/event_desc.asp?p_event=e0b96f2a" target="_blank"&gt;https://www.eventbuilder.com/event_desc.asp?p_event=e0b96f2a&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9955053" width="1" height="1"&gt;</description></item><item><title>Create a SharePoint list using InfoPath 2010</title><link>http://blogs.msdn.com/infopath/archive/2010/01/27/create-a-sharepoint-list-using-infopath-2010.aspx</link><pubDate>Thu, 28 Jan 2010 02:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9954460</guid><dc:creator>infopath</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9954460.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9954460</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9954460</wfw:comment><description>&lt;p&gt;This week’s “5 for forms” video demo continues the theme of SharePoint list customization. In the &lt;a href="http://blogs.msdn.com/infopath/archive/2009/12/17/customize-a-sharepoint-list-form-using-infopath-2010.aspx" target="_blank" mce_href="http://blogs.msdn.com/infopath/archive/2009/12/17/customize-a-sharepoint-list-form-using-infopath-2010.aspx"&gt;&lt;font color="#8c3cc8"&gt;1st video&lt;/font&gt;&lt;/a&gt; in this series, Daniel Broekman showed how you can take an &lt;b&gt;existing&lt;/b&gt; list on SharePoint and customize the form for that list in InfoPath. &lt;/p&gt;  &lt;p&gt;In this week’s video demo, Ines Khelifi, a developer on the InfoPath team shows how you can create a &lt;b&gt;new&lt;/b&gt; SharePoint list and custom form directly from InfoPath Designer.&lt;/p&gt; &lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap"&gt; &lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/4/9/4/3/2/5/InfoPathCreateSharePointList_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, postid=523494"&gt; &lt;param name="background" value="#00FFFFFF"&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none;"&gt; &lt;/a&gt; &lt;/object&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Enjoy and please send us your feedback!&lt;/p&gt;  &lt;p&gt;The InfoPath Team&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9954460" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint+Lists/default.aspx">SharePoint Lists</category><category domain="http://blogs.msdn.com/infopath/archive/tags/5+for+forms/default.aspx">5 for forms</category></item><item><title>Announcing the InfoPath 2010 Academy Live Series!</title><link>http://blogs.msdn.com/infopath/archive/2010/01/26/announcing-the-infopath-2010-academy-live-series.aspx</link><pubDate>Tue, 26 Jan 2010 16:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9953555</guid><dc:creator>infopath</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9953555.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9953555</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9953555</wfw:comment><description>&lt;P&gt;Do you want to hear about the exciting, new features and scenarios that have been added in InfoPath and InfoPath Forms Services 2010? Then, sign up for our upcoming Academy Live series. &lt;/P&gt;
&lt;P&gt;In this series, you will hear directly from InfoPath product team members who will talk in-depth about&amp;nbsp; InfoPath and Forms Services 2010 and how you can quickly and&amp;nbsp; easily build applications in SharePoint without writing a line of code. &lt;/P&gt;
&lt;P&gt;The series will consist of 4 sessions presented by members of the InfoPath product team. We will present 1 session a month, starting with an “Introduction to InfoPath and InfoPath Forms Services 2010”, presented by Bojana Duke from the InfoPath program management team. This session will take place on Wednesday, February 10th at 8:30 AM (PST). &lt;/P&gt;
&lt;P&gt;Whether you are an InfoPath newbie or an experienced InfoPath user, we encourage you to sign up for these free sessions. Stay tuned for more details on how to sign up. &lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;
&lt;P&gt;The InfoPath team.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9953555" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Academy+Live/default.aspx">Academy Live</category></item><item><title>Introduction to Sandboxed Solutions - Sort data in repeating tables using managed code</title><link>http://blogs.msdn.com/infopath/archive/2010/01/21/introduction-to-sandboxed-solutions-sorting-data-in-tables-using-managed-code.aspx</link><pubDate>Thu, 21 Jan 2010 19:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9951581</guid><dc:creator>infopath</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9951581.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9951581</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9951581</wfw:comment><description>Hi. My name is Phil Newman and I'm a program manager on the InfoPath team. In this post, I'd like to introduce you to one of my favourite new features in InfoPath 2010 - Sandboxed Solutions. In InfoPath 2010, forms with code can now be published directly to SharePoint without requiring the farm administrator to approve and upload them! These forms run in a sandboxed environment which protects other resources on the SharePoint server from malicious code. &lt;br&gt;
&lt;p&gt;In this short video demo, I show how you can add the ability to sort repeating tables in your forms using code.&amp;nbsp; I use picture buttons in the heading of the repeating table to trigger the code which sorts the table based on the values in the columns.&amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"&gt;
&lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap"&gt;
&lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/6/2/2/2/2/5/InfoPathSandboxedSortCode_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, postid=522226"&gt;
&lt;param name="background" value="#00FFFFFF"&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt;
&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none;"&gt;
&lt;/a&gt;
&lt;/object&gt;

&lt;p&gt;&lt;b&gt;About the Code&lt;/b&gt; &lt;/p&gt;

&lt;p&gt;In a nutshell, the code puts the XML from the repeating table into an array, sorts the array using built-in .Net functionality, and then writes back into the XML to update the table.&lt;/p&gt;

&lt;table style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 204);" width="100%" cellpadding="2" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpFirst"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//Sorts a repeating table.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Takes the parent group node and the index of the column to sort by. &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; SortTable(&lt;span style="color: blue;"&gt;string&lt;/span&gt; xpathToSort, &lt;span style="color: blue;"&gt;int&lt;/span&gt; columnToSortBy) &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//get the values in an array &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;[][] ValuesToSort = GetRepeatingTableValues(xpathToSort);&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//sort the array &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: rgb(43, 145, 175); font-size: 10pt;"&gt;Array&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;.Sort(ValuesToSort, &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;StringArrayComparer&lt;/span&gt;(columnToSortBy)); &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//write the values back to the xml &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;SetRepeatingTableValues(xpathToSort, ValuesToSort); &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//Takes an array of arrays and inserts it into a repeating table &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//Assumes that the array and table are the same size &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; SetRepeatingTableValues(&lt;span style="color: blue;"&gt;string&lt;/span&gt; xpathToSet, &lt;span style="color: blue;"&gt;string&lt;/span&gt;[][] tableValues) &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//Create a navigator on main node supplied in the parameters &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: rgb(43, 145, 175); font-size: 10pt;"&gt;XPathNavigator&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; mainGroup = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.CreateNavigator().SelectSingleNode(xpathToSet, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.NamespaceManager); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//Clone the first child node of the main navigator and populate it with data &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: rgb(43, 145, 175); font-size: 10pt;"&gt;XPathNodeIterator&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; tableRows = mainGroup.SelectChildren(&lt;span style="color: rgb(43, 145, 175);"&gt;XPathNodeType&lt;/span&gt;.Element); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&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;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//iterate through the existing XML and update the values from the sorted array &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; tableValues.Length; i++) &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;tableRows.MoveNext(); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: rgb(43, 145, 175); font-size: 10pt;"&gt;XPathNodeIterator&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; thisRow = tableRows.Current.SelectChildren(&lt;span style="color: rgb(43, 145, 175);"&gt;XPathNodeType&lt;/span&gt;.Element); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; j = 0; j &amp;lt; tableValues[0].Length; j++) &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 108pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;thisRow.MoveNext(); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 108pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;thisRow.Current.InnerXml = tableValues[i][j]; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//Returns an array of arrays of strings representing the values in a repeating table &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt;[][] GetRepeatingTableValues(&lt;span style="color: blue;"&gt;string&lt;/span&gt; xpathToGet) &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: rgb(43, 145, 175); font-size: 10pt;"&gt;XPathNavigator&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; myNav = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.CreateNavigator(); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; rows, cols; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: rgb(43, 145, 175); font-size: 10pt;"&gt;XPathNodeIterator&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; tableNodes; &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//figure out the dimensions of the table &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;tableNodes = myNav.SelectSingleNode(xpathToGet, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.NamespaceManager).SelectChildren(&lt;span style="color: rgb(43, 145, 175);"&gt;XPathNodeType&lt;/span&gt;.Element); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rows = tableNodes.Count; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&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;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//move to the first row to count the columns &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;tableNodes.MoveNext(); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;cols = tableNodes.Current.SelectChildren(&lt;span style="color: rgb(43, 145, 175);"&gt;XPathNodeType&lt;/span&gt;.Element).Count; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//create an array to store the values &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;[][] tableValues = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt;[rows][]; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//get all the rows in the table &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;tableNodes = myNav.SelectSingleNode(xpathToGet, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.NamespaceManager).SelectChildren(&lt;span style="color: rgb(43, 145, 175);"&gt;XPathNodeType&lt;/span&gt;.Element); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//iterate through the rows and write the inner xml of each element in each row to the array &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; rows; i++) &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;tableNodes.MoveNext(); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: rgb(43, 145, 175); font-size: 10pt;"&gt;XPathNodeIterator&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; childNodes = tableNodes.Current.SelectChildren(&lt;span style="color: rgb(43, 145, 175);"&gt;XPathNodeType&lt;/span&gt;.Element); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;[] rowValues = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt;[cols]; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; j = 0; j &amp;lt; cols; j++) &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 108pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;childNodes.MoveNext(); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 108pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;rowValues[j] = childNodes.Current.InnerXml; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 72pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;tableValues[i] = rowValues; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; tableValues; &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;//Comparison implementation for array or arrays &lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;class&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;StringArrayComparer&lt;/span&gt; : &lt;span style="color: rgb(43, 145, 175);"&gt;IComparer &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; iColumn; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; StringArrayComparer(&lt;span style="color: blue;"&gt;int&lt;/span&gt; iColumn) &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;.iColumn = iColumn; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;IComparer&lt;/span&gt;.Compare(&lt;span style="color: rgb(43, 145, 175);"&gt;Object&lt;/span&gt; x, &lt;span style="color: rgb(43, 145, 175);"&gt;Object&lt;/span&gt; y) &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{ &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;[] xAsString = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;[])x; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;[] yAsString = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;[])y; &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; xAsString[iColumn].CompareTo(yAsString[iColumn]); &lt;/span&gt;&lt;/p&gt;

&lt;p style="margin: 0cm 0cm 0pt 36pt; line-height: normal;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;} &lt;/span&gt;&lt;/p&gt;
&lt;span style="line-height: 115%; font-family: 'Courier New'; font-size: 10pt;"&gt;}&lt;/span&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;b&gt;Requirements for publishing your forms with code as Sandboxed solutions:&lt;/b&gt; &lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Sandboxed code service need to be enabled on the farm &lt;/li&gt;

&lt;li&gt;You must be a site collection administrator on the site collection you’re publishing to &lt;/li&gt;

&lt;li&gt;Your form must be domain trust &lt;/li&gt;

&lt;li&gt;Your form template must be an InfoPath 2010 template &lt;/li&gt;

&lt;li&gt;InfoPath 2007 form code needs to be upgraded to InfoPath 2010 form code &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Complete sandboxed solution documentation is available &lt;a href="http://msdn.microsoft.com/en-us/library/ee536577%28office.14%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ee536577%28office.14%29.aspx"&gt;here&lt;/a&gt;.&amp;nbsp; Note that InfoPath takes care of packaging and activating the solution, all you need to do is publish your form to a document library or as a site content type. &lt;/p&gt;

&lt;p&gt;I look forward to hearing your comments about this new feature. Let me know what you think! &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Phil &lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9951581" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/infopath/archive/tags/5+for+forms/default.aspx">5 for forms</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Sandboxed+Solutions/default.aspx">Sandboxed Solutions</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Sort/default.aspx">Sort</category></item><item><title>Manage data in your SharePoint Lists using the InfoPath Form Web Part</title><link>http://blogs.msdn.com/infopath/archive/2010/01/14/one-of-the-powerful-new-features-in-infopath-2010-is-the-infopath-form-web-part-this-is-the-1st-in-a-series-of-videos-where-we-will-show-how-to-use-the-infopath-form-web-part-to-create-rich-mashups-on-portal-pages-in-sharepoi.aspx</link><pubDate>Thu, 14 Jan 2010 20:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9948626</guid><dc:creator>infopath</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9948626.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9948626</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9948626</wfw:comment><description>&lt;p&gt;One of the powerful new features in InfoPath 2010 is the InfoPath Form Web Part. &lt;br&gt;&lt;br&gt;This is the 1st in a series of videos where we will show how to use the InfoPath Form Web Part to create rich mashups on portal pages in SharePoint, without writing a single line of code. In this video, Nick Dallett, a program manager lead on the InfoPath team, will demo two simple scenarios for managing data in your SharePoint lists using the InfoPath Form Web Part. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;
&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"&gt;
&lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_11_30.xap"&gt;
&lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/7/2/5/0/2/5/InfoPathWebPartLists_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, postid=520527"&gt;
&lt;param name="background" value="#00FFFFFF"&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" mce_href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt;
&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" mce_src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none;"&gt;
&lt;/a&gt;
&lt;/object&gt;

&lt;/p&gt;&lt;p&gt;Enjoy!
&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9948626" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint+Lists/default.aspx">SharePoint Lists</category><category domain="http://blogs.msdn.com/infopath/archive/tags/5+for+forms/default.aspx">5 for forms</category></item><item><title>Create tabbed navigation using picture button controls</title><link>http://blogs.msdn.com/infopath/archive/2010/01/07/create-tabbed-navigation-using-picture-button-controls.aspx</link><pubDate>Thu, 07 Jan 2010 22:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9945431</guid><dc:creator>infopath</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9945431.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9945431</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9945431</wfw:comment><description>&lt;p&gt;In the 2nd installment of our "5 for Forms" video demo series, Charlie Han, a program manager intern on the InfoPath team shows how you can use our new picture button control to create tabs to more easily navigate your forms.&lt;/p&gt;
&lt;br&gt;

&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"&gt;
&lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_11_30.xap"&gt;
&lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/2/2/1/9/1/5/InfoPath2010TabsPicButtons_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, postid=519126"&gt;
&lt;param name="background" value="#00FFFFFF"&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" mce_href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt;
&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" mce_src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none;"&gt;
&lt;/a&gt;
&lt;/object&gt;

&lt;p&gt;(There are additional steps required to create tabs in display views. Click &lt;a href="http://blogs.msdn.com/infopath/pages/create-tabbed-navigation-in-display-views.aspx" mce_href="http://blogs.msdn.com/infopath/pages/create-tabbed-navigation-in-display-views.aspx"&gt;here&lt;/a&gt; to find out more.)&lt;br&gt;&lt;/p&gt;&lt;p&gt;Enjoy! &lt;br&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9945431" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Picture+button/default.aspx">Picture button</category><category domain="http://blogs.msdn.com/infopath/archive/tags/5+for+forms/default.aspx">5 for forms</category><category domain="http://blogs.msdn.com/infopath/archive/tags/tabs/default.aspx">tabs</category></item><item><title>Customize a SharePoint List Form using InfoPath 2010</title><link>http://blogs.msdn.com/infopath/archive/2009/12/17/customize-a-sharepoint-list-form-using-infopath-2010.aspx</link><pubDate>Thu, 17 Dec 2009 21:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9938411</guid><dc:creator>infopath</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9938411.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9938411</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9938411</wfw:comment><description>
&lt;p&gt;Today sees the launch of our new "5 for forms" video demo series. In this series, we will demo a cool new InfoPath 2010 feature or scenario in less than 5 minutes.&lt;/p&gt;

&lt;p&gt;In the 1st video of the series, Daniel Broekman, a program manager on the InfoPath team will show you how you can customize a SharePoint list form with just a few clicks:&lt;/p&gt;



&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"&gt;
&lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_11_30.xap"&gt;
&lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/3/9/3/5/1/5/InfoPath2010CustomizeList_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, postid=515393"&gt;
&lt;param name="background" value="#00FFFFFF"&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" mce_href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt;
&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" mce_src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none;"&gt;
&lt;/a&gt;
&lt;/object&gt;


&lt;p&gt;We will post the next video in the series "Create tabs using Picture buttons"&amp;nbsp; after the holidays on January 7th.&lt;/p&gt;

&lt;p mce_keep="true"&gt;Enjoy! &lt;br&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9938411" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint+Lists/default.aspx">SharePoint Lists</category><category domain="http://blogs.msdn.com/infopath/archive/tags/5+for+forms/default.aspx">5 for forms</category></item><item><title>Use InfoPath 2010 with SharePoint 2010 Beta and Win an XBox360 Elite!</title><link>http://blogs.msdn.com/infopath/archive/2009/12/04/infopath-2010-solution-video-contest.aspx</link><pubDate>Fri, 04 Dec 2009 18:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9932697</guid><dc:creator>infopath</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9932697.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9932697</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9932697</wfw:comment><description>&lt;P&gt;Now that you have had&amp;nbsp;time to download the SharePoint 2010 and Office 2010 Beta releases&lt;STRONG&gt;, &lt;/STRONG&gt;we want to see some of the great solutions that you are working on.&amp;nbsp; To encourage you and foster some good-natured competition, we're opening up the contest that we started with the Technical Preview to all users of SharePoint 2010 and InfoPath 2010.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is the InfoPath team looking for?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;We want to see great examples of real-world solutions created using InfoPath and SharePoint 2010.&amp;nbsp; If you have a solution you're building to solve a business problem for yourself or a customer, and you're using SharePoint 2010 with InfoPath forms, we want to see it!&amp;nbsp; We'll use the videos you produce to understand what sort of solutions our customers create, to showcase best practices in our blog or at events, and to give you the recognition you deserve.&amp;nbsp; &lt;STRONG&gt;You could be an InfoPath star!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Don't stop with the InfoPath form - we're looking for great examples of integration.&amp;nbsp; For example:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Use SharePoint workflows to complete your scenario&lt;/LI&gt;
&lt;LI&gt;Generate Word documents from your InfoPath data using OOXML, and convert to other formats using Word Services&lt;/LI&gt;
&lt;LI&gt;Interoperate with line of business systems using Business Connectivity Services&lt;/LI&gt;
&lt;LI&gt;Create Web part portal pages that mash up forms and data using the InfoPath form web part&lt;/LI&gt;
&lt;LI&gt;Be creative!&amp;nbsp; We want to see great examples of enterprise software that features InfoPath and SharePoint&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;How do I win the Xbox?&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Build a real-world end to end application using InfoPath 2010 and Microsoft SharePoint Server 2010. 
&lt;LI&gt;Download the Community Clips Recorder from &lt;A href="http://communityclips.officelabs.com/"&gt;&lt;FONT color=#006ff7&gt;http://communityclips.officelabs.com/&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp; 
&lt;LI&gt;Record a walkthrough of your solution, showing us how you used InfoPath forms and other Office technologies (5 minutes maximum) 
&lt;LI&gt;Submit the finished video to us&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Contest is limited to eligible individuals as defined in the official contest rules (link below), and additional limitations may apply.&amp;nbsp; All submissions will be reviewed by the InfoPath team, and prizes will be awarded in several categories, including best overall solution, best video, and best bug.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Please note that only legal residents of the US and Canada are eligible for prizes.&amp;nbsp; However, we're eager to see videos from everyone, and we will showcase the best videos we receive, regardless of whether you are awarded a prize.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Click &lt;A title=here href="http://blogs.msdn.com/infopath/pages/infopath-2010-contest-rules.aspx" mce_href="http://blogs.msdn.com/infopath/pages/infopath-2010-contest-rules.aspx"&gt;here&lt;/A&gt; to read the Official Contest Rules.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9932697" width="1" height="1"&gt;</description></item><item><title>InfoPath 2010 Public Beta is Here!</title><link>http://blogs.msdn.com/infopath/archive/2009/11/18/download-infopath-2010-and-sharepoint-server-2010-beta-now.aspx</link><pubDate>Wed, 18 Nov 2009 18:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9924533</guid><dc:creator>infopath</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9924533.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9924533</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9924533</wfw:comment><description>&lt;P&gt;&lt;IMG style="WIDTH: 67px; HEIGHT: 67px" title="InfoPath 2010 Logo" alt="InfoPath 2010 Logo" align=baseline src="http://blogs.msdn.com/photos/infopath/images/9924577/original.aspx" width=67 height=67 mce_src="http://blogs.msdn.com/photos/infopath/images/9924577/original.aspx"&gt;The InfoPath team is excited to announce the release of the Office 2010 and SharePoint Server 2010 public betas! For the 1st time members of the public can download InfoPath 2010. Download it now from &lt;A href="http://www.microsoft.com/2010" mce_href="http://www.microsoft.com/2010"&gt;www.microsoft.com/2010&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;Here are just some of the highlights in this new release. (For more details, see our earlier &lt;A title="What's new in InfoPath 2010" href="http://blogs.msdn.com/infopath/archive/2009/07/15/what-s-new-in-infopath-2010.aspx" mce_href="http://blogs.msdn.com/infopath/archive/2009/07/15/what-s-new-in-infopath-2010.aspx"&gt;What's New in InfoPath 2010&lt;/A&gt; post).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Quick and Easy Form Design&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Designing good looking forms has been made easier with our new &lt;STRONG&gt;page layout templates&lt;/STRONG&gt;, &lt;STRONG&gt;layout tables&lt;/STRONG&gt;, and &lt;STRONG&gt;themes&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;With our new &lt;STRONG&gt;out-of-the-box rules&lt;/STRONG&gt; and improved rules management UI, you can easily add rules to validate data, format your form, or perform other actions with just a couple of clicks, and without any code.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Our new &lt;STRONG&gt;“quick” publish&lt;/STRONG&gt; functionality allows you to publish forms in a single click (no more clicking through the Publishing Wizard every time you want to make an update to your forms!)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;New Controls&lt;/STRONG&gt; include the picture button,&amp;nbsp;signature line control and person/group picker which is now available out-of-the-box&amp;nbsp;in the controls gallery.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;SharePoint Integration&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;Over the past 3 years of product development, we’ve made huge investments in integration with the SharePoint platform to make it much easier to build rich forms-based applications on top of SharePoint Server 2010.&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Using InfoPath, you can now extend and enhance the forms used for creating, editing and viewing items in a &lt;STRONG&gt;SharePoint list&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;With the new &lt;STRONG&gt;InfoPath Form Web Part&lt;/STRONG&gt;, you can host your forms on portal pages without writing a single line of code.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;With SharePoint &lt;STRONG&gt;sandboxed solutions&lt;/STRONG&gt;, forms with code can be published directly to SharePoint libraries without requiring administratror approval.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Richer browser forms&lt;/STRONG&gt;:Bulleted, numbered, and plain lists, multiple selection list boxes, Combo boxes, Choice group and sections, and Filtering functionality are now supported in browser forms.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;InfoPath Forms Services Administration and Management&lt;/STRONG&gt;: We have invested in many improvements to make it easier to manage InfoPath Forms Services as a component of Microsoft SharePoint Server 2010. These include Powershell commandlets to automate tasks and&amp;nbsp;SharePoint Maintenance Manager&amp;nbsp;Rules to monitor the health of your server. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 87px; HEIGHT: 34px" title="New icon" alt="New icon" align=baseline src="http://blogs.msdn.com/photos/infopath/images/9924596/original.aspx" width=87 height=34 mce_src="http://blogs.msdn.com/photos/infopath/images/9924596/original.aspx"&gt;Introduced since the technical preview, InfoPath now supports connecting to &lt;STRONG&gt;REST Web Services&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Go &lt;A href="http://www.microsoft.com/2010" mce_href="http://www.microsoft.com/2010"&gt;download the beta now&lt;/A&gt; and send us your feedback using Send-a-Smile.&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P&gt;The InfoPath Team&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9924533" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Beta/default.aspx">Beta</category></item><item><title>New Office and SharePoint 2010 Developer Workshop available on Channel 9</title><link>http://blogs.msdn.com/infopath/archive/2009/11/10/new-office-and-sharepoint-2010-developer-training-courses-available-on-channel-9.aspx</link><pubDate>Tue, 10 Nov 2009 20:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9920416</guid><dc:creator>infopath</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9920416.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9920416</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9920416</wfw:comment><description>&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 120px" title="Channel9 Training Banner" alt="Channel9 Training Banner" src="http://blogs.msdn.com/photos/infopath/images/9920410/original.aspx" width=450 height=120 mce_src="http://blogs.msdn.com/photos/infopath/images/9920410/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This week, Channel 9 launched two new training courses for SharePoint 2010 and Office 2010 created by developers for developers.&amp;nbsp;You’ll find extensive instructor recordings from top MVPs on how to develop against both SharePoint and office 2010. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;InfoPath&amp;nbsp;is featured in:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title="Office 2010 Developer Roadmap - Office 2010 Development Tools" href="http://channel9.msdn.com/learn/courses/Office2010/RoadmapUnit/Office2010DevelopmentTools/" mce_href="http://channel9.msdn.com/learn/courses/Office2010/RoadmapUnit/Office2010DevelopmentTools/"&gt;Office 2010 Developer Roadmap - Office 2010 Development Tools&lt;/A&gt;&amp;nbsp;- This video provides an introduction to building solutions for Office and SharePoint 2010 using Visual Studio 2010, SharePoint Designer 2010, InfoPath 2010, and Access 2010.&lt;/LI&gt;
&lt;LI&gt;&lt;A title="InfoPath 2010 and Forms Services" href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/" mce_href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/"&gt;InfoPath 2010 and Forms Services&lt;/A&gt;&amp;nbsp;- This unit which contains 4 videos&amp;nbsp;covers development of custom SharePoint List Forms and workflows, publishing InfoPath Forms and connecting external data to InfoPath Forms. &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title="What is InfoPath 2010?" href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/WhatIsInfoPath/" mce_href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/WhatIsInfoPath/"&gt;What is InfoPath 2010?&lt;/A&gt;&amp;nbsp;- This video introduces the capabilities of InfoPath, the form design experience, InfoPath Forms Services and the InfoPath Form Web Part&lt;/LI&gt;
&lt;LI&gt;&lt;A title="List Forms using InfoPath 2010" href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/ListFormsInfoPath/" mce_href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/ListFormsInfoPath/"&gt;List Forms using InfoPath 2010&lt;/A&gt;&amp;nbsp;- This video covers how to develop a no-code, custom InfoPath form for a SharePoint List, publish the InfoPath form and then connect the InfoPath form to another List as an additional data source.&lt;/LI&gt;
&lt;LI&gt;&lt;A title="Working Offline with InfoPath 2010" href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/OfflineWithInfoPath/" mce_href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/OfflineWithInfoPath/"&gt;Working Offline with InfoPath 2010&lt;/A&gt;&amp;nbsp;- This video discusses offline support for InfoPath 2010 with SharePoint Workspace 2010 and the online/offline synchronization process.&lt;/LI&gt;
&lt;LI&gt;&lt;A title="InfoPath 2010 and Visual Studio" href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/InfoPathVisualStudio/" mce_href="http://channel9.msdn.com/learn/courses/Office2010/InfoPathUnit/InfoPathVisualStudio/"&gt;InfoPath 2010 and Visual Studio&lt;/A&gt;&amp;nbsp;- Developers can enhance InfoPath 2010 forms with Code Behind using Visual Studio Tools for Applications. This customization can be done in either C# or VB. This video also explains how SharePoint isolates custom code in its Sandbox environment.&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920416" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint+Workspace/default.aspx">SharePoint Workspace</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Training/default.aspx">Training</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Channel9/default.aspx">Channel9</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Developer/default.aspx">Developer</category><category domain="http://blogs.msdn.com/infopath/archive/tags/VSTA/default.aspx">VSTA</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Offline/default.aspx">Offline</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Lists/default.aspx">Lists</category></item><item><title>SPC Recap: Create Form Driven Mashups with the InfoPath Form Web Part</title><link>http://blogs.msdn.com/infopath/archive/2009/10/30/create-form-driven-mashups-with-the-infopath-form-web-part.aspx</link><pubDate>Sat, 31 Oct 2009 01:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9915576</guid><dc:creator>infopath</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9915576.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9915576</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9915576</wfw:comment><description>&lt;P&gt;The&amp;nbsp;recent&amp;nbsp;SharePoint Conference ended with a bang as Nick Dallett showed participants how they could create rich enterprise mashups by using InfoPath to create dynamic web parts without writing code. &lt;/P&gt;
&lt;P&gt;Nick showed off the new InfoPath form web part and demonstrated how easy it is for business users to use the web part to create composite applications together with other web parts that ship out of the box in SharePoint 2010, as well as custom web parts created by developers.&lt;/P&gt;
&lt;P&gt;Nick started by defining what an enterprise mashup is, pointing out three key points:&lt;BR&gt;-&amp;nbsp;They are created by *business users*, not IT&lt;BR&gt;-&amp;nbsp;They feature one or more sources of enterprise and public data&lt;BR&gt;-&amp;nbsp;They provide visualizations of that data which helps users make better, faster, and more efficient decisions.&lt;/P&gt;
&lt;P&gt;He then went on to present 9 different scenarios where InfoPath was used as part of an enterprise mashup.&amp;nbsp; Each mashup illustrated a slightly different angle of the two design patterns that underlie all of the examples:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The Connection-oriented design pattern, where web parts communicate using part-to-part connections, and&lt;/LI&gt;
&lt;LI&gt;The List-oriented design pattern, where web parts communicate by virtue of the fact that they are connected to one or more related lists&lt;BR&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;1.&amp;nbsp;Channel Analyzer (IDV Visual Fusion)&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;(Design pattern 2 – list-oriented)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="Litware Channel Analyzer Application" alt="Litware Channel Analyzer Application" src="http://blogs.msdn.com/photos/infopath/images/9920498/original.aspx" width=450 height=337 mce_src="http://blogs.msdn.com/photos/infopath/images/9920498/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 222px; HEIGHT: 47px" title="IDV Solutions Logo" alt="IDV Solutions Logo" src="http://blogs.msdn.com/photos/infopath/images/9920500/original.aspx" width=222 height=47 mce_src="http://blogs.msdn.com/photos/infopath/images/9920500/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Scott Caulk from IDV solutions (&lt;A href="http://www.idvsolutions.com/" mce_href="http://www.idvsolutions.com/"&gt;http://www.idvsolutions.com/&lt;/A&gt;) gave a brief demonstration of an application built on their Visual Fusion product.&amp;nbsp; Visual Fusion is a rich Silverlight-based web part which allows users to aggregate multiple sources of data from the enterprise or the web, and visualize it in Bing maps.&amp;nbsp; Scott showed how a marketing manager for Litware books can use sales data plotted on the map to determine where a new promotional event may have the most impact.&amp;nbsp; The manager then clicks a button to fill out an InfoPath form to schedule a new marketing event.&amp;nbsp; Once submitted, data about all marketing events that have been scheduled is displayed on the map alongside the sales data.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;2.&amp;nbsp;Customers and orders&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;(Design pattern 1 – connection-oriented)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 445px; HEIGHT: 385px" title="Customers and Related Orders" alt="Customers and Related Orders" src="http://blogs.msdn.com/photos/infopath/images/9920504/original.aspx" width=445 height=385 mce_src="http://blogs.msdn.com/photos/infopath/images/9920504/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Nick had some fun with the next two demos, which center around Contoso Office Supplies, where Nick moonlights as a salesman (wink wink).&amp;nbsp; After showing us the custom InfoPath form that he uses to display data from his customer list, Nick’s cell phone rang on stage, and after a brief moment of confusion (is he really going to answer a call in the middle of a presentation??), Nick let us know that the call was from Karie, the office manager over at Fabrikam.&amp;nbsp; It was all part of the show!&amp;nbsp;&amp;nbsp; Karie wanted to know what pending orders she had so that she could put together the order for this week.&amp;nbsp; Nick showed how he could quickly pull related orders information into the display form’s web part page with just a few clicks, and was able to give Karie the information she needed.&amp;nbsp; Now that the web part page was modified, clicking on any customer in the list brought up not only their company information, but their pending orders as well.&lt;BR&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key concept:&amp;nbsp;&amp;nbsp; pull in related data using the “insert related list” action.&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;3.&amp;nbsp;New Order form&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;(design pattern 1 – connection-oriented)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 428px; HEIGHT: 638px" title="New Order Form" alt="New Order Form" src="http://blogs.msdn.com/photos/infopath/images/9920506/original.aspx" width=428 height=638 mce_src="http://blogs.msdn.com/photos/infopath/images/9920506/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once off the phone, Nick put together a page from scratch displaying his customer list, with a list of orders for the currently selected customer, and an order form that was prepopulated with the customer information.&amp;nbsp; He explained the two connections that allowed him to filter the orders list based on the ID of the selected customer, and to tell the form to populate itself with customer data using a filter on a data connection to the customers list.&amp;nbsp; (NOTE: filtering and parameterized sharepoint list queries are both now supported in browser forms for SharePoint 2010!).&lt;BR&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key concept: filter a data connection based on an incoming connection parameter.&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;4.&amp;nbsp;Customers master-detail&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;(design pattern 1 – connection-oriented)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 507px" title="Customers List - Master Detail" alt="Customers List - Master Detail" src="http://blogs.msdn.com/photos/infopath/images/9920508/original.aspx" width=450 height=507 mce_src="http://blogs.msdn.com/photos/infopath/images/9920508/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Nick pointed out that the simplest web part mashup to build is a master-detail scenario for a list with a custom InfoPath form.&amp;nbsp; He threw a list view onto a web part page, added an InfoPath form web part, and simply set up a connection using the “Get Form From” action to specify both the form and the connection to the list in one go.&amp;nbsp; Now, selecting a customer in the list displays the form for that customer alongside the list, allowing for quick access to data across multiple customers.&lt;BR&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key Concept: build master-detail pages using the “Get Form From” connection action.&lt;BR&gt;&lt;/P&gt;&lt;/EM&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;5.&amp;nbsp;Office Dogfood Voting&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;(design pattern 2 – list-oriented)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 429px; HEIGHT: 489px" title="Office Build Voting Form" alt="Office Build Voting Form" src="http://blogs.msdn.com/photos/infopath/images/9920513/original.aspx" width=429 height=489 mce_src="http://blogs.msdn.com/photos/infopath/images/9920513/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This mashup was an alternate implementation of a solution used at Microsoft to track the quality of Office builds.&amp;nbsp; As people install new builds and use them in their daily work, they can submit votes on whether the build is a good one (thumbs up) or a turkey (thumbs down), with some details.&amp;nbsp; The mashup page shows a list of builds, with aggregated information about votes cast about that build, and calculated columns which determine a rating for that build based on the number of yea or nay votes.&amp;nbsp; Nick demonstrated how the form works by submitting the vote to the underlying Votes list and then displaying a “Thank you” view to the user.&amp;nbsp; He then showed the workflow that increments the “for” and “against” counters for a build based on the submitted vote.&lt;BR&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key concept: use data in a list to drive workflow and influence the display of other web parts.&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;6.&amp;nbsp;Microsoft Helpdesk&lt;BR&gt;&lt;/STRONG&gt;&lt;/U&gt;(design pattern 1 – connection-oriented)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 470px" title="Help Desk Form" alt="Help Desk Form" src="http://blogs.msdn.com/photos/infopath/images/9920519/original.aspx" width=450 height=470 mce_src="http://blogs.msdn.com/photos/infopath/images/9920519/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Next, Nick showed a page with two InfoPath forms and a list.&amp;nbsp; The Helpdesk form is an updated version of the form demonstrated in many of our InfoPath 2007 conference presentations.&amp;nbsp; It’s a rich form which shows a dynamically determined set of fields and values based on a problem category and problem area chosen by the user in a set of cascading dropdowns.&amp;nbsp; Based on the chosen category, the form sends a filter parameter, using the new Send Data to Web Part rule action, to filter a list of known solutions related to the problem category.&lt;/P&gt;
&lt;P&gt;A second InfoPath form in the page shows information about the logged-in user.&amp;nbsp; This display-only web part uses a query against the userprofile web service in SharePoint to bring in information from the User Profile Store.&lt;BR&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key Concepts:&amp;nbsp; filtering dropdowns in the browser, using the Send Data To Web Part rule action, creating display-only web parts using InfoPath.&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;7.&amp;nbsp;Loan calculator&lt;BR&gt;&lt;/STRONG&gt;&lt;/U&gt;(design pattern 1 – connection-oriented)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 243px" title="Loan Calculator" alt="Loan Calculator" src="http://blogs.msdn.com/photos/infopath/images/9920614/original.aspx" width=450 height=243 mce_src="http://blogs.msdn.com/photos/infopath/images/9920614/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;This demo showed how to use InfoPath to create a rich form that drives complex calculations in an Excel workbook hosted in Excel Services.&amp;nbsp; Nick used the Loan Calculator from Office Online, and a simple custom InfoPath form, put them both in a web part page, and then used SharePoint Designer to set up a multiple filter value connection between the form and the workbook.&amp;nbsp; The form adds default values, data validation, and visual pizzazz to the powerful calculation engine of Excel to create a compelling composite with no code.&lt;BR&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key concepts:&amp;nbsp; connecting InfoPath forms with Excel, using SharePoint Designer to specify multi-valued connections.&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;8.&amp;nbsp;Insurance claims processing&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;(design patterns 1 and 2 – list AND connection oriented)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG style="WIDTH: 450px; HEIGHT: 339px" title="Insurance Claims Portal" alt="Insurance Claims Portal" src="http://blogs.msdn.com/photos/infopath/images/9920616/original.aspx" width=450 height=339 mce_src="http://blogs.msdn.com/photos/infopath/images/9920616/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Nick showed a 4 part mashup centered around an insurance claims manager looking at claims submitted by customers in the wake of a violent storm.&amp;nbsp; Clicking on a claim in a list view shows the location of the claim in a custom web part using Bing maps, a photo of the damage in the Image Viewer web part, and an InfoPath form which allows him to assign an adjuster based on the geographic location and set a priority based on the damage photos.&amp;nbsp; The map shows all of the claims in the list (design pattern 2), but accepts a list item ID as a connection parameter, and centers the map on that pin when a list item is selected (design pattern 1).&amp;nbsp; Finally, clicking on a pin in the map displays the original form submission in a popup dialog using the showPopupDialog( ) javascript method.&lt;BR&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key concepts: combine design patterns for complex scenarios, use Bing maps in custom Web parts, display InfoPath forms using showPopupDialog( ).&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;9.&amp;nbsp;The Microsoft Giving Campaign&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;(design pattern 2 – list-oriented)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 294px" title="Giving Campaign Web Site" alt="Giving Campaign Web Site" src="http://blogs.msdn.com/photos/infopath/images/9920617/original.aspx" width=450 height=294 mce_src="http://blogs.msdn.com/photos/infopath/images/9920617/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;The final mashup of the day was built around the Microsoft Giving Campaign, which happens this time each year.&amp;nbsp; Employees are encouraged to donate to their favorite charities, and the donations are tracked to get an overall picture of employee giving.&amp;nbsp; The Give web mashup shows three web parts, including an InfoPath donation form, a chart web part showing aggregated donations by business division, and a custom Silverlight web part showing progress towards the campaign goal.&amp;nbsp; (The custom part is a project that Mike Ammerlaan from the SharePoint team demonstrated earlier in the week in his talk on creating web parts using Silverlight.).&amp;nbsp; This mashup features a similar structure to the Office Build Voting mashup shown earlier, in that there is a single list which contains all employee donations, and a second list which lists donations by business division.&amp;nbsp; Submitting a donation to the Donations list kicks off a workflow which updates the Divisions list with the new total donation amount.&amp;nbsp; The chart web part (which ships with SharePoint 2010) shows the breakdown of donations by division, and the Silverlight gauge web part shows a graphical representation of the total number of donations relative to a fixed goal.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Key concepts: using custom Silverlight web parts, chart web part&lt;/EM&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=9915576" width="1" height="1"&gt;</description></item><item><title>InfoPath 2010 Performance Highlights</title><link>http://blogs.msdn.com/infopath/archive/2009/10/27/infopath-2010-performance-highlights.aspx</link><pubDate>Tue, 27 Oct 2009 15:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9913547</guid><dc:creator>infopath</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9913547.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9913547</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9913547</wfw:comment><description>&lt;P&gt;At&amp;nbsp;last week's SharePoint conference in Las Vegas, Rick Severson, a test lead on the InfoPath product team presented a session called Performance Best Practices for SharePoint Forms Services 2010. This session covered best practices and&amp;nbsp;performance&amp;nbsp;improvements in InfoPath 2010. In this post, we will cover the highlights from this session. &lt;/P&gt;
&lt;P&gt;&lt;U&gt;InfoPath Team Members who attended SPC&lt;/U&gt;:&lt;/P&gt;
&lt;P&gt;(From Back Row Left to Right: Daniel Witriol (Program Manager Lead), Darvish Shadravan (Technology Specialist), Rick Severson (Test Lead), Nick Dallett (Program&amp;nbsp; Manager Lead), Roberto Taboada (Program Manager), Bojana Duke (Program Manager), Peter Allenspach (Group Program Manager), Umut Alev (Development Lead))&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="SPC - InfoPath Team Picture" alt="SPC - InfoPath Team Picture" src="http://blogs.msdn.com/photos/infopath/images/9913802/original.aspx" width=450 height=337 mce_src="http://blogs.msdn.com/photos/infopath/images/9913802/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;We had about 100 people in the room for this deep dive of InfoPath performance best practices. Rick opened the session by defining what fast forms are. He used a&amp;nbsp;sample 1040EZ form to demonstrate a &lt;EM&gt;"lightning fast form"&lt;/EM&gt; out of the box. In&amp;nbsp;InfoPath Forms Services&amp;nbsp;2010,&amp;nbsp;we've improved performance by achieving initial form load times of .8 seconds and subsequent form loads of .4 seconds.&amp;nbsp;A&amp;nbsp;sample passport form with 60 controls and some simple rules and data validation was used to demonstrate that requests per second (RPS) have increased. With this form, 1200 requests can be processed per second. That's a total of 2.1 million users per hour. &lt;/P&gt;
&lt;P&gt;Rick then&amp;nbsp;moved on&amp;nbsp;to cover some of the scalability highlights in this release.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Requests per second (RPS) have doubled.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;We can now scale out&amp;nbsp;to 8 Web front ends for a single backend.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Performance of SharePoint lists that have been customized using InfoPath is comparable to the default, out of the box SharePoint lists.&lt;/LI&gt;
&lt;LI&gt;Forms with Sandboxed code can process 340 RPS in a 1x3 topology&lt;/LI&gt;
&lt;LI&gt;Our new State Service allows for better scaling and faster session performance&lt;/LI&gt;
&lt;LI&gt;We’ve ported many fixes into 2007 SP2 so you can take advantage of many of these performance gains today&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Performance improvements&amp;nbsp;include - &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Our new, enhanced rich text control which is optimized for multiple instances on a form&lt;/LI&gt;
&lt;LI&gt;OnHover rendering of secondary data which improves rendering time&lt;/LI&gt;
&lt;LI&gt;Performance in customized SharePoint&amp;nbsp;lists ensures that you get the richness of InfoPath without sacrificing performance&lt;/LI&gt;
&lt;LI&gt;New State Service&lt;/LI&gt;
&lt;LI&gt;Optimized .js for Ajax behavior rendering&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="InfoPath 2010 - Performance Improvements" alt="InfoPath 2010 - Performance Improvements" src="http://blogs.msdn.com/photos/infopath/images/9915565/original.aspx" width=450 height=337 mce_src="http://blogs.msdn.com/photos/infopath/images/9915565/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;In the next part of the session, Rick covered some best practices for optimizing the performance of your forms. He focused on the following 4 areas - Data Connections, Controls, Data size and business logic.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;For optimal performance, he recommended that you filter data at source rather than returning large data sets when querying data sources.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;InfoPath 2010 users can now take advantage of our new browser form filtering capabilities.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Users should avoid running data queries on form load and instead run them on demand.&lt;/LI&gt;
&lt;LI&gt;It's a good practice to combine data queries with other actions, such as view switches to minimize the number of postbacks.&lt;/LI&gt;
&lt;LI&gt;To further improve performance, we recommend that you reduce form complexity, avoid out of context controls and avoid postbacks.&lt;/LI&gt;
&lt;LI&gt;When possible, you should take advantage of first request optimized forms.&amp;nbsp; You can do this by avoiding logic in your form that has to be calculated on load.&amp;nbsp; For example, if you use a default value of DateTime.Now(), then this has to be calculated on load so the form cannot be first request optimized.&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="InfoPath 2010 Performance - Areas to tune" alt="InfoPath 2010 Performance - Areas to tune" align=middle src="http://blogs.msdn.com/photos/infopath/images/9915566/original.aspx" mce_src="http://blogs.msdn.com/photos/infopath/images/9915566/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;The key takeaways from this session were high performance out of the box, complex solutions can be tuned easily and performance matters!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional Resources for improving the performance of your InfoPath forms:&lt;/STRONG&gt;&lt;BR&gt;Designing Browser enabled forms for Performance in InfoPath Forms Services&lt;BR&gt;&lt;A href="http://blogs.msdn.com/infopath/archive/2008/05/09/designing-browser-enabled-forms-for-performance-in-infopath-forms-services.aspx" target=_blank mce_href="http://blogs.msdn.com/infopath/archive/2008/05/09/designing-browser-enabled-forms-for-performance-in-infopath-forms-services.aspx"&gt;http://blogs.msdn.com/infopath/archive/2008/05/09/designing-browser-enabled-forms-for-performance-in-infopath-forms-services.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Capacity Planning Document For IPFS&lt;BR&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc879113.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc879113.aspx"&gt;http://technet.microsoft.com/en-us/library/cc879113.aspx&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;InfoPath Forms Services 2007 Web Testing Toolkit&lt;BR&gt;&lt;A href="http://www.codeplex.com/ipfswebtest" mce_href="http://www.codeplex.com/ipfswebtest"&gt;http://www.codeplex.com/ipfswebtest&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913547" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint+Conference+2009/default.aspx">SharePoint Conference 2009</category></item><item><title>InfoPath 2010 is unveiled at the SharePoint Conference</title><link>http://blogs.msdn.com/infopath/archive/2009/10/20/infopath-at-the-sharepoint-2010-conference.aspx</link><pubDate>Tue, 20 Oct 2009 22:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910238</guid><dc:creator>infopath</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/infopath/comments/9910238.aspx</comments><wfw:commentRss>http://blogs.msdn.com/infopath/commentrss.aspx?PostID=9910238</wfw:commentRss><wfw:comment>http://blogs.msdn.com/infopath/rsscomments.aspx?PostID=9910238</wfw:comment><description>&lt;P&gt;As many of you may know, the SharePoint Conference 2009 is taking place this week in Las Vegas, Nevada and it's been a particularly exciting week for the InfoPath product team. Over the past 3 years of product development, we have made huge investments in integrating with the SharePoint platform. Finally, this week, we got the opportunity to unveil the fruits of these investments to the world, and so far, the reception has been tremendously positive! (Check out what people are saying about InfoPath 2010 on &lt;A title=Twitter href="http://twitter.com/#search?q=%23spc09%20infopath" target=_blank mce_href="http://twitter.com/#search?q=%23spc09%20infopath"&gt;Twitter&lt;/A&gt;.)&lt;/P&gt;
&lt;P&gt;&lt;U&gt;SPC is taking place at the Mandalay Bay Hotel&lt;/U&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 347px" title="SPC 2009 - Mandalay Bay Hotel" alt="SPC 2009 - Mandalay Bay Hotel" src="http://blogs.msdn.com/photos/infopath/images/9910869/original.aspx" width=450 height=347 mce_src="http://blogs.msdn.com/photos/infopath/images/9910869/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;InfoPath Booth&lt;/U&gt;: &lt;/P&gt;
&lt;P&gt;(from left: Umut Alev - development lead, Peter Allenspach - group program manager, Rick Severson - test lead):&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="SharePoint Conference - InfoPath Team Members" alt="SharePoint Conference - InfoPath Team Members" src="http://blogs.msdn.com/photos/infopath/images/9910843/original.aspx" width=450 height=337 mce_src="http://blogs.msdn.com/photos/infopath/images/9910843/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;InfoPath 2010 is well represented at this year's conference with a total of 5 sessions. The 1st session took place on Monday and was presented by Peter Allenspach and Bojana Duke from the InfoPath program management team.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;The InfoPath session drew big crowds&lt;/U&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="SPC 2009 - InfoPath Session Audience" alt="SPC 2009 - InfoPath Session Audience" align=baseline src="http://blogs.msdn.com/photos/infopath/images/9910810/original.aspx" width=450 height=337 mce_src="http://blogs.msdn.com/photos/infopath/images/9910810/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;The session opened with an introduction to InfoPath 2010, followed by 3 feature demos which illustrated just how easy InfoPath 2010 makes it for Information Workers to create their own solutions without reliance on IT departments. Some highlights below - &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;InfoPath 2010 Overview:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="InfoPath 2010 Overview" alt="InfoPath 2010 Overview" src="http://blogs.msdn.com/photos/infopath/images/9910804/original.aspx" width=450 height=337 mce_src="http://blogs.msdn.com/photos/infopath/images/9910804/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demo 1: Customizing a SharePoint list form&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In this demo, Peter and Bojana walked through a real Microsoft internal College Recruiting scenario. Employees use SharePoint lists to sign up for recruiting trips. Bojana wowed the audience by taking the Recruitment Trip list form and customizing it in InfoPath in under a minute! &lt;/P&gt;
&lt;P&gt;Peter and Bojana then went on to show how this form could be further enhanced and customized. Our new out of the box rules were used to add data validation and to conditionally show or hide sections in the form. A data connection to the Colleges list was added to pull details about the colleges into the recruiting trip sign-up&amp;nbsp;form. The form layout was customized using our new pre-built layout tables and themes. They then showed how in a single click, the form could be published to SharePoint. Not only that, but they then showed how the list, including the customized form could be taken offline in SharePoint Workspace.&lt;/P&gt;
&lt;P&gt;Last but not least, they opened the form in Firefox showing that you can use your browser of choice to fill out your forms.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Before Form&lt;/U&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 325px" title="SharePoint List - Default Form" alt="SharePoint List - Default Form" src="http://blogs.msdn.com/photos/infopath/images/9910244/original.aspx" width=450 height=325 mce_src="http://blogs.msdn.com/photos/infopath/images/9910244/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;After Form&lt;/U&gt;:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 342px" title="SharePoint List - Customized InfoPath Form" alt="SharePoint List - Customized InfoPath Form" src="http://blogs.msdn.com/photos/infopath/images/9910245/original.aspx" width=450 height=342 mce_src="http://blogs.msdn.com/photos/infopath/images/9910245/original.aspx"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;U&gt;Offline Form in SharePoint Workspace&lt;/U&gt;:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 284px" title="SharePoint WorkSpace - Offline Form" alt="SharePoint WorkSpace - Offline Form" src="http://blogs.msdn.com/photos/infopath/images/9910865/original.aspx" width=450 height=284 mce_src="http://blogs.msdn.com/photos/infopath/images/9910865/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demo 2: Creating Mashups using the InfoPath Form Web Part&lt;BR&gt;&lt;/STRONG&gt;The 2nd demo took the Recruiting scenario to the next level. In this demo, Bojana created a simple portal page with 2 Web Parts, the Recruiting trip list and the new InfoPath Form Web Part. In only a few clicks, she connected the 2 Web Parts. Now when she selected an item in the recruitment list, the details for that trip were displayed in an InfoPath form. &lt;/P&gt;
&lt;P&gt;&lt;U&gt;Portal Page&lt;/U&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 272px" title="InfoPath Form Web Part" alt="InfoPath Form Web Part" src="http://blogs.msdn.com/photos/infopath/images/9910803/original.aspx" width=450 height=272 mce_src="http://blogs.msdn.com/photos/infopath/images/9910803/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;They concluded the 2nd demo by showing that both SharePoint solutions and InfoPath forms are truly portable and reusable. The site was saved as a template (WSP) and a new site was created from this template. The SharePoint list, portal page and InfoPath form were fully functional on this new site.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demo 3: Office Business Applications: Procurement scenario&lt;/STRONG&gt;&lt;BR&gt;In this final demo,&amp;nbsp; Peter and Bojana showed the audience how InfoPath helps IT departments develop full Office Business Applications on the SharePoint platform. They used a procurement scenario to demo these capabilities. In this scenario, an employee submits a request to purchase a new laptop computer. The solution used an InfoPath form that connects to a vendor database, that brings in details about the goods you can purchase. &lt;/P&gt;
&lt;P&gt;&lt;U&gt;Procurement Form&lt;/U&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 382px" title="Procurement Form" alt="Procurement Form" src="http://blogs.msdn.com/photos/infopath/images/9910856/original.aspx" width=450 height=382 mce_src="http://blogs.msdn.com/photos/infopath/images/9910856/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;This type of application can be built in SharePoint Designer, using web part pages to create the user experience. The data can be stored in form libraries, SharePoint lists, and external systems using Business Connectivity Services. If InfoPath rules don’t do the job of defining the desired form behavior sandboxed or full trust code can be added to the forms. SharePoint workflows can be used to send e-mail notifications and track status. And once you’re all done, you can package your application so it can be tested and eventually deployed to the production servers.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Procurement Portal Page&lt;/U&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 337px" title="Procurement Portal Page" alt="Procurement Portal Page" src="http://blogs.msdn.com/photos/infopath/images/9910857/original.aspx" width=450 height=337 mce_src="http://blogs.msdn.com/photos/infopath/images/9910857/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This first session set the stage for the remaining InfoPath sessions of the week:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Building Applications with InfoPath and SharePoint Designer&amp;nbsp;&lt;EM&gt;(this session took place on Tuesday - more details to follow)&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Performance Best Practices for Forms Applications&lt;/LI&gt;
&lt;LI&gt;InfoPath 2010: Form Design Best Practices&lt;/LI&gt;
&lt;LI&gt;Form-Driven Mashups using InfoPath and Forms Services 2010&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Stay tuned for more updates from Las Vegas!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910238" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/infopath/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/infopath/archive/tags/InfoPath+2010/default.aspx">InfoPath 2010</category><category domain="http://blogs.msdn.com/infopath/archive/tags/Whats+New/default.aspx">Whats New</category></item></channel></rss>