16 Replies Latest reply on Aug 10, 2008 8:21 AM by CTek-Media.com

    OO Design

      Hey all I'm looking for information on best practices for advanced components - using inits, getters, setters, objects as types, gateways, beans etc. Some models on how to use these concepts. I have been hunting and can't find anything that is either comprehensive or clear.

      Basically I'm trying to figure out best practices for modeling data flow abstraction but prefer to avoid sites that use phrases like "data flow abstraction". Ya know - a site that uses small words and lots of pictures - so idiots like me can actually understand what we are reading? But I'll take any information on how to use advanced components.

      I bough Hal Helms' "discovering CFC's" and it is a great book but it is somewhat out of date and doesn't give a really clear big picture. I can seem to find anything else - either books or web sites.
        • 1. Re: OO Design
          CTek-Media.com Level 1
          Anyone? I know some of you bright folks out there have patterns or models that are working for you.
          • 2. Re: OO Design
            CTek-Media.com Level 1
            • 3. Re: OO Design
              Level 7
              Bluetone wrote:
              > Bump

              The only advice I can give you is to check out some of the well known
              ColdFusion -- Object Orientated projects.

              Mach II
              Model Glue

              You may also want to look for recent issues of the "Fusion Authority"
              Quarterly Update published by House of Fusion. It has frequent
              discussion concerning OO in ColdFusion. The most recent Volume II Issue
              IV has a nice article, "Beans and DAOs and Gateways, Oh My!" by Sean

              I find anything written by Sean Corfield or Hal Helms to be very
              informative. They both have frequently updated blogs as well as
              numerous other published articles and personal appearances.
              • 4. Re: OO Design
                BKBK Adobe Community Professional & MVP
                Just add 'coldfusion' to your very own phrase, google it and you will find plenty to chew on:

                coldfusion, inits, getters, setters, objects as types, gateways, beans

                • 5. Re: OO Design
                  CTek-Media.com Level 1
                  Thanks much for the replies - I have looked at some, but not all, of those suggestions. I did quite a bit of searching before posting here. You can find lots of bits and pieces and arguments over esoteric details but no grand models that explain the logic well for some one who does not have an OOP background.

                  I have thought about digging into Model Glue. I may have to go that route. However, since I am now starting to work with Flex I'm not sure those models are applicable. Still it won't hurt.

                  Adobe - You need to publish a white paper on this subject - written by someone who knows how to communicate.

                  Thanks all.
                  • 6. Re: OO Design
                    murpg Level 1
                    Not sure if you are familiar with Coldbox or not. It is a nice OO framework with tons of documentation.
                    • 7. Re: OO Design
                      Level 7
                      I second Coldbox. Just started with it last week and am really impressed
                      with the documentation. Much better than Fusebox or the other frameworks.
                      There are also some nice videos on OOP and Coldbox on
                      http://www.carehart.org/ugtv/ to look at. Just beware that sometimes
                      frustrating trying to watch because the videos sometimes start and then stop
                      for awhile. I think it's a server thing. Try and pick a low usage time (late
                      night, weekends?) to view the videos.


                      "murpg" <webforumsuser@macromedia.com> wrote in message
                      > Not sure if you are familiar with Coldbox or not. It is a nice OO
                      > framework with tons of documentation.
                      > http://www.coldboxframework.com/

                      • 8. Re: OO Design
                        CTek-Media.com Level 1
                        Thanks for the info on Coldbox folks.
                        • 9. Re: OO Design
                          Level 7
                          > I second Coldbox. Just started with it last week and am really impressed
                          > with the documentation. Much better than Fusebox or the other frameworks.

                          Out of interest, what makes you say it's "better" than other frameworks?
                          Or is that just the reference to the docs?

                          I only ask because I'm looking around for a good fit myself, at present; so
                          appreciate anyone's thoughts on the matter.

                          I'd kinda settled on Model-Glue/ColdSpring/Reactor (although I was thinking
                          of looking @ Transfer again).

                          In the face-off between MG and Mach-II, Mach-II looked a bit primitive and
                          immature compared to MG, and the same with Reactor vs Transfer. Although
                          Transfer is seeing more active development than Reactor, so that's
                          something for me to think about.

                          Fusebox always looked like a cluttered mess since FB3 (or whenever they
                          shifted to XML config), so never looked at it again.

                          I've never looked at ColdBox.

                          • 10. Re: OO Design
                            murpg Level 1
                            When I said it was better I was referring to the documentation in Coldbox. I have been so impressed with it that I am going to go for some formal training with this framework. The problem I find with all of these frameworks is real life tutorials which actually show how to build an application that calls a db and has a login function. It is a huge hurdle to jump through if you do not come from an OO mindset.

                            Even with Louis Majano's great presentations he is pushing the framework not pushing real world tutorials on how to actually get the type of application that I discribed earlier up and running. We have all been totally soaked with the legacy way of doing ColdFusion with inline queries etc. What we have not been soaked with is good comprehensive books and videos on how to use these frameworks. I really hope this part changes because it will help bring many developers over to this way of building ColdFusion applications.

                            I came from a television background before programming so I know how to create and produce good video tutorials. So, if there are any developers reading this who would like to help in putting together some tutorials on Coldbox, Fusebox, Model Glue, or MachII I would love to talk further with you about this.

                            • 11. Re: OO Design
                              Level 7
                              > When I said it was better I was referring to the documentation in Coldbox.


                              Cheers for the clarification. Good docs are often hard to come across, and
                              it's definite an asset for ColdBox that they have them. I'll have a look.

                              I find the docs - such as they are - for MG / ColdSpring / Reactor to be a
                              bit limp. In a lot of places to understand what they are on about, one has
                              to already understand what they're on about...

                              • 12. Re: OO Design
                                PegasusT4 Level 1
                                I second what murpg says. I also meant the documentation rather than the framwork as being better. I've dallied with Fusebox, but really didn't like the XML part of it and the no-xml version just doesn't seem, uh, mature enough yet, especially compared to ColdBox. The Fusebox docs and sample code seem stuck in the FB4 era and I've seen little or no improvement in the docs lately. Too bad.

                                And I too am frustrated with OOP online training or tutorials for CF. Now there's a niche for a tech writer to fill!

                                • 13. Re: OO Design
                                  rich.leach Level 1
                                  Without question you need to check out Model-Glue. I worked with Mach-II all last year then took the Model-Glue training class in February and all I can say is "wow". With respect to the Coldbox folks out there, I simply don't see any jobs posted for "Coldbox", but I do see Mach-II/Model-Glue and some Fusebox (did FB come out with an OO version of their framework? It's been ages since I've worked with it). Model-Glue and Mach-II both utilize the Model-View-Controller design pattern, and Model-Glue especially works well with Object Relational Mapping tools like Reactor and Transfer (hibernate to you Java folks?). Model-Glue and Mach-II have been around a long time and a good chunk of Adobe.com was running on Mach-II for a while, if I understand correctly. Plus they have a huge user base and their Google groups reflect that, so getting questions answered is usually pretty quick. I'm not putting any one framework down, just sharing my experiences and my humbled opinion. Hope it helps you. You definitely want to check out www.dougboude.com and www.nodans.com they both have EXCELLENT tutorials on OO CF using Model-Glue.


                                  • 14. Re: OO Design
                                    rich.leach Level 1
                                    ... and, IMHO, you most certainly want to pursue Transfer instead of Reactor. The documentation, Google group and community support simply blow away the Reactor side.... and Reactor is a good piece of software! Plus, Transfer just released a new version, Mark Mandel is the author and is always involved in discussion, problem solving, debugging issues etc. Again, more opinion, take it for what it's worth.


                                    • 15. Re: OO Design
                                      Dinghus Level 1
                                      Hey, better yet. Just wing it. You know, sit down with a vague idea and start typing code. Spruce it up along the way and see where it leads. Then put it out there and let everyone tell you what is wrong with it. Fix those problems half-assed and then go on to the next version. Repeat as necessary. This is called the MICROSOFT METHOD. :)
                                      • 16. Re: OO Design
                                        CTek-Media.com Level 1
                                        Thanks for the additional information everyone. I have to agree about Model/Glue - If I'm going to learn a framework I'm going to choose based on what pays the best now - and in the future.

                                        I have spent the last many weeks doing the final coding and debugging on a complex, highly abstracted, stongly typed (objects as types), app written mostly in cfscript with a Flex front end. Oh and no code commenting or documentation.

                                        Needless to say the first month was brutal - but I have learned a ton. When I get some free time I'll post a model here for critique.