RE: Mod_perl component based architecture

2001-10-17 Thread Matt Sergeant

 -Original Message-
 From: Bill Moseley [mailto:[EMAIL PROTECTED]]
 
 I'm just bored with html forms.  Seems like I do this kind of 
 project too
 often -- read a record, post, validate, update...  Even with good
 templating and code reuse between projects I still feel like 
 I spend a lot
 of time re-inventing the (my) wheel.  Will an application 
 framework bring
 me bliss?  I'm sure this is common type of project for many 
 people.  What
 solutions have you found to make this easy and portable from 
 project to
 project?

Have you checked out AxKit's XSP::PerForm module? It makes laborious form
development a lot easier, and componentizable (made up word).

It's still a bit buggy, and beta, but I've used it on full scale projects.

Matt.

_
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.



RE: Mod_perl component based architecture

2001-10-17 Thread Matt Sergeant

 -Original Message-
 From: Chris Winters [mailto:[EMAIL PROTECTED]]
 
 But if you've been working on and building up a platform for 4+ years
 that already does this, then there's very little to be gained and lots
 to be lost by moving to an application server. :-)

I'd put it slightly differently...

I'd say Nick has already built his application server.

Matt.

_
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.



RE: Mod_perl component based architecture

2001-10-17 Thread Matt Sergeant

 -Original Message-
 From: Gunther Birznieks [mailto:[EMAIL PROTECTED]]
 
 Of course, I am not saying that the line isn't fuzzy 
 especially if the 
 template engine is quite powerful (as is the case with Mason 
 or AxKit). But 
 there is a line nonetheless, no??

/me removes head from sand

Yes, there's a line. One of my plans for AxKit 1.6 (the next-but-one
release) is to enable functioning via CGI. If you follow my journal on
use.perl you'll see I've been working on a bit of code that basically does
what SpeedyCGI does (called PPerl), but is a bit simpler and actually
compiles on my machine. Hopefully I'll be able to get AxKit working in that
environment (though I don't promise anything due to the way AxKit is fairly
tied right now to httpd.conf).

Matt.

_
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.



Re: Mod_perl component based architecture

2001-10-17 Thread Claudio Garcia

Michael wrote:

 Are any of the packages mentioned particularly suited to client
 content management packages where the client can manage some
 limeted page content text/graphics but not really mess with the
 overall page layout and site content. I'm about to start researching
 this but would like input from the experts.

Maybe you can try our software. Metadot is a content management server side
application written in mod_perl.   All content management in it is done from
client browsers. It can also be seen as an application framework providing User,
Session and sophisticated Access Control management, all of these accessible
from client browsers.  (The site administrator, though, gets complete power to
limit users access/modification rights to content, and can even set disk space
quotas for them.)

Metadot comes with an API that makes it easy to create specialized applications
on top of it, as well as with a wealth of bundled apps for adding content such
as uploaded files, text, images, content categories, discussion and polls.

We are open source under the GPL, and we're backed by a big oil-services
company.  We've just released Version 4.0b. Among its new features are:

-Support for windows (IIS and Activestate PerlEx)
-A simple templating system to alter page layout/design
-A facility to do recursive access permissions changing from the browser
-A feature that turns discussions into mailing lists
-Improved documentation
-A developers support site at http://www.metadot.net

I work for them,  but a couple of years ago I would have wished to have the
functionality we now provide for what my previous job required. :-)

Claudio

--
Claudio Garcia
[EMAIL PROTECTED]




Re: Mod_perl component based architecture

2001-10-16 Thread Radovan Semancik

Gargi Bodke wrote:
 
 hi
   i have been asked to suggest an architecture to seperate the business
 logic from the html.
 how is this done in modperl? i guess by using functions for the business
 logic.
 is there any other way?
 
 also does modperl support object oriented programming?

One possible solution:
Jewels Application Framework, http://jewels.bgs.sk/

-- 
Ing. Radovan Semancik ([EMAIL PROTECTED])
 Project Manager, Business Global Systems a.s.



Re: Mod_perl component based architecture

2001-10-16 Thread Brett W. McCoy

On Tue, 16 Oct 2001, Gargi Bodke wrote:

   i have been asked to suggest an architecture to seperate the
 business logic from the html. how is this done in modperl? i guess by
 using functions for the business logic. is there any other way?

