The next few posts in my security series will be delayed. I have been busy with some other projects, as you are about to read. I hope to have them out by the end of this week, or early next week.
So my journey into the world of Object-Oriented Programming has begun, and I am really excited about it. It is definitely a different way of thinking about programming. So far there are things that I like, things that I really like, and things that will take getting used to. There has not been a single thing that has made me say that I dislike OO (so far).
This all started at cf.Objective() when I took the pre-conference Mach-II training led by Matt, Peter and Kurt. It was an outstanding training that really did a great job of introducing us to OO concepts and to the Mach-II framework. I would recommend the training to anyone.
Well, of course, after the training, I did not have a chance to get heavily into what we had learned because I was supporting some old legacy apps. Then I had two opportunities to start new apps, one personal and one for work. The one for work I started building with ColdBox, and the personal project I started building with Mach-II. It did not take long to realize that this was a mistake. Trying to learn to frameworks at the same time was too much.
So after discussing it with my co-worker, we decided to start with ColdBox in our framework evaluation. The primary reason we started with ColdBox was because of the documentation. The docs for ColdBox are AMAZING. So I printed out about 150 pages from the ColdBox web site and started reading. I am not the type to just jump right in, so I read as much as I could on it, I looked at the sample apps, I compared them with the Mach-II sample apps, and then finally, about 2 weeks ago, I felt ready to begin building an Application with ColdBox.
I thought that to really appreciate what frameworks do, I needed to work without them first. So I started my application without a framework at all. I simply started creating my model. Hand-coding getters and setters got old pretty quickly, so I started using the code-gen tools in the ColdFusion Extensions for Eclipse, that helped a little, but the code-gen was not great. The when it came time to start interfacing with my model, I realized how difficult it was to do without an MVC framework. I struggled for a couple of days and then decided to convert the app to ColdBox.
The conversion to ColdBox went pretty well, I was able to get the very basics of the application up and running within a couple of hours (it was my first time, so quick smirking). Then I started to add to my model and I had one section that required object composition, and, of course, I was having difficulties managing the dependencies. Enter ColdSpring.
I was originally going to try to code the whole app without ColdSpring so that I could feel "the pain" of working without it. Well, I didn't need to finish the app to feel "the pain" nor to appreciate what ColdSpring does. So I worked that into my application as well. The docs from the ColdBox site really helped with that process.
Then the new version of Eclipse was released late last week. As I said, I had been using the ColdFusion Extensions for Eclipse to code gen my model. Well, I downloaded the new Eclipse, and, of course, the extensions didn't work. So crap! Now what? I did not want to go back to hand coding all of that. So I decided it was time to look at Transfer. Using the Transfer site, the sample Transfer Apps that come with ColdBox and some other interweb resources, I was able to get Transfer integrated into my app relatively painlessly. I had a few stumbling blocks with Transer, but I was able to work through them with help from the mailing list, the Tranfer docs, Russ Johnson's blog, and the ColdBox API docs.
Now this weekend I have been working on my application and having a great time with it. It's been coming along nicely, yet slowly, as I learn and rework things. It has really been an awesome learning experience. I am amazed by the frameworks and the OO methodologies.
My hat is off to all of the framework developers (Not just those that I have mentioned). What you do is AMAZING. And the fact that you make these things freely available to the rest of us is also amazing. I don't think there is any going back to Procedural coding for me.