Developers in the open source community have provided software to automatically synchronize the Perst for .NET mobile database system from McObject, running on Windows Phone 7 (WP7) devices, with Microsoft SQL Server databases. The new open source synchronization code, called PerstSyncProvider, is based on Microsoft Sync Framework and is available at http://perstsyncprovider.codeplex.com for free download.
When deployed, PerstSyncProvider resides on the mobile client, such as a WP7-based smartphone, and integrates Perst with the Microsoft Sync Framework Toolkit. This enables developers to use Microsoft Sync Framework with Perst as its “offline cache” for storage on WP7 devices. The framework itself provides connectivity on the client side as well as server-based Web services, database logic, change-tracking, session management and handling of client requests.
A German company, MediFox, created PerstSyncProvider and launched it as an open source project. The company currently deploys Perst and PerstSyncProvider in its MediFox CareMobile app, which is the mobile WP7-based client for its MediFox ambulant, a market-leading application for delivering social and medical services to home-based patients in the German healthcare system.
With CareMobile, field-based providers equipped with WP7 smartphones can enter the latest medical chart data and other patient details into the system, while obtaining histories, care instructions and other updates, through synchronization between the mobile device and the Microsoft SQL Server enterprise database residing at the healthcare organization. MediFox has distributed the CareMobile app free to more than 2,000 MediFox ambulant licensees and prospective users, the company says.
MediFox chose the open source, object-oriented Perst for .NET embedded database in order to gain fast and reliable record storage, sorting and retrieval on WP7-based mobile devices. “When we started client software development, the Windows Phone 7 platform offered almost no database features,” said one of the MediFox developers who created PerstSyncProvider. “The WP7 built-in data management has improved since then, but Perst delivers significant performance advantages, particularly when working with larger data sets in the thousands or tens of thousands of objects.”
This developer singled out two Perst features – serializable transactions and automatic schema evolution – as beneficial for developers and end-users of the CareMobile app. Serializability enables transactions (groupings of one or more database operations) to execute in parallel, with the same consistency as if executed in serial. Schema evolution simplifies the process of changing the database design – adding new fields or tables, for example. These built-in Perst features help to make CareMobile faster and more reliable than it would be using WP7’s native data management, and their availability in an off-the-shelf DBMS shortened the app’s development cycle, he said.
“McObject congratulates MediFox on their successful WP7 mobile app and welcomes PerstSyncProvider as a useful addition to the Perst ecosystem. Mobile applications that manage large amounts of data, or complex data, benefit from a robust and feature-rich on-device database system. By simplifying Perst’s deployment in WP7 mobile clients that are frequently offline, and rely on synchronization with a Microsoft SQL Server back-end, PerstSyncProvider has the potential to make Perst an even better solution in a wide variety of application categories,” said Chris Mureen, McObject’s chief operating officer.
Perst and Perst Lite are part of McObject’s family of powerful small footprint, high performance embedded database software products. The object-oriented, open source Perst is available for Java and .NET, including Java ME, Android, .NET Compact Framework, Silverlight and Windows Phone 7. The eXtremeDB embedded in-memory database from McObject is used widely in devices including MP3 players, WiMAX base stations, digital TVs, telecom/network communications equipment and military/aerospace technology.