>> GreenByte.info By Nick Tong (quiksilv) | Supported by: TalkWebSolutions.co.uk

Report: ColdSpring and Model-Glue Unity @ UKCFUG

Last night I went into London to watch Mark Drews presentation at the UKCFUG on ColdSpring and Model-Glue Unity.

Mark Drew will be demonstrating the Coldspring framework and how it works within the Model Glue framework, allowing your CFC's to be wired together using an Inversion of Control pattern.

Before we stated Mark said that his presentation was going to be quick... hand on, was he not about to start talking about coldsrping (CS) and MG? Surely CS was a massive topic in in itself let alone MGU. Well I think that was the best things I took away from the meeting. Actually they are very powerful frameworks but yet they aren't over complicated. Yes they can be very complicated if you wish to get into the bowels of the beasts but the great thing is you don't have, to get them up and running is not that hard. What we learnt was basic but it did show of the power of each framework.

So what is Coldspring?

ColdSpring is a framework for CFCs (ColdFusion Components). ColdSpring's core focus is to make the configuration and dependencies of your CFCs easier to manage. ColdSpring uses the "inversion-of-control" pattern to "wire" your CFCs together. Inversion-of-control provides many advantages over traditional approaches to assembling your application's model. Also part of ColdSpring is the first Aspect-Oriented-Programming (AOP) framework for CFCs. To read more about ColdSpring's functionality, head over to the Documentation section of this [coldspring] site.

[More]


Fusebox5 (b2) and Model-Glue:Unity (2) go into beta

Fusebox 5 and Mode-Glue:Unity have both gone into beta today meaning that some of us won't be sleeping over the next couple of weeks, thanks guys. But really Sean Corfield and Joe Rinehart have done a great job in getting these frameworks to there current state.

Fusebox 5 beta 2

Here are some of the changes in the latest release:

#10 development modes are still slow My tests show compile times are around 2x faster in Beta 2 than in Beta 1.

#29 Uncatchable exceptions? Now Fusebox 4.1 compatible :)

#32 Remove profiling code Removed some stuff I added for debugging issue #10.

#41 Strict Mode Performs additional XML validation and flags deprecated features as errors.

#42 Trap recursive Prevents infinite loops.

#43 overloadedFuseaction not detected Now throws this exception, just like Fusebox 4.1.

#45 FUSEBOX_APPLICATION_KEY should not be read from URL scope Scope-qualified this to prevent potential DoS attacks.

#46 Initializing attributes struct error Scope-qualified this to prevent potential DoS attacks.

#49 interacts badly with plugins Plugin execution is now suppressed for .

#50 value attribute of tag Documentation bug!

#52 < include> via circuit requires circuit.xml file Added allowImplicitCircuits parameter (which allows empty circuit.xml files to be omitted).

#53 Adding original #cfcatch.detail# to inside of blocks Improved exception reporting.

#55 tag not validated Improved validation!

#56 Create Beta 2 Set version to 5.0.0.B.2.0 and created a tag in SVN.

#57 Not all exceptions are trapped by errortemplates Added some more errortemplates in the skeleton.

#58 s for #59 s for (duplicate of #58) Allowed verbs inside (to match ).

#60 Development mode not thread safe (but development-no-load mode is!) Improved thread safety somewhat but declared development-circuit- load to be the "right" choice for thread safety.

#62 precedenceFormOrUrl parameter not used Fusebox 4.1 compatibility edge case.

#63 characterEncoding parameter ignored by fuseboxWriter.cfc Fusebox 4.1 compatibility restored!

#64 should allow value to be omitted value= attribute is now optional.

#65 Flatten inheritance tree Refactored code to remove various base classes (improves performance).

#66 Refactor handling of fuseboxLexicon Reduced code duplication after fixing #65.

#67 Refactor base do verb Renamed class.

#68 Provide debugging / tracing option Outputs basic timed execution trace (like Mach II and Model-Glue).

#70 is accepted Invalid tags are now detected as errors.

#71 Whitespace at start of output Removed the two spurious blank lines.

#72 Execution modes are poorly named Now development-full-load, development-circuit-load.

Model-Glue:Unity beta

Check out the latest changes to this framework here Check out the download below to get the MGU docs offline.

As I start working through the frameworks I'll try and draw some conclusions and let you know what I think.


Model Glue and Reactor Quick Start - over 100 downloads

I would just like to say that I have registered over 100 downloads of my model-glue and Reactor quick start. I've only had one comment made thus far, I'm not sure if that's a good thing or a bad thing, but thanks for giving it a try. If you do have comments please let me know.

I've also had 86 downloads of MGR Lite.

For what it's worth I copied the download link to WapURL.co.uk and used that link on this site, this then tracked the downloads for me - saved me having to create a download script.


