www.cfunited.com transfer 101 dan vega. 2 about me programmer coldfusion / flex / as3 / html / js /...
TRANSCRIPT
www.cfunited.com
Transfer 101Transfer 101Transfer 101Transfer 101
Dan Vega
2www.cfunited.com
About MeAbout MeAbout MeAbout Me
• Programmer• ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails
• Cleveland ColdFusion User Group Co Manager• Active ColdFusion Community Member (Love Teaching)• Open Source Developer
• CFMU (ColdFusion Multi Uploader)• RocketFM (ColdFusion + Flex File Manager)• cfPayflowPro (Payflow Pro API for ColdFusion)
• cfPanel creator along with Todd Sharp• Cleveland OH / Sports Fan / Running / Weight Lifting / Poker• STERIS – Web Developer (www.steris.com)• Blogger – www.danvega.org
3www.cfunited.com
Transfer 101 AgendaTransfer 101 AgendaTransfer 101 AgendaTransfer 101 Agenda
• What is an ORM and why does it exist• What is Transfer• Installing Transfer• CRUD• e-commerce application demo• Relationships• Decorators• Q&A – Feel free to ask questions whenever
4www.cfunited.com
What Problems does an ORM solveWhat Problems does an ORM solveWhat Problems does an ORM solveWhat Problems does an ORM solve
• When creating systems that are comprised of objects there are many repetitive tasks that have to be done on a per object basis
• Value Objects (beans) getters / setters • Writing CRUD (Create/Read/Update/Delete)• Handling Relationships• Populating objects with database queries• Populating SQL with data from your objects
5www.cfunited.com
What is TransferWhat is TransferWhat is TransferWhat is Transfer
• An ORM (Object Relational Mapping) Library for ColdFusion
• Transfer ORM's main focus is to automate the repetitive tasks of creating the SQL and custom CFCs that are often required when developing a ColdFusion application.
• Through a central configuration file Transfer knows how to generate objects, and how to manage them and their relationships back to the database
• Created by Mark Mandel
6www.cfunited.com
What it is notWhat it is notWhat it is notWhat it is not
• Hibernate / ColdFusion 9 ORM• The end of SQL• A code generator• ORM Frameworks
• Reactor• CFWheels
7www.cfunited.com
Supported SystemsSupported SystemsSupported SystemsSupported Systems
• CFML Engines• Adobe ColdFusion MX 7+• Railo 3.0+• OpenBD 1.0+ ?
• Database Servers (What no Access?)
• MS SQL Server 2000+• MySQL 4.1+• PostGres 8.1+• Oracle 9i+
8www.cfunited.com
Installing TransferInstalling TransferInstalling TransferInstalling Transfer
• Download the ziphttp://transfer-orm.com/
http://transfer.riaforge.org
• Setup a mappingPer application mappings in ColdFusion 8 rock!
Drop it in your web root
• ConfigurationDatasource.xml / Transfer.xml / definitions
• Create Transfer factory & Transfer Instance
9www.cfunited.com
Installation DemoInstallation DemoInstallation DemoInstallation Demo
10www.cfunited.com
CRUD - CreateCRUD - CreateCRUD - CreateCRUD - Create
• transfer.new(“object”)• Returns a transfer.com.transferObject
• getters / setters for properties• meta methods• Object helper methods• Events• debug getPropertyMemento() (struct)
• demo
11www.cfunited.com
CRUD - SaveCRUD - SaveCRUD - SaveCRUD - Save
• transfer.save(object)• Update existing• Create new
• demo
12www.cfunited.com
CRUD - ReadCRUD - ReadCRUD - ReadCRUD - Read
• transfer.get(“object”,id)• transfer.readByProperty(“object”,prop,val)• transfer.readByPropertyMap(“object’,map)• transfer.readByQuery(“object”,query)
13www.cfunited.com
CRUD - DeleteCRUD - DeleteCRUD - DeleteCRUD - Delete
• transfer.delete(object)• transfer.cascadeDelete(object)• demo
14www.cfunited.com
Retrieving Query ListsRetrieving Query ListsRetrieving Query ListsRetrieving Query Lists
• Transfer.list(class, [orderProperty], [orderASC], [useAliases])
• Transfer.listByProperty(class, property, value, [orderProperty], [orderASC], [useAliases])
• Transfer.listByPropertyMap(class, propertyMap, [orderProperty], [orderASC], [useAliases])
• Transfer.listByQuery(query)
15www.cfunited.com
DemoDemo
16www.cfunited.com
Managing Relationships & CompositionsManaging Relationships & CompositionsManaging Relationships & CompositionsManaging Relationships & Compositions
• Relationship types• One to many• Many to One• Many to Many
• Collections• Struct• Array
17www.cfunited.com
DemoDemo
18www.cfunited.com
Transfer DecoratorsTransfer DecoratorsTransfer DecoratorsTransfer Decorators
• A decorator is used when you wish to write your own CFC to be used to represent data, in place of the Transfer generated Object.
• Wraps and extends the transfer object• Must extend transfer.com.TransferDecorator• Decorator attribute on the object element in
the transfer.xml configuration
19www.cfunited.com
DemoDemo
20www.cfunited.com
Transfer 201Transfer 201Transfer 201Transfer 201
• Decorators• Cache• Object Proxies• Events• Transfer & Flex• Validation
• ValidateThis - http://validatethis.riaforge.org
• Frameworks based on transfer• Metro - http://metro.riaforge.org/
21www.cfunited.com
ResourcesResourcesResourcesResources
• http://www.transfer-orm.com/• http://docs.transfer-orm.com/• http://groups.google.com/group/transfer-dev• http://www.compoundtheory.com/
• Email – [email protected]• Blog – www.danvega.org• Twitter - @cfaddict
22www.cfunited.com
Q&AQ&AQ&AQ&A