![]() |
|
|
LightFront
Project Home • Blog • Forums • Wiki • Known Issues • External Project Link • Contact Project
Author: Brian Meloche (All RIAForge projects by this author) Description:
LightFront is designed to be a basic MVC framework that will support both new development and legacy applications.
It's all centered around a single CFC that's under 300 lines. Yes, it's getting a little bigger than when we started, but that's to be understood. We're trying to keep it under 300 lines as long as we can (currently at 297). Update: It's up to 320 lines with revision 53. Oh well... but it's still small! Here's a few links to get you started: http://groups.google.com/group/lightfront/ (invitations must be requested; if you want in, you have to prove you're not a bot). LightFront's SVN repository is hosted at: http://svn.lightfront.org/svn/lightfront/ Interested? Read on... You can run it out of the box without making a single change, provided you don't want to deviate from the default settings. If you want to change a setting from its default, or need an optional setting, such as if you are using an old Fusebox application or code, or for assignments (assigning one classname to another), you will set them in your Application.cfc. All the configs do is tell the application where to look. LightFront uses no XML, unlike Mach-ii, Model-Glue and the XML-based Fusebox/FuseNG applications (more like the no-XML Fusebox, but even less complicated). The controller CFC/CFCs are your controller. If you've looked at FW/1, you'll find LightFront very similar in a lot of ways, but they differ in a few important ways that made me decide to continue work on LightFront. LightFront is a pragmatic framework. It was designed to allow you to transition an existing application to LightFront, and move to a CFC controller-style architecture gradually if needed. You can call views directly, so it will support old style standalone templates. In fact, as such, you don't need a controller for everything, as if it can't find a controller for the event, it will check to see if there's a view corresponding to that event. This is great if you need to support a lot of static content... you don't need the extra plumbing if the application doesn't need it. It also can use a procedural switch file, a la Fusebox 2 and 3, as a controller. This gives you a lot of flexibility, and helps you reuse code that might be written in a different style but does its job. That also helps you transition into CFC controller-based applications. LightFront plays nicely with IOC and ORM frameworks, and even with other controller frameworks, if needed, but it doesn't support them directly. LightFront is one of the simplest frameworks ever made for CFML. There are only a few functions you need to learn to use the framework effectively: callEvent() (being replaced in the next version with callAction(); callAction() has been added for forward compatibility) loadAction() (loads the action to the request scope) displayView() initService() initComponent() relocate() getSetting() link() - all new! The intention is to KEEP IT SIMPLE, and to not let LightFront expand beyond its current simplicity. It's a basic framework that can do most of what you need, with a short learning curve and not a lot of complexity. Even novice CFML developers can learn LightFront quickly and use it effectively. As such, if you've been reluctant to look into controller frameworks before, you will want to look at LightFront. It's easy to use, easy to learn, and easy to grow with. It's a great first MVC framework to learn. Its simplicity also makes it easier to add-on more complexity if you need it. You may think of LightFront as a framework on training wheels, but LightFront's simplicity also lets you build a lot on its tiny frame. The code you'll see at test.lightfront.org is what's in the zip file and the repository. Update! New release is 0.4.3. Current revision is at least 0.4.3.52. The zip file is from the 0.4.3 branch NOT the TRUNK. The skeleton and skeleton applications work fine AFTER you move /org/lightfront/lightfront.cfc to the appropriate location or create a mapping. A README file is included. The zip file for the 0.4.1 version is still available on test.lightfront.org, but the 0.4.3 core is complete and are now advising to start with the enclosed zip. With revision 49, sample 1 has been updated, and test.lightfront.org is now using the 0.4.3. That sample shows multiple MVC examples. There have been a couple of minor updates since, but still not officially calling 0.4.3 "out the door" until I can get all of the samples updated. With revision 52, the link() function was added to help create URLs. This was originally planned for 0.4.4, but it was needed a little sooner (for a project). Revision 53 added scope locking the initService and initComponent calls, and updated samples 1 and 2. 0.4.3 is still considered a branch until it's certified, as this revision's had a number of enhancements to the core. These are still fairly early days the LightFront framework, but the initial code's been released. The model is completely supported in the new download. That said, we're still open to major changes to the framework, so if you see something that can be improved, please suggest away. Recent blog entry: http://www.brianmeloche.com/blog/index.cfm/2009/10/7/LightFront-The-incredibly-simple--approachable-MVC-Framework-for-ColdFusion LightFront on the CFMeetup - recorded Thursday, November 5th: http://experts.na3.acrobat.com/p15958860/
Recent Blog Entries:
10/12/09 Skeleton app released in 0.3.5
10/7/09 0.3.2 is out! Blog post on brianmeloche.com 10/5/09 0.3.1 is out! 10/1/09 LightFront 0.3.0 has been released!
Requirements:
ColdFusion 7.0.2+ (requires an /lfront mapping set in CFAdministrator)
OpenBlueDragon 1.1+ (not tested below) Railo 3.1.1+ (not tested below) Issue Tracker:
To enter issues for this (or any other) project, you must be logged in. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Adobe and the Adobe product names are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.