SlideShare uma empresa 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

[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
 

Destaque (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
 

Semelhante 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 (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
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
 
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
 

Semelhante 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 (ottawa)
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 (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
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
 

Mais 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
 

Mais 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

REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptxREPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptxmanishaJyala2
 
How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17Celine George
 
Software testing for project report .pdf
Software testing for project report .pdfSoftware testing for project report .pdf
Software testing for project report .pdfKamal Acharya
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...Nguyen Thanh Tu Collection
 
Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Celine George
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the lifeNitinDeodare
 
HVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptx
HVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptxHVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptx
HVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptxKunal10679
 
size separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticssize separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticspragatimahajan3
 
Graduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptxGraduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptxneillewis46
 
Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Mohamed Rizk Khodair
 
demyelinated disorder: multiple sclerosis.pptx
demyelinated disorder: multiple sclerosis.pptxdemyelinated disorder: multiple sclerosis.pptx
demyelinated disorder: multiple sclerosis.pptxMohamed Rizk Khodair
 
ANTI PARKISON DRUGS.pptx
ANTI         PARKISON          DRUGS.pptxANTI         PARKISON          DRUGS.pptx
ANTI PARKISON DRUGS.pptxPoojaSen20
 
Championnat de France de Tennis de table/
Championnat de France de Tennis de table/Championnat de France de Tennis de table/
Championnat de France de Tennis de table/siemaillard
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project researchCaitlinCummins3
 
Spring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community PartnershipsSpring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community Partnershipsexpandedwebsite
 
UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024Borja Sotomayor
 
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General QuizPragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General QuizPragya - UEM Kolkata Quiz Club
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文中 央社
 
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatmentsaipooja36
 

Último (20)

REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptxREPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
 
How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17
 
Software testing for project report .pdf
Software testing for project report .pdfSoftware testing for project report .pdf
Software testing for project report .pdf
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the life
 
HVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptx
HVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptxHVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptx
HVAC System | Audit of HVAC System | Audit and regulatory Comploance.pptx
 
size separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticssize separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceutics
 
Word Stress rules esl .pptx
Word Stress rules esl               .pptxWord Stress rules esl               .pptx
Word Stress rules esl .pptx
 
Graduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptxGraduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptx
 
Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).
 
demyelinated disorder: multiple sclerosis.pptx
demyelinated disorder: multiple sclerosis.pptxdemyelinated disorder: multiple sclerosis.pptx
demyelinated disorder: multiple sclerosis.pptx
 
ANTI PARKISON DRUGS.pptx
ANTI         PARKISON          DRUGS.pptxANTI         PARKISON          DRUGS.pptx
ANTI PARKISON DRUGS.pptx
 
Championnat de France de Tennis de table/
Championnat de France de Tennis de table/Championnat de France de Tennis de table/
Championnat de France de Tennis de table/
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
 
Spring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community PartnershipsSpring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community Partnerships
 
UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024
 
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General QuizPragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
 
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 

[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