Hello All,
My introduction to OOP in CF is a rewrite of a CF5 application generator in
CFMX 7. I have a pretty good domain object model but am having trouble
finding best practices for the UI.
All of the controller (index.cfm) and model (various cfc's with a simple
façade abstracting the
Hello All,
I'm sure this must be an easy one, but I'm a little stumped.
I have a rules engine that allows non-technical admins to create rules for
things like what page template to use for a given page request. The rules
support nesting and precedence with an if/then/else construction. They are
on pages with lots of content blocks.
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Peter Bell
Sent: Thursday, January 19, 2006 6:38 AM
To: CFCDev@cfczone.org
Subject: [CFCDev] Creating User Controls - cfc or tag?
Hello All,
My introduction to OOP in CF
End user uses a web based admin to generate business rules (Simple if
variable operator variable/static then action else action endif with
support for nesting and precedence). They also get a rebuild button which
takes the individual elements (variable, operator, action, etc.) and
concatenates
to make it quite
performant, especially on pages with lots of content blocks.
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Peter Bell
Sent: Thursday, January 19, 2006 6:38 AM
To: CFCDev@cfczone.org
Subject: [CFCDev] Creating User Controls - cfc or tag
] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
Sent: Thursday, January 19, 2006 12:07 PM
To: CFCDev@cfczone.org
Subject: RE: [CFCDev] Creating User Controls - cfc or tag?
How do you find performance? My first app gen dynamically generated forms
from scratch. For each field it would take all
is then included during a page
visit
Is that correct?Are you looking to replace step 2 or step 3
(or both) with an OOP approach?
On 1/19/06, Peter
Bell [EMAIL PROTECTED]
wrote:
End
user uses a web based admin to generate business rules (Simple
"ifvariable o
so it
could be promising. It supports jumping around between steps. Not sure
incomplete transactions are handled.
FarCry: http://farcry.daemon.com.au/
/Cody
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
Sent: Thursday, January 19, 2006 10:52
's session to the objects that enforce the rules.
Am I getting closer?
On 1/19/06, Peter
Bell [EMAIL PROTECTED]
wrote:
Not quite.
We have a rules
builder.
- Users use a form which
allows them to select from a list of globally availab
lp at all? There may be better ways, perhaps someone
wiser than I will chime in.
On 1/19/06, Peter
Bell [EMAIL PROTECTED]
wrote:
Hi
Seth,
That is exactly it. If I
have a RULE for selecting a TEMPLATE that may need information about the
USER, PAGE and possib
text and then have the context act as a facade to
them. That way you expose a single, consistent interface that your
template objects can code against without breaking encapsulation.
Does that help at all? There may be better ways, perhaps someone
wiser than I will chime in.
Hello All,
Still trying to get my head around best UI practices in CFMX. Responses to
date seem equally split between using UI cfc's and preferring custom tags.
Here's a question that maybe someone on the custom tag side should speak
to.
Lets say I need an HTML UI comprising of a form, and the
Title: Message
Hi
Nando,
See
what I've just posted. WHY can't you get round that? Why can't you have the
following:
SCREEN
TEMPLATE
br
/
Here
are the products in this category:br /
%Widget name="default_category_product_list%
a
href=""Back/a
/SCREEN TEMPLATE
At design time I parse
pects the object's private data
members and creates a default XML schema. You would then override this
implementation with a specific one on the objects that require it)
Hope that helps a bit... if I totally
misunderstood you let me know and I'll try again :)
On 1/20/06, P
Title: Message
Hello
All,
Does
anyone have any kind of information on the relative expense (processing wise) of
different operations? For example, assuming a user object has been instantiated,
how much more processing does it take to getUserFirstName() (assuming it is just
a "return
I have a neta data driven application generator which I am currently porting
from CF5 to CFMX7, so I'm considering similar issues. I think you need to
consider two things: performance and DRY (don't repeat yourself).
Is the meta data going to be anywhere else? You only want to store and given
And the only thing I'd add to that is that there are really well established
patterns for Object-Relational Mapping between the two models, so it usually
makes sense to start with an object model (assuming you're coding using OOP
principles) and then follow the heuristics for mapping inheritance
Title: Message
Hi
There,
Sorry for such a
basic question, but if I want to create a page request specificobject in
onRequestStart (in application.cfc) which will contain a bunch of properties I
need access to whether I'm using a browser or flash remoting to access the
application, how do
and working.
Apologies for the noob
noise.
Best Wishes,Peter
-Original Message-From: Peter Bell
[mailto:[EMAIL PROTECTED] Sent: Sunday, February 26, 2006
5:13 PMTo: 'CFCDev@cfczone.org'Subject: Simple Scoping
Question
Hi
There,
Sorry for such a
basic question, but if I want to create
Title: Message
Hi
There,
I know it's a best
practice to not use "evaluate" (for performance purposes) so was wondering
ifanyone had any ideas on removing it from this
situation.
- I have a set of
page objects in application scope with various properties and
methods.
- Each page
Title: Message
David
and Blair,
Many
thanks - works perfectly. So embarassing to know programming but not
syntax!
Best
Wishes,
Peter
-Original Message-From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
David HarrisSent: Sunday, February 26, 2006 6:39
Title: Message
How
about this:
!--- define a local scope ---
cfset var local = structnew()
cfset local.tmpVar="a,b,c,d"cfloop
list="#local.tmpVar#" index="i" cfset
"local.#i#" = ""//cfloop
Best
Wishes,
Peter
-Original Message-From:
[EMAIL PROTECTED] [mailto:[EMAIL
Title: Message
Single object (e.g.
product) use the business entity object - e.g. product
Editing single
object - product.Save() method
Deleting single
object - product.Delete() method
What object should
return a filter list of products?
What object should
return anID list of products?
Title: Message
A slightly different
angle on a very old debate. I think we all agree that getters allow for abstracting
the process of returning a value. Today getProperty just returns the value,
tomorrow it might do a transformation or calculation, so using the getter stops
that from
Title: Message
Hello
Chris and Jason,
Many
thanks for the great feedback. I'm going to start off with DAO only as one of my
design requirements is to support n-persistence methods and I'm in no rush to
create 2xn methods to support that! If anyone else has any compelling reasons
for
Title: Message
Hi
There,
So, I have a page
class that I lazy load to minimize initial application load time for large
sites. However, for performance purposes, I store each page object once it has
been created using the application scope (I don't have so many instances of the
page class
to perform the tranformation. if you only need the data
transformed at display time, just use the recordset iterator and perform the
operation at that point.
-Original Message-
From: Peter Bell[EMAIL PROTECTED]
Sent: 2/27/06 11:06:29 AM
To: CFCDev@cfczone.orgCFCDev@cfczone.org
Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
Sent: Monday, February 27, 2006 11:07 PM
To: CFCDev@cfczone.org
Subject: RE: SPAM-LOW: RE: [CFCDev] Where use getters (not setters -
different discussion)?
Right, but my point is that we then have two options
learned from others here and it has worked
well for me.
-Original Message-
*From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
*On Behalf Of *Peter Bell
*Sent:* Monday, February 27, 2006 7:58 PM
*To:* CFCDev@cfczone.org
*Subject:* [CFCDev] Lazy Load - any
tomorrow when my brain is less foggy,
but this is the method I learned from others here and it has worked
well for me.
-Original Message-
*From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
*On Behalf Of *Peter Bell
*Sent:* Monday, February 27, 2006 7:58 PM
is in PageSingleton. I
can post a clearer code example tomorrow when my brain is less foggy,
but this is the method I learned from others here and it has worked
well for me.
-Original Message-
*From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
*On Behalf Of *Peter Bell
*Sent
Title: Message
OK, I have learnt a
concept and can't find a definitive agreement on the rioght words to use (try
googling and you'll find the same variations). What is the definitive language
for the following concepts:
Objectscan
bebuilt up from other objects (as opposed to inheriting
Title: Message
Hello
All,
Just want to make
sure that after reading all the books, I'm actually doing something sensible
with my code . . . .
Lets say I have an
entity (in this case "Page"). I have the Page class, PageDAO
forabstracting persistence and PageService for wrapping all
Title: Message
After a lot of
playing around, I'm really starting to like the practical nature of using
queries as a data transfer mechanism for simple displayable objects where you
need to display 1..n objects and where you do NOT need to display any ..n
aggregates or compositions (it gets
Title: Message
Hello
Roland,
Interesting. Make that very interesting. Make that "great
idea"!
Assuming Person is in person table and Dependent is in dependent table
(with different properties), I guess to get the right query data you'd just
join where PersonID = DependentPersonID so you'd
Title: Message
Good
catch! Thanks.
Best
Wishes,Peter
-Original Message-From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
Will TomlinsonSent: Saturday, March 04, 2006 9:47
PMTo: CFCDev@cfczone.orgSubject: Re: [CFCDev] Queries
vs. beans for displayable
Title: Message
I can see that
sometimes you could have a class with valid instance specific methods that could
also have certain methods that do not depend on the value of the attributes of a
given instance. I'm guessing I'd probably just end up sticking them into an
instanceService or
Title: Message
A previous
discussion pointed out a great series of posts relating do anemic domain
models:
http://theserverside.com/news/thread.tss?thread_id=38047
as well as Martin
Fowlers original anti pattern:
http://www.martinfowler.com/bliki/AnemicDomainModel.html
The problem I'm
Title: Message
And my
best answer to my own question?
Ask
the question for each piece of behavior: does it relate to object or
entity/class. If it has the possibility of relating to n-objects where n could
be a large number, put the method into some kind of stateless session
bean/service
Title: Message
I thought it might
be nice to have a list of valid method names when initiating an object so I'd be
able to make sure I didn't try to run a method (perhaps based on user input)
that was inappropriate. Of course, I could use try/catch but that wouldn't
distinguish between
Title: Message
Hi
Jim,
Many
thanks - great resource! I went through cacheDPMetaData() and the called
setDPMetaData() and also had a look at the rest of the methods (including dump()
and dumpThis() - simple but useful!). I found how it provided the name, path,
display name and properties.
as familiar with architecture, design patterns
and OOP. I will use OO samples, but the techniques will be appropriate even for
procedural programming.
Best
Wishes,Peter Bell
SystemsForge
-Original Message-From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
I haven't seen anyone comment on the dev and live components. This is what
factories are for - so you can abstract implementation details like paths
from your calling templates. I rteally haven't played with it, but a
dependency injection engine like ColdSpring should allow you to do this kind
of
for thecf.objective()
crowd,and it'll be accessible to people who aren't as familiar
with architecture, design patterns and OOP. I will use OO samples, but the
techniques will be appropriate even for procedural
programming.
Best
Wishes,Peter Bell
SystemsForge
Title: Message
Hi
Nando,
If
there was a worldwide fan, we'd do our best to make a recording!!! Seriously, I
doubt my talk will be memorialized unless it's something Judith does for every
single speaker. However, I'll go one better and next week I'll start to blog and
(if appropriate)
/17/06, Peter
Bell [EMAIL PROTECTED]
wrote:
Hi
Nando,
If there was a worldwide
fan, we'd do our best to make a recording!!! Seriously, I doubt my talk will
be memorialized unless it's something Judith does for every single speaker.
However, I'll go one
Right. As Haikal points out, the value of interfaces (and strong typing for
that matter) is that it forces programmers to write more completely
self-describing code. If you HAVE to specify an interface, it is easier for
other programmers to understand what methods a class can implement.
Mixins
: [CFCDev] Mixins vs. Interfaces
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
The fact is that components only take you so far for reuse anyway. Even
if you use strong typing and interfaces, components don't specify how
errors are handled
PM
To: CFCDev@cfczone.org
Subject: SPAM-LOW: RE: SPAM-LOW: Re: [CFCDev] Mixins vs. Interfaces
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
But how do you fully describe all of the possible errors and the
difference between warnings
Interfaces soon.
Anyway, back to the original reason for this thread :)
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
Sent: Thursday, April 06, 2006 6:05 PM
To: CFCDev@cfczone.org
Subject: RE: SPAM-LOW: RE: SPAM-LOW: Re: [CFCDev] Mixins vs
Title: Message
Hi
Jeff,
Personally, I look at the controller as a facade to the business model,
simplifying the steps required to perform useful page
actions.
Lets
say you have a cart page which has an add to cart method. I'd create a cart
controller/facade (cart.cfc). I'd also make it
Title: Message
Two of the biggest
benefits of OO design are maintainability (code that is easy to update) and
reusbaility (components that are easy to reuse). Many OO design choices help
both, but in most companies, one is more important than the other. If you're a
job shop churning out 5
-Original Message-From: Peter Bell
[mailto:[EMAIL PROTECTED] Sent: Tuesday, May 30, 2006
10:46 AMTo: 'CFCDev@cfczone.org'Subject: Maintainability
vs. reusability?
Two of the biggest
benefits of OO design are maintainability (code that is easy to update) and
reusbaility (components
http://www.BryantWebConsulting.com/
http://steve.coldfusionjournal.com/
At 09:45 AM 5/30/2006, Peter Bell wrote:
Two of the biggest benefits of OO design are maintainability (code
that is easy to update) and reusbaility (components that are easy to
reuse). Many OO design choices help both
Title: Message
Hi
Tom,
Brian
Rindaldi just brought that up offline. I think Reactor is great, but with recent
possible memory leaks Doug has been troubleshooting, I can't afford to base
everything on top of that today. I also have a bunch of ORM code I wrote for my
procedural generator
can tell).
On 5/30/06, Peter Bell [EMAIL PROTECTED] wrote:
An update. Any thoughts on using single DAO as per:
http://www-128.ibm.com/developerworks/java/library/j-genericdao.html
Also, in general terms don't people find they're copying a lot of code
with entity specific services? Don't
I agree that you can't optimize code by minimizing the number of characters.
I still remember getting only above average marks in college for a nice,
clean, well written piece of C to solve a problem in 50 well commented
lines. I was beaten by a guy that wrote an extremely terse single line
Title: Message
Funny,
I was just looking at those again today! I think the problem was the same as
with a lot of generic CRUD frameworks. You need to have enough extensibility
mechanisms to cover enough edge cases to make the approach worthwhile and when
you do that you have to do it really
Hi Barry,
I don't think there is anything wrong with a collection at all. It may be a
(fairly trivially) amount of extra work to populate if you're populating
from a database, but as long as you've got a reason not to use a query or
some kind of bean then go right ahead.
The OO purists will
Hi Jason,
Just skimmed this, and I have no real FB experience, but one possible
solution might to have a base validation.cfc in a shared directory and to
have project specific validation.cfc's that extend the base validation.cfc
so you only have to put any project specific code into the
Title: Message
That's
what we do. If you have a discrete list of variables, loop through the list of
variables, replacing them with their values. Theoretically, you could also save
it to file and include using save content, although I don't think it'd be a
great idea. If you do change to
Title: Message
Right,
but what if you have a customizable template which admins (without programming
skills, but with the ability to type simple variable names) want to be able to
edit?
Imagine a form with a WYSIWYG editor and telling site admins to "just
type #LastName#" where you want
Title: Message
One more question.
Lets say a function call arbitrarily requires n-parameters, I'd like to do
something like:
Local.LoopReturns =
evaluate("Request.#Local.Temp.Class#.#Local.Temp.Method#(Local.Temp.Parameters)");
where I concatenate
the values of the n-parameters into a
Bryant Web Consulting LLC
http://www.BryantWebConsulting.com/
http://steve.coldfusionjournal.com/
At 09:01 AM 6/8/2006, Peter Bell wrote:
Hi There,
Reforming evaluator needs assistance *grin*. I have a loop that
generically makes n-function calls which are pulled from a database
table. Each function
Title: Message
Hi
Jerry,
Looks
good. If I do break this out into a function, this would be the perfect code -
thanks!
Best
Wishes,Peter
-Original Message-From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
Jerry ElaSent: Thursday, June 08, 2006 10:46 AMTo:
Title: Message
Hi
Jason,
I
would take what Cody said and just expand on it a little.
Usually when you think about forms for editing objects, the most common
requirements are transformations, validations and calculations. Tranformation
might pull all the non-numerics from a phone field
Hi Aaron,
I use controllers to do two things - request specific wiring that doesn't
fit into the application.cfc onRequestStart() and onRequestEnd() methods and
orchestration.
Simple example of first - put all form and url fields into a single scope to
avoid conditional checking for variables
en Edwards (the machII framework)Once you've been
copying for awhile, if you're gifted, you might graduate to being an
originator. But don't worry if it takes you a little while to get there.
:)Peter Bell wrote:
Yep. Controller is indeed traffic cop. Also, if there is EVER any chance of
a no
you're gifted, you might graduate to being an
originator. But don't worry if it takes you a little while to get there.
:)Peter Bell wrote:
Yep. Controller is indeed traffic cop. Also, if there is EVER any chance of
a non-HTML interface to your site (web services, flash remoting, whatever),
you w
Best
Wishes,Peter
-Original Message-From: Peter Bell
[mailto:[EMAIL PROTECTED] Sent: Saturday, June 10, 2006
6:47 PMTo: 'CFCDev@cfczone.org'Subject: RE: [CFCDev] Do I
Really Need A Controller?
Hi
All,
Nando,
got me thinking about wording here. If you look at model glue, there is an
ind
(his tutorials but
you have to search his blog for them, the arf framework, the model glue
framework)Sean Corfeld (his sample apps)Ben Edwards (the machII
framework)Once you've been copying for awhile, if you're gifted, you
might graduate to being an originator. But don't worry if
about that!n :)Peter
Bell wrote:
Hi
Nando,
Agreed 100% with everything except for the idea that having a facade
to the model creates spaghetti code.
There are two distinct functions the controller usually handles in an
HTML app - all the HTML specific
may have entry of multiple records and you've got
to sort out data by examining form field names the controller can begin to
have more logic, but it's definitely controller logic because it deals with
getting an organizing data from the view in order to pass it to the
controller. That help
any
Hello Seth,
Please let us know how perfomance tests compare replacenocase against
evaluate against saving as a file and savecontenting the values - would love
to know which scales best to 200,000 emails per blast!
Best Wishes,
Peter
-Original Message-
From: [EMAIL PROTECTED]
Nice to see a posting that isn't spam!!!
RADEMAKERS Tanguy said:
- On the one hand, you have a type of format checking that's essentially
about type safety, and that operates on single fields. If you have an object
that exposes an email address field, you expect that field (if it's
populated) to
out but the rest
should remain the same and hence remain unchanged. Hopefully it works as
well in practice as it has in my head up to now.
-Jason
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
Sent: Tuesday, June 13, 2006 3:59 PM
To: CFCDev
instead
of refactoring the code out into separate validator classes. Fowler talks
about the simple but powerful concept of Contextual Validation here:
http://www.martinfowler.com/bliki/ContextualValidation.html
HTH,
-Cliff
On 6/13/06, Peter Bell [EMAIL PROTECTED] wrote:
Hi Jason,
Firstly, I
Hi Chris,
The service model is intuitively more attractive to me and it is how I'm
currently doing things. I also see how a coder like myself with limited OO
experience would prefer this approach even if it wasn't better, so I'm
trying to get the underlying arguments from both sides.
I
Title: Message
I'm going round in
circles on this.
One the one hand it
seems attractive to put transformation, validation and calculation code into
beans. Now they are (at least somewhat) smart.
-
MyUser.setPhoneNumber() can now regex to remove non-integers and can return
whether the
Hi Aaron,
Just a side note, I wouldn't look at data types as a security feature. If
you're receiving user input you'd much rather run a regex or other
validation to catch invalid inputs (along with queryparam'ing in your SQL or
using SP's) as it is much easier to trap the errors. Last thing you
Hi Aaron,
I'm not a fan of a method arbitrarily pulling by category or by format (i.e.
just two of the n possible parameters).
For a production application, I would do the extra typing and have a
getProductListByCategory(CategoryID: int) and
getProductListByFormat(FormatID: int). If you didn't
Title: Message
Jason
wrote:
Now
regarding CFC's,CF'shybrid approach (ie. limited type checking)
provides some built in type checking, albeit at runtime, but why not leverage
that feature
in the same manner you are leveraging the lack of type
checking.
Because most of the time, you're
Title: Message
It is
also a great solution for dynamic code where you want to call different methods
with different parameters using a single line of code. For instance, imagine you
want to run unit testing on your entire model. Load all of the testing into a
database with the methods,
Title: Message
Hi
Matt,
You're
right. Filtering is a great use case for a generic method.
I considered mentioning that case (I like how
you don't let me get away with being TOO sloppy in my postings!). I also have a
special get%EntityName%ListBySearch() method (e.g.
Hi Richard,
Just a couple of tangential points as you state you're new to cfc's.
Apologies if they're obvious.
Firstly, it looks like you could be performing premature optimization
(insert sophomoric humor here). Obviously you need a way to uniquely track
views to a user within a session -
Hi Richard,
Because it's easier! There is no right or wrong answer to this in the
general case. What is more valuable - a simpler application or one that is
slightly more efficient? Creating a single object per request isn't a big
overhead for most applications (although checking a remote db for
Of Peter Bell
Sent: 25 June 2006 18:39
To: CFCDev@cfczone.org
Subject: RE: [CFCDev] Instances and persisted data
Hi Richard,
Because it's easier! There is no right or wrong answer to this in the
general case. What is more valuable - a simpler application or one that is
slightly more efficient
at Remote Synthesis:
http://www.remotesynthesis.com/blog/index.cfm/2006/6/25/Peter-Bell-is-Bloggi
ng
I'll also be building a simple framework from the ground up over the next
few weeks and posting on the design decisions so I'm hoping that'll create
some useful discussions on architectural patterns
, Peter Bell [EMAIL PROTECTED] wrote:
Hi Matt,
You're right. Filtering is a great use case for a generic method. I
considered mentioning that case (I like how you don't let me get away
with being TOO sloppy in my postings!). I also have a special
get%EntityName%ListBySearch() method (e.g
and getProductsByFormat).
It's always fun being the server administrator, db designer and
administrator, web designer and developer, etc. etc. I often feel like a
jack of all trades, and a master of none!
Thanks again guys,
Aaron
On 6/23/06, Peter Bell [EMAIL PROTECTED] wrote:
Hi Aaron,
I'm not a fan
-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Bell
Sent: Monday, June 26, 2006 12:12 PM
To: CFCDev@cfczone.org
Subject: RE: [CFCDev] Question About Invoking/Creating CFC Objects
Hi Aaron,
You pass in a struct and it matches the names of the keys within the struct
Hi Steve,
That's how I do it. I put getbyAttribute(AttributeName,AttributeValue) in
base class, ProductGateway inherits that, and for testing, I make the super
getbyAttribute() method public, but then make it private requiring it to be
encapsulated by a getByProductSKU() or whatever. It adds a
Title: Message
Hi
Jeff,
As
Cody said, ContactService has a public method for returning a query (or if you
like beans, consider a single object using a flyweight with iteration features
built in - email if that isn't obvious - Ihave a blog post on the way). Behind
the scenes it uses
If you REALLY want to get confused, in the Flex and ColdFusion integration
101 talk right now at CF United, they are describing the façade to the flex
application as a GATEWAY, and they're also suggesting that an ActiveRecord
actually handles the SQL rather than the more common approach of an
Title: Message
Hi
Jeff,
If I
understand this right, you have one base application but multiple versions. Each
version can be customized in terms of either selecting from a set of possible
fields and/or creating custom fields. The fields for a given application will
only change if an admin
Title: Message
Hi
Jeff,
I wrote:
If you're
serious about this, you want to consider creating a simple generator that
customizes your DAO's, gateways, and the rendering of your form controls on a
version by version basis.
A simpler/quicker approach would just be to write a
generic
Title: Message
Hi
Adam,
I
would add this to the core business model. For me, aspects are cross cutting
concerns that decrease cohesion (a product shouldn't know about logging,
security or workflow, so those are the classic examples of AOP). To me it is
perfectly appropriate that a
components could be used if I had the limitations through and aspect, or I
probably could extended the core components to work inside the PSE application
does this make any sense? Adam
On 7/4/06, Peter
Bell [EMAIL PROTECTED]
wrote:
Hi
Adam,
I would add t
of Ashley Furniture. Without getting into too much detail the
same set of core components could be used if I had the limitations
through and aspect, or I probably could extended the core components
to work inside the PSE application does this make any sense?
Adam
On 7/4/06, Peter Bell
Hi Dave,
I guess that is the distinction - between the business rules (which are part
of the model) and the process of initiating them (which might sometimes be
best implemented using aspects). Cool!
Best Wishes,
Peter
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
1 - 100 of 181 matches
Mail list logo