SlideShare una empresa de Scribd logo
1 de 18
MAS.500 - Software Module - Rahul Bhargava 
Web 
Development 
2014.11.14
Topics 
1. MVC and Web Dev 
2. A Variety of Approaches 
3. Microframeworks 
4. Frameworks
Model-View-Controller
Separates storage from 
interaction 
❖ Helps separate code into unique pieces that don’t 
overlap 
❖ Keeps your data storage separate from any specific 
representation of it to a user 
❖ Facilitates code reuse 
❖ read more about “Separation of Concerns”
MVC Summary 
❖ Model: stores your data and any logic needed to use it 
❖ Controller: takes user input, manipulates models, sets 
things up for the views 
❖ View: renders the model data for a user
MVC: Use 
❖ Many application and web frameworks have this baked in 
❖ Rails has Models, Views and Controllers 
❖ iOS has CoreData (NSManagedObject), UIView 
subclasses, UIViewController subclasses 
❖ In-browser JS frameworks use this too 
❖ This way of thinking about your software will pay off 
down the road
MVC dominates the Web 
❖ fat Model represents the data 
❖ Database access + “business logic” 
❖ (sometimes) tells view when data changes 
❖ skinny Controller is glue 
❖ Parse user input, gather data, clean and pass to view 
❖ lightweight View is the UI 
❖ HTML + inline code 
❖ Put re-used code in helper libraries
MVC: Web App Example
A Variety of Approaches 
❖ “CGI”: roll your own quick scripts 
❖ Don’t usually play well with others 
❖ Microframeworks (microkernel) 
❖ Quick spin up, lightweight 
❖ Sinatra (ruby), Flask (Python), etc… 
❖ Frameworks (macrokernel) 
❖ French is easy once you speak French 
❖ Rails (ruby), Django (Python), CakePHP etc… 
❖ Content Management Systems (CMS) 
❖ Core rigid, flexible module system, can get features for free 
❖ Drupal (php), Wordpress (php), etc… 
❖ PS: Javascript is HOT right now 
❖ NodeJS (+express), Meteor, BackboneJS
Microframeworks
Microframeworks 
❖ Positives 
❖ Easier learning curves 
❖ Not many assumptions to learn 
❖ Not many commands to understand 
❖ Get results quickly 
❖ Real web app in just a few lines of code 
❖ Negatives 
❖ Only do a few things out of the box (need libraries to 
do more) 
❖ Don’t scale well with features
Microframework: Flask 
❖ Dependencies 
❖ Python (I still recommend v2.7) 
❖ Python Setup Tools 
❖ Install 
❖ > pip install flask 
❖ Or 
❖ > easy_install flask 
❖ Quickstart 
❖ demo
Microframework: BackboneJS 
❖ In-browser MVC 
❖ demo
Frameworks
Frameworks 
❖ Positives 
❖ Lots of simplifying assumptions 
❖ Built for production environments 
❖ More basics built-in (db, email, etc) 
❖ Negatives 
❖ Opaque 
❖ Takes a while to learn common patterns 
❖ Annoying if you don’t do things “right”
Framework: Rails 
❖ Dependencies 
❖ Ruby (use RVM to install) 
❖ RubyGems 
❖ Install 
❖ > gem install rails 
❖ Quickstart 
❖ Demo 
❖ Install Aptana’s RadRails to get started quickly!
Examples 
❖ Backbone 
❖ https://github.com/rahulbot/GV-GetToKnow-backbone 
❖ Flask 
❖ https://github.com/rahulbot/GV-GetToKnow-flask 
❖ Rails 
❖ https://github.com/rahulbot/GV-GetToKnow-rails
Homework 
❖ see course outline

Más contenido relacionado

La actualidad más candente

Sugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeSugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeEinar Ingebrigtsen
 
Future development stack ~ MeteorJS
Future development stack ~ MeteorJSFuture development stack ~ MeteorJS
Future development stack ~ MeteorJSVictor Stan
 
React - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVCReact - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVCStfalcon Meetups
 
Scale with Microservices
Scale with MicroservicesScale with Microservices
Scale with MicroservicesVõ Duy Tuấn
 
ColdFusion framework comparison
ColdFusion framework comparisonColdFusion framework comparison
ColdFusion framework comparisonVIkas Patel
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) Sascha Sambale
 
