Sample Application: Fabrikam Fine Furniture
The Fabrikam Fine Furniture reference application is a feature-rich, fully-functional reference application. The source download includes a Visual Studio .NET solution containing the end-to-end application, and you can also download separate components to assist you in building mobile PC and Tablet PC solutions. For a list of separate components, see the Downloads section of this page.
If your next mobile PC project involves sales force automation, order entry, product design, product engineering, product customization, pickup and delivery, and other types of in-field collection and use of database records, you can use Fabrikam Fine Furniture to your advantage.
- Identify solutions to recurring mobile PC scenarios and show suggested software approaches to each.
- Show Tablet PC features at work in business scenarios.
- Provide an application that can be dissected as a learning tool or re-used as a solution foundation.
- Distribute no-cost, source-level components that are useful as building blocks for mobile PC applications, each one including code that shows the component in real-world use.
Fabrikam Fine Furniture, a fictional company, uses mobile PC computers for order taking and order delivery. Fabrikam's sales agents are mobile within the store as well as at customer sites, and its delivery agents are almost entirely mobile. Fabrikam therefore relies heavily on mobile PCs—especially Tablet PCs—to:
- Enable sales agents to create orders—including notes, sketches, floor plans, and annotations.
- Enable sales agents and customers to generate orders inside or outside of the Fabrikam store with equal ease.
- Enable sales agents and delivery agents to collect customer signatures.
- Support complete and accurate data mobility by using file synchronization, database replication, and Web services.
You can use the Fabrikam Fine Furniture sample in one of two approaches: either as a sample end-to-end application or as a showcase for six stand-alone components.
The Fabrikam Fine Furniture reference application is written in C#, Visual Basic .NET, ASP.NET, and SQL Server. The application's functionality is delivered in four primary solutions, based on functionality:
- F3MainApplication—Contains all Windows Forms-based modules that provide data entry and editing functionality.
- F3DeliveryAgent—Contains the Windows Forms module that consumes data through Web services and uses disconnected record sets.
- F3DeliveryAgentWS—Contains the Web services that distribute data to client computers.
- F3Online—Contains the Fabrikam Web site.
The Fabrikam Fine Furniture installer unifies multiple installation tasks into a single setup executable for you to download. The setup installs all files for the application—including databases and Web applications—on a single computer for ease of installation, learning, development, and testing. In addition to installing the previous solutions, the installer installs source code and solutions for the various components.
The Fabrikam Fine Furniture application uses a component-based architecture in which managed, .NET Framework assemblies group reusable functionality into helper classes or user controls. In addition to the full application, you can download source and object code for the following key components of the application separately, unless otherwise noted.
- File synchronization—The FileSync Sample component exposes the features of the Windows Synchronization Manager so you can synchronize file folders between a server and a mobile PC.
- Network and power awareness—The SENSWrapper Sample component exposes the use of the Windows System Event Notification Services to tell an application when a network connection exists and what the current power state is.
- Ink-enabled data entry—The InkListBox Sample and the InkNumber Sample expose the use of ink collectors and handwriting recognition to create custom pen input skins for accurate in-field data collection.
- Electronic signatures—The InkSecureSignature Sample collects, encrypts, and serializes ink signatures for transmission and storage.
- Ink annotation—The ScalableInkPicture Sample exposes the use of ink collectors to create custom annotations on photos and images, including on the Web.
- Real time inking—The reference application demonstrates collecting, manipulating, and rendering digital Ink in real time using the RealTimeStylus object—A floor plan layout editor control shows how to use the Tablet PC platform to measure and manipulate tablet pen data dynamically, as opposed to waiting until a Stroke is completed. Note: this code is not available as a separate component but is included in the source code for the sample application.
- Context awareness—The reference application uses custom word lists and input scopes to coerce Ink recognition for an improved user experience. Note: this code is not available as a separate component but is included in the source code for the sample application.
- SQL replication—The reference application programmatically controls SQL Server replication to synchronize a database between a server and mobile PCs. Note: this code is not available as a separate component but is included in the source code for the sample application.
- Web services—The reference application checks out and checks in database records through a service-oriented architecture.
Note this code is not available as a separate component but is included in the source code for the sample application.
Figure 1 shows the two replication helpers that the reference application installs into the Windows MobSync console; you can modify these helper classes to provide file and database synchronization to your own applications that can be initiated by the user, by the application, or both.
Figure 1. The Windows Synchronization Manager UI with the FileSync and SQL Replication helpers enabled
Figure 2 shows the delivery acceptance form that uses an ink signature user control. You can modify this helper class to capture signatures in your own applications. Figure 2 also shows the network and power awareness helper class being used to provide status information on the form's status bar.
Figure 2. The F3 electronic signature component
Figure 3 shows an order entry form that uses InkNumber, an ink recognition user control. You can modify this helper class to provide ink-enabled data entry in your own applications.
Figure 3. The F3 ink numeric input component
Please send any feedback and comments to the Mobile PC Developer Center's editorial board.