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

How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 

Último (20)

How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 

[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