SlideShare a Scribd company logo
1 of 21
Download to read offline
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)

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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
 

Recently uploaded

WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...caitlingebhard1
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingScyllaDB
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewDianaGray10
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 

Recently uploaded (20)

WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 

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)