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. Channel Analyzer (IDV Visual Fusion)(Design pattern 2 – list-oriented)
Scott Caulk from IDV solutions (http://www.idvsolutions.com/) 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)
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)
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)
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)
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)
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)
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)
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)
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
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))
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.
Performance improvements include -
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.
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 Serviceshttp://blogs.msdn.com/infopath/archive/2008/05/09/designing-browser-enabled-forms-for-performance-in-infopath-forms-services.aspx
Capacity Planning Document For IPFShttp://technet.microsoft.com/en-us/library/cc879113.aspx
InfoPath Forms Services 2007 Web Testing Toolkithttp://www.codeplex.com/ipfswebtest
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:
(from left: Umut Alev - development lead, Peter Allenspach - group program manager, Rick Severson - test lead):
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:
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:
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.
Offline Form in SharePoint Workspace:
Demo 2: Creating Mashups using the InfoPath Form Web PartThe 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.
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 scenarioIn 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.
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:
This first session set the stage for the remaining InfoPath sessions of the week:
Stay tuned for more updates from Las Vegas!