SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Why you should
consider a microframework
for your next web project
by Joaquín Muñoz, age 24 and two thirds.
@Chekosoft | github.com/Chekosoft
A good web framework
is a good companion
because it speeds up development (a lot)

How?
They implement and/or simplify most of the tedious tasks and boilerplate.
● Data manipulation
● Templating
● Security
● Session management
● {insert a tedious but necessary task to do}
The most popular
MVC-based frameworks, like:
But MVCs have a little “problem”

They are

RIGID
But, before going like this:

Because of my previous statement.
Why are they rigid?
● Strict adherence to a set of development
patterns/philosophies/principles.
● If you want to replace one core component, additional work
must be done.
● When a core component is replaced, some “magic” is gone with
it. And replacement magic isn’t as good as the default one.
● Implementing your own magic/extensions/etc require from little
modification to mashing your head on the table.
(the previous statements may not apply to some frameworks)
But they’re rigid
because they need to be
All those cool features are built on top of a rigid, stable base.
(Comfortable, too)
So, it begs the question:

Should I remove the cool things for
customization?
Short answer:

No.
Long answer:

OH GOD PLEASE NO! NO! NOOOOOOO!
“But I really want to do {x} on {y}”
You have two ways:
● Roll Your Own
○ If it doesn’t remove core features:
■ Awesome!
○ If something else breaks in the process:
■ Welcome to Stack Overflow.
● Use a microframework
A microframework like

only deals with a reduced set of tasks
(mostly routing and session handling)
Giving you freedom over the
components/patterns/conventions you want/need to use.
Freedom is a keyword here
So, you can use anything
you want to develop different
aspects of your project
●
●
●
●
●

NoSQL databases
Custom templating engines
ViewModel paradigm
Custom user management
or nothing at all

with little or no additional work.
Think of a microframework as a
nice foundation to stack the components
of your future solution.
Another advantage of microframeworks

If your project is small
the code will be small.
(most of the time)

With an MVC framework, your project starts at almost medium size
and then it grows from there (big projects won’t even notice).
An example

Contoso wants to do a “Hello” public API.
Which answers with “Hello!”.
Let’s pretend this is a very interesting project.
If we use Rails, we should do something like:
$ gem install rails
$rails new hello-app
$rails generate controller hello index
$vim app/controllers/hello.rb
(write the code)
$emacs routes.rb
(write the route file)
$rails s
#Success
It works...
...but all the additional components will only be using extra space.
And it will require time to remove them (or you must remember to not
include them in first place).
If we use Sinatra, this could be done as:
$gem install sinatra
$touch hello.rb
$subl hello.rb
require ‘sinatra’
get ‘/hello’ do
‘Hello!’
end
$rails hello.rb
== Sinatra has taken the stage …
>> Listening on 0.0.0.0:4567
The same happens with Django and Flask
With Django you need to create a project, then an application, then
edit the controllers, add the created application to…
(it keeps going on)

With Flask, you need to do this after getting
it using pip or easy_install (maybe not easy_install).
from flask import Flask
app = Flask(__name__)
@app.route(‘/hello’)
def hello():
return u’Hello!’
if__name__ == ‘__main__’:
app.run()
With ASP.NET MVC, use Visual Studio.
With Nancy, it’s like this:
1.
2.
3.

Create a project with your favorite IDE.
Get Nancy from NuGet
Create a new file (C#) with the following.
namespace Hello {
public class HelloModule: Nancy.NancyModule {
public HelloModule(){
Get[“/hello”] = _ => “Hello!”
}
}
}

Press F5, get bacon.
Thank you for your attention.
And, if you want to use a microframework:
Be Tidy
(Or you’ll really regret it)

Contenu connexe

Tendances

ASP.Net MVC ile Web Uygulamaları -5(Logger)
ASP.Net MVC ile Web Uygulamaları -5(Logger)ASP.Net MVC ile Web Uygulamaları -5(Logger)
ASP.Net MVC ile Web Uygulamaları -5(Logger)İbrahim ATAY
 
Silver Light By Nyros Developer
Silver Light By Nyros DeveloperSilver Light By Nyros Developer
Silver Light By Nyros DeveloperNyros Technologies
 
Fun with ASP.NET MVC 3, MEF and NuGet
Fun with ASP.NET MVC 3, MEF and NuGetFun with ASP.NET MVC 3, MEF and NuGet
Fun with ASP.NET MVC 3, MEF and NuGetMaarten Balliauw
 
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)Barbara Ondrisek
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)Ahmed rebai
 
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Michael Bleigh
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksDejan Glozic
 
AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service
 AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service  AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service
AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service AWS Chicago
 
Migrating your Web app to Virtual Reality
Migrating your Web app to Virtual RealityMigrating your Web app to Virtual Reality
Migrating your Web app to Virtual RealityDenis Radin
 
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...Denis Radin
 
Reactive Guide for Spring MVC - Rossen Stoyanchev
Reactive Guide for Spring MVC - Rossen StoyanchevReactive Guide for Spring MVC - Rossen Stoyanchev
Reactive Guide for Spring MVC - Rossen StoyanchevVMware Tanzu
 
Simple todo app with meteor
Simple todo app with meteorSimple todo app with meteor
Simple todo app with meteorAlex Long
 
Using Backbone with CakePHP
Using Backbone with CakePHPUsing Backbone with CakePHP
Using Backbone with CakePHPRichard McIntyre
 
Your time saving front end workflow
Your time saving front end workflowYour time saving front end workflow
Your time saving front end workflowIcalia Labs
 
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...Adam Khan
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakSigma Software
 
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017Bartek Igielski
 
MVC Architecture in ASP.Net By Nyros Developer
MVC Architecture in ASP.Net By Nyros DeveloperMVC Architecture in ASP.Net By Nyros Developer
MVC Architecture in ASP.Net By Nyros DeveloperNyros Technologies
 

Tendances (20)

ASP.Net MVC ile Web Uygulamaları -5(Logger)
ASP.Net MVC ile Web Uygulamaları -5(Logger)ASP.Net MVC ile Web Uygulamaları -5(Logger)
ASP.Net MVC ile Web Uygulamaları -5(Logger)
 
ASP.NET vNext
ASP.NET vNextASP.NET vNext
ASP.NET vNext
 
Silver Light By Nyros Developer
Silver Light By Nyros DeveloperSilver Light By Nyros Developer
Silver Light By Nyros Developer
 
Fun with ASP.NET MVC 3, MEF and NuGet
Fun with ASP.NET MVC 3, MEF and NuGetFun with ASP.NET MVC 3, MEF and NuGet
Fun with ASP.NET MVC 3, MEF and NuGet
 
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
 
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
 
AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service
 AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service  AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service
AWS Community Day - Paul Kuliniewicz - CloudHSM: Frustration as a Service
 
Migrating your Web app to Virtual Reality
Migrating your Web app to Virtual RealityMigrating your Web app to Virtual Reality
Migrating your Web app to Virtual Reality
 
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
 
Reactive Guide for Spring MVC - Rossen Stoyanchev
Reactive Guide for Spring MVC - Rossen StoyanchevReactive Guide for Spring MVC - Rossen Stoyanchev
Reactive Guide for Spring MVC - Rossen Stoyanchev
 
Simple todo app with meteor
Simple todo app with meteorSimple todo app with meteor
Simple todo app with meteor
 
Using Backbone with CakePHP
Using Backbone with CakePHPUsing Backbone with CakePHP
Using Backbone with CakePHP
 
Your time saving front end workflow
Your time saving front end workflowYour time saving front end workflow
Your time saving front end workflow
 
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
 
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
 
Om & React
Om & ReactOm & React
Om & React
 
MVC Architecture in ASP.Net By Nyros Developer
MVC Architecture in ASP.Net By Nyros DeveloperMVC Architecture in ASP.Net By Nyros Developer
MVC Architecture in ASP.Net By Nyros Developer
 

