In this issue of ColdFusion conference and training news: * New Sponsors * Early Bird rates expire 1/31/06 * Interview with Sean Corfield "Objects and Persistence"
CFUNITED is the premier ColdFusion Conference near Washington DC 6/28-7/1/06 (Four whole days!) Check out speakers and topics at http://www.cfunited.com/ - Michael Smith TeraTech, Inc TeraTech is hiring a senior developer to join our growing team http://www.teratech.com/index.cfm?go=About.JobDetail&JobID=7 Conference and training news **************************** * Upcoming classes CF102 - Intro to ColdFusion Jan 24 2006 CF201 - Intermediate ColdFusion Jan 31 2006 CF202 - Web Accessibility and 508 Feb 21 2006 FB101 - Intro to Fusebox Feb 28 2006 FB201 - Intermediate Fusebox Mar 7 2006 CF206 - ColdFusion SQL Skills Mar 14 2006 Cost $59 - $349 see http://www.teratech.com/training/ for more details and registration CFUNITED NEWS! * Abobe is the Platinum sponsor of CFUNITED, more details and new topics coming soon. * New BOF Simon Horwith vs Hal Helms Celebrity Death Match (Frameworks or not) * Only 13 days left on early bird pricing * CFUNITED Sneak Peak news coming soon ****************************** And now our CFUNITED spotlight interview. Michael Smith: This time we are talking with Sean Corfield about his CFUNITED-06 talk "Objects and Persistence". So why should a developer come to your session Sean ? Sean Corfield: Pretty much every developer has to deal with persistence - storing data, usually in a database - and a lot of developers are starting to explore ColdFusion Components (CFCs). This talk will cover a variety of techniques and tools for using CFCs to make persistence a lot easier - including techniques that involve writing no SQL at all! Michael Smith: No SQL at all? How can you use a database without writing SQL? Sean Corfield: Some of the tools that I'm going to talk about handle all of the SQL for you - you just tell them which data source and which table you want data from and they figure out the structure of the database automatically. Michael Smith: Sounds like a silver bullet so there must be a catch... Sean Corfield: Yes, there are limitations with any tool that does "magic" for you like that. You don't have as much control over the queries that are being run against the database and if you have a complex or unusual table structure, the automated tools can't always handle that. That's why I'm covering other techniques involving CFCs as well. Michael Smith: I don't think I see the connection between CFCs and persistence. CFCs only exist in memory, right? Sean Corfield: Correct. That's core to one of the messages I want to get across in this talk. CFCs are great for modeling complex data and relationships in memory but you still need to deal with saving to / loading from databases. Most databases rely on "relational" models - data is represented as rows in tables with certain columns acting as keys that are used to retrieve and update rows, as well as identifying the relationship between tables. Michael Smith: Could you give an example? Sean Corfield: Imagine a table that represents addresses. It has columns for house number, street, city, state, zip etc. It will also have an "id" column that is used as the key to retrieve a specific address. Then imagine a table that represents people. It has columns for first name, last name etc and an "id" column to identify a specific person. Since a person lives at an address, there is a relationship between a person and an address - the person table will have an "addressid" column that holds the key of the corresponding address. Michael Smith: That sounds familiar. How does that relate to CFCs? Sean Corfield: If you model addresses and people with CFCs, the CFCs themselves don't need "keys". Each person CFC just has a reference to the appropriate address CFC in memory. The "keys" are really just an artifact of the underlying relational database. In other words, the natural way to represent things and relationships in an object model - using CFCs in memory - is different to how you represent those things and relationships in a database. Michael Smith: So using CFCs makes things more complicated? Sean Corfield: It does sound like that at first but there are many benefits to using CFCs and if you follow certain patterns, they can make life simpler in the long run. Michael Smith: Such as...? Sean Corfield: The first application most ColdFusion developers build typically has pages containing a mix of logic and HTML, often with SQL embedded directly in each page. There are similar (or even identical) queries in multiple pages. If the database structure changes - and we know it often does - lots of pages have to be inspected and modified. Michael Smith: I expect most of us have written programs like that! Sean Corfield: I'm illustrating my talk with an example just like that and showing how to evolve it into something more maintainable using CFCs. I show how moving all the SQL for a given table into a single CFC and calling that from multiple pages is a fairly simple improvement. Then I show how to use a CFC for modeling the 'object' that data represents along with a CFC that manages the data itself. That opens the door to having a natural in-memory object model with a separate, self-contained data tier - all the SQL wrapped up in CFCs that manage the data for each type of object. Michael Smith: Separating the object model from the relational model? Sean Corfield: Yes, exactly! It's an abstraction that allows the business logic in an application to be coded in the most natural way while allowing the most efficient database model to be encapsulated - hidden - and coded independently of the business logic. Michael Smith: That sounds like it would be easier to maintain as the application grows! OK, I can see the connection between CFCs and persistence now. Am I right in supposing this abstraction is necessary to take advantage of those "no SQL" techniques? Sean Corfield: Yup. All of those techniques assume that you are already using CFCs or that you are comfortable with them for encapsulating data access. In fact, if you encapsulate data access like that, you can pick and mix how you actually handle the database portion. You can use a simple "automagic" technique to get your application up and running and then switch to carefully hand-tuned SQL to improve performance if necessary, or add caching or even change databases - all without affecting the business logic of your application. Michael Smith: Those sound like useful techniques to know! I look forward to seeing your session. You can see more interviews at http://www.cfunited.com/interviews.cfm CFUNITED-06 is Wed 6/28/06 - Sat 7/1/06 in Bethesda MD, just outside Washington DC. It costs $649 until 1/31/06 then $749. For more information on CFUNITED see http://www.cfunited.com/ --- Objects and Persistence ************************* With tools springing up like weeds in the object / persistence space we could do with a session that goes over some of the options. It could cover automatic tools like Arf! (inspired by Rails for Ruby), Reactor as well as CFC generators. One of the key messages of the talk should be the duality of OO model design vs relational table design and how efficiencies in each area conflict and can be resolved through intelligent mapping. Object Relational Mapping (ORM) is term much bandied about but without much information available aimed directly at CFers. Speaker Bio: Sean has worked in IT for over twenty years. He started out writing database systems (in Assembler) and compilers (in various languages, including COBOL!) before moving in mobile telecoms and then finally into web about eight years ago. Along the way, he worked on the ISO and ANSI C++ Standards committees for eight years but then turned to Java (in '97) and gave up C++. Although, he still maintains one of the textbook reference websites: C ++ - Beyond the ARM. Sean is a staunch advocate of software standards and best practice. He wrote C++ coding guidelines for several companies during the 90's and more recently maintaining the Macromedia ColdFusion MX Coding Guidelines and Mach II Development Guide, which are also published for the ColdFusion community. He has also given several seminar talks, both in- house and publicly, on these subjects. Sean has championed and contributed to Mach II and is also a member of Team Fusebox. * Speakers include top names like Simon Horwith, Charlie Arehart, Hal Helms, Michael Dinowitz, Ray Camden and many more respected CF authors and presenters. * Great tracks: * Bootcamp - Basic ColdFusion and Flash topics * Advanced - Advanced ColdFusion topics * Manager/Empowered - Fusebox and Project management topics * Flex/RIA - Flash, Flex and other technologies integrated with CF topics * Accessibility / usability - section 508, CSS and disabled access * Deployment/Platform - tuning, install issues, OS, picking a database * Included in your full conference registration is the following: * Attendence for 4 days (6/28/2006-7/1/2006) * Keynote and General Sessions * All conference sessions including repeat sessions on Saturday * Entrance to Expo Area * Networking Events * Badge and Badge holder with bar scan code * Free Lunch for each show day (Dinner is not included) * Access to all presentations after the event, including all the recordings. * Promotional bag with materials including show guide, CD, coupons, etc. * Opportunity to participate in all raffle drawings * Can't stay 4 days Wed - Sat? Optional 3-day and Saturday only packages available too. Saturday will consist of repeats the most popular sessions from the week - something many attendees asked for last year! * The early bird price of $649 for CFUNITED-06 ends 1/31/06. Price expires 4-day 3-day Saturday-only Early Bird 01/31/2006 $649 $549 $249 Timely Bird 03/31/2006 $749 $649 $299 Regular 06/16/2006 $849 $749 $349 Late 06/28/2006 $949 $849 $399 Door 06/29/2006 $1049 $949 $449 Save upto $400 by registering now! Register today at http://www.cfunited.com/ -- Michael Smith, TeraTech Inc - Tools for Programmers(tm) TeraTech voted Best Consulting Service by CFDJ readers! CF/ASP Web, VB, Math, Access programming tools and consulting 405 E Gude Dr Ste 207, Rockville MD 20850 USA Please check out http://www.teratech.com/ - email mailto:[EMAIL PROTECTED], or call us for more information; in the USA at 1-800-447-9120, +1-301-424-3903 International, Fax 301-762-8185 Thanks! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229942 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

