Peter Amiri talks about “CFWheels ColdFusion Framework (new structure and features)” in this episode of ColdFusion Alive Podcast with host Michaela Light.
"...CFwheels is another ColdFusion framework. And it was originally modeled after Ruby on Rails. So if you remember back in the early 2000s, when Ruby on Rails came out, it was a complete mind change on how applications could be built. And that's why I got a huge following. And there was a lot of effort on the ColdFusion side to see if we could take that momentum that Rails had and bring that framework over to the ColdFusion side of the house..."
Show notes What is CFWheels? * Ruby on Rails for CF + MVC framework vs procedural or heaven forbit spaghetti code + Convention over configuration - Eg Views dir vs XML config + Built in structure / scaffolding * The CFWheels open source project has been around since 2005 * CFWheels is an open source CFML (ColdFusion Markup Language) framework inspired by Ruby on Rails that provides fast application development, a great organization system for your code, and is just plain fun to use. One of our biggest goals is for you to be able to get up and running with CFWheels quickly.
Why should you use CFWheels? * Types of CF Devs + Professional devs, CS trained, modern development patterns + Self learned developers, procedural devs * Easy onramp to Self learned devs to get MVC benefits without doing a CS degree first * While modern for CS type devs * Getting started materials + Using CommandBox can get a sample CFWheels app in 5 seconds
Moving from legacy CF frameworks * Fusebox, Model-Glue, Mach-2, F/W 1 * If MVC used then translates easily
New CFWheels dev team * Changing of the Guards at CFWheels * Peter frontman/evangelist and admin and structure + Been involved in CFWheels since near the beginning + Worked on the CFWheels CLI project + Worked with Rails books author to draft CFWheels book, which needed CLI + Uses CFWheels in work projects + Joined the core team * Tom King, David Belanger, Adam Chapman, Per Djurner focusing on coding CFWheels + Admin burnout, stepping back a bit
Major CFWheels features * Easy MVC + Industry established concept MVC + Easy MVC, no need OO expert compared to ColdBox - Or legacy CF frameworks ModelGlue, Mach2 * Conventions * Routing engine + Resource based RESTful routing engine for GET, POST, PUT, PATCH & DELETE * Databases + CFWheels uses ORM and Migrations. for database - Less CRUD and SQL coding - Automatically works if database structure changes - Or even database changes + Built in database migration system even across different DBMS * App Documentation + Automatic App Documentation using the built in doc viewer which grows with your application - From special comments. Similar idea to JavaDocs - Eg CFWheels API uses this - Local docs (offline work) * CFWheels API + Lets you call the atomic components of CFWheels separately + https://api.cfwheels.org/v2.4 * Hybrid Development - Switch in and out of Wheels conventions * Ecosystem * CFWheels plugins at ForgeBox + Add to the framework core + Overwrite core functionality to change behavior + https://www.forgebox.io/type/cfwheels-plugins + Eg bCrypt, JWT, SAML, dotEnvSettings shortcodes + CFWheels Fully Embraces ForgeBox Packages * Community + CFWheels has moved to GitHub Discussions. + https://github.com/cfwheels/cfwheels/discussions + Google discussions archived + The CFWheels Channel on CFML Slack Has Been Archived + the reasons for this move are to - Move our discussions closer to the code in GitHub, allowing the poster and respondent to more easily link to specific branches, files, and even lines of code. - Issues can be converted to discussions if they warrant further community input or discussions promoted to an issue once an issue or feature has had open consultation and next steps identified. - Discussions can be marked as answered and the specific answer identified for future reference. - All these discussions, collaborations, and consultations are searchable and discoverable by search engines so the community as a whole reaps the benefits. * CFWheels book + CFWheels Guides Moved to GitBook + Online, PDF + Future print book * Recent Activity in the CFWheels Project * 2022.03.24 - CFWheels CLI commands for CommandBox released * Wheels CLI + Uses CommandBox * 2022.03.29 - Announce Changing of the guards * 2022.03.29 - TodoMVC - CFWheels/HTMX example app released * 2022.03.30 - CFWheels Example App Package Released * 2022.04.25 - CFWheels Joins Open Source Collective * 2022.04.29 - CFWheels Embraces ForgeBox Packages (CFWheels, cfwheels-base-template) * 2022.05.03 - CFWheels 2.3.0-rc.1 Released * New CI Pipeline in GitHub Actions * Test Suite Matrix + Lucee 5 x MySQL, Lucee 5 x SQL Server, Lucee 5 x PostgreSQL, Lucee 5 x H2 + ACF 2016 x MySQL, ACF 2016 x SQL Server, ACF 2016 x PostgreSQL + ACF 2018 x MySQL, ACF 2018 x SQL Server, ACF 2018 x PostgreSQL * 2022.05.10 - CFWheels Guides moved to GitBook * 2022.05.11 - CFWheels 2.3.0 Released * 2022.05.16 - CFWheels Announces a Bug Bounty * 2022.05.27 - CFWheels has moved to GitHub Discussions * 2022.06.06 - CFWheels DotEnvSettings Plugin published * 2022.06.07 - Two new repositories published (cfwheels-www, cfwheels-api) * 2022.06.17 - CFWheels added to the HTMX server-side examples page * 2022.06.20 - CFWheels CLI matures to version 1.0 * 2022.06.20 - CFWheels HTMX plugin published * CFWheels HTMX Plugin * htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext * 2022.08.23 - CFWheels v2.4.0 Released * 2022.09.12 - CFWheels Channel on CFML Slack has been archived
Roadmap new features * Process + User suggestions + Draft roadmap coming for community discussion + Ideas from RoR versions 3 to 7 * Ideas for CFWheels 3.0 + Rails Gems → packages (vs Monolith framework) - On ForgeBox + Integrate testing with TestBox + Dependency Injection with WireBox + Testing on Lucee 6 and ACF 2023 - test suite * 10 different CF/db configurations and versions * 1400 automated tests per commit * Docker containers - Test apps + Optimize with FusionReactor and Code Coverage
How can listeners help with CFWheels * Play with it and report issues * Join the discussions at GitHub * Do pull requests for docs and code + And the CFWheels websites * Corporate Sponsor via Open Source Collective
Mentioned in this episode * CFWheels prior episode ____
Bio Boy time is unforgiving…
Peter has been a developer, consultant, and entrepreneur, and has held senior IT management roles for the last 30 plus years and is currently serving as CTO for PAI Industries, Inc. a privately held company specializing in aftermarket manufacturing and distribution of heavy duty truck parts. He has been using ColdFusion since version 1.5 and ran the Orange County chapter of the ColdFusion Users Group in Southern California in the late 90’s and early 2000’s. He joined MySpace in 2003 and was with the company till its sale to Fox. Although he was involved with the CFWheels project early on, he has recently returned to the project and taken over as the project's maintainer.
Links * Peter Amiri | LinkedIn * Thinking Out Loud - A blog by Peter Amiri * CFWheels Blog * Twitter + @peteramiri + @CFonWheels * GitHub Discussions * CF slack channel