Vote for me to speak/open mike podcast at CFUnited!

Posted By: Brian Meloche; Posted At : February 11, 2010 10:57 PM

Related Categories: About Me, LightFront, Conferences

I'm hoping to do a CFConversations Open Mike at CFUnited this year... but I need your help to get on the schedule.

I'll be at CFUnited regardless (well, hopefully; I'm planning to be there), but I'd like to have a big audience for one of the podcasts.

You can vote for the open mike here:

http://callforspeakers.cfconf.org/?event=vote&eventId=188

I've sent in a total of four topics, including one on LightFront, that could all use your vote:

  1. CFConversations Open Mike
  2. Improving Website Performance in the Browser
  3. LightFront - The CFML Framework that you don't need to be a rocket scientist to use!
  4. Object Oriented CFML: 2010 Edition

RE: CFConversations - I probably won't get another podcast out until March, as I'm pretty swamped with work right now until the end of the month, but I've got a few episodes coming, including a few guest interviewers, and two that are already recorded. I have to hit it hard in March, as CF Hour() is about to lap CFConversations. :( I'm all about healthy competition. :)

CF8 Cumulative Hotfix 4 is out... and LightFront continues...

Posted By: Brian Meloche; Posted At : December 5, 2009 2:18 PM

Related Categories: ColdFusion, Frameworks, Adobe, LightFront

It's been a while since my last blog post, so I thought I'd kill two birds with one stone, so to speak, as this post has two subjects. I'm terrible about blogging! :) I figured I could get this one out quickly so here goes!

Subject #1: LightFront development continues...

My last posting was on LightFront back in October. Don't take that to mean nothing has been going on with LightFront... it just means I've been too busy these days to blog much! LightFront has received a lot of updates since that post, and I even did a presentation on it for the CFMeetup: http://experts.na3.acrobat.com/p15958860/. That was back around version 0.4.0. I now have 0.4.3 in a branch, which is fully functional and feature complete (for 0.4.3, not for everything that will go into 1.0.0), but example 2 hasn't been brought up to speed yet. I hope to get to that in the next couple of weeks after I complete a project that's taking all of my bandwidth these days. 0.4.3 brings in full support for the model with the new initService() and initComponent() functions, as well as the new callAction() that will replace callEvent() in the next release, and loadAction(), which allows you to load an action into the request scope instead of outputting it directly. It's a great leap in the framework, despite the version sounding like it's a point release. If you've been using LightFront, make sure to start using callAction() instead of callEvent(), as callEvent() will be deprecated in 0.4.4 and removed in 0.5. This is in reaction to Joe Reinhart's comment in the previous blog entry, and I do agree that "event" portrays LightFront as an event-driven framework, which implies implicit invocation. There's nothing implicit about LightFront, and that's because you call your actions directly (explicit invocation). If you're looking at LightFront for the first time, use 0.4.3, which you can get at RIAForge (see link above).

Subject #2: A new CF 8 cumulative hotfix is out...

A mystery still present in the Adobe CF space is how word gets out on hotfixes and security updates, which don't always get the publicity they need to get them out into the public. Though I'm a registered CF8 user, I never get any emails from Adobe on these, and I wish that would change.

I got word of this one in, of all places, a Google alert. I thought I'd pass it on.

Adobe has just released cumulative hotfix #4 for ColdFusion 8.0.1. You can find more information about it here:

http://kb2.adobe.com/cps/529/cpsid_52915.html

LightFront: The incredibly simple & approachable MVC Framework for ColdFusion

Posted By: Brian Meloche; Posted At : October 7, 2009 5:59 AM

Related Categories: ColdFusion, Frameworks, LightFront

I'm finally blogging here about my new MVC framework, which I call LightFront. I first published it on RIAForge on August 31st, and I finally made the project publicly available on RIAForge on October 1st, with updates almost every day since.

I'm not at MAX this year (sorry no CFConversations episodes from MAX this year), and it's been a bit difficult for me to get out a podcast at the moment (a logistics/timing/personal issue... not worth discussing here, but I have two episodes almost out the door), so I thought it was time to post a blog entry about LightFront here.

First, here's where you can find it, and find out about it (beyond what I have said below):

LightFront is an MVC framework for ColdFusion. What, another one? Yes, another one. This one's a little different than the rest, although it's a close relative to one of them.

LightFront is short for Lightweight Front-controller. Unlike most of the CF frameworks out there, it uses only one CFC, and it's just a little bit above 200 lines, so it's straightforward enough most of you reading this with a CF background can look at the core and understand what's going on.

It's conventions based. If you follow conventions, you only have to set three settings in your Application.cfc. That said, there are some conventions that can easily be overridden with another setting. Need to put your views in the /includes/ folder (and subfolders) instead of the default /view/ folder? No problem - that's just an additional setting:

lfs.viewDirectory = "/includes/";

There are some optional settings, too, but I'll get to that below.

Your controller is all defined in CFCs. You don't need an XML file. As previously stated, all of your settings are defined in your getSettingsForLightFront() function in Application.cfc as a structure. There are no additional XML files to config or define your events... do that in your CFCs.

That's if you use CFC-based controllers. The folder has to exist, but you don't need them to make LightFront work. LightFront has a unique feature. You can also use switch-based controllers, a la Fusebox 2 and 3. It can take a switch file from an old Fusebox app and it will work in LightFront. That's not to say LightFront is 100% Fusebox compatible, and I don't intend on making it that way, but I think we can offer an easier update path on old Fusebox 2/3 sites than even Fusebox/FuseNG can. It does make it a lot easier for a team who wants to move into CFC-based apps to gradually transition into that architecture while at the same time still maintain legacy Fusebox-ian style applications. There are a couple of additional settings to add if you have a Fuseboxian switch/circuit to add to LightFront, similar to how you define circuits in Fusebox, but it's very simple to do.

LightFront is also easy to make work with legacy applications that use no framework at all. Let's say you have an application that has index.cfm, aboutus.cfm, contactus.cfm at the root. No problem. Create a view/home mapping and point it to your root. then, you will be able to call /view/home/aboutus.cfm as displayView("home.aboutus") or displayView("home/aboutus").

That is a double benefit. Let's say you have a site which has a number of static or mostly static pages. You don't need a switch or a CFC controller if you follow simple conventions. If you want to call a static /view/home/aboutus.cfm directly as an event, no problem. As long as all home events are direct calls to view pages and don't use a home.cfc controller or a home switch file, you're fine. Your URL would be ?/do=home.aboutus. LightFront will automatically check for the existence of a home controller. If it doesn't find one, it will try to call /view/home/aboutus.cfm and it will display that as the event. This is also great for prototyping a site, too. You can also define pre-events and post-events, should you need to call events before and after each url called event (they only run once per request).

You can also map assignments from one event class to another (help.contactus goes to home.contactus), change event names (do) and delimiters (.), change naming conventions of the CFCs, and a few other things.

The closest currently supported framework that I know of in ColdFusion to LightFront is FW/1. In fact, Sean beat me to the punch to release FW/1 over LightFront by a few days. I had to go back and see if LightFront was worth it at all to complete, and stopped working on it for a few weeks. After a lot of reflection and some deep analysis of the two frameworks, I decided just before CFUnited that LightFront would continue. FW/1 is very similar, but it doesn't support legacy applications quite as easily as LightFront does, it's more conventions based than LightFront and less flexible in how you code (some would say "more opinionated"), and it ties into ColdSpring or Lightwire and the services layer. I intentionally decided not to do this. It's not that I disagree with using dependency injection/inversion of control or a simple bean factory, or in the idea of a services layer (all my apps have them). It was a conscious decision for LightFront to be a controller framework - nothing more and nothing less. The same can be said for ORMs - LightFront doesn't care whether you use them or not. It's up to you. LightFront only cares about being the controller. In fact, FW/1 and LightFront have so much in common that I could see them merging at some point if that's what people want, or they could travel separate paths. I'm open to either possibility.

Where I see LightFront going depends on what developers that use the framework want. As the first developer to use the framework :-), my thought is if people want what the big frameworks have, those things would go in via a plug-in architecture. Perhaps that would continue to be in the controller folder, or a plugins folder... I don't know. That said, it's fairly simple to build a controller CFC that functions like a filter or add a controller CFC that handles caching, and building those things directly into the framework adds greater complexity to the framework - something I am dead set against. I want to keep LightFront approachable, easy to learn and easy to use.

In fact, one of my goals in making LightFront was to make a simple framework for people to use. I wanted something that didn't require a CS degree or 10 years of CF experience to understand. LightFront should be a framework you can teach any developer the basics in 30 minutes or less you have to learn three functions:

  • callEvent()
  • displayView()
  • relocate()

That, and a few helpful settings changes, are all a developer needs to know.

If you can keep things simple enough for a junior developer to both be productive AND build good code, LightFront will succeed in its main objective.

Anyway, I hope you take a look at the framework, join the Google group and help shape the new framework. And now, back to CFConversations!

Hosting provided by...

Hosting provided by hostmysite.com

Calendar

<< March 2010 >>

Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Archives By Subject

  • About Me (41) [RSS]
  • ActionScript (1) [RSS]
  • Actuate (1) [RSS]
  • Adobe (16) [RSS]
  • Adobe Community Experts (2) [RSS]
  • AIR (1) [RSS]
  • AJAX (1) [RSS]
  • Animals (11) [RSS]
  • Articles (2) [RSS]
  • ASP (1) [RSS]
  • Blogging (14) [RSS]
  • BlueDragon (2) [RSS]
  • Canadian-American (1) [RSS]
  • CFConversations (16) [RSS]
  • Cleveland (3) [RSS]
  • Cleveland AUG (20) [RSS]
  • Cleveland CFUG (23) [RSS]
  • ColdFusion (75) [RSS]
  • Conferences (32) [RSS]
  • Design (3) [RSS]
  • Dreamweaver (1) [RSS]
  • Eclipse (1) [RSS]
  • Flash (2) [RSS]
  • Flex (10) [RSS]
  • Frameworks (6) [RSS]
  • Fusebox (1) [RSS]
  • J2EE (1) [RSS]
  • JavaScript (1) [RSS]
  • Jobs (2) [RSS]
  • LightFront (3) [RSS]
  • Linux (2) [RSS]
  • Mac (3) [RSS]
  • Mach-ii (8) [RSS]
  • Macromedia (9) [RSS]
  • MAX (34) [RSS]
  • Notes to Self (1) [RSS]
  • Open Source (6) [RSS]
  • Personal (16) [RSS]
  • Podcasts (23) [RSS]
  • Politics (1) [RSS]
  • Railo (0) [RSS]
  • Random Musings (10) [RSS]
  • Reality TV (1) [RSS]
  • Social Networking (1) [RSS]
  • Speaking (6) [RSS]
  • Subversion (2) [RSS]
  • Tech News (2) [RSS]
  • Technology (2) [RSS]
  • User Groups (21) [RSS]
  • Weight Loss (4) [RSS]
  • Windows (0) [RSS]
  • Work (8) [RSS]
  • Search

    Twitter Updates
    Follow me!

      RSS

      Subscribe

      Enter your email address to subscribe to this blog.

      Tags

      about me adobe animals blogging cfconversations cleveland aug cleveland cfug coldfusion conferences flex max personal podcasts random musings user groups

      Recent Comments

      Speaking at CFObjective 2010!!!
      Peter Bell said: Great - see you there! [More]

      Want a stripped down Eclipse? A 64-bit Eclipse? Get it here...
      Brian Meloche said: I don't use ANT on a regular basis. I may start but I don't currently use it within Eclipse. I've no... [More]

      Want a stripped down Eclipse? A 64-bit Eclipse? Get it here...
      Geoff said: Did you manage to get ANT working with just the basic platform version? I'm on Windows 7, 64bit, an... [More]

      LightFront: The incredibly simple & approachable MVC Framework for ColdFusion
      Brian Meloche said: Sean, my words made it seem otherwise, and that wasn't my intention. "Ties into" didn't me... [More]

      LightFront: The incredibly simple & approachable MVC Framework for ColdFusion
      Sean Corfield said: You said that FW/1 "ties into ColdSpring or Lightwire" and I want to clarify that it HAS N... [More]

      Podcasts I Listen To...

      Active Podcasts
      CFConversations (My Podcast)
      CFPanel (technically not a podcast, but close enough!)
      RIA Podcast
      CFHour()
      The Flex Show
      Non-active CF/Flex Podcasts (still worth a listen)
      ColdFusion Weekly
      The ColdFusion Podcast
      Helms and Peters Out Loud
      Other Podcasts
      This Week in Tech (TWiT)
      Windows Weekly with Paul Thurotte
      MacBreak Weekly
      Net @ Nite
      Slashdot Review
      Ruby on Rails Podcast (I'm not a Rails developer, but it's always a good idea to stay in touch with the competition!)
      Web Design Podcast from boagworld.com
      Practical Web Design Magazine