En vedette

A2 Media Evaluation - Rob Gough
A2 Media Evaluation - Rob GoughA2 Media Evaluation - Rob Gough
A2 Media Evaluation - Rob Goughupsidedownwhat
 
The decade of the 90's gladys
The decade of the 90's gladysThe decade of the 90's gladys
The decade of the 90's gladysGladys Flores
 
Trabajo de amaya rodriguez y jhon fernando garcia bloger
Trabajo de amaya rodriguez y jhon fernando garcia blogerTrabajo de amaya rodriguez y jhon fernando garcia bloger
Trabajo de amaya rodriguez y jhon fernando garcia blogerMelissa Saenz
 
Media A2 Analysis - Short Film
Media A2 Analysis - Short FilmMedia A2 Analysis - Short Film
Media A2 Analysis - Short Filmupsidedownwhat
 
Professor Fred Hollows
Professor Fred HollowsProfessor Fred Hollows
Professor Fred Hollowsdanielle1011
 
Mundo metaforico
Mundo metaforicoMundo metaforico
Mundo metaforicomargiepaula
 
Basant Bansal and Roop Bansal: M3M India
Basant Bansal and Roop Bansal: M3M IndiaBasant Bansal and Roop Bansal: M3M India
Basant Bansal and Roop Bansal: M3M Indiabasant-bansal
 
M3M Project Updates - Roop Bansal, Basant Bansal - M3M India
M3M Project Updates - Roop Bansal, Basant Bansal - M3M IndiaM3M Project Updates - Roop Bansal, Basant Bansal - M3M India
M3M Project Updates - Roop Bansal, Basant Bansal - M3M Indiabasant-bansal
 
Laporan farmasi fisika rheologi
Laporan farmasi fisika rheologiLaporan farmasi fisika rheologi
Laporan farmasi fisika rheologiMina Audina
 
Manual de diseño geometrico de una carretera con civil cad
Manual de diseño geometrico de una carretera con civil cadManual de diseño geometrico de una carretera con civil cad
Manual de diseño geometrico de una carretera con civil cadFreddy Fuentes Navarro
 
makalah adab makan dan minum
makalah adab makan dan minummakalah adab makan dan minum
makalah adab makan dan minumMina Audina
 
Mapas Mentais - Direito Administrativo
Mapas Mentais - Direito AdministrativoMapas Mentais - Direito Administrativo
Mapas Mentais - Direito AdministrativoNorleide Concurseira
 
Squares game for trainers by Rajesh Tagore
Squares game for trainers by Rajesh TagoreSquares game for trainers by Rajesh Tagore
Squares game for trainers by Rajesh TagoreRajesh Tagore
 
Makalah kolesterol dan antikolesterol
Makalah kolesterol dan antikolesterolMakalah kolesterol dan antikolesterol
Makalah kolesterol dan antikolesterolMina Audina
 

En vedette (16)

A2 Media Evaluation - Rob Gough
A2 Media Evaluation - Rob GoughA2 Media Evaluation - Rob Gough
A2 Media Evaluation - Rob Gough
 
The decade of the 90's gladys
The decade of the 90's gladysThe decade of the 90's gladys
The decade of the 90's gladys
 
Trabajo de amaya rodriguez y jhon fernando garcia bloger
Trabajo de amaya rodriguez y jhon fernando garcia blogerTrabajo de amaya rodriguez y jhon fernando garcia bloger
Trabajo de amaya rodriguez y jhon fernando garcia bloger
 
Media A2 Analysis - Short Film
Media A2 Analysis - Short FilmMedia A2 Analysis - Short Film
Media A2 Analysis - Short Film
 
Professor Fred Hollows
Professor Fred HollowsProfessor Fred Hollows
Professor Fred Hollows
 
perniagaan antarabangsa
perniagaan antarabangsaperniagaan antarabangsa
perniagaan antarabangsa
 
