Mosh Teitelbaum wrote:
> > Since you bring it up, I was wondering what everyone else thought
> > about all requests having to come in through an application spine?

Sean A Corfield wrote:
> Well, it's an approach I've gradually drifted into even without
> Fusebox. MVC operates that way, for example, with all requests going
> through the controller. (yeah, sometimes there are multiple controllers
> in an application but the point is that usually one controller handles
> a lot of different requests)

Just to point out again, I wasn't actually asking about Fusebox so much as I
was asking about the pros and cons of using a controller for all HTTP
requests.  That's why I started a new thread with a different topic.

> it just happened to be a convenient way to wrap very simple
> HTML pages in a common layout and common navigation. It's an
> abstraction that (a) hides the actual file structure (b) allows me to
> control layout in a single file (c) provides a central controller for
> any logic in the site.

So first, as has been stated to death in this thread, there are tons of
different ways of accomplishing the same thing.  I recognize this, agree
with it, respect it.  What I'm really asking is, why is *this* a better way
of obtaining these benefits then any other way?

Concerning the points you mentioned, other than point (a), all of this can
be accomplished via constructive use of Application.cfm and
OnRequestEnd.cfm.  And, in case you couldn't tell from that last
observation, I don't belong to the camp that believes these files should be
as empty as possible; I think they should be as full as needed and no more
so.

As far as hiding the file structure goes, I'm not sure I find it a truly
useful benefit given what I perceive to be its downsides.  Your instance in
which you had to merge your blogs shows it can be useful but -- and no
offense intended here, Sean -- it sounds like more of a short term hack than
a long term solution.  I would think it'd be a better idea to simply merge
the old data with the new (preferably via automation if available).
Otherwise, you have to maintain 2 separate systems, regardless of how
similar they look.

But the downsides of hiding the file system by way of a Request controller
are pretty hefty, IMO:
1) Some search engines will not be able to index your site, or more than a
   few pages of your site.  For example, if I recall correctly, Google will
   only index dynamic pages that are linked to from a static page.  How does
   it do with a site that is so obviously dynamic vs. site's where dynamic
   pages get non-assuming, unique URLs (/blog/index.cfm ->
/blog/entry.cfm?ID=5)?

2) Static "sounding" URLs are easier to remember.  They shouldn't be, but
they
   are.  Most likely, this is because people are used to seeing a URL like
   "/Products/SuperApp.cfm" instead of "index.cfm?go=Products.SuperApp".
This
   isn't much of a concern for web-based applications where you tend not to
   pass around individual URLs beyond the homepage, but for non-app
websites,
   where individual URLs may be referenced (via bookmarks, marketing
materials,
   etc.)  This becomes a fairly weighty concern.

3) Additional overhead from the architect's perspective.  I had mentioned
this
   earlier in the thread; basically, the architect(s) must now define 2
   hierarchical structures, the physical file system, and the "virtual
   file system" (regardless of you agree with the specific terminology).
This
   is not much of an issue for smaller/simpler sites like you cat club site,
   but imagine having to do this with something larger.

   Also falling into this issue is having the developers learn both "file
   systems."  Granted, you can get around this by not requiring this of
   developers (for example, using XFAs in FB), but as I stated earlier in
   the thread, I prefer my developers to know as much about the site's
   architecture as possible.  Not just that the site is built on Framework X
   but that it uses the following variables, pathways, etc.  This is not so
   that they can muck with the internal architecture, but so that they can
   be better developers and debuggers.

4) There are probably more, but it's starting to get late and I still have
   more work to do before bed. 8^)

Concerning a single source for controlling a site's presentation, this (a)
can be done any number of other ways (obviously) and (b) can have it's own
issues.  You can accomplish this by including header/footer files from
App.cfm, et al, or have each file include the header/footer themselves.
However, what if you want to display the common header/footer but only on
certain pages (ex. everything but pop-ups) or when a certain condition is
true (ex. printMode equals "Off")?  Now you have to include
page/parameter-specific references/logic in a global file.  This isn't a big
deal for smaller sites, again, but what about larger sites?

And finally, concerning the central controller, I actually prefer using a
central controller for logic.  But I'm questioning the usefulness for a
*REQUEST* controller.  The difference is that the request controller
receives all HTTP requests and passes control to another file or files.
Those files would, ideally pass control to other files for logic/DB
functionality.  This last step could be accomplished just as easily (perhaps
more?) without requiring the use of the Request Controller.

So, my specific question again, is what are the pros/cons to using this
controller method vs. the direct approach?  At this point, I'm beginning to
wonder if it's simply a matter of personal preference.  I see a bunch of
downsides, but I'd be more than happy to hear about and possibly be
convinced of some benefits.

--
Mosh Teitelbaum
evoch, LLC
Tel: (301) 942-5378
Fax: (301) 933-3651
Email: [EMAIL PROTECTED]
WWW: http://www.evoch.com/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq

Signup for the Fusion Authority news alert and keep up with the latest news in 
ColdFusion and related topics. 
http://www.fusionauthority.com/signup.cfm

                                Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
                                

Reply via email to