Re: Framework choices
This blog post and particularly the quote may go some way to help you decide http://www.socialpoints.com/blog/client/index.cfm/2006/7/9/CF-framework-fireworks On 10/24/06, Peter Minter [EMAIL PROTECTED] wrote: Hello All, My company and I are moving a large enterprise level application from a largely convention-less set of code from many developers to one that is easier to scale up. The goal of scaling is to add other applications that use much of the same code base on the same server so that if changes need to be made across all the application they can be made in one place. Frameworks seem like a logical choice here. But I am not sure which of the major three are appropriate if any. Any advice The Style of code re-use that I am looking for seems to be absent from the documentation code re-use seems to be limited to single application or copying the code out to multiple applications and maintaing it separatly which would not be an acceptable solution. OO-programming shouldn't be that big of a deal for developpers here to pick up, most of us are Java trained. I am looking to be pointed inthe right direction for information or sample sites(with code) for Mach-II,Model-Glue and Fusebox (tutorials also welcome). As far as ORM is concerned the site has a largely well structed set of storedprocedures in the backend rather than just simple tables are any of the ORM tools (Reactor,ObjectBreeze,Transfer) able to handle stored procedures. Or is it the case that since we already have this structure I am stuck writing the DataAccess layer from scratch. Are there any ORM's whose Gateways do not return queries but Arrays of objects so that the view isn't tied directly to the data layer? Seems like separation of concerns is largely undermined when form fields must have the same name as column names fro mthe db in order for autowireups to work. I realize this is a huge post any help would be awesome though. Cheers, Peter ~| Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting, up-to-date ColdFusion information by your peers, delivered to your door four times a year. http://www.fusionauthority.com/quarterly Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:257901 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Framework choices
Thank you but, It doesn't really help as the questions were somewhat more specific then whether the frameworks are best for OO or not. I was specifically wondering if ANY of the frameworks support code re-use in the form that I mentioned in the orginal post. i.e. can I write the model and views for one system and keep them in one location accessile to several applications that mayuse parts or all of it's functionality. ALso not mentioned in my original post but occurring to me here is that the site is largely dynamic in that the same code needs to serve different content for different sites that use the same backend. All the dynamic information for the content are retreived from a database through stored procedures. So these procedures would need to be executed on all pages with dirreent arguments. Anoter point worth noting is that there are several templates used in the system. Differnt templates are chosen based onthe member. Is there any framework that would more easily support this . All the points mentioned above seem impossible to implement in Model-Glue (without destroying the performance of the site). IF this is not the case can someone set me straight? Otherwise could someone recommend another framework. Or better yet give me the difinitive that I need to be rolling my own. ~| Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting, up-to-date ColdFusion information by your peers, delivered to your door four times a year. http://www.fusionauthority.com/quarterly Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:257915 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Framework choices
You're always going to roll some of your own framework for all by the simplest sites. The trick is to roll as little of your own as possible. I've found Fusebox to be very flexible, and use it on most of my projects. If you need a full-app framework for a simple app, it'll work, but if you just need a really lightweight request processing framework, it'll get the job done as well. All of the major frameworks will allow you to reuse the model in multiple applications, even from apps with different frameworks. You'll need a bit of glue code in some cases (e.g., a M-G controller implementation to interface between broadcast events and service method invocations). Reusing views is a bit nastier, as M-G uses a data bus (the view state) to pass data to the views, so if you want to use a M-G view in a FB app, for example, you'll have to synthesize the view state object. Fusebox is going to be your best bet for dynamically selecting a templated at runtime. I don't believe M-G or M-II support dynamic view templates, but you can probably fake it in either one. Fusebox just uses something very close to a CFINCLUDE tag, so you can pass a dynamic template attribute value. I might sound biased (and I am), but it's not because I'm a zealot. I've used Fusebox for a lot of years now, in various incarnations, and while it's not everything M-II or M-G are, it's very flexible, so you can use it for a wide array of different applications. The downside is that you'll likely have to build some of your own framework code for complex applications, but unless the needs are exactly what M-II or M-G provides out of the box, chances are good that starting from ground level will be easier and better than trying to customize the framework to your specific application. cheers, barneyb On 10/24/06, Peter Minter [EMAIL PROTECTED] wrote: Thank you but, It doesn't really help as the questions were somewhat more specific then whether the frameworks are best for OO or not. I was specifically wondering if ANY of the frameworks support code re-use in the form that I mentioned in the orginal post. i.e. can I write the model and views for one system and keep them in one location accessile to several applications that mayuse parts or all of it's functionality. ALso not mentioned in my original post but occurring to me here is that the site is largely dynamic in that the same code needs to serve different content for different sites that use the same backend. All the dynamic information for the content are retreived from a database through stored procedures. So these procedures would need to be executed on all pages with dirreent arguments. Anoter point worth noting is that there are several templates used in the system. Differnt templates are chosen based onthe member. Is there any framework that would more easily support this . All the points mentioned above seem impossible to implement in Model-Glue (without destroying the performance of the site). IF this is not the case can someone set me straight? Otherwise could someone recommend another framework. Or better yet give me the difinitive that I need to be rolling my own. -- Barney Boisvert [EMAIL PROTECTED] 360.319.6145 http://www.barneyb.com/ Got Gmail? I have 100 invites. ~| Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting, up-to-date ColdFusion information by your peers, delivered to your door four times a year. http://www.fusionauthority.com/quarterly Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:257916 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
RE: Framework choices
I was specifically wondering if ANY of the frameworks support code re-use in the form that I mentioned in the orginal post. i.e. can I write the model and views for one system and keep them in one location accessile to several applications that mayuse parts or all of it's functionality. IMO it's always a good idea to keep your model separated from the framework you choose to use. I use Mach-II for most of my development (so I am a bit biased). When designing an application, I create my model completely detached from the framework. Once the model is built I then create the event listeners that draw upon my model. This allows me to use the model in different applications if necessary, as well as it keeps my model framework agnostic. In mach-ii you can create layered views, which will allow you to create component-like views. This allows me to reuse certain view portions around the application. This depends heavily on how you design your views. Also not mentioned in my original post but occurring to me here is that the site is largely dynamic in that the same code needs to serve different content for different sites that use the same backend. All the dynamic information for the content are retreived from a database through stored procedures. So these procedures would need to be executed on all pages with dirreent arguments. Is each 'site' all part of one application? It seems as though you could have the listener determine which arguments to pass to your stored procedure depending on parameters passed in an event object. All the points mentioned above seem impossible to implement in Model-Glue (without destroying the performance of the site). IF this is not the case can someone set me straight? Otherwise could someone recommend another framework. Or better yet give me the difinitive that I need to be rolling my own. I've only worked with MG to a small degree, but from my experiments many of the core concepts are the same between MG and MII so most (if not all) of what you are attempting should be possible. HTH, Rich Kroll ~| Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting, up-to-date ColdFusion information by your peers, delivered to your door four times a year. http://www.fusionauthority.com/quarterly Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:257918 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Framework choices
I like to use a combination of FuseBox for procedural flow and CFC's for CRUD operations. When you talk about code re-use, to me that is framework independent...CFC's are a great way to accomplish that no matter what framework you're using. I haven't tried MG but folks on the list seem to like it. -- Josh - Original Message - From: Richard Kroll [EMAIL PROTECTED] To: CF-Talk cf-talk@houseoffusion.com Sent: Tuesday, October 24, 2006 2:41 PM Subject: RE: Framework choices I was specifically wondering if ANY of the frameworks support code re-use in the form that I mentioned in the orginal post. i.e. can I write the model and views for one system and keep them in one location accessile to several applications that mayuse parts or all of it's functionality. IMO it's always a good idea to keep your model separated from the framework you choose to use. I use Mach-II for most of my development (so I am a bit biased). When designing an application, I create my model completely detached from the framework. Once the model is built I then create the event listeners that draw upon my model. This allows me to use the model in different applications if necessary, as well as it keeps my model framework agnostic. In mach-ii you can create layered views, which will allow you to create component-like views. This allows me to reuse certain view portions around the application. This depends heavily on how you design your views. Also not mentioned in my original post but occurring to me here is that the site is largely dynamic in that the same code needs to serve different content for different sites that use the same backend. All the dynamic information for the content are retreived from a database through stored procedures. So these procedures would need to be executed on all pages with dirreent arguments. Is each 'site' all part of one application? It seems as though you could have the listener determine which arguments to pass to your stored procedure depending on parameters passed in an event object. All the points mentioned above seem impossible to implement in Model-Glue (without destroying the performance of the site). IF this is not the case can someone set me straight? Otherwise could someone recommend another framework. Or better yet give me the difinitive that I need to be rolling my own. I've only worked with MG to a small degree, but from my experiments many of the core concepts are the same between MG and MII so most (if not all) of what you are attempting should be possible. HTH, Rich Kroll ~| Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting, up-to-date ColdFusion information by your peers, delivered to your door four times a year. http://www.fusionauthority.com/quarterly Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:257920 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Framework choices
I've been doing just what you're talking about. Home grown app, might as well have been several different developers, even though it was all just me... anywhaze... What I had before was basically a mapped path that contained all my CFCs/functions, and I'd access that from the various sites. I see what you mean, it seems (at first) like MG (dunno, but I guess FB and MII are similar) is geared for a single app; and at least for me, I needed more of a multi-app approach. Like, to hell with even copying a model from project to project, or whatever. Bad enough using config files (I'm more of a set everything you need when you call it vs. have a different config for each place you use it type-o guy), although, I am sorta getting ColdSpring, so... well, it's all about the config files, I reckon. Anyways, I've found that even with Model Glue, it's actually quite easy to set things up so you only have one place to go to make improvements to many places. I've settled on actionpacks... now, I've got views in my actionpacks, which is a no-no, I reckon, from a purist point of view. But I'm not 100% sold on the whole MVC idea, even, so I say screw it. I'll let you (or, this list, over time, probably) know how it goes... the actionpack that I'm working on now is a people actionpack. I've got people in almost every one of my apps, and most of the info is the same... so I figured I'd start there. In each of my apps, I now have a single line that adds all the people functions I normally use... it's pretty awesome, actually... (my learning, more so than adding functionality with a single line ;) There are also mixins, which I've only mentally explored, and that on the surface. I'll probably start using them to accomplish some of the things you're asking about... And then there's the low-tech, pretty freaking awesome as well solution to many copies of the same thing: svn:externals. They are similar to sym links, sorta. CVS has something akin, I guess, probably others... you ARE using some form of source versioning, right? That's a must, no matter what framework you run with. But long and short, I think they'll all do what you seem to be wanting... ORMs and stored procedures, well, I'm not sure how useful that combination is... I mean, a stored procedure is already sorta code-ish, vs. SQL-ish, I reckon. But I'm just a dude wandering 'round this vast world of options... the more I know, the less I know... like heroes... every answer, is another question... or something like that. Yeah. Anyone want to chime in about stored procedures and reactor? If I end up using it in one of my projects that uses them, I'll holler, if I remember, and let everyone know how it goes... now back to my not-really-an-action-pack actionpack... =] On 10/24/06, Peter Minter [EMAIL PROTECTED] wrote: Hello All, My company and I are moving a large enterprise level application from a largely ~| Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting, up-to-date ColdFusion information by your peers, delivered to your door four times a year. http://www.fusionauthority.com/quarterly Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:257959 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4