Mundo metaforico
Mundo metaforicoMundo metaforico
Mundo metaforico
 
Basant Bansal and Roop Bansal: M3M India
Basant Bansal and Roop Bansal: M3M IndiaBasant Bansal and Roop Bansal: M3M India
Basant Bansal and Roop Bansal: M3M India
 
M3M Project Updates - Roop Bansal, Basant Bansal - M3M India
M3M Project Updates - Roop Bansal, Basant Bansal - M3M IndiaM3M Project Updates - Roop Bansal, Basant Bansal - M3M India
M3M Project Updates - Roop Bansal, Basant Bansal - M3M India
 
Ppt 21 ge
Ppt 21 gePpt 21 ge
Ppt 21 ge
 
Laporan farmasi fisika rheologi
Laporan farmasi fisika rheologiLaporan farmasi fisika rheologi
Laporan farmasi fisika rheologi
 
Manual de diseño geometrico de una carretera con civil cad
Manual de diseño geometrico de una carretera con civil cadManual de diseño geometrico de una carretera con civil cad
Manual de diseño geometrico de una carretera con civil cad
 
makalah adab makan dan minum
makalah adab makan dan minummakalah adab makan dan minum
makalah adab makan dan minum
 
Mapas Mentais - Direito Administrativo
Mapas Mentais - Direito AdministrativoMapas Mentais - Direito Administrativo
Mapas Mentais - Direito Administrativo
 
Squares game for trainers by Rajesh Tagore
Squares game for trainers by Rajesh TagoreSquares game for trainers by Rajesh Tagore
Squares game for trainers by Rajesh Tagore
 
Makalah kolesterol dan antikolesterol
Makalah kolesterol dan antikolesterolMakalah kolesterol dan antikolesterol
Makalah kolesterol dan antikolesterol
 

Similaire à Why you should consider a microframework for your next web project

Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Turja Narayan Chaudhuri
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesFab L
 
Agile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystemAgile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystemTurja Narayan Chaudhuri
 
Agile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemAgile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemCloud Study Network
 
Rethinking Best Practices
Rethinking Best PracticesRethinking Best Practices
Rethinking Best Practicesfloydophone
 
learn mvc project in 7 day
learn mvc project in 7 daylearn mvc project in 7 day
learn mvc project in 7 dayQuach Long
 
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...DevSecCon
 
Web worker in your angular application
Web worker in your angular applicationWeb worker in your angular application
Web worker in your angular applicationSuresh Patidar
 
Web Components
Web ComponentsWeb Components
Web ComponentsFITC
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopMark Masterson
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 
Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9Derek Jacoby
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedGil Fink
 
The Future Is The Cloud
The Future Is The CloudThe Future Is The Cloud
The Future Is The CloudGatsbyjs
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Slobodan Lohja
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara AnjargolianHakka Labs
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 
ASP.NET MVC Introduction
ASP.NET MVC IntroductionASP.NET MVC Introduction
ASP.NET MVC IntroductionSumit Chhabra
 
Austin Web Architecture
Austin Web ArchitectureAustin Web Architecture
Austin Web Architecturejoaquincasares
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to ReactTomasz Bak
 

Similaire à Why you should consider a microframework for your next web project (20)

Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation Slides
 
Agile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystemAgile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystem
 
Agile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemAgile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native Ecosystem
 
Rethinking Best Practices
Rethinking Best PracticesRethinking Best Practices
Rethinking Best Practices
 
learn mvc project in 7 day
learn mvc project in 7 daylearn mvc project in 7 day
learn mvc project in 7 day
 
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
 
Web worker in your angular application
Web worker in your angular applicationWeb worker in your angular application
Web worker in your angular application
 
Web Components
Web ComponentsWeb Components
Web Components
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing Workshop
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrived
 
The Future Is The Cloud
The Future Is The CloudThe Future Is The Cloud
The Future Is The Cloud
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara Anjargolian
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
ASP.NET MVC Introduction
ASP.NET MVC IntroductionASP.NET MVC Introduction
ASP.NET MVC Introduction
 