There are several solutions you can explore, that are optimized for
mod_perl.  I personally favor Mason (http://masonhq.com), which uses a
component-based architecture with some object-oriented extensions, but
there are others like EmbPerl and various templating solutions that
achieve similar goals.

You can start here for more information (most, if not all, of these are
also open source/free software):

http://perl.apache.org/#appservers

-- Brett
  http://www.chapelperilous.net/

I'm always looking for a new idea that will be more productive than its cost.
-- David Rockefeller




Re: Mod_perl component based architecture

2001-10-16 Thread Jim Smith

On Tue, Oct 16, 2001 at 07:41:46PM +0530, Gargi Bodke wrote:
 hi
   i have been asked to suggest an architecture to seperate the business
 logic from the html.
 how is this done in modperl? i guess by using functions for the business
 logic.
 is there any other way?

There are a large number of solutions to this.  A few are:

   Apache::ASP
   HTML::Embperl
   HTML::Mason
   Template::Toolkit and Apache::Template

For a list of modules involving templates:

   http://search.cpan.org/search?mode=modulequery=template

   139 modules found in 52 distributions matching 'template' 
 
 also does modperl support object oriented programming?

mod_perl is but Perl embedded in Apache.  mod_perl supports the full
expressiveness of Perl.



RE: Mod_perl component based architecture

2001-10-16 Thread Matt Sergeant

 -Original Message-
 From: Gargi Bodke [mailto:[EMAIL PROTECTED]]
 
 hi
   i have been asked to suggest an architecture to seperate 
 the business
 logic from the html.
 how is this done in modperl? i guess by using functions for 
 the business
 logic.
 is there any other way?

There's loads of ways. Off the top of my head:

- EmbPerl with EmbPerlObject
- OpenInteract
- Apache::PageKit
- Apache::ASP using XML-Subs
- AxKit
- Mason (aka HTML::Mason)

All allow some form of separation of content/logic from presentation (but
AxKit is the BEST of them all! :-)

 also does modperl support object oriented programming?

Yes. mod_perl isn't like PHP or Cold Fusion or ASP or Java Servlets. It's
more of a framework for building things like the above using Perl. As you
can see, the community has built quite a number of different ways of doing
things over the years!

Matt.

PS: AxKit at the moment is at http://217.158.50.178/ - the email lists are
down, but I'm happy to answer questions on the mod_perl list for now.

_
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.



Re: Mod_perl component based architecture

2001-10-16 Thread Dominique Quatravaux

 also does modperl support object oriented programming?

  Well yes it does indeed (see any good book on Perl, such as
«advanced Perl programming» from O'Reilly).

  As for the remaining of the question, I've been wondering for myself if
there is a MVC (model-view-controller) framework for WWW publishing in
Perl ? I gather there exist quite a few for Java, but I couldn't find
anything significant under Perl.

-- 
 Tout n'y est pas parfait, mais on y honore certainement les jardiniers 

Dominique Quatravaux [EMAIL PROTECTED]



Re: Mod_perl component based architecture

2001-10-16 Thread Scott Lanning

On Tue, 16 Oct 2001, Gargi Bodke wrote:
  i have been asked to suggest an architecture to seperate the
business logic from the html. how is this done in modperl? i guess
by using functions for the business logic.
is there any other way?

Maybe HTML::Mason, http://www.masonhq.com/

also does modperl support object oriented programming?

Yes. Good luck. http://perl.apache.org/#docs




Re: Mod_perl component based architecture

2001-10-16 Thread kyle dawkins

Gargi

On October 16, 2001 10:11 am, Gargi Bodke wrote:
   i have been asked to suggest an architecture to seperate the business
 logic from the html.
 how is this done in modperl? i guess by using functions for the business
 logic.
 is there any other way?

Absolutely; mod_perl fully supports OO programming and all of the techniques 
for separating business logic from display logic that you might use in, say, 
a Java-based web application will work fine in mod_perl.  It's very very easy 
to build a MVC-style application with mod-perl, as a number of different 
mod_perl based platforms have shown (I always point out smartworker for this 
but there are many others too).

Right now I have an enormous mod_perl based site.  Its business logic is 
entirely separate from its application logic;  there is not a single line of 
SQL anywhere in the application layer and it uses standard design patterns to 
solve many typical problems.  All HTML components are reusable and embeddable 
in other HTML components.

When it's used right, mod_perl is pretty much unbeataable.

Cheers

Kyle Dawkins
Systems Engineer
Central Park Software



Re: Mod_perl component based architecture

2001-10-16 Thread Dave Hodgkinson

Gargi Bodke [EMAIL PROTECTED] writes:

 hi
   i have been asked to suggest an architecture to seperate the business
 logic from the html.
 how is this done in modperl? i guess by using functions for the business
 logic.
 is there any other way?

By using one of the many available templaters, my preference being the
Template Toolkit. you can fake up a pretty decent
Model-View-Controller patterm from that.


 
 also does modperl support object oriented programming?

As much as perl does.

-- 
David Hodgkinson, Wizard for Hirehttp://www.davehodgkinson.com
Editor-in-chief, The Highway Star   http://www.deep-purple.com
All the Purple Family Tree news   http://www.slashrock.com
   Interim Technical Director, Web Architecture Consultant for hire



Re: Mod_perl component based architecture

2001-10-16 Thread Robin Berjon

On Tuesday 16 October 2001 17:13, Dominique Quatravaux wrote:
   As for the remaining of the question, I've been wondering for myself if
 there is a MVC (model-view-controller) framework for WWW publishing in
 Perl ? I gather there exist quite a few for Java, but I couldn't find
 anything significant under Perl.

Depending on the kind and degree of MVC-ness, Apache::PageKit or AxKit can 
fit within that approach, perhaps others as well.

-- 
___
Robin Berjon [EMAIL PROTECTED] -- CTO
k n o w s c a p e : // venture knowledge agency www.knowscape.com
---
Does the name Pavlov ring a bell?




Re: Mod_perl component based architecture

2001-10-16 Thread Brett W. McCoy

On Tue, 16 Oct 2001, Dominique Quatravaux wrote:

   As for the remaining of the question, I've been wondering for myself if
 there is a MVC (model-view-controller) framework for WWW publishing in
 Perl ? I gather there exist quite a few for Java, but I couldn't find
 anything significant under Perl.

Quite a few, as the other posts in thread have already made reference to.
In addition, there is also CGI::Application, which supports templating via
HTML::Template and uses an MVC architecture as well.

-- Brett
  http://www.chapelperilous.net/

Perfection is reached, not when there is no longer anything to add, but
when there is no longer anything to take away.
-- Antoine de Saint-Exupery




RE: Mod_perl component based architecture

2001-10-16 Thread Henigan, Timothy
Title: RE: Mod_perl component based architecture





You should really check out OpenInteract (http://www.openinteract.org). It sounds like it has a lot of the hooks you're looking for (user management, templates, online content editing, etc) as well as a few you'll be looking for later (security, session management). It is built on mod_perl and the Template Toolkit as well as many other standard CPAN modules.

Tim



-Original Message-
From: Michael [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, October 16, 2001 3:55 PM
To: [EMAIL PROTECTED]
Subject: Re: Mod_perl component based architecture



 On Tue, 16 Oct 2001, Dominique Quatravaux wrote:
 
  As for the remaining of the question, I've been wondering for myself if
  there is a MVC (model-view-controller) framework for WWW publishing in
  Perl ? I gather there exist quite a few for Java, but I couldn't find
  anything significant under Perl.
 
 Quite a few, as the other posts in thread have already made
 reference to. In addition, there is also CGI::Application, which
 supports templating via HTML::Template and uses an MVC architecture
 as well.
 
Are any of the packages mentioned particularly suited to client 
content management packages where the client can manage some 
limeted page content text/graphics but not really mess with the 
overall page layout and site content. I'm about to start researching 
this but would like input from the experts.


Michael





Re: Mod_perl component based architecture

2001-10-16 Thread Brett W. McCoy

On Tue, 16 Oct 2001, Michael wrote:

  Quite a few, as the other posts in thread have already made
  reference to. In addition, there is also CGI::Application, which
  supports templating via HTML::Template and uses an MVC architecture
  as well.
 
 Are any of the packages mentioned particularly suited to client
 content management packages where the client can manage some
 limeted page content text/graphics but not really mess with the
 overall page layout and site content. I'm about to start researching
 this but would like input from the experts.

Mason has a content management suite, and I think Smart Worker may also
have something along these lines.  I can't speak for the other ones, as I
have not used them.

-- Brett
  http://www.chapelperilous.net/

Your lucky number is 3552664958674928.  Watch for it everywhere.




Re: Mod_perl component based architecture

2001-10-16 Thread Chris Winters

* Michael ([EMAIL PROTECTED]) [011016 15:37]:
 Are any of the packages mentioned particularly suited to client
 content management packages where the client can manage some limeted
 page content text/graphics but not really mess with the overall page
 layout and site content. I'm about to start researching this but
 would like input from the experts.

OpenInteract (http://www.openinteract.org/) has page-editing (and
template-editing) capabilities from the browser. Currently you need to
keep all the content in the database to make this work, but I'm
working on being able to edit content in the filesystem as well.

I wouldn't call it a content-management system really, but users find
it pretty useful to see a typo, click on 'Edit this Document', make
the change and see it instantly.

Chris

-- 
Chris Winters ([EMAIL PROTECTED])
Building enterprise-capable snack solutions since 1988.



Re: Mod_perl component based architecture

2001-10-16 Thread Bill Moseley

I've been looking at OpenInteract, too.  I've got a project where about 100
people need to edit records in a database via a web-based interface.  And
I'd like history tracking of changes (something like CVS provides, where
it's easy to see diffs and to back out changes).  And I need access control
for the 100 people, along with tracking per user of how many changes they
make, email notification of changes, administrative and super-user type of
user levels, and bla, bla bla, and so on.  Normal stuff.

I'm just bored with html forms.  Seems like I do this kind of project too
often -- read a record, post, validate, update...  Even with good
templating and code reuse between projects I still feel like I spend a lot
of time re-inventing the (my) wheel.  Will an application framework bring
me bliss?  I'm sure this is common type of project for many people.  What
solutions have you found to make this easy and portable from project to
project?



Bill Moseley
mailto:[EMAIL PROTECTED]



Re: Mod_perl component based architecture

2001-10-16 Thread Nick Tonkin


I do almost nothing but the kind of work you are describing, including a
comprehesive student record management system for a large California
College. I find that providing a custom interface to data is a lot more
like static content than dynamic when it comes to design. My apps tend to
look more like M$ Access than slashdot.org

So, over time, I've built a set of tools that do exactly what I need. It's
an extensible API, of course, so I can add new functionality simply, but
it does just what I need. The reason I've never adopted Mason or
OpenInteract or one of these [amazing] products is that because of their
scope they do far more than I ever need them to. For the same amount of
time and learning curve I would spend on becoming a Mason mason I can
tweak my own API to be 100% to my liking. All the content-generation code
I use is my own. Many people sniff at this and chuckle at another hacker
going through the rite of passage of making his own templating system. But
the toolkit I use has been built over four or five years now, so if I'm
stuck in a rite, well, so be it. Works for me, rather well.

I use a light layer of custom stuff built on top of the hardcore public
APIs for non-content-generation stuff, i.e. Apache::Session- and DBI-based
auth and data-access libraries. I have built an integrated
access/auth/authz layer that gives each user a hash of their own
permissions that follows them around; I use this to govern the output of
the content-generation as to read-write, as you suggested, and logging is
built into the write()s everywhere. I've been thinking of packaging up the
auth/authz stuff ... anybody care to take a look at it?

I guess in general I favor independent component APIs upon which you can
build, a la Apache::Session, rather than the monster Application
Servers ... it seems that you get the same effect but with more
control. Of course, I've had the luxury of afew years' experience; someone
starting out may prefer a canned solution ...

- nick







~~~
Nick Tonkin

On Tue, 16 Oct 2001, Bill Moseley wrote:

 I've been looking at OpenInteract, too.  I've got a project where about 100
 people need to edit records in a database via a web-based interface.  And
 I'd like history tracking of changes (something like CVS provides, where
 it's easy to see diffs and to back out changes).  And I need access control
 for the 100 people, along with tracking per user of how many changes they
 make, email notification of changes, administrative and super-user type of
 user levels, and bla, bla bla, and so on.  Normal stuff.
 
 I'm just bored with html forms.  Seems like I do this kind of project too
 often -- read a record, post, validate, update...  Even with good
 templating and code reuse between projects I still feel like I spend a lot
 of time re-inventing the (my) wheel.  Will an application framework bring
 me bliss?  I'm sure this is common type of project for many people.  What
 solutions have you found to make this easy and portable from project to
 project?
 
 
 
 Bill Moseley
 mailto:[EMAIL PROTECTED]
 




Re: Mod_perl component based architecture

2001-10-16 Thread Chris Winters

* Bill Moseley ([EMAIL PROTECTED]) [011016 16:49]:
 I'm just bored with html forms.  Seems like I do this kind of
 project too often -- read a record, post, validate, update...  Even
 with good templating and code reuse between projects I still feel
 like I spend a lot of time re-inventing the (my) wheel.  Will an
 application framework bring me bliss?  I'm sure this is common type
 of project for many people.  What solutions have you found to make
 this easy and portable from project to project?

An application framework *can* bring you bliss -- but like a lot of
solutions that do a lot you need to buy into how it does things or
hope that it's flexible enough for you to change it. 

In addition, a framework should be able to encourage reuse because you
can concentrate on the interesting things (what is the data? how does
it act?) rather than the boring things (security, user/group
management, templating stuff). The boring things are there to be used,
but they're a given.

Good frameworks should IMO also make it easy to package up the
interesting things and keep them separate from one another, so you can
run as many code-test iterations as you need in your development
environment, bundle up the interesting code (object definitions,
schemas, business logic, display logic) and install it to the
production environment without much hassle.

Chris

PS - (plug plug) OpenInteract has as of 1.30 a new module
(OpenInteract::CommonHandler) to make the typical
search/display/edit/remove functinonality extremely easy.

-- 
Chris Winters ([EMAIL PROTECTED])
Building enterprise-capable snack solutions since 1988.



Re: Mod_perl component based architecture

2001-10-16 Thread Chris Winters

* Nick Tonkin ([EMAIL PROTECTED]) [011016 17:28]:
 ...
 I guess in general I favor independent component APIs upon which you
 can build, a la Apache::Session, rather than the monster
 Application Servers ... it seems that you get the same effect but
 with more control. Of course, I've had the luxury of afew years'
 experience; someone starting out may prefer a canned solution ...

Sure, and you'd probably find that a lot of application servers -- at
least ones in Perl -- do this as well. For instance, the OpenInteract
session handling is exactly as you describe, a thin interface layer
around Apache::Session. Templating is through Template Toolkit,
etc.

Leveraging the work of all the smart people in the community is, to
me, a no-brainer. My view is that an application server makes all this
stuff work together, consistently, and then adds functionality on top
of it rather than in place of it.

But if you've been working on and building up a platform for 4+ years
that already does this, then there's very little to be gained and lots
to be lost by moving to an application server. :-)

Chris

-- 
Chris Winters ([EMAIL PROTECTED])
Building enterprise-capable snack solutions since 1988.



Re: Mod_perl component based architecture

2001-10-16 Thread Gunther Birznieks

At 11:13 PM 10/16/01, Dominique Quatravaux wrote:
  also does modperl support object oriented programming?

   Well yes it does indeed (see any good book on Perl, such as
«advanced Perl programming» from O'Reilly).

   As for the remaining of the question, I've been wondering for myself if
there is a MVC (model-view-controller) framework for WWW publishing in
Perl ? I gather there exist quite a few for Java, but I couldn't find
anything significant under Perl.

Our eXtropia toolkit is just about the only one out there that caters to 
all CGI environments with MVC architecture (action objects and action 
manager for controller, normal DB objects for model, and template toolkit 
for view)...

If you go to http://www.extropia.com/ you can download any Perl WebDB app, 
WebCal, or WebBBS to see an example. We are still in a mode where we are 
distributing apps built around the framework rather than the framework 
itself but you can get the idea.

WebDB in particular has a lot of documentation itself for free.

If you are really interested in toolkit docs, we have an 800 page book out 
by McGraw-Hill whose later half 400 pages discusses in raw detail the 
architecture of the toolkit itself and how all the pieces fit together.

One of the sad things is that the intelligent people on this list tend to 
have their head a bit in the ground when it comes to alternative 
environments other than mod_perl. mod_perl's a great tool but there's a lot 
of other Perl environments out there not the least of which is just plain 
old CGI. This is why our toolkit specifically caters to all.

The other thing is that many (although not all) Perl people tend to have 
their head in the ground related to dealing with other environments such as 
Java. Our toolkit also plugs into Java environments. For example, we have a 
completely interoperaple Perl - Java persistence layer (via SOAP) if you 
wish to use a Java driver for a Perl front-end.

We also spent considerable time porting our toolkit and several apps to 
Java MVC framework so we have Java Servlet/JSP equivalents of everything.

Yet another thing is that many Perl people also have their head in the 
ground about Win32 compatibility. We've strived to make sure our entire 
toolkit will work reasonably well on Win98 and Win2000. A toolkit that only 
works on mod_perl will by definition not work well on Win2000 except as a 
toy because Win32 mod_perl is a single blocking thread. Great for 
development, not so great for production (unless the site is really small).

I would venture to say that some of the mod_perl-only toolkits have some 
cases of being better designed than ours, but they are mostly mod_perl 
only.  In fact, I don't know if I know any other toolkits than ours that 
are not mod_perl only of the ones that were advertised on the list.

Of course, this may be what you are looking for.  But since you mentioned 
Perl MVC and not specifically mod_perl-only MVC, I figured I would jump in 
and mention the alternative since we are much more open to alternative 
environments and not being closed in to just mod_perl.

Later,
Gunther





Re: Mod_perl component based architecture

2001-10-16 Thread Dave Rolsky

On Wed, 17 Oct 2001, Gunther Birznieks wrote:

 I would venture to say that some of the mod_perl-only toolkits have some
 cases of being better designed than ours, but they are mostly mod_perl
 only.  In fact, I don't know if I know any other toolkits than ours that
 are not mod_perl only of the ones that were advertised on the list.

I don't know if Mason counts as a full toolkit (its not really an app
server) but you can certainly run Mason as a vanilla CGI, and if you can
do that I'm sure you can run it in FastCGI and whatnot.

-dave

/*==
www.urth.org
We await the New Sun
==*/




Re: Mod_perl component based architecture

2001-10-16 Thread Ilya Martynov

 On Tue, 16 Oct 2001 22:07:47 -0500 (CDT), Dave Rolsky [EMAIL PROTECTED] said:

DR On Wed, 17 Oct 2001, Gunther Birznieks wrote:
 I would venture to say that some of the mod_perl-only toolkits have some
 cases of being better designed than ours, but they are mostly mod_perl
 only.  In fact, I don't know if I know any other toolkits than ours that
 are not mod_perl only of the ones that were advertised on the list.

DR I don't know if Mason counts as a full toolkit (its not really an app
DR server) but you can certainly run Mason as a vanilla CGI, and if you can
DR do that I'm sure you can run it in FastCGI and whatnot.

Moreover I have seen it being used in command line tool which
generates static HTML pages from a set of templates.

-- 
 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
| Ilya Martynov (http://martynov.org/)  TIV.net (http://tiv.net/) |
| GnuPG 1024D/323BDEE6 D7F7 561E 4C1D 8A15 8E80  E4AE BE1A 53EB 323B DEE6 |
 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



Re: Mod_perl component based architecture

2001-10-16 Thread Gunther Birznieks

At 01:28 PM 10/17/01, Ilya Martynov wrote:
  On Tue, 16 Oct 2001 22:07:47 -0500 (CDT), Dave Rolsky 
 [EMAIL PROTECTED] said:

DR On Wed, 17 Oct 2001, Gunther Birznieks wrote:
  I would venture to say that some of the mod_perl-only toolkits have some
  cases of being better designed than ours, but they are mostly mod_perl
  only.  In fact, I don't know if I know any other toolkits than ours that
  are not mod_perl only of the ones that were advertised on the list.

DR I don't know if Mason counts as a full toolkit (its not really an app
DR server) but you can certainly run Mason as a vanilla CGI, and if you can
DR do that I'm sure you can run it in FastCGI and whatnot.

Moreover I have seen it being used in command line tool which
generates static HTML pages from a set of templates.

Well so is Template Toolkit but it's still basically a content 
management/template engine not really an application framework. It's 
possible that Mason has applications written in Mason, just as you could 
write applications in ActiveServerPage or Cold Fusion pages, but that 
doesn't make ASP or Cold Fusion an Application Framework either. Or at 
least not a balanced MVC one.

Open Interact, Smart Worker, and ours do not handle templating at all. We 
integrate with other packages to do that sort of management. We have 
frameworks that handle application logic in a fairly consistent way and 
this is what is meant by app framework (as opposed to template framework).

Of course, I am not saying that the line isn't fuzzy especially if the 
template engine is quite powerful (as is the case with Mason or AxKit). But 
there is a line nonetheless, no??

Later,
Gunther




Re: Mod_perl component based architecture

2001-10-16 Thread Rob Nagler

   As for the remaining of the question, I've been wondering for myself if
 there is a MVC (model-view-controller) framework for WWW publishing in
 Perl ? I gather there exist quite a few for Java, but I couldn't find
 anything significant under Perl.

Check out http://www.bivio.net/hm/why-bOP and http://petshop.bivio.net
The former motivates the MVC architecture.  The latter URL is a demo
of Sun's J2EE blueprint demo of a Pet Store implemented using bOP, a
perl application framework.  It's freeware and we use it to run a
large commercial website.

When you visit petshop.bivio.net, at the bottom of the page, you'll
see Control Logic for This Page.  This is what the bOP agent
(controller) uses to determine if the incoming user can access the
page, what the page actually does (models and views), and any state
transitions (form next or cancel).  The links at the bottom of the
page go to the source of this application.

bOP also allows you to change the look-and-feel quite easily.  Compare
these two pages:

http://www.bivio.com/club_cafe/mail-msg?t=1934163
http://ic.bivio.com/club_cafe/mail-msg?t=1934163

They render the same content, but in two entirely different contexts.
Each look-and-feel is described in a single file, which contains
color, font, URL, text, and view mappings.

bOP is about 250 classes including the Pet Shop demo.  It uses Oracle
or Postgres, but it should be easy to port to other databases. You can
also build a static site, e.g. http://www.bivio.net which doesn't 
require a database.

SOAPBOX
The J2EE architecture implements MV, not MVC imiho.  Here's one of my
favorite quotes from Sun's site:

  It is important to understand that Model, View, and Controller are 
  usually not represented by individual classes; instead, they are 
  conceptual subdivisions  of the application. 

This is true for J2EE, but not true for MVC frameworks.  J2EE's
control flow is not a distinct element.  JSPs are usually full of
business logic.  The whole MVC concept passed J2EE by.

Even when you look at Model 2 Methodology (promoted by Apache
Jakarta Turbine), the code is a mess.  Here's a snippet from the
reference article on Model 2:

  public void doPost (HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException {
  HttpSession session = req.getSession(false);
  if (session == null) {
   res.sendRedirect(http://localhost:8080/error.html;);
  }
  Vector buylist= (Vector)session.getValue(shopping.shoppingcart);
  [...]
  if (!action.equals(CHECKOUT)) {
  if (action.equals(DELETE)) {
  [...]
  String url=/jsp/shopping/EShop.jsp;
  [...]
  String url=/jsp/shopping/Checkout.jsp;

The excerpt is from a single method in which they mix sessions, port
numbers, hosts, error pages, URLs, button values, etc.

The JSP is no better and contains lines like:

  optionYuan | The Guo Brothers | China | $14.95/option
  bQuantity: /binput type=text name=qty SIZE=3 value=1
  input type=submit value=Delete  
  input type=hidden name=action value=DELETE

Note that DELETE in the JSP must be the same as DELETE in the
Java.  Nothing is checking that.  You only know that the code doesn't
work when someone hits the page.  In this particular example, if you
mispell DELETE in either place, the code does something, and 
doesn't issue an error.

So much for Model 2.  I wonder what Model 3 will be like. ;-)

Sorry, had to get that off my chest...
/SOAPBOX

Cheers,
Rob