Microsoft InfoPath 2010
The official blog of the Microsoft InfoPath team

October, 2009

  • Microsoft InfoPath 2010

    SPC Recap: Create Form Driven Mashups with the InfoPath Form Web Part


    The recent 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.

    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.

    Nick started by defining what an enterprise mashup is, pointing out three key points:
    - They are created by *business users*, not IT
    - They feature one or more sources of enterprise and public data
    - They provide visualizations of that data which helps users make better, faster, and more efficient decisions.

    He then went on to present 9 different scenarios where InfoPath was used as part of an enterprise mashup.  Each mashup illustrated a slightly different angle of the two design patterns that underlie all of the examples:

    1. The Connection-oriented design pattern, where web parts communicate using part-to-part connections, and
    2. The List-oriented design pattern, where web parts communicate by virtue of the fact that they are connected to one or more related lists

    1. Channel Analyzer (IDV Visual Fusion)
    (Design pattern 2 – list-oriented)

    Litware Channel Analyzer Application 

    IDV Solutions Logo

    Scott Caulk from IDV solutions ( gave a brief demonstration of an application built on their Visual Fusion product.  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.  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.  The manager then clicks a button to fill out an InfoPath form to schedule a new marketing event.  Once submitted, data about all marketing events that have been scheduled is displayed on the map alongside the sales data.

    2. Customers and orders
    (Design pattern 1 – connection-oriented)

    Customers and Related Orders 

    Nick had some fun with the next two demos, which center around Contoso Office Supplies, where Nick moonlights as a salesman (wink wink).  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.  It was all part of the show!   Karie wanted to know what pending orders she had so that she could put together the order for this week.  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.  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.

    Key concept:   pull in related data using the “insert related list” action.

    3. New Order form
    (design pattern 1 – connection-oriented)

    New Order Form 

    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.  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.  (NOTE: filtering and parameterized sharepoint list queries are both now supported in browser forms for SharePoint 2010!).

    Key concept: filter a data connection based on an incoming connection parameter.

    4. Customers master-detail
    (design pattern 1 – connection-oriented)

    Customers List - Master Detail 

    Nick pointed out that the simplest web part mashup to build is a master-detail scenario for a list with a custom InfoPath form.  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.  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.

    Key Concept: build master-detail pages using the “Get Form From” connection action.

    5. Office Dogfood Voting
    (design pattern 2 – list-oriented)

    Office Build Voting Form 

    This mashup was an alternate implementation of a solution used at Microsoft to track the quality of Office builds.  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.  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.  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.  He then showed the workflow that increments the “for” and “against” counters for a build based on the submitted vote.

    Key concept: use data in a list to drive workflow and influence the display of other web parts.

    6. Microsoft Helpdesk
    (design pattern 1 – connection-oriented)

    Help Desk Form

    Next, Nick showed a page with two InfoPath forms and a list.  The Helpdesk form is an updated version of the form demonstrated in many of our InfoPath 2007 conference presentations.  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.  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.

    A second InfoPath form in the page shows information about the logged-in user.  This display-only web part uses a query against the userprofile web service in SharePoint to bring in information from the User Profile Store.

    Key Concepts:  filtering dropdowns in the browser, using the Send Data To Web Part rule action, creating display-only web parts using InfoPath.

    7. Loan calculator
    (design pattern 1 – connection-oriented)

    Loan Calculator

    This demo showed how to use InfoPath to create a rich form that drives complex calculations in an Excel workbook hosted in Excel Services.  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.  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.

    Key concepts:  connecting InfoPath forms with Excel, using SharePoint Designer to specify multi-valued connections.

    8. Insurance claims processing
    (design patterns 1 and 2 – list AND connection oriented)

     Insurance Claims Portal

    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.  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.  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).  Finally, clicking on a pin in the map displays the original form submission in a popup dialog using the showPopupDialog( ) javascript method.

    Key concepts: combine design patterns for complex scenarios, use Bing maps in custom Web parts, display InfoPath forms using showPopupDialog( ).

    9. The Microsoft Giving Campaign
    (design pattern 2 – list-oriented)

    Giving Campaign Web Site

    The final mashup of the day was built around the Microsoft Giving Campaign, which happens this time each year.  Employees are encouraged to donate to their favorite charities, and the donations are tracked to get an overall picture of employee giving.  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.  (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.).  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.  Submitting a donation to the Donations list kicks off a workflow which updates the Divisions list with the new total donation amount.  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.

    Key concepts: using custom Silverlight web parts, chart web part


  • Microsoft InfoPath 2010

    InfoPath 2010 Performance Highlights


    At 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 performance improvements in InfoPath 2010. In this post, we will cover the highlights from this session.

    InfoPath Team Members who attended SPC:

    (From Back Row Left to Right: Daniel Witriol (Program Manager Lead), Darvish Shadravan (Technology Specialist), Rick Severson (Test Lead), Nick Dallett (Program  Manager Lead), Roberto Taboada (Program Manager), Bojana Duke (Program Manager), Peter Allenspach (Group Program Manager), Umut Alev (Development Lead))

    SPC - InfoPath Team Picture

    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 sample 1040EZ form to demonstrate a "lightning fast form" out of the box. In InfoPath Forms Services 2010, we've improved performance by achieving initial form load times of .8 seconds and subsequent form loads of .4 seconds. A 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.

    Rick then moved on to cover some of the scalability highlights in this release.

    • Requests per second (RPS) have doubled. 
    • We can now scale out to 8 Web front ends for a single backend. 
    • Performance of SharePoint lists that have been customized using InfoPath is comparable to the default, out of the box SharePoint lists.
    • Forms with Sandboxed code can process 340 RPS in a 1x3 topology
    • Our new State Service allows for better scaling and faster session performance
    • We’ve ported many fixes into 2007 SP2 so you can take advantage of many of these performance gains today

    Performance improvements include -

    • Our new, enhanced rich text control which is optimized for multiple instances on a form
    • OnHover rendering of secondary data which improves rendering time
    • Performance in customized SharePoint lists ensures that you get the richness of InfoPath without sacrificing performance
    • New State Service
    • Optimized .js for Ajax behavior rendering

    InfoPath 2010 - Performance Improvements

    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.

    • For optimal performance, he recommended that you filter data at source rather than returning large data sets when querying data sources. 
    • InfoPath 2010 users can now take advantage of our new browser form filtering capabilities. 
    • Users should avoid running data queries on form load and instead run them on demand.
    • It's a good practice to combine data queries with other actions, such as view switches to minimize the number of postbacks.
    • To further improve performance, we recommend that you reduce form complexity, avoid out of context controls and avoid postbacks.
    • When possible, you should take advantage of first request optimized forms.  You can do this by avoiding logic in your form that has to be calculated on load.  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. 

    InfoPath 2010 Performance - Areas to tune

    The key takeaways from this session were high performance out of the box, complex solutions can be tuned easily and performance matters!

    Additional Resources for improving the performance of your InfoPath forms:
    Designing Browser enabled forms for Performance in InfoPath Forms Services

    Capacity Planning Document For IPFS

    InfoPath Forms Services 2007 Web Testing Toolkit

  • Microsoft InfoPath 2010

    InfoPath 2010 is unveiled at the SharePoint Conference


    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 Twitter.)

    SPC is taking place at the Mandalay Bay Hotel:

    SPC 2009 - Mandalay Bay Hotel

    InfoPath Booth:

    (from left: Umut Alev - development lead, Peter Allenspach - group program manager, Rick Severson - test lead):

    SharePoint Conference - InfoPath Team Members

    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.

    The InfoPath session drew big crowds:

    SPC 2009 - InfoPath Session Audience

    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 -

    InfoPath 2010 Overview:

    InfoPath 2010 Overview

    Demo 1: Customizing a SharePoint list form

    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!

    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 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.

    Last but not least, they opened the form in Firefox showing that you can use your browser of choice to fill out your forms.

    Before Form:

    SharePoint List - Default Form

    After Form:

    SharePoint List - Customized InfoPath Form

    Offline Form in SharePoint Workspace:

    SharePoint WorkSpace - Offline Form

    Demo 2: Creating Mashups using the InfoPath Form Web Part
    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.

    Portal Page:

    InfoPath Form Web Part

    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.

    Demo 3: Office Business Applications: Procurement scenario
    In this final demo,  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.

    Procurement Form:

    Procurement Form

    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.

    Procurement Portal Page:

    Procurement Portal Page 

    This first session set the stage for the remaining InfoPath sessions of the week:

    • Building Applications with InfoPath and SharePoint Designer (this session took place on Tuesday - more details to follow)
    • Performance Best Practices for Forms Applications
    • InfoPath 2010: Form Design Best Practices
    • Form-Driven Mashups using InfoPath and Forms Services 2010

    Stay tuned for more updates from Las Vegas!

Page 1 of 1 (3 items)