Austin Web Architecture
Austin Web ArchitectureAustin Web Architecture
Austin Web Architecture
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to React
 

Dernier

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Dernier (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Why you should consider a microframework for your next web project

  • 1. Why you should consider a microframework for your next web project by Joaquín Muñoz, age 24 and two thirds. @Chekosoft | github.com/Chekosoft
  • 2. A good web framework is a good companion because it speeds up development (a lot) How? They implement and/or simplify most of the tedious tasks and boilerplate. ● Data manipulation ● Templating ● Security ● Session management ● {insert a tedious but necessary task to do}
  • 3. The most popular MVC-based frameworks, like:
  • 4. But MVCs have a little “problem” They are RIGID
  • 5. But, before going like this: Because of my previous statement.
  • 6. Why are they rigid? ● Strict adherence to a set of development patterns/philosophies/principles. ● If you want to replace one core component, additional work must be done. ● When a core component is replaced, some “magic” is gone with it. And replacement magic isn’t as good as the default one. ● Implementing your own magic/extensions/etc require from little modification to mashing your head on the table. (the previous statements may not apply to some frameworks)
  • 7. But they’re rigid because they need to be All those cool features are built on top of a rigid, stable base. (Comfortable, too) So, it begs the question: Should I remove the cool things for customization?
  • 8. Short answer: No. Long answer: OH GOD PLEASE NO! NO! NOOOOOOO!
  • 9. “But I really want to do {x} on {y}” You have two ways: ● Roll Your Own ○ If it doesn’t remove core features: ■ Awesome! ○ If something else breaks in the process: ■ Welcome to Stack Overflow. ● Use a microframework
  • 10. A microframework like only deals with a reduced set of tasks (mostly routing and session handling) Giving you freedom over the components/patterns/conventions you want/need to use.
  • 11. Freedom is a keyword here
  • 12. So, you can use anything you want to develop different aspects of your project ● ● ● ● ● NoSQL databases Custom templating engines ViewModel paradigm Custom user management or nothing at all with little or no additional work.
  • 13. Think of a microframework as a nice foundation to stack the components of your future solution.
  • 14. Another advantage of microframeworks If your project is small the code will be small. (most of the time) With an MVC framework, your project starts at almost medium size and then it grows from there (big projects won’t even notice).
  • 15. An example Contoso wants to do a “Hello” public API. Which answers with “Hello!”. Let’s pretend this is a very interesting project.
  • 16. If we use Rails, we should do something like: $ gem install rails $rails new hello-app $rails generate controller hello index $vim app/controllers/hello.rb (write the code) $emacs routes.rb (write the route file) $rails s #Success
  • 17. It works... ...but all the additional components will only be using extra space. And it will require time to remove them (or you must remember to not include them in first place).
  • 18. If we use Sinatra, this could be done as: $gem install sinatra $touch hello.rb $subl hello.rb require ‘sinatra’ get ‘/hello’ do ‘Hello!’ end $rails hello.rb == Sinatra has taken the stage … >> Listening on 0.0.0.0:4567
  • 19. The same happens with Django and Flask With Django you need to create a project, then an application, then edit the controllers, add the created application to… (it keeps going on) With Flask, you need to do this after getting it using pip or easy_install (maybe not easy_install). from flask import Flask app = Flask(__name__) @app.route(‘/hello’) def hello(): return u’Hello!’ if__name__ == ‘__main__’: app.run()
  • 20. With ASP.NET MVC, use Visual Studio. With Nancy, it’s like this: 1. 2. 3. Create a project with your favorite IDE. Get Nancy from NuGet Create a new file (C#) with the following. namespace Hello { public class HelloModule: Nancy.NancyModule { public HelloModule(){ Get[“/hello”] = _ => “Hello!” } } } Press F5, get bacon.
  • 21. Thank you for your attention. And, if you want to use a microframework: Be Tidy (Or you’ll really regret it)