Model-Glue and Reactor (MGR) – quick start

Not sure if anyone has coined MGR all ready but hey. So before 'Unity' comes out I thought I would create a 'quick start' for 2 of the frameworks which will be in it, model-glue and reactor.

What’s the purpose of it?
It’s a quick start, if you want to start with MGR or have vast experience with it, MGR-QS will get you up and running ASAP.

There are instructions included with the file, simple follow them and away you go. Feel back I very welcome, I kinda a newbie.

You can download the quick-start from the menu on the left.

cfFrameworks.com survey results. What coldfusion frameworks are used?

So last week cfFrameworks.com started a survey of frameworks used in the CF community and today I’m publishing the results.

Here goes:

74% use or people who took the test used frameworks

73% liked using frameworks

73% think it speeds up production, but some interesting quote where that this is only the case once you have learnt the framework – a fair point.

These results exclude 12% of people taking the survey due to them not wanting there results published.

And the framesworks used can be seen by clicking here or the download link below.

Some comments made:

Frameworks serve many different purposes - there is no 'apples to apples' comparison. I think the "web" or "controller" frameworks (Model-Glue, Mach-II, FB) are over-emphasized by the CF community. In MVC apps, the C should be the least important piece of your application, and they are irrelevant if you are doing something with a rich client or strictly back-end. I'm not saying don't use them, but you should know that which one you choose should be relatively low on the scale of architectural concerns.

Frameworks help to develop understandable code, so that a team of developers can work together, even if they don't know each other in person. And years after starting a project you can simply add new features without needing to develop from ground up.

I think the idea of frameworks making the maintenance of applications easier, while true, is a hard sell. It is hard for people to wrap their head around "maintenance" while they are trying to find the easiest/least expensive way to develop their app. I think it would be better to promote the idea of an oop framework allowing for changes and expansion of an application easier and much less of a headache. I am currently working on an application which has grown quite large and is in need of some significant changes...new database for example. If I had used a true oop framework to develop it, it might be easier to make large sweeping changes. Additionally, it is important to note, there is a place for procedural application design. It tends to be much more straight forward and much quicker to write. I am using a framework called PLUM which is essentially a procedural framework. I could not have done it as quickly (or considering this is actually my first development attempt, at all) with out plum. Plum is a framework built on custom tags and cfc's, but not necessarily MVC. Check it out at www.productivityenhancement.com Mark Fuqua

They need more documentation for newbie users like tutorials, tips and tricks and so on.

Frameworks are highly useful in certain situations. On the other hand, they can also be limiters in what you are able to accomplish within the framework.

Many frameworks are too much about philosophy and too little about design, programming and presentation.

Any method the separates data from logic from design is critical to solid web development no matter the size of the site.

Frameworks can be useful but they're not an end to themselves. My biggest peeve with current frameworks is using xml for configuration. Nothing wrong with xml but it's imho not a proper use. Use Rails as an example. Saw one recent example where the guy used three xml files to configure the program, one for model glue, one for cold spring and another for reactor. If three are good, why not five or six? I am not knocking any of those programs but to me asking developers to get their head around three different xml configurations is lunacy. Programmers as a group love complexity and I will include myself in that group. But to me complex code should be to hide the details so a framework is both simple yet powerful, that's an achievement. If we are to grow the CF community the framework architects need to keep that in mind.

Frameworks are great. They provide a common ground for a group of developers. I got hired because I knew CF, FB3, and SQL Server 2k, so, they knew I could jump right into the team.

Fusebox Rulz! Seriously though FuseBox + MVC allows for easy to teach, rapid to modify, code development.

Frameworks can be good. The biggest issue I have with frameworks is that a (new to CF) developer has to learn coldfusion and the framework. An experience CF developer can and will benefit from an established framework.

They only work if you understand them and plan things VERY VERY WELL.

Previous Question: Do I think frameworks speed up production? I answered "no", but this is only for initial production of an App. On going matinee of an app, Yes, it speeds it up by (if you know the Frame work's way of working) 1. Adding features to the application 2. Isolating and debugging 3. Handing development to other people

Umm, they're nice?

Don't leave home without one

re: question 6. I wouldn't say frameworks specifically speed up production, but a good framework can help enforce sensible/logical separations, which help to reduce production/maintenance time, and make applications easy to understand. (However frameworks can also be overly confusing; a framework being good/bad depends on how well it fits with the way someone's mind works.)

Need to be trimmed down, tend to be overly complicated for simple things. I have a customized version of fusebox that is much simpler (granted it is not as flexible, but I do not need that flexibility), it follows the core of what fusebox is, but lacks a lot of the fusebox code that newer version have.

Frameworks are a huge benefit in a multi developer environment to help all developers work under the same type of approach and to keep people from stepping on each others' toes.

