Build Cross-Platform PDA Apps
AppForge Crossfire 5.0 is a VS.NET 2003 add-in that lets you build applications for multiple mobile platforms from a single code base.
AppForge Crossfire 5.0 is a comprehensive add-in to VS.NET 2003 for creating Windows Mobile 2003, Pocket PC, Palm OS, and Symbian OS applications. According to AppForge, these applications will run on more than 90 percent of the world's handheld, mobile, and wireless devices (see Figure 1). One VB.NET code base contains your logic and business-rules code. Then, you can adapt the UI (forms) to the dimensions and capabilities of ARM-based Pocket PC, Nokia Series 60, Sony Ericsson P800/P900, and Palm OS devices. Crossfire's virtual machines or "boosters" let you run your code on the supported hardware. Crossfire makes resources work across platforms, and in a common format, by including utilities that convert Access databases, TrueType fonts, images, and AVI movies to its own format.
You'll see a new project template called "Crossfire Application," an AppForge menu, toolbars, and a new toolbox category in your IDE after you run the straightforward setup routine. VS.NET developers will be right at home with the Crossfire tools, but you'll find far more than grids, buttons, and data connections. For example, the toolbox includes a control to support built-in cameras and a signature-capture component.
Sample solutions give you a quick grasp of Crossfire's concepts and capabilities. (However, the online Help could use more tutorial depth.) The online Stock Quote example shows how to use common modules and conditional compilation to include fonts and sockets appropriate for the target device or platform. It connects over the Internet to retrieve delayed stock updates and trends.
Deploying an application with its booster over ActiveSync is as simple as clicking on a menu item in the IDE and watching the progress in the VS.NET output window. You distribute apps to end users by selecting the target device from the Build Installation File menu to create a Pocket PC (CAB), Palm OS (PCR), or Symbian OS (SIS) file.
The design-time experience is good but not foolproof. For example, the designer uses the native WinForms form control, which allows an invalid color value (desktop) and causes a runtime error. A basic representation of the target screens launches quickly when you run a Crossfire-based app within VS.NET, but it's low-fidelity compared with a real device. It would be nice if Crossfire simulated all of a PDA's input modes within the IDE.
Despite these minor shortcomings, Crossfire is a solid product that makes it easy, practical, and enjoyable to create one base application andwith relatively little effortextend its reach to a wider range of devices on non-Windows platforms.
Phone: 800-637-5740; 678-686-9400
Quick Facts: Sophisticated add-in to VS.NET for developing VB.NET applications for Windows Mobile 2003, Pocket PC, Palm OS, and Symbian OS handheld devices.
Pros: Easy to use and deploy; wide range of controls; solid samples; supports major communications protocols; includes conversion tools for resources and data.
Cons: Device simulation in IDE lacks fidelity and input mode support; documentation has rough edges.
Leverage Advanced Components
Universal .NET bundles Desaware's .NET components, including SpyWorks, StorageTools, Event Log Toolkit, NT Service Toolkit, StateCoder, OneTimeDownload-5M, and the LineGraph-5M graphing component. The components protect your investment by including source code and instructions on how to build it. You can analyze, update, enhance, and recompile the royalty-free redistributables.
The largely unrelated components don't make up a coordinated suite. Each product has a separate license key, installer, and install path. It would save time and reduce tedium to enter a single license key and choose what to install.
The oddly named SpyWorks is a multifaceted tool that lets you work magic by subclassing OS features without being an expert in Windows internals. For example, you can manipulate the clipboard, detect the startup or shutdown of unrelated programs, and trap keystrokes. One intriguing sample shows how to change the alignment of title bar text, switch to a strikeout font, and set the text in motion.
The StorageTools component gives you a rich alternative to saving a dataset to an XML file to store complex data on the user's system. StorageTools uses OLE Structured Storage to create compound documents. In essence, you can store an entire file system within a single disk file.
StateCoder requires higher-end skills before you can harness its power. It provides state machines, a way of organizing operations within an application and reducing programs' complexity. You define the possible states and the events that change the state. A detailed tutorial demonstrates this component's benefitsespecially for long-running, multithreaded processes.
The NT Service Toolkit .NET Edition includes a rich array of objects for speeding development of NT services. A wizard walks you through the creation of a skeleton Control Panel applet (CPL file) for use with a .NET assembly (see Figure 1).
Web developers will find the OneTimeDownload-5M useful. It generates hyperlinks to resources such as files. The links can disappear after a set number of uses or a specified time. "5M" stands for the anticipated five-minute deployment time. However, the starter application takes longer, because it points to a nonexistent k: drive, and the ASP.NET account's database permissions aren't broad enough.
LineGraph-5M, a graph component for ASP.NET pages, is easy to set up and quick to render, but the onscreen results are lackluster, with a limited feature set.
Desaware provides complete reference material, good examples, and valuable tutorials for its componentsand you can learn even more by scanning the source code.
Quick Facts: Component bundle for creating state machines, NT services, Control Panel applets, and structured storage, and for subclassing Windows internals.
Pros: Source code included; royalty-free runtimes; advanced functionality; good examples; well-documented including tutorials.
Cons: Separate installer and key required for each component; LineGraph component lacks visual appeal.
Produce Web-Based Reports
LGX Info Studio is the development component of LGX Info, LogiXML's solution for Web-based reporting. You can use LGX Info Studio's wizard-based approach for quick results, and you can also extend the product's flexible XML-based architecture to develop complex views of your users' data (see Figure 1). Your production environment requires LGX Info Server ($4,995) for online publication of your reports.
The Query Builder and Report Builder wizards lie at the heart of LGX Info Studio. The query wizard builds a SQL query that returns the data a report uses. The Report Builder turns this data into a formatted report, letting you include a few simple aggregate functions (counts, sums, and averages) and select a page style. The end result of the wizards' work is an XML file describing your report. A description editor lets you add functions such as charts, parameters, advanced formatting, and links to other reports. You can also edit the report's XML directly.
LGX Info shines at producing a system of reports. Your system might start with a home pagea report containing hyperlinks to other reportsshowing current outstanding orders. Each customer name is a link to a report showing general customer information, and the general customer information report contains a link to a report showing detailed customer order history. The individual orders contain links to product definitions, shipment status reports, salesperson order histories, and so on. This is an intuitive way to enable your users to view and navigate complex data.
The product supports other advanced features. You can preview reports within LGX Info Studio and obtain on-demand flowcharting that shows the relationships among linked reports. You can use built-in obfuscation to secure your report definitions. LGX Info Studio also provides a change log for tracking changes to your report definitions and a task scheduler for scheduling recurring batch operations. The task scheduler runs either command-line or SQL scripts and has built-in functions for common operations such as file copies and PDF exports.
LGX Info Studio isn't bug-free, and you might lose some time when you begin to produce complex reports. The documentation, which is strictly Web-based, needs improvement. The lack of local help files can be inconvenient and, worse, the online help system is unresponsive at times. You're likely to get some unexpected results that a better help system and training materials might prevent. LogiXML's support staff responds quickly and professionally but has difficulty with some questions. Still, this is an impressive, viable product whose approach to reporting has many applications. It will be even better if LogiXML improves its built-in documentation and does more beta testing prior to the next release.
LGX Info Studio
Phone: 888-564-4965; 703-748-0020
Quick Facts: Enables quick development of Web-based reports.
Pros: Easy to use; good support for systems of linked reports.
Cons: Poorly documented and a little buggy; requires expensive server component for production deployment.
Perform Visual Data Integration
Rich applications must use data from a variety of sources these days, transforming and massaging it along the way. CrossRhoades' Visual Integration Studio 2.5 is a .NET solution designed to spare you the pain of writing extensive data-migration code. "The power of SQL Server's Data Transformation Services meets the power of .NET applications" is the easiest way to describe this product in a nutshell (see Figure 1).
Visual Integration Studio consists of several components, depending on the edition. A metadata repository imports and saves any number of data schemas you define through either a shared enterprise service or a local personal service. The designer provides a rich GUI for defining data sources, data movement, and the VB.NET code you use to customize the move. Once you've defined a job, you can create a standalone executable, generate a DLL, or output VB.NET source code.
One of the tool's best features is that you can write full VB.NET code to transform data as it moves between sources and destinations. The code-editor window doesn't have the full code-editing features of VS.NET, but it does use IntelliSense-style lists of available fields in the source data, syntax coloring, and keyword casing. The text editor is fairly simple otherwise.
Although the UI's functional design is generally good, it has a frumpy look compared to contemporary Windows applications. A few rough spots make using this product a bit harder than it should be. For example, properties requiring a filename don't have a browse button (although you will see one for paths), so you must type in the name.
The online help file is adequateyou'll find pretty good explanations and an effective, simple tutorial. However, you might not always find the information you needfor example, the index doesn't provide any information about the .NET Data Provider object. One especially useful feature is the task-based help section for using various features of the product.
Unhandled exceptions can occurfor example, you can crash the program if you try to import a text file with a format that the product didn't understand. When you refresh the list of tables from a SQL Server database, the product doesn't always pass the provider as part of the connection string, causing another error message box with the raw SQL Server error. Mysteriously, the Metadata Manager has a section for XML, implying that it can import XML data. However, the product offers no hint as to how you can import XML schemas. Even a search of the documentation for "XML" provides no clues.
Visual Integration Studio is a great idea with many nice features, but it's not implemented well yet. If you can get past its immaturity, it has the potential to be a great resource for your .NET apps.
Visual Integration Studio 2.5
Phone: 888-850-9911 (ComponentSource)
Quick Facts: Integration tool for extracting, transforming, and loading data.
Pros: Supports many data sources; uses VB.NET code for transformations and filtering; rich schema repository; great deployment options.
Cons: No support for C#; prone to crashes; some features not documented.