www.cfunited.com transfer 101 dan vega. 2 about me programmer coldfusion / flex / as3 / html / js /...

22
www.cfunited.com Transfer 101 Transfer 101 Dan Vega

Upload: elwin-greene

Post on 31-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

www.cfunited.com

Transfer 101Transfer 101Transfer 101Transfer 101

Dan Vega

Page 2: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 3: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 4: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 5: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 6: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 7: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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+

Page 8: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 9: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

9www.cfunited.com

Installation DemoInstallation DemoInstallation DemoInstallation Demo

Page 10: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 11: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

11www.cfunited.com

CRUD - SaveCRUD - SaveCRUD - SaveCRUD - Save

• transfer.save(object)• Update existing• Create new

• demo

Page 12: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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)

Page 13: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

13www.cfunited.com

CRUD - DeleteCRUD - DeleteCRUD - DeleteCRUD - Delete

• transfer.delete(object)• transfer.cascadeDelete(object)• demo

Page 14: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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)

Page 15: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

15www.cfunited.com

DemoDemo

Page 16: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 17: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

17www.cfunited.com

DemoDemo

Page 18: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 19: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

19www.cfunited.com

DemoDemo

Page 20: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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/

Page 21: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

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

Page 22: Www.cfunited.com Transfer 101 Dan Vega. 2 About Me Programmer ColdFusion / Flex / AS3 / HTML / JS / CSS / Groovy & Grails Cleveland ColdFusion

22www.cfunited.com

Q&AQ&AQ&AQ&A