The next version of InfoPath was InfoPath 2007, released on November 30th, 2006. As with previous versions, all feature additions in InfoPath 2007 were based on customer feedback. InfoPath 2007 not only included improvements in the core client application but also finally satisfied the number one customer request—the ability to fill out forms without having to install the InfoPath client application on every user's computer. To satisfy this request, InfoPath 2007 introduced a sister product called InfoPath Forms Services, included as a feature of Microsoft Office SharePoint Server 2007 Enterprise.
InfoPath Forms Services brought reality to the ultimate deployment story: publishing your InfoPath form template to the Web. Anyone anywhere, on any device, could now fill out your form. Feedback dictated that the InfoPath Forms Services would need to reach UNIX users running Mozilla, Mac OS folks with Safari, and even always-on-the-go businesspeople with their HTML-enabled PDAs and smartphones. Forms were filled out in full fidelity with data validation, conditional formatting, and even custom form code, to name a few features. (Figure 1.6 shows an InfoPath form being filled out in a browser.)
Figure 1.6 Filling out a browser-enabled form template in Internet Explorer
The key to making InfoPath Forms Services successful was to maintain as much compatibility as possible with the InfoPath client application. As a result, most form templates created with the InfoPath client can simply be reused "as is" in Forms Services. The InfoPath 2007 client application supports the few limitations of InfoPath Forms Services by offering two modes: InfoPath-only or browser-enabled form templates. In the browser-enabled mode, some features that are not supported (either in full or in part) are disabled or removed from the InfoPath design mode UI. When designing a new form template, you choose whether to design a client or browser-enabled form template, with the ability to change it at any time. To support switching from an InfoPath-only to a browser-enabled form template, the design mode offers the Design Checker, which reports form features added during InfoPath-only mode that are incompatible with InfoPath Forms Services. The Design Checker also helps maintain compatibility with previous versions of InfoPath.
You can expect your browser-enabled forms to behave similarly in InfoPath Forms Services as you would with the InfoPath client application. All conditional formatting, data validation, rules, multiple views, digital signatures, security settings, and most controls are respected. There are so many similarities between the InfoPath Forms Services and the InfoPath client application that it's a more interesting conversation to discuss what the InfoPath Forms Services in the 2007 version does not support.
Due to the InfoPath form architecture and the tremendous flexibility in form configuration, some of the more advanced features of the InfoPath client are not supported. For example, forms with script are not supported. Managed form code works as expected, but showing UI, such as a message box, by calling methods in the InfoPath or Windows Forms object models, is not. Another major difference between InfoPath and Forms Services is the behavior of data connections. The security model of data connections is more restrictive with browser forms. Many of the differences between the two types of forms have been addressed in the 2010 release, but the later chapters will cover in more detail which features are still unavailable in the browser.
InfoPath Forms Services is built on top of the rich capabilities of the SharePoint Server 2007 platform, which includes Windows SharePoint Services. You can harness the full power of SharePoint sites, document libraries, lists, and other SharePoint-specific features. The SharePoint Server package adds portal features such as Workflow Services and Enterprise Search. Partially filled forms in the browser can be saved to a form library and ultimately submitted to a SharePoint document library, for example. Administrators can configure InfoPath Forms Services settings from the command line, but the SharePoint Central Administration site offers a more user-friendly option for doing so.
A favorite feature for Web designers is the ability to host a browser-enabled form as a control in a Web page. Since Forms Services is implemented as an ASP.NET control, Web design gurus familiar with ASP.NET will have no problem incorporating forms into their existing Web infrastructure. Various events exposed from the form control serve as liaisons between the control and the hosting page. This helps tie your form intimately into the overall design and experience of your Web page.
The InfoPath Forms Services package is meant not as a replacement but rather as a complement to filling out forms with the InfoPath client. The relationship between Forms Services and the InfoPath client application can be compared to the relationship between Outlook Web Access (OWA) and the Outlook client application. OWA tries to do the job of the Outlook client on the Web but offers fewer features than the Outlook client application; for example, OWA lacks offline and client-only mail rules. As with OWA and Outlook, when the InfoPath client is available, you would prefer to use it over the server due to the fact that the InfoPath client provides a richer set of features. Even with the advancements in browser and Web technology, it is nearly impossible to do the same things in a Web browser as you would in the InfoPath client. However, most people don't really notice what is missing when they use a browser-enabled form. Limitations aside, InfoPath Forms Services is a truly remarkable advancement for creating ubiquitous InfoPath forms.
In addition to meeting the number one customer request with Microsoft InfoPath Forms Services, the InfoPath team also responded to feedback about the InfoPath client application by adding many new features.
A Getting Started dialog was introduced to give easy access to recently used and created forms. The Design a Form Template dialog gives a choice of form types and data sources to simplify the design process. You can customize existing templates or templates downloaded from Office Online. There is an option to import forms from Word or Excel to make use of any existing company forms.
InfoPath 2007 added new controls—the Combo Box, the Horizontal Repeating Table, the Multiple-Selection List Box, and the Horizontal Region. However, the most exciting addition in terms of controls is the ability to create custom controls with no code. InfoPath template parts allow you to create custom controls that are aggregates of existing controls already built into the InfoPath design mode. In addition, you can add rules, calculations, data validation, and even secondary data sources to template parts you design, thus creating reusable components with no code required. Another appealing addition to InfoPath 2007 is integration with Outlook. InfoPath e-mail forms, as the feature is called, enables users to fill out forms in the body of an e-mail instead of having to open the InfoPath client application.
Some of the other additions to the InfoPath client application are not as obvious. Many performance improvements enhance the usability of InfoPath. Several long operations now offer progress dialogs that can be canceled. Also, cases where multiple dialogs used to be displayed now show only one.
A few more of the many feature additions include Information Rights Management (IRM), date calculations, support for read-only views, bound fields in headers and footers, and better support for offline forms.
Features were also added specifically for developers including integration of the InfoPath design mode into Visual Studio Tools for Office (VSTO). But what if you just want to enhance your forms a bit without installing Visual Studio or resorting to script? You can do that with Visual Studio Tools for Applications (VSTA). With VSTA, you can use managed code anywhere you would have used script in InfoPath 2003 and SP1.
Another cool feature addition geared toward developers in InfoPath 2007 is support for add-ins. Developers can write their own add-in components using the Component Object Model (COM) or managed code. These add-ins enable you to control or modify InfoPath's behavior and add functionality that does not exist in the core InfoPath client application. Since add-ins are supported by other Microsoft Office applications, developers can write code once that will work across applications. Many developers have asked for the ability to host InfoPath since InfoPath 2003 was released. With InfoPath 2007, it became possible to add rich form editing to your own applications by reusing InfoPath. This is such a popular scenario that other Microsoft Office applications have taken advantage of this feature. Word, Excel, and PowerPoint now show their document properties in a Document Information Panel that is actually an InfoPath form. The Document Information Panel includes all the features you have come to expect from an InfoPath form. In the advanced section of the book, we will show you how you can add these features to your own application.