Yesterday at the SharePoint conference I got to attend a session on best practices for building InfoPath forms (#SPC296). The session was presented by Darvish Shadravan, a Microsoft Senior Technical Specialist. Overall the session was really fast-paced and full of great content. I was actually surprised when the session ended because I had completely lost track of time. For me there were two big takeaways that I got from the session which I will share with you in this article.

Understand the Framework

The first point that Darvish made was the importance of having a good technical understanding of what is happening when forms are being rendered. This understanding will help you build and design the best forms possible. One great example that was covered was the use of Fiddler to evaluate and monitor the performance of your forms. By downloading this tool, you will be able to access your browser-based forms and review what is happening behind the scenes and what calls are being made to the server. If you are seeing performance issues, then you can use this tool to help identify where those issues might be coming from.

As Darvish was walking through this demo, I was on Twitter and got to chatting with Marc Anderson (@sympmarc) about using tools like Fiddler. He also recommended that people look at the tool Firebug. In chatting we also discussed that this would be a great article post to provide information on these tools to information workers so that they can be aware of them and use them in practice. I have a feeling that most people aren’t aware of these tools and how they apply to them, so it is highly likely that they are not being fully utilized. Being reminded of this in today’s session was a great take away to constantly be looking for tools that can improve the solutions I provide.

Design with the User in Mind

Through the rest of the session Darvish covered some best practices around design. There are far too many mentioned to include all of them in this article, so instead I am going to cover what I feel was the general concept in all the best practices -- design with the user in mind. All of the best practices were really focused on ways to provide the richest solution to the user while still maintaining the best use of the given tool.

For instance on many occasions we were reminded to only code when needed and to review our needs when it looked like coding was required. By design, InfoPath is a great no-code solution, and while it does allow for custom code, it very often turns into a situation of “just because you can doesn’t mean you should.” If you find that you need custom code, it may also mean that you need to reconsider using InfoPath as the tool for your solution.

Once you are using InfoPath though, you should be thinking of the user and how they will be interacting with the form. The form should act in a way that the user expects. You should be using views and buttons to help guide the users through the forms in a wizard-type experience. Data that is used in the form should also only be called as needed and with filters.

An example used was that a user may be given a button that allows them to “Get User Data.” When a user clicks this button, the data will be retrieved for that specific user from the user-profile store. And since a user is aware that they are completing a lookup, they will be expecting to wait while the information loads. What I loved about the ideas that Darvish shared is that they were simple, clean ideas that can be incorporated into almost any solution!

Learn More

InfoPath is such a huge topic, so I wanted to conclude today’s summary by linking you to locations where you can access more information and examples. Hopefully you will find these helpful as you are building solutions within your environment.

In-Session Networking

One of the other things I loved about this session was how Twitter was used during the session to get the crowd excited and interacting with each other. This provided a great way to network with like-minded attendees and to share ideas and see others questions. I hope this is something we see more of in the future, and I have a feeling I will likely start to incorporate into some of my sessions!

Editor's Note: You may also be interested in reading: