3. Who Are we?
Cyril Hanquez
Mobile and web developer at
• Adobe Community Professional
• ColdFusion User Group Manager
• 13+ years of development experience
• Co-author of “HTML5 Solutions: Essential Techniques for HTML5 Developers”
Email: cyril@cyrilhanquez.com
LinkedIn: www.linkedin.com/in/cyrilh
Twitter: @fitzchev
Blog: www.cyrilhanquez/blog
4. Who Are we?
Steven Peeters
Adobe Certified Instructor / consultant at Silver Lining
• Adobe Flex, AIR, Flash Catalyst & ColdFusion Certified Instructor
• Adobe Community Professional
• ColdFusion User Group Manager
• 14+ years of development experience
• Flex & AIR since 2004
• Author for Friends of ED
Email: steven@silver-lining.be
LinkedIn: www.linkedin.com/in/stevenpeeters
Twitter: @aikisteve
Blog: www.flexpert.be
Website: www.silver-lining.be
5. Topics
• Database in AIR
• Using ColdFusion’s ORM
• Synchronising with a remote server
• Applying to mobile applications
14. Database encryption
• 256-bit AES encryption
• Use EncryptionKeyGenerator to validate strength
of encryption key
• as3corelib on code.google.com
15. Database encryption
• 256-bit AES encryption
• Use EncryptionKeyGenerator to validate strength
of encryption key
• as3corelib on code.google.com
• Re-ecryption is possible
17. Using ColdFusion’s ORM
• Server-side technology on client-side?
• cfair.swc
• <server root>/CFIDE/Scripts/AIR
18. Using ColdFusion’s ORM
• Server-side technology on client-side?
• cfair.swc
• <server root>/CFIDE/Scripts/AIR
• Works with local database
19. Using ColdFusion’s ORM
• Server-side technology on client-side?
• cfair.swc
• <server root>/CFIDE/Scripts/AIR
• Works with local database
• Use SyncManager class
20. Using ColdFusion’s ORM
• Server-side technology on client-side?
• cfair.swc
• <server root>/CFIDE/Scripts/AIR
• Works with local database
• Use SyncManager class
• Need to adjust DTOs with metadata
21. Using ColdFusion’s ORM
• Server-side technology on client-side?
• cfair.swc
• <server root>/CFIDE/Scripts/AIR
• Works with local database
• Use SyncManager class
• Need to adjust DTOs with metadata
• No BLOB possible :-(
47. Synchronising with remote server
• Fetching remote data
• syncManager.fetch(“foo”)
• Save remote data in local SQLite database
• session.saveUpdateCache(<ArrayCollection>)
50. Synchronising with remote server
• Reading data from local database
• session.load(<valueObject>, <filterObject>)
51. Synchronising with remote server
• Reading data from local database
• session.load(<valueObject>, <filterObject>)
• session.loadAll(<valueObject>)
52. Synchronising with remote server
• Reading data from local database
• session.load(<valueObject>, <filterObject>)
• session.loadAll(<valueObject>)
• session.loadbyPK(<valueObject>, <PK filter>)
53. Synchronising with remote server
• Reading data from local database
• session.load(<valueObject>, <filterObject>)
• session.loadAll(<valueObject>)
• session.loadbyPK(<valueObject>, <PK filter>)
• session.loadByQuery(<valueObject>, <SQL
where condition>)
60. Synchronising with remote server
• Pushing data to the remote database
• syncManager.autocommit = true
61. Synchronising with remote server
• Pushing data to the remote database
• syncManager.autocommit = true
• session.commit()
62. What can you do with it?
• Online/offline synchronisation
• Use DB as (temporary) storage
• Protect private data (encryption)
• Colaborate with other people
• ...