Dancer, the light-weight Perl web framework
The beginning of a series of articles about Perl Dancer, the light-weight web framework of Perl.
- Modern Web with Perl, a quick overview (screencast)
- Getting Started with Perl Dancer - Creating an Echo application (screencast)
- Building a blog engine using Perl Dancer (screencast)
- Getting started with Perl Dancer 2 on Digital Ocean
- Hello World with Dancer
- Test Dancer Hello World
- Dancer 1 echo using GET and testing GET
- Dancer 1 echo using POST and testing POST
- Dancer 1 skeleton
- Dancer 1 session
- Migrating (the Perl Maven site) from Dancer 1 to Dancer2
- Hello World with Dancer2 (both single file and skeleton based version)
- Password protecting web pages in Dancer 2
- Counter with Dancer session
- Uploading files using Dancer
- A counter using Perl Dancer and an in-memory SQLite database
- A counter using Perl Dancer and Redis, both in a Docker container
Dancer 2 video course
Availbale as a stand-alone purchase via Leanpub.
- Install on Windows
- Install on Linux and Mac OSX
- Hello World
- Testing Hello World
- Hello World with Visual Studio Code
- Plackup reload on Windows and Linux
- Show current time
- Test 404 and 500 response codes
- Process GET and POST requests
- Exercise 1: Calculator, Counter
- Solution 1: Calculator
- Solution 1: Calculator - fixing
- Solution 1: Counter
- Show errors during development
- Route parameters and sending 404 manually
- More Route parameters and redirect
- Exercise 2: Multi-Counter, Random redirect
- Solution 2: Route-based Multi-Counter
- Solution 2: Random Redirect
- Return JSON
- Before and after Hooks
- Exercise 3: Simple Single-user TODO list API
- Solution 3: Simple Single-user TODO list API
- Upload files
Dancer 2 API and AJAX
- Ajax and Dancer - Simple GET request to the same server returning JSON with "hello world" and displaying it.
- Stand-alone Ajax client and the Access-Control-Allow-Origin issue - Simple cross-site GET request. Set Access-Control-Allow-Origin in the server.
- Reverse Echo with Ajax and Dancer 2 - An HTML form with single input field, sending the value in a GET request to the server displaying the result: the input reversed.
- Refactoring Dancer 2 app, using before hook
- Silencing the noisy Dancer tests
- Add and retrieve items - MongoDB, Dancer and Testing! - The backend part setting up MongoDB, an implementing the back-end part of inserting an item and retrieving a list of items
- Add and retrieve elements - jQuery + Ajax - jQuery retrieve list and show list (building HTML using string concatenation). New HTML form, jQuery POST the text of the item
- Deleting item using Ajax request with DELETE and OPTIONS - Change the list displayed and include a delete button with each item. When clicked send a DELETE request. Add Access-Control-Allow-Methods header and let the server respond to OPTIONS request to fix the issues.
- Replace manual HTML generation by the use of Handlebars
- Add a date stamp to the items in the database and to the HTML - Add a date stamp to the items in the database. Show the list including the date.
- Convert list to table and add jQuery tablesorting with Date column - Let the user sort the data in the browser based on text or based on date.
- Keep data in client and fetch only changes - Stop fetching the full list on every action, so when the user adds a new element to the list, let the server only indicate that it stored the new value, but insert the value in the list kept in the client. Same for delete.
- PSGI - Dancer is a PSGI based web framework. Learning about the lower layer might be useful.
These are the people who supported the crowdfunding campaign of the Dancer SPA eBook. Without them, the book would not be possible. Thank you for your trust and support!
Akshay Mohit, Cyril Grall,
Emmanuel Seyman, Warren Young,
Alfonso Pinto Sampedro, Brandon Wood, John Pendreich, Joseph Kline, Joseph Bakker, Judith Hollenberger, Keith Miller, Larry Sherwood, Lorne Schachter, Michael F Maguire, Norman Gaywood, R Geoffrey Avery, Ray Lauff, Tudor Constantin,
Robert Lawson, Tomek Wardega, Ulrich Reining,
Borkur Gudjonsson, Brian Gaboury, Brian F. Yulga, Ernst Bayer, Issac Goldstand, Jakub Narębski, Jens Löschke, Kaare Rasmussen, Markus Monderkamp, Matija Grabnar, Meir Guttman, Neil Bowers, Nigel, Sachi Purcal, Shimon Cohen, Stewart Leicester, Vegard Vesterheim, Wayne Hall,
Alexandre Mestiashvili, Andrew Solomon, Aranya Sen, Austin Kenny, Bob Lanteigne, Brian Donorfio, Chris Davies, Collin Seaton, Csaba Gaspar, Dale Gamble, David Precious, Eduardo Santiago, Efthimios Mavrogeorgiadis, Eugene Alvin Villar, Gert van Oss, Ian Macdonald, Dave Jacoby, Jochen Schnuerle, John Keener, Jon Lucenius, Jorg Bielak, Jose De Arce, Juan Demerutis, Laurent Rosenfeld, Keren Bartal, Kristen Kjoberg, Magnus Enger, Manfred Laner, Manuel Trujillo, Matthew Persico, Maxim Motylkov, Mikael Asp Somkane, Mike Weisenborn, Mike Whtaker, Mohammad S Anwar, Nikos Vaggalis, Olaf Alders, Paul Johnson, Paul M. Lambert, Peter Ulvskov, Peter Corrigan, Péter Gál, Phil Wells, Robert Threet, Rói á Torkilsheyggi, Simon Green, Stephen Hall, Sven Kirmess, Tim Teasdale, Tim Van den Langenbergh, Tony Edwardson, Tushar Dave, Valerio Paolini, Wolfgang Biker, Zak Zebrowski,
Daniel Maldonado, Ralph Schuler,
Published on 2013-10-24