Lightning talk - Membase
Lightning talk - MembaseLightning talk - Membase
Lightning talk - MembaseFagner Moura
 
Get MEAN! Node.js and the MEAN stack
Get MEAN!  Node.js and the MEAN stackGet MEAN!  Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stackNicholas McClay
 
How to build a Portofino application
How to build a Portofino applicationHow to build a Portofino application
How to build a Portofino applicationGiampiero Granatella
 
WebAssembly with Rust
WebAssembly with RustWebAssembly with Rust
WebAssembly with RustKnoldus Inc.
 
002. Working with Webpack
002. Working with Webpack002. Working with Webpack
002. Working with WebpackBinh Quan Duc
 
First Step towards WebAssembly with Rust
First Step towards WebAssembly with RustFirst Step towards WebAssembly with Rust
First Step towards WebAssembly with RustKnoldus Inc.
 
Modern Applications With Asp.net Core 5 and Vue JS 3
Modern Applications With Asp.net Core 5 and Vue JS 3Modern Applications With Asp.net Core 5 and Vue JS 3
Modern Applications With Asp.net Core 5 and Vue JS 3Alexandre Malavasi
 

La actualidad más candente (20)

Sugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeSugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a time
 
Future development stack ~ MeteorJS
Future development stack ~ MeteorJSFuture development stack ~ MeteorJS
Future development stack ~ MeteorJS
 
React - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVCReact - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVC
 
MEAN stack
MEAN stackMEAN stack
MEAN stack
 
Scale with Microservices
Scale with MicroservicesScale with Microservices
Scale with Microservices
 
ColdFusion framework comparison
ColdFusion framework comparisonColdFusion framework comparison
ColdFusion framework comparison
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
 
Lightning talk - Membase
Lightning talk - MembaseLightning talk - Membase
Lightning talk - Membase
 
Get MEAN! Node.js and the MEAN stack
Get MEAN!  Node.js and the MEAN stackGet MEAN!  Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
 
How to build a Portofino application
How to build a Portofino applicationHow to build a Portofino application
How to build a Portofino application
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
AS7
AS7AS7
AS7
 
Java
JavaJava
Java
 
WebAssembly with Rust
WebAssembly with RustWebAssembly with Rust
WebAssembly with Rust
 
002. Working with Webpack
002. Working with Webpack002. Working with Webpack
002. Working with Webpack
 
Mean stack
Mean stackMean stack
Mean stack
 
First Step towards WebAssembly with Rust
First Step towards WebAssembly with RustFirst Step towards WebAssembly with Rust
First Step towards WebAssembly with Rust
 
Modern Applications With Asp.net Core 5 and Vue JS 3
Modern Applications With Asp.net Core 5 and Vue JS 3Modern Applications With Asp.net Core 5 and Vue JS 3
Modern Applications With Asp.net Core 5 and Vue JS 3
 
Modern Javascript
Modern JavascriptModern Javascript
Modern Javascript
 
Node.js
Node.jsNode.js
Node.js
 

Destacado

