Presentation is loading. Please wait.

Presentation is loading. Please wait.

Desperately Seeking… a lightweight Perl web framework

Similar presentations


Presentation on theme: "Desperately Seeking… a lightweight Perl web framework"— Presentation transcript:

1 Desperately Seeking… a lightweight Perl web framework
Peter Edwards Desperately seeking... a lightweight Perl web framework 06/12/2018

2 Introduction Subject Peter Edwards ~ background
Explain about the processes and decision making involved in assessing, selecting and using a Perl web framework Desperately seeking... a lightweight Perl web framework 06/12/2018

3 Aims Learn what frameworks are out there Technical considerations
Business tools for decision-making Audience: What is your background and interest? Desperately seeking... a lightweight Perl web framework 06/12/2018

4 Topics Define the problem Example requirements
Attributes of frameworks Business decision making tools Architecture Application components Perl application frameworks Roll your own Summary Desperately seeking... a lightweight Perl web framework 06/12/2018

5 Define the Problem Why do you need a web app?
What functionality / how complex? no. screens, other features, e.g. search engine, integration to other apps/components/company infrastructure, server platform Business setting Project length, size; Developer expertise, skill sets; Integration to network, database type, existing frameworks e.g. ADS authentication; Capacity plan - no. of users and required performance Desperately seeking... a lightweight Perl web framework 06/12/2018

6 Example http://merlinfootball.com
Components Flash front end, sending XML transactions to Perl back end Perl XHTML admin system Elements Huge volume of users and transactions Streaming video Picture upload and approval to gallery FAQ submission, approval and editing into FAQ list Desperately seeking... a lightweight Perl web framework 06/12/2018

7 Attributes of Frameworks
Size -> complexity Learning curve Vertical vs. horizontal Functionality, flexibility Monotheistic/"One True Way" vs. agnostic Increased power, reduced performance Cost of testing new code = 50% of time By extension DRY KISS Desperately seeking... a lightweight Perl web framework 06/12/2018

8 Business Decision Making Tools
The point of business Increased shareholder value - cash William of Occam, 14th century logician and Franciscan friar entia non sunt multiplicanda praeter necessitatem entities should not be multiplied beyond necessity "All things being equal, the simplest solution tends to be the best one.“ It often happens that the best explanation is much more complicated than the simplest possible explanation because it requires fewer assumptions. Pareto Principle, by Joseph M. Juran named after Vilfredo Pareto, Italian economist "for many phenomena, 80% of the consequences stem from 20% of the causes“ -- en.wikipedia.org Cost Benefit Analysis Estimate days for development Estimate hidden costs and benefits e.g. of more stable framework Cost comparison -> decision Perfection vs. pragmatism Desperately seeking... a lightweight Perl web framework 06/12/2018

9 Architecture I Web Protocol HTTP request/response URI, REST, URL parameters Web 2.0, AJAX Web Server Apache, IIS, lighttpd CGI/mod_perl, FastCGI Controller Processing Apache registry style stacked phase handlers MVC Model View Controller Single entry point vs. separate CGI Desperately seeking... a lightweight Perl web framework 06/12/2018

10 Architecture II Session CGI::Session Apache::Session Catalyst::Plugin::Session -> Cache::FastMMap Security Authentication Group permission roles HTML field and SQL field encoding Database layer Direct DBI Simple Class::DBI ORM Object Relational Mapper DBIx::Class Rose::DB Performance considerations - DBI x faster Data object attributes - data dictionary - screen dictionary Desperately seeking... a lightweight Perl web framework 06/12/2018

11 Architecture III Templates Template::Toolkit (TT2) variable merge, not too complex, encourages using Perl in app modules HTML::Mason – inline code Personal preference; understandable by Web designers XHTML, accessibility, internationalisation Locale::Maketext Form handling, CRUD from db object, validation Data::FormValidator Rich components Testing module unit test, business data object tests, Javascript/browser compatability checks Test::More Test::WWW::Mechanize Test::WWW::Selenium Desperately seeking... a lightweight Perl web framework 06/12/2018

12 Application Components
Pre-built components save time in short term on testing; may cost more long term; integration costs PHP::Session Language Repository Template Component Perl CPAN TT2 Bricolage PHP PEAR Smarty CMSMS Python Built-in Clearsilver Trac Desperately seeking... a lightweight Perl web framework 06/12/2018

13 Perl Application Frameworks
CGI::Application + CGI::Session lightweight, easy to use, reliable, full control, open Watch out for CGI::Builder, based on CGI::App but used to have Makefile.PL that downloaded and eval'd code, also bizarre "Perlish" coding style ; use 5.006_ ; use Carp ; $Carp::Internal{+__PACKAGE__} ; $Carp::Internal{__PACKAGE__.'::_'}++ ; use IO::Util CGI::Framework fixed - glue between HTML::Template, CGI::Session, CGI, Locale::Maketext last release 11-Oct-2005 Jifty one true way: database mapper, template, web services, AJAX toolkit, handlers for FastCGI continuations, form-based dispatch "Jifty is the only web application framework that comes with a pony“ Gantry + Bigtop Apache/mod_perl, MVC Bigtop - web application data language processor, app generator OpenInteract + SPOPS Complex, slow, powerful, CMS-oriented permissions last release 18-Mar-2005 Catalyst agnostic, MVC, complex, magic, powerful, slow (third time in NEXT/C3 OO extension), well tested Works well with DBIx::Class and TT2; can also use Class:DBI, HTML::Mason Many plugins for auth, XML etc. Maypole (ancestor of Catalyst) similar approach Class::DBI, TT2 Desperately seeking... a lightweight Perl web framework 06/12/2018

14 Roll Your Own "Not invented here" syndrome, AKA submitting a module to CPAN with "Lite" or "Plus" in the name. Can base on CGI::Application + CGI::Session Or write one yourself. Easier than you'd think. Here's one written in a week, not pretty but delivered a project delivered fast and on time: Desperately seeking... a lightweight Perl web framework 06/12/2018

15 Summary Processes and decision making requirements business context
CBA decision basis technical considerations, architecture, constraints and features application components Perl application frameworks Desperately seeking... a lightweight Perl web framework 06/12/2018

16 Where to Get More Information
CPAN Books Any Questions These slides are at Desperately seeking... a lightweight Perl web framework 06/12/2018


Download ppt "Desperately Seeking… a lightweight Perl web framework"

Similar presentations


Ads by Google