Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:it:catza_net_framework_comparison [2017-10-17 04:19]
127.0.0.1 external edit
en:it:catza_net_framework_comparison [2017-10-19 03:34] (current)
Heikki Siltala
Line 1: Line 1:
-====== ​My comparison on Catalyst, Dancer ​and Mojolicious ======+====== ​Perl MVC frameworks: ​Catalyst, DancerMojolicious ======
  
-<wrap important>​Written in 2010 and so might contain outdated information.</​wrap>​+<wrap important>​Written in 2010 so might contain outdated information.</​wrap>​
  
-I used all the three Perl MVC frameworks (Catalyst, Dancer and Mojolicious) during this project. I started the project with Catalyst and implemented some of the core features and content pages with it. Then I started a side projet ​to test Dancer framework. When the project started I found Mojolicious not to be mature enough for this system. But it developed a lot and later I decided to switch from Catalyst to Mojolicious. The production system at http://​catza.net/​ runs on Mojolicious using [[http://​wiki.nginx.org/​Main|nginx web server]] at the front and [[http://​mojolicio.us/​perldoc/​Mojo/​Server/​Hypnotoad|Hypnotoad]] at the back.+I used all the three Perl MVC frameworks (Catalyst, Dancer and Mojolicious) during this project. I started the project with Catalyst and implemented some of the core features and content pages with it. Then I started a side project ​to test Dancer framework. When the project started I found Mojolicious not to be mature enough for this system. But it developed a lot and later I decided to switch from Catalyst to Mojolicious. The production system at https://​catza.net/​ runs on Mojolicious using [[http://​wiki.nginx.org/​Main|nginx web server]] at the front and [[http://​mojolicio.us/​perldoc/​Mojo/​Server/​Hypnotoad|Hypnotoad]] at the back.
  
 All the three frameworks are developed to a stage that they are ready for production use. They all have nice online documentation and an established user community. Choose any of them and you won't go wrong. All the three frameworks are developed to a stage that they are ready for production use. They all have nice online documentation and an established user community. Choose any of them and you won't go wrong.
Line 11: Line 11:
 Catalyst has been the industry standard Perl MVC framework. It is feature rich and flexible. You can use almost anything with it: various templating systems, Moose, you name it and CPAN has got a plugin for it. The other strong points of Catalyst are its maturity and documentation. There are several books available how to build Catalyst applications. ​ Catalyst has been the industry standard Perl MVC framework. It is feature rich and flexible. You can use almost anything with it: various templating systems, Moose, you name it and CPAN has got a plugin for it. The other strong points of Catalyst are its maturity and documentation. There are several books available how to build Catalyst applications. ​
  
-Making a succesfull ​installation of Catalyst can be painful. First couple of times the installation went smoothly. But at one point hit the trouble. Catalyst didn't work with the latest Moose or something like that and some other conflicts between the required modules arose. It all became very fustrating.+Making a successful ​installation of Catalyst can be painful. First couple of times the installation went smoothly. But at one point hit the trouble. Catalyst didn't work with the latest Moose or something like that and some other conflicts between the required modules arose. It all became very frustrating.
  
-The automated use of Models from Controllers in Catalyst is very nice. In Mojolicious I had to write my own access logic to do that. I also liked the Catalyst way keeping $c separated from $self. The thing I did't like is to spread the dispatching rules all over the controllers and their methods. It is much more intuitive to have them in one place like Mojolicious router has. I also never really learned how to use Catalyst'​s Chained actions in my project. I understood them by reading the examples but when the dispatching became more complex I really lost the track. ​+The automated use of Models from Controllers in Catalyst is very nice. In Mojolicious I had to write my own access logic to do that. I also liked the Catalyst way keeping $c separated from $self. The thing I didn't like is to spread the dispatching rules all over the controllers and their methods. It is much more intuitive to have them in one place like Mojolicious router has. I also never really learned how to use Catalyst'​s Chained actions in my project. I understood them by reading the examples but when the dispatching became more complex I really lost the track. ​
  
 ===== Dancer ===== ===== Dancer =====