[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategiesrahulbot
 
White paper - Relatório sobre Segurança Cisco
White paper - Relatório sobre Segurança Cisco White paper - Relatório sobre Segurança Cisco
White paper - Relatório sobre Segurança Cisco Cisco do Brasil
 
Aris Games présentation en Français - 2013
Aris Games présentation en Français - 2013Aris Games présentation en Français - 2013
Aris Games présentation en Français - 2013adamsan
 
P course Orientation
P course OrientationP course Orientation
P course Orientationleolaoshi
 
Lighning Talk: PHP build process
Lighning Talk: PHP build processLighning Talk: PHP build process
Lighning Talk: PHP build processBryan Agee
 
The State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila SzegediThe State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila SzegediZeroTurnaround
 
個人電商大未來
個人電商大未來個人電商大未來
個人電商大未來Kay Chen
 
Investigacion y tecnologia
Investigacion y tecnologiaInvestigacion y tecnologia
Investigacion y tecnologiaCinthia Delgado
 
Future of Libraries and Librarians 2011 (Eng)
Future of Libraries and Librarians 2011 (Eng)Future of Libraries and Librarians 2011 (Eng)
Future of Libraries and Librarians 2011 (Eng)Ruth Elizabeth Leonard
 
Muhammad sugiantoro 1210651165 rangkuman pbw
Muhammad sugiantoro 1210651165 rangkuman pbwMuhammad sugiantoro 1210651165 rangkuman pbw
Muhammad sugiantoro 1210651165 rangkuman pbwsugi fener
 
The Digital Technology Startup Ecosystem in Chicago
The Digital Technology Startup Ecosystem in ChicagoThe Digital Technology Startup Ecosystem in Chicago
The Digital Technology Startup Ecosystem in ChicagoBuilt In Chicago
 

Destacado (13)

[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
 
White paper - Relatório sobre Segurança Cisco
White paper - Relatório sobre Segurança Cisco White paper - Relatório sobre Segurança Cisco
White paper - Relatório sobre Segurança Cisco
 
Aris Games présentation en Français - 2013
Aris Games présentation en Français - 2013Aris Games présentation en Français - 2013
Aris Games présentation en Français - 2013
 
P course Orientation
P course OrientationP course Orientation
P course Orientation
 
Lighning Talk: PHP build process
Lighning Talk: PHP build processLighning Talk: PHP build process
Lighning Talk: PHP build process
 
Fli Brand Guidelines
Fli Brand GuidelinesFli Brand Guidelines
Fli Brand Guidelines
 
The State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila SzegediThe State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila Szegedi
 
2. biodata beny alfian
2. biodata beny alfian2. biodata beny alfian
2. biodata beny alfian
 
個人電商大未來
個人電商大未來個人電商大未來
個人電商大未來
 
Investigacion y tecnologia
Investigacion y tecnologiaInvestigacion y tecnologia
Investigacion y tecnologia
 
Future of Libraries and Librarians 2011 (Eng)
Future of Libraries and Librarians 2011 (Eng)Future of Libraries and Librarians 2011 (Eng)
Future of Libraries and Librarians 2011 (Eng)
 
Muhammad sugiantoro 1210651165 rangkuman pbw
Muhammad sugiantoro 1210651165 rangkuman pbwMuhammad sugiantoro 1210651165 rangkuman pbw
Muhammad sugiantoro 1210651165 rangkuman pbw
 
The Digital Technology Startup Ecosystem in Chicago
The Digital Technology Startup Ecosystem in ChicagoThe Digital Technology Startup Ecosystem in Chicago
The Digital Technology Startup Ecosystem in Chicago
 

Similar a [Mas 500] Web Basics

001. Introduction about React
001. Introduction about React001. Introduction about React
001. Introduction about ReactBinh Quan Duc
 
Rongde Qiu-DDsmile-2015.1.25
Rongde Qiu-DDsmile-2015.1.25Rongde Qiu-DDsmile-2015.1.25
Rongde Qiu-DDsmile-2015.1.25Rongde Qiu
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 
Mihai tataran developing modern web applications
Mihai tataran   developing modern web applicationsMihai tataran   developing modern web applications
Mihai tataran developing modern web applicationsITCamp
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Adam Mokan
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS BackendLaurent Cerveau
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.jsKasey McCurdy
 
198970820 p-oooooooooo
198970820 p-oooooooooo198970820 p-oooooooooo
198970820 p-oooooooooohomeworkping4
 
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)Daniel Bryant
 
Spring intro classes-in-mumbai
Spring intro classes-in-mumbaiSpring intro classes-in-mumbai
Spring intro classes-in-mumbaivibrantuser
 
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpChalermpon Areepong
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government DevelopersFrank La Vigne
 

Similar a [Mas 500] Web Basics (20)

001. Introduction about React
001. Introduction about React001. Introduction about React
001. Introduction about React
 
Rongde Qiu-DDsmile-2015.1.25
Rongde Qiu-DDsmile-2015.1.25Rongde Qiu-DDsmile-2015.1.25
Rongde Qiu-DDsmile-2015.1.25
 
Php Framework
Php FrameworkPhp Framework
Php Framework
 
Php framework
Php frameworkPhp framework
Php framework
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Php and-mvc
Php and-mvcPhp and-mvc
Php and-mvc
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Mihai tataran developing modern web applications
Mihai tataran   developing modern web applicationsMihai tataran   developing modern web applications
Mihai tataran developing modern web applications
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
MVC Framework
MVC FrameworkMVC Framework
MVC Framework
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS Backend
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.js
 
198970820 p-oooooooooo
198970820 p-oooooooooo198970820 p-oooooooooo
198970820 p-oooooooooo
 
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
 
Spring intro classes-in-mumbai
Spring intro classes-in-mumbaiSpring intro classes-in-mumbai
Spring intro classes-in-mumbai
 
Spring
SpringSpring
Spring
 
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
 

Más de rahulbot

Data Storytelling for Social Change
Data Storytelling for Social ChangeData Storytelling for Social Change
Data Storytelling for Social Changerahulbot
 
Empowering those that don't "speak" data
Empowering those that don't "speak" dataEmpowering those that don't "speak" data
Empowering those that don't "speak" datarahulbot
 
Hands on Approaches to Data Storytelling
Hands on Approaches to Data StorytellingHands on Approaches to Data Storytelling
Hands on Approaches to Data Storytellingrahulbot
 
Hands on Approaches to Data Storytelling
Hands on Approaches to Data StorytellingHands on Approaches to Data Storytelling
Hands on Approaches to Data Storytellingrahulbot
 
From Data to Argument
From Data to ArgumentFrom Data to Argument
From Data to Argumentrahulbot
 
Data Therapy: Telling Your Story Well
Data Therapy: Telling Your Story WellData Therapy: Telling Your Story Well
Data Therapy: Telling Your Story Wellrahulbot
 
Empowering People with Data
Empowering People with DataEmpowering People with Data
Empowering People with Datarahulbot
 
Practicing Data Science Responsibly
Practicing Data Science ResponsiblyPracticing Data Science Responsibly
Practicing Data Science Responsiblyrahulbot
 
[Mas 500] Visualization
[Mas 500] Visualization[Mas 500] Visualization
[Mas 500] Visualizationrahulbot
 
[Mas 500] Various Topics
[Mas 500] Various Topics[Mas 500] Various Topics
[Mas 500] Various Topicsrahulbot
 
[Mas 500] Mobile Basics
[Mas 500] Mobile Basics[Mas 500] Mobile Basics
[Mas 500] Mobile Basicsrahulbot
 
[Mas 500] Data Basics
[Mas 500] Data Basics[Mas 500] Data Basics
[Mas 500] Data Basicsrahulbot
 
[Mas 500] Intro to Programming
[Mas 500] Intro to Programming[Mas 500] Intro to Programming
[Mas 500] Intro to Programmingrahulbot
 
Putt Putt 101
Putt Putt 101Putt Putt 101
Putt Putt 101rahulbot
 
DataTherapy (Boston: Hub of Innovation)
DataTherapy (Boston: Hub of Innovation)DataTherapy (Boston: Hub of Innovation)
DataTherapy (Boston: Hub of Innovation)rahulbot
 

Más de rahulbot (15)

Data Storytelling for Social Change
Data Storytelling for Social ChangeData Storytelling for Social Change
Data Storytelling for Social Change
 
Empowering those that don't "speak" data
Empowering those that don't "speak" dataEmpowering those that don't "speak" data
Empowering those that don't "speak" data
 
Hands on Approaches to Data Storytelling
Hands on Approaches to Data StorytellingHands on Approaches to Data Storytelling
Hands on Approaches to Data Storytelling
 
Hands on Approaches to Data Storytelling
Hands on Approaches to Data StorytellingHands on Approaches to Data Storytelling
Hands on Approaches to Data Storytelling
 
From Data to Argument
From Data to ArgumentFrom Data to Argument
From Data to Argument
 
Data Therapy: Telling Your Story Well
Data Therapy: Telling Your Story WellData Therapy: Telling Your Story Well
Data Therapy: Telling Your Story Well
 
Empowering People with Data
Empowering People with DataEmpowering People with Data
Empowering People with Data
 
Practicing Data Science Responsibly
Practicing Data Science ResponsiblyPracticing Data Science Responsibly
Practicing Data Science Responsibly
 
[Mas 500] Visualization
[Mas 500] Visualization[Mas 500] Visualization
[Mas 500] Visualization
 
[Mas 500] Various Topics
[Mas 500] Various Topics[Mas 500] Various Topics
[Mas 500] Various Topics
 
[Mas 500] Mobile Basics
[Mas 500] Mobile Basics[Mas 500] Mobile Basics
[Mas 500] Mobile Basics
 
[Mas 500] Data Basics
[Mas 500] Data Basics[Mas 500] Data Basics
[Mas 500] Data Basics
 
[Mas 500] Intro to Programming
[Mas 500] Intro to Programming[Mas 500] Intro to Programming
[Mas 500] Intro to Programming
 
Putt Putt 101
Putt Putt 101Putt Putt 101
Putt Putt 101
 
DataTherapy (Boston: Hub of Innovation)
DataTherapy (Boston: Hub of Innovation)DataTherapy (Boston: Hub of Innovation)
DataTherapy (Boston: Hub of Innovation)
 

Último

Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 

Último (20)

Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 

[Mas 500] Web Basics

  • 1. MAS.500 - Software Module - Rahul Bhargava Web Development 2014.11.14
  • 2. Topics 1. MVC and Web Dev 2. A Variety of Approaches 3. Microframeworks 4. Frameworks
  • 4. Separates storage from interaction ❖ Helps separate code into unique pieces that don’t overlap ❖ Keeps your data storage separate from any specific representation of it to a user ❖ Facilitates code reuse ❖ read more about “Separation of Concerns”
  • 5. MVC Summary ❖ Model: stores your data and any logic needed to use it ❖ Controller: takes user input, manipulates models, sets things up for the views ❖ View: renders the model data for a user
  • 6. MVC: Use ❖ Many application and web frameworks have this baked in ❖ Rails has Models, Views and Controllers ❖ iOS has CoreData (NSManagedObject), UIView subclasses, UIViewController subclasses ❖ In-browser JS frameworks use this too ❖ This way of thinking about your software will pay off down the road
  • 7. MVC dominates the Web ❖ fat Model represents the data ❖ Database access + “business logic” ❖ (sometimes) tells view when data changes ❖ skinny Controller is glue ❖ Parse user input, gather data, clean and pass to view ❖ lightweight View is the UI ❖ HTML + inline code ❖ Put re-used code in helper libraries
  • 8. MVC: Web App Example
  • 9. A Variety of Approaches ❖ “CGI”: roll your own quick scripts ❖ Don’t usually play well with others ❖ Microframeworks (microkernel) ❖ Quick spin up, lightweight ❖ Sinatra (ruby), Flask (Python), etc… ❖ Frameworks (macrokernel) ❖ French is easy once you speak French ❖ Rails (ruby), Django (Python), CakePHP etc… ❖ Content Management Systems (CMS) ❖ Core rigid, flexible module system, can get features for free ❖ Drupal (php), Wordpress (php), etc… ❖ PS: Javascript is HOT right now ❖ NodeJS (+express), Meteor, BackboneJS
  • 11. Microframeworks ❖ Positives ❖ Easier learning curves ❖ Not many assumptions to learn ❖ Not many commands to understand ❖ Get results quickly ❖ Real web app in just a few lines of code ❖ Negatives ❖ Only do a few things out of the box (need libraries to do more) ❖ Don’t scale well with features
  • 12. Microframework: Flask ❖ Dependencies ❖ Python (I still recommend v2.7) ❖ Python Setup Tools ❖ Install ❖ > pip install flask ❖ Or ❖ > easy_install flask ❖ Quickstart ❖ demo
  • 13. Microframework: BackboneJS ❖ In-browser MVC ❖ demo
  • 15. Frameworks ❖ Positives ❖ Lots of simplifying assumptions ❖ Built for production environments ❖ More basics built-in (db, email, etc) ❖ Negatives ❖ Opaque ❖ Takes a while to learn common patterns ❖ Annoying if you don’t do things “right”
  • 16. Framework: Rails ❖ Dependencies ❖ Ruby (use RVM to install) ❖ RubyGems ❖ Install ❖ > gem install rails ❖ Quickstart ❖ Demo ❖ Install Aptana’s RadRails to get started quickly!
  • 17. Examples ❖ Backbone ❖ https://github.com/rahulbot/GV-GetToKnow-backbone ❖ Flask ❖ https://github.com/rahulbot/GV-GetToKnow-flask ❖ Rails ❖ https://github.com/rahulbot/GV-GetToKnow-rails
  • 18. Homework ❖ see course outline