They support multiple developers working on a project and make the code easier to maintain.

some of these frameworks are too complex for the own good

everyone who does cf should use a framework or methodology, it helps me be better coders and speeds up production

I am holding out for a better framework

Mach II baffles the s*** out of me

Frameworks help up shape up the structure of the application. In many ways, it’s similar to the railings along the long winding staircase of application development. Without the railings, there is always the danger of falling down, especially as the complexity of the application grows.

London CFUG: Mark Drew on Model-Glue and Reactor

A broad overview:

So tonight I went to see Mark Drew do his presentation on Model-Glue and Reactor. 

FYI: Mark used some software called snapz pro to capture the presentation; I think it will be on his blog soon... 

I think it was a brave thing to do, present two frameworks to a group of people who potentially had no experience with frameworks.  This aside he showed us how easy it is to get them both running and how to integrate the two frameworks together. 

One of the great things about frameworks is that if you’re not entirely sure what options are available to you, you can just dump the method objects and avowal a it lists the framework objects. 

One of the great things about reactor is that it writes most of your 'standard' sql and DB integration methods, and the ones it doesn't write you just add the the component that it creates for you, how sweet is that: Nice work Dough

Through using the dump feature mentioned above Mark created what he called a 'form utility' tag that used reactors metadata method to inspect the DB and create a form from that metadata on the fly.  I hope Mark can post this tag soon to elevate some of the pane from creating forms... 

Overall I think that if you've not looked at MG or Reactor then it's a must; I can’t believe that once understood, project developed will increase greatly.

So what is Model-Glue

Model Glue is a MVC (Model - View - Controller) based framework for ColdFusion applications. It provides a way to easily link your presentation layer (view) to your model layer by the use of controllers. Model Glue provides configuration and powerful control over over this "gluing" of your layers through XML files. Working along side it is the Reactor framework, a "Inline Dynamic Data Abstraction" API, which allows you to very quickly and easily access your database model without the need to write SQL or configure Data Access Objects.

Next thing... Method injection with Coldspring... HELP!!

Update:  Andy Jarret has a more indepth artical here

Framework MATRIX update

So last week I posted about developing a framework matrix to help people choice which framework would be appropriate to a particular project/client.  I’ve have some very great feed back so many thanks for that.  I’ve decided to move forward with the development but in true development form I thought that I would try some new frameworks to develop it in.  Although I understand the principle of a few frameworks I’ve not developed in many of them so I’m going to build this marking matrix in reactor and modelglue.  The reason I’m telling you this is it might take me longer than normal to get the work out.  I’ll keep you posted as I go.

Framework MATRIX - which one to use?

As we all know quite often clients/projects require a verity of approaches to archive the end objective.  So here’s my idea.  What if a user can answer a list of questions and get presented with a chart showing them which frameworks would best fit there project, i.e.

User interface

(note: click on images to make them larger - these are just examples, it may very well change.)

Sound like a good idea?  Here’s where I need your help.  First of all we need a list of questions that we should ask the end user (please post them in comments here or email me).

What we then need to do is build a marking matrix.   Keeping things simple for my little brain I think we should mark each framework against each question (yes/no) and sum the totals at the end. 
As there are vast numbers of frameworks popping up I need users/experts to rate frameworks against these questions i.e.:

Expert Interface

Once I have this information I can create the system to allow the users to answer the questions; we can present them with a screen like this (once answers are complete).   Its then up to them to decide which one they want to use, but this should help.

End result

To summarise how I need your help:

  • Please post any questions that you think I should ask.  (As part of the question process it would be great to give the user some information/guidance regarding the question (in hint format).  If you have time please add a short hint for the question)
  • Once all questions have been entered I will build the marking matrix; it would be great if you could complete this.

Any thoughts and suggestion would be MORE than welcome.

NB: Please excuse me if I’ve not used your frameworks in these examples:

CF Frameworks news

Joe Rinehart has released Model-Glue 1.1.  It’s worth a look and check out what he’s saying about Model-Glue 2.0 which he calls "Unity". I read from Sean Corfields site that Joe quotes around 10,000 downloads – is it just me or is that something special.  With both MG and Fusebox heading towards new times it’s a great time to get involved.  Talking of Fusebox - version 5 beta is coming soon, check out Seans post.

a web developers cheat sheet list

Here is a list of some great cheat sheets. Last updated 15/04/2007.

If you know of any please add them to the comments below. Lets help each other out.

Web Dev Cheat Sheets

Databases / SQL Cheat Sheets

Language Cheat Sheets

Javascript

Version Control Cheat Sheets

Framework Cheat Sheets

Other cheetsheets

Commercially Printed CheatSheets

Apollo

Please do add more to the comments and I will update... need to get more cheat sheets for frameworks!

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.5.1.