I'm an idiot for not using...
ColdSpring and Transfer.
That's it. Nothing meaningful here. Just a big, giant, virtual slap to my own face for avoiding these tools for so long. They are in use at my current contract and I can't believe I avoided learning them for so long. It's like I've been using my hands to drink for all my life and just discovered the amazing invention known as "cups". Not just useful - but kinda stupid to avoid using.
Comments
I felt the exact same way when it came to Coldspring. I haven't drank the Transfer Koolaid, yet, though.
# Posted By Will B.
| 3/27/08 2:24 PM
Just learning Transfer: pretty easy to learn and quite well documented (as opposed to Reactor, for instance).
# Posted By Martijn van der Woud
| 3/27/08 3:07 PM
Welcome to the light!
Cheers...
Cheers...
# Posted By phill.nacelli
| 3/27/08 3:16 PM
Do you feel the same way about CFEclipse, or not so much? I've dabbled lightly with it twice before for about 10 minutes per, but immediately retreated from it each time.
As of about 2 days ago, I've finally decided to give it a deeper look.
If anyone's bored, check out this post and feel free to throw out some tips for falling in love with CFEclipse, because so far, I am definitely not.
http://www.slcfug.org/fusetalk/messageview.cfm?cat...
As of about 2 days ago, I've finally decided to give it a deeper look.
If anyone's bored, check out this post and feel free to throw out some tips for falling in love with CFEclipse, because so far, I am definitely not.
http://www.slcfug.org/fusetalk/messageview.cfm?cat...
# Posted By David McGuigan
| 3/27/08 3:29 PM
Whereas I am, for the record, deeply in love with Transfer.
# Posted By David McGuigan
| 3/27/08 3:31 PM
David - it took me more than a few days to get used to Eclipse, but now that I'm used to it, I feel very comfortable.
In ways Eclipse is like Linux. You have to COMMIT to using it and don't "retreat" back to another editor. (I only use other editors for files that aren't in Eclipse projects.)
In ways Eclipse is like Linux. You have to COMMIT to using it and don't "retreat" back to another editor. (I only use other editors for files that aren't in Eclipse projects.)
# Posted By Raymond Camden
| 3/27/08 3:33 PM
Out of curiosity, is there a reason you use other editors for non-eclipse project files?
# Posted By Dominic O'Connor
| 3/27/08 3:37 PM
Eclipse has one kinda silly thing. It demands that all files you work with are in projects. WHile on one hand that is nice for keeping things organized, on the other hand it's a pain for quick edits of files that you may just have temporarily.
If you get the CF plugins for Eclipse (not CFEclipse, the Adobe ones), you can use RDS, and, actually, CFEClipse has file view. Both of those let you open ad hoc files. But I find it quicker to just double click on a file an open it.
If you get the CF plugins for Eclipse (not CFEclipse, the Adobe ones), you can use RDS, and, actually, CFEClipse has file view. Both of those let you open ad hoc files. But I find it quicker to just double click on a file an open it.
# Posted By Raymond Camden
| 3/27/08 3:43 PM
I see. I actually use the File Explorer view fairly often. It can be kind of wonky, but I use a lot of keyboard shortcuts, so it's worth not having to duplicate my library of shortcuts.
# Posted By Dominic O'Connor
| 3/27/08 3:50 PM
Ray - I'm hoping to use Transfer and Coldspring on an upcoming project. I'm hoping the learning curve isn't too steep :)
In regards to Eclipse - yes there is a bit of commitment required to get started - but once you switch it's a very powerful tool. And remember Eclipse is an IDE, not a text editor. For quick file edits I will usually open Notepad++.
In regards to Eclipse - yes there is a bit of commitment required to get started - but once you switch it's a very powerful tool. And remember Eclipse is an IDE, not a text editor. For quick file edits I will usually open Notepad++.
# Posted By Jim Priest
| 3/27/08 4:26 PM
Cool! Any chances you will blog about your experiences? I haven't run across to many tutorials on working with Coldspring.
Ray, what were you using before Transfer?
# Posted By Sammy Larbi
| 3/27/08 5:32 PM
Hey you can't learn everything Ray.. :)
Totally agree on CS and Transfer though.. I made the big jump from my own procedural framework to OO, Model-Glue, Coldspring and Transfer for a huge project I'm working on and while it's been quite a learning curve I really love how they all work together so well.
Transfer really is total genius. On this project I haven't written a line of SQL yet.. I also like how it make's you think in terms of the domain model, with the database structure really being the last thing you think about when figuring out the best way to persist the model.
It's openend up whole new ways of working for me such as creating a Transfer object in memory and adding data to it over various pages of a user process (adding a question to a site for instance). When finished I simply call the save method and commit it to the database. The great thing about this methodology is it's easy to build the interface to handle both creation of data and then subsequent editing with ease. Really cool.
I've only known Coldspring so never had the pain of manually instantiating tons of CFC's and managing dependencies. I'm finding it truly awesome. I love that site configurations have a 'place' and are easily modified and injected into the objects that need them..
I do like the direction the CF community is moving in...
Totally agree on CS and Transfer though.. I made the big jump from my own procedural framework to OO, Model-Glue, Coldspring and Transfer for a huge project I'm working on and while it's been quite a learning curve I really love how they all work together so well.
Transfer really is total genius. On this project I haven't written a line of SQL yet.. I also like how it make's you think in terms of the domain model, with the database structure really being the last thing you think about when figuring out the best way to persist the model.
It's openend up whole new ways of working for me such as creating a Transfer object in memory and adding data to it over various pages of a user process (adding a question to a site for instance). When finished I simply call the save method and commit it to the database. The great thing about this methodology is it's easy to build the interface to handle both creation of data and then subsequent editing with ease. Really cool.
I've only known Coldspring so never had the pain of manually instantiating tons of CFC's and managing dependencies. I'm finding it truly awesome. I love that site configurations have a 'place' and are easily modified and injected into the objects that need them..
I do like the direction the CF community is moving in...
# Posted By James Allen
| 3/27/08 5:35 PM
Can anyone tell me where I can get the API (CFCDoc)
"javadoc" style documentation for ColdSpring's classes?
"javadoc" style documentation for ColdSpring's classes?
Ray!
Glad to hear you are enjoying Transfer :oD
Look out for the eminent 1.0 release!
Glad to hear you are enjoying Transfer :oD
Look out for the eminent 1.0 release!
# Posted By Mark Mandel
| 3/27/08 6:50 PM
1.0... cough... cough.... ;)
# Posted By James Allen
| 3/27/08 7:10 PM
Gary, it is currently throwing an error, but I'm sure it is just temporary:
http://www.coldspringframework.org/cfcdoc/
http://www.coldspringframework.org/cfcdoc/
# Posted By Raymond Camden
| 3/27/08 8:55 PM
@Sammy - I was doing it by hand. Frankly, I thought to myself - why bother when I can write a sql statement in a few seconds. But after using Transfer, I really appreciate how simple it is and how quickly I can do stuff. It feels like a one layer of 'worry' is now gone.
# Posted By Raymond Camden
| 3/27/08 8:56 PM
@Bob - Yeah, this blog entry was really kind of a crappy one - I was just... happy, and wanted to share my happiness. ;) I will try to blog a more detailed, helpful blog outside of 'ColdSpring and Transfer are cool!'.
# Posted By Raymond Camden
| 3/27/08 8:57 PM
Transfer is great, glad you're liking it!
And ColdSpring is the one indispensable framework for working with ColdFusion. Doesn't matter if you use Fusebox, or Model-Glue, or Mach-II, or ColdBox, or roll your own. Doesn't matter if you use Transfer or Reactor. Doesn't matter whether it's an HTML app, or an AJAX app, or a Flex app. Doesn't matter if the requests are for HTML, or Flash remoting, or web services. ColdSpring is THE must-have item in all of these stacks. I couldn't imagine working without it at this point.
And ColdSpring is the one indispensable framework for working with ColdFusion. Doesn't matter if you use Fusebox, or Model-Glue, or Mach-II, or ColdBox, or roll your own. Doesn't matter if you use Transfer or Reactor. Doesn't matter whether it's an HTML app, or an AJAX app, or a Flex app. Doesn't matter if the requests are for HTML, or Flash remoting, or web services. ColdSpring is THE must-have item in all of these stacks. I couldn't imagine working without it at this point.
# Posted By Brian Kotek
| 3/27/08 8:58 PM
David, to answer your Eclipse questions since I'm not signing up for a forum account just to answer on that forum:
I have Control-Tab mapped to Next Editor. Hold down Control and then start pressing Tab to move through the list of available edit windows. When you get to the one you want, take your finger off Control.
I don't think you can individually change the background color of different types of code. To be fair though, I've never seen anyone else actually use such a feature in another IDE. I'd rank this very low on the missing feature list.
Line wrapping is an icon at the top that looks green and has a little black arrow on it.
I have Control-Tab mapped to Next Editor. Hold down Control and then start pressing Tab to move through the list of available edit windows. When you get to the one you want, take your finger off Control.
I don't think you can individually change the background color of different types of code. To be fair though, I've never seen anyone else actually use such a feature in another IDE. I'd rank this very low on the missing feature list.
Line wrapping is an icon at the top that looks green and has a little black arrow on it.
# Posted By Brian Kotek
| 3/27/08 9:11 PM
Actually Ray, this blog entry says a lot. You don't often get excited about other code, so this pretty much says it all. After reading it I knew I had to take a look so I have downloaded ColdSpring and as soon as the docs are availabe, I will read them.
As for Transfer, I've been writing SQL for longer than I have been writing CF (Jeremy sent me versoin 1 back in 95) though I haven't been a serious programm until recently. Now I'm playing catchup with Ray.
As for Transfer, I've been writing SQL for longer than I have been writing CF (Jeremy sent me versoin 1 back in 95) though I haven't been a serious programm until recently. Now I'm playing catchup with Ray.
I'm very glad that you're enjoying your current contract and enjoying working with ColdSpring and Transfer - and Model-Glue. I think we'll both have some interesting things to blog about with ColdSpring and Transfer soon, eh? :)
Oh gosh, it's not exactly secret, is it?
We flew Ray out to California to have face time with our team and that's how he was able to speak in person at BACFUG (great presentation Ray - thank you!). So, yes, Ray's doing a lot of great work for Broadchoice with ColdSpring and Transfer and we're extremely happy to have the jedimaster working for us!
Sean A Corfield -- (904) 302-SEAN
Chief Systems Architect -- VP Engineering
Broadchoice, Inc. -- http://broadchoice.com/
Oh gosh, it's not exactly secret, is it?
We flew Ray out to California to have face time with our team and that's how he was able to speak in person at BACFUG (great presentation Ray - thank you!). So, yes, Ray's doing a lot of great work for Broadchoice with ColdSpring and Transfer and we're extremely happy to have the jedimaster working for us!
Sean A Corfield -- (904) 302-SEAN
Chief Systems Architect -- VP Engineering
Broadchoice, Inc. -- http://broadchoice.com/
# Posted By Sean Corfield
| 3/28/08 12:43 AM
I felt exactly the same (see article title) when I discovered jQuery. Javascript is not the same after this day.
About ColdSpring, I used it very little whith Model-Glue, have to use it much more.
About Transfer, I had a bad experience with Reactor, very nice at development, loved it, but in production i experience slow site and memory leak (and it was at prodution modus)
After that I m a bit afraid to use ORM.
Since I heard so many good things, probably I will give a try.
About ColdSpring, I used it very little whith Model-Glue, have to use it much more.
About Transfer, I had a bad experience with Reactor, very nice at development, loved it, but in production i experience slow site and memory leak (and it was at prodution modus)
After that I m a bit afraid to use ORM.
Since I heard so many good things, probably I will give a try.
# Posted By Daniel
| 3/28/08 2:03 AM
Brian:
Thanks! I hadn't even tried out any icons yet. Word wrapping, check.
So how you described Ctrl + Tab working is actually how I EXPECTED it to work in CFEclipse (same way it works in most tabbed apps), but for some reason it's not (for me). Even after I release both Ctrl + Tab (in either order) the pop up list of open documents remains onscreen until I interact with it. I'm assuming I must have some kind of custom shortcut mapping conflict that's pre-empting the release trigger. I'll pour over the 800 shortcut list and see if I can find a culprit.
I've used comment background coloring for years now and already miss it in Eclipse. Not that I'm moving to Eclipse, so much as giving it a college try. But I miss it. I look at code, even after I've customized its coloring, and it just looks naked without standout, attractive, easy-to-read comments.
You seem pretty spry with Eclipse. Do you happen to know a quick and clean way to export all of my settings from one computer to another?
Thanks! I hadn't even tried out any icons yet. Word wrapping, check.
So how you described Ctrl + Tab working is actually how I EXPECTED it to work in CFEclipse (same way it works in most tabbed apps), but for some reason it's not (for me). Even after I release both Ctrl + Tab (in either order) the pop up list of open documents remains onscreen until I interact with it. I'm assuming I must have some kind of custom shortcut mapping conflict that's pre-empting the release trigger. I'll pour over the 800 shortcut list and see if I can find a culprit.
I've used comment background coloring for years now and already miss it in Eclipse. Not that I'm moving to Eclipse, so much as giving it a college try. But I miss it. I look at code, even after I've customized its coloring, and it just looks naked without standout, attractive, easy-to-read comments.
You seem pretty spry with Eclipse. Do you happen to know a quick and clean way to export all of my settings from one computer to another?
# Posted By David McGuigan
| 3/28/08 2:47 AM
@David - since this is slightly OT from Ray's original post I don't want to get into too much discussion here about Eclipse. If you haven't signed up for the CFEclipse mailing list - that is your best resource for help!!
# Posted By Jim Priest
| 3/28/08 7:08 AM
@ray hopefully those frameworks will keep from having to manually build beans?
@Bob: I've only scratched the surface of Transfer so I'm not the best guy to answer, but it seems so. You get a TransferObject back that acts like a bean (you can do get/setFoo()), and you can do getMemento to a get a struct of all the values.
# Posted By Raymond Camden
| 3/28/08 1:09 PM
Speaking of Dependency Injection, has anyone tried LightWire? When I was digging around and trying to learn ColdSpring, I happen to run across LightWire. I looked at the API and it was very simple to get things going. ColdSpring was too bulky for me, I wanted something light weight and easier to use. I believe Peter Bell is working on a newer version, here's the link to his site to read more on it: http://www.pbell.com/index.cfm/LightWire
Give it a try, it's much easier to use and very light weight.
I can't wait to take a second look at transfer, to be honest, the presos I watched didn't show enough code, which is a downside to most presos unfortunately. But it sounds like i need to give it a second go and see what all the hype is about.
Thanks Ray!
Give it a try, it's much easier to use and very light weight.
I can't wait to take a second look at transfer, to be honest, the presos I watched didn't show enough code, which is a downside to most presos unfortunately. But it sounds like i need to give it a second go and see what all the hype is about.
Thanks Ray!
# Posted By Hatem Jaber
| 3/28/08 5:24 PM
@Hatem: I think the upside to Transfer (or any ORM for that matter) is that there isn't a lot of code to begin with. =)
# Posted By Sammy Larbi
| 3/28/08 6:03 PM
@Hatem - I think you will * love * the new Intro preso I'm doing at cf.Objective this year.
It's pretty much 70% all code ;o)
I really think it's going to be an awesome presentation, I'm really looking forward to giving it!
After cf.Objective, I'll be sure to do some online as well, so they can be seen live, and recorded.
It's pretty much 70% all code ;o)
I really think it's going to be an awesome presentation, I'm really looking forward to giving it!
After cf.Objective, I'll be sure to do some online as well, so they can be seen live, and recorded.
# Posted By Mark Mandel
| 3/28/08 6:41 PM
@Sammi - That's definitely a plus!
@Mark - I look forward to the presos, I was actually going to look for some of them this weekend and get caught up. Please post or let Ray know so that he can post the links on his blog, thank you!
@Mark - I look forward to the presos, I was actually going to look for some of them this weekend and get caught up. Please post or let Ray know so that he can post the links on his blog, thank you!
# Posted By Hatem Jaber
| 3/28/08 9:21 PM
@Hatem
I'm using LightWire, when choosing a dependency injection framework I picked it over ColdSpring. The fact that it supports programatic configuration file (as opposed to XML) and allows mixins were key selling points. For example, I love being able to just loop through my services directory and inject a bunch of services into each other with minimal typing or the need for a generator. And with mixins I don't need to add declarations inside the components. In some cases I like having declarations, but for some services that are really needed everywhere, it's nice to be able to skip the declarations. Since I didn't intend to use AOP, Lightwire was perfect for me. If I recall correctly, Peter intended to add AOP eventually, just not sure if he's had any time to work on it lately. So in short, LightWire rules!
I'm using LightWire, when choosing a dependency injection framework I picked it over ColdSpring. The fact that it supports programatic configuration file (as opposed to XML) and allows mixins were key selling points. For example, I love being able to just loop through my services directory and inject a bunch of services into each other with minimal typing or the need for a generator. And with mixins I don't need to add declarations inside the components. In some cases I like having declarations, but for some services that are really needed everywhere, it's nice to be able to skip the declarations. Since I didn't intend to use AOP, Lightwire was perfect for me. If I recall correctly, Peter intended to add AOP eventually, just not sure if he's had any time to work on it lately. So in short, LightWire rules!
# Posted By Thomas Messier
| 3/28/08 9:54 PM
@Thomas - I feel the same way about it!
# Posted By Hatem Jaber
| 3/29/08 10:15 AM
My reaction is same as Daniel with regards to using ORM. If you are good in using SQL (Stored Procedures, UDF's), best to stick on using it than relying on ORM's. It also slows down the application performance. But ColdSpring is just indispensable framework as Brian suggested. It is inevitable in all our model-glue applications.
# Posted By Shimju David
| 3/31/08 8:59 AM
@Shimju
"It also slows down the application performance." Not necessarily. For example, Transfer has a caching layer that could end up helping you improve the performance. I guess it's like anything else, you evaluate on a case-by-case basis and go from there. Some projects don't warrant an ORM, for others it might be quite appropriate.
"It also slows down the application performance." Not necessarily. For example, Transfer has a caching layer that could end up helping you improve the performance. I guess it's like anything else, you evaluate on a case-by-case basis and go from there. Some projects don't warrant an ORM, for others it might be quite appropriate.
# Posted By Thomas Messier
| 3/31/08 9:18 AM
I think performance is relative in the context of Transfer though. It has very sophisticated caching built in which should improve performance in many applications. When coding up SQL manually I think it's easier to forget about caching or it being a lot more effort to build in. With Transfer you get it out of the box.
As with everything out there 'it depends' on whether it's the right choice to use an ORM. It's all about how much time you have to do a project and what you want to spend most of your time focusing on.
For me Transfer is a godsend, especially now that I am working in an OO way. The way it removes the focus from data to domain model is awesome and really helps speed up development.. It really is nice not to have to think about SQL for most of the application as well..
As with everything out there 'it depends' on whether it's the right choice to use an ORM. It's all about how much time you have to do a project and what you want to spend most of your time focusing on.
For me Transfer is a godsend, especially now that I am working in an OO way. The way it removes the focus from data to domain model is awesome and really helps speed up development.. It really is nice not to have to think about SQL for most of the application as well..
# Posted By James Allen
| 3/31/08 9:23 AM
a kinda feeling of loosing command in our own codes when using ORM's :). It also creates a kind of in-completeness even after a project is complete. Also you cant able to use Stored Procedure, Views, UDF's if you are using ORM's.
Also couple of years before many folks proposed Reactor ORM and now Reactor is less spoken and everybody is proposing Transfer ORM. SO those developers who used Reactor earlier may now migrating to Transfer now:) Iam bit scared of this situation.
@James Allen, I dont think ORM is needed if you are building a CF application in OO way.
Also couple of years before many folks proposed Reactor ORM and now Reactor is less spoken and everybody is proposing Transfer ORM. SO those developers who used Reactor earlier may now migrating to Transfer now:) Iam bit scared of this situation.
@James Allen, I dont think ORM is needed if you are building a CF application in OO way.
# Posted By Shimju David
| 3/31/08 9:45 AM
@Shimju: Well, I don't think its fair to say that since _one_ ORM failed, that it's not a good idea in general. Sometimes projects come and go - it's natural.
As for stored procs - using Transfer certainly doesn't mean you have to use it for 100% of your queries.
As for stored procs - using Transfer certainly doesn't mean you have to use it for 100% of your queries.
# Posted By Raymond Camden
| 3/31/08 9:51 AM
@Ray - Hey! I take exception to the notion that Reactor has failed. It's still being used actively in plenty of new projects. It's development isn't particularly active, but that's because it's pretty stable. Heck, I'm even talking about performance techniques at CF.Objective().
(Ok, the docs are miserable. I admit that.)
(Ok, the docs are miserable. I admit that.)
# Posted By Doug Hughes
| 3/31/08 10:14 AM
Sorry Doug, no offense meant. I really meant "in general", ie, IF Reactor had failed, it's not a valid excuse to not use Transfer.
Sorry!
Sorry!
# Posted By Raymond Camden
| 3/31/08 10:20 AM
@Ray
Regarding the requirement of Eclipse having to have its files in projects - very often my temporary files are either on my Desktop or the "My Documents" folders. I just created a project for each of them in Eclipse.
Regarding the requirement of Eclipse having to have its files in projects - very often my temporary files are either on my Desktop or the "My Documents" folders. I just created a project for each of them in Eclipse.
# Posted By Faelix
| 4/23/08 9:42 PM

