SlideShare ist ein Scribd-Unternehmen logo
1 von 23
B E S T P R A C T I C E S F O R P R O D U C I N G T O D A Y ’ S
W E B A P P L I C A T I O N S .
B Y
B R E T T M I L L E T T
H T T P : / / S L I D E S H A . R E / W E B S U U
Web Development
Today!
What is a Web Application?
 A Web Application is a collection of several separate, but integrated technologies.
 A Web Application typically has scripting on both the client and server “sides.”
 Web applications typically have many layers.
 Server-side
 Web Server (HTTP Protocol)
 Apache
 Nginx
 IIS
 Programming Interface (Various computer languages)
 PHP
 Ruby
 Python
 Database
 MySQL
 Postgres
 Couch DB
 Client-side
 Web Browser
 JavaScript
 AJAX
 Cascading Style Sheets (CSS)
What is a Web Application?
Server-side Components
 Which components do you choose?
 Factors include:
 Operating System
 Linux or Microsoft?
 OS most often determines Web Server
 Linux: Apache (most common, but there are others)
 Windows: IIS
 Web Server often determines Database & Language
 IIS: Microsoft SQL Server & ASP.NET
 Apache: MySQL & PHP (most common)
 Many other alternatives!
Client-side Components
 Which components do you choose?
 Not so many choices.
 You must support all browsers but they typically
follow standards (C’mon IE!)
 Cascading Styles are pretty standard (new CSS3 spec
is pretty useful)
 JavaScript frameworks are all the rage.
 JQuery
 Protocol
 MooTools
Server-side Components
 Which do I typically choose? LAMP.
 Linux as OS
 Apache for Web Service
 MySQL for database
 PHP for programming language
 LAMP is an acronym for a solution stack. Server-side
technologies to provide a Web application.
 Probably the most common solution stack for Web
Development.
Advantages to the LAMP stack
 The LAMP stack is widely used because it offers a great
number of advantages for developers:
 Easy to code: Novices can build something and get it up and
running very quickly with PHP and MySQL.
 Easy to deploy: Since PHP is a standard Apache module, it is easy
to deploy LAMP web applications by uploading .php files to an
Apache server and connecting to a MySQL database.
 Develop locally: LAMP can be set up so an app can be built locally,
then deployed to the Web.
 Cheap and ubiquitous hosting: Many inexpensive web hosts
provide PHP and MySQL services.
 None of the above reasons mean it’s always the best
solution stack!
Server-side Best Practices
 The Model, View, Controller paradigm
 Greatest thing since sliced bread…for Web developers anyway!
 Web server is abstracted away from this approach.
Any Web Server can be used.
 It’s a developer thing. If you’re a designer you may
only ever deal with the View side of MVC
 So…why is it so great again…?
MVC: Designer Advantages
 Clean HTML templates.
 No need to understand complex programming in a
dynamic Web Application.
 A Website may be completely changed in terms of
design and overall layout without requiring a
programmer!
MVC: Designer Advantages
MVC: Programmer Advantages
 “Pretty” SEO-friendly URLs.
 Keep business logic separate from layout!
 Modularity. Models can be reused.
 Same code can be applied to numerous formats
 Standard and mobile versions of website.
 Feed formats like Atom or RSS
 Data formats like XML or JSON
 Designers can’t mess up your code! ;-)
MVC: Model View Controller
MVC: The Controller
 Routing
 Determines which controller is called via URL.
 Example: http://your-web-site.com/controller/home
 Controls flow of the Web application.
 Convention over configuration.
 Application entry point: URL
 Routing (configuration)
 “Friendly” URL’s
 Requests data from Models.
 Passes data to Views.
 “Thin controllers, fat models…”
 Controllers “know” little about data.
 Concerned only with aggregating data and passing it to view layer.
MVC: The Model
 Creates and returns application data
 XML
 PHP arrays
 Database Object
 JSON
 Business logic relating to application data.
 Returns data to Controller on request.
MVC: The View
 User Interface
 HTML
 RSS
 JSON
 Accepts data from Controller
 Logic Concerned with layout only
 Looping structures to present data (foreach, for, while)
 Templates
 Special markup tags:
 Smarty:
 Name: {$name}<br>
Address: {$address}<br>
 PHP:
 Name: <?=$name?><br>
Address: <?=$address?><br>
Popular MVC Frameworks
 PHP
 Zend Framework
 Symfony
 Cake
 CodeIgniter
 Python
 Django
 Perl
 Catalyst
 Ruby
 Ruby on Rails
 Java
 Struts
 .NET
 ASP.NET MVC Framework
Client-side Best Practices
 Use the least amount of HTML as possible.
 Rely on CSS for layout.
 Unobtrusive JavaScript.
 Implement AJAX after non-script functionality is
assured.
Client-side Best Practices
 Use the least amount of HTML as possible.
 Do not rely on WYSIWYG Editors (Dreamweaver.)
 Do not Use HTML tag attributes for layout purposes. Only for
meta data.
Client-side Best Practices
 Rely on CSS for layout.
 CSS is yet another abstraction that separates your design
elements from your content.
 Makes your webpage yummy for Search Engines (search
engines prefer vitamin supplements over Seven Layer Dip!)
Client-side Best Practices
 Unobtrusive JavaScript.
 Use a JavaScript framework
 JQuery
 Prototype
 “Latch onto” DOM elements and apply events (English for
non-programmers, “onclick in your tag is so 2001!”)
 Create your HTML layout as if JavaScript wasn’t an option.
 After your website is functional without JavaScript, come back
and add JavaScript functionality.
Client-side Best Practices
 Implement AJAX after non-script functionality is
assured.
 Short for Asynchronous JavaScript and XML.
 Create your HTML forms as if AJAX wasn’t an option.
 After your website is functional without AJAX, come back and
add AJAX functionality.
 JQuery’s (or Prototype’s) selector syntax is perfect for
overriding typical form functionality.
The Life and Death of Design
Questions & Answers
 Brett Millett
 Slides:
 http://slidesha.re/websuu/
 Twitter (pretty boring really):
 http://www.twitter.com/brettm73/
 My Website:
 http://www.brettic.us/
 Thank You!

Weitere ähnliche Inhalte

Was ist angesagt?

Web forms and server side scripting
Web forms and server side scriptingWeb forms and server side scripting
Web forms and server side scriptingsawsan slii
 
Web development ppt
Web development pptWeb development ppt
Web development pptParasJain222
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaClark Davidson
 
Client side vs server side
Client side vs server sideClient side vs server side
Client side vs server sideabgjim96
 
Introduction to Basic Concepts in Web
Introduction to Basic Concepts in WebIntroduction to Basic Concepts in Web
Introduction to Basic Concepts in WebJussi Pohjolainen
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websiteswebsiteunlimited
 
Music Downloading Website (HTML,CSS,PHP Presentation)
Music Downloading Website (HTML,CSS,PHP Presentation)Music Downloading Website (HTML,CSS,PHP Presentation)
Music Downloading Website (HTML,CSS,PHP Presentation)Anil Kumar
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student Abhishekchauhan863165
 
online music store
online music storeonline music store
online music storeswatikandoi
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Oleksii Prohonnyi
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introductionshaojung
 
Web Design Course Srigsystems
Web Design Course SrigsystemsWeb Design Course Srigsystems
Web Design Course SrigsystemsSriG Systems
 
Web programming and services
Web programming and servicesWeb programming and services
Web programming and serviceslaibamaqsood
 

Was ist angesagt? (20)

Web forms and server side scripting
Web forms and server side scriptingWeb forms and server side scripting
Web forms and server side scripting
 
Web development ppt
Web development pptWeb development ppt
Web development ppt
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @Cygnismedia
 
Client side vs server side
Client side vs server sideClient side vs server side
Client side vs server side
 
Client and server side scripting
Client and server side scriptingClient and server side scripting
Client and server side scripting
 
Introduction to HTML5 and CSS3
Introduction to HTML5 and CSS3Introduction to HTML5 and CSS3
Introduction to HTML5 and CSS3
 
Introduction to Basic Concepts in Web
Introduction to Basic Concepts in WebIntroduction to Basic Concepts in Web
Introduction to Basic Concepts in Web
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websites
 
Music Downloading Website (HTML,CSS,PHP Presentation)
Music Downloading Website (HTML,CSS,PHP Presentation)Music Downloading Website (HTML,CSS,PHP Presentation)
Music Downloading Website (HTML,CSS,PHP Presentation)
 
Introduction to Web development
Introduction to Web developmentIntroduction to Web development
Introduction to Web development
 
Client & server side scripting
Client & server side scriptingClient & server side scripting
Client & server side scripting
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
 
Client side scripting and server side scripting
Client side scripting and server side scriptingClient side scripting and server side scripting
Client side scripting and server side scripting
 
Scripting Languages
Scripting LanguagesScripting Languages
Scripting Languages
 
Client Side scripting and server side scripting
Client Side scripting and server side scriptingClient Side scripting and server side scripting
Client Side scripting and server side scripting
 
online music store
online music storeonline music store
online music store
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introduction
 
Web Design Course Srigsystems
Web Design Course SrigsystemsWeb Design Course Srigsystems
Web Design Course Srigsystems
 
Web programming and services
Web programming and servicesWeb programming and services
Web programming and services
 

Andere mochten auch

Addressing the HIV Prevention Needs of Black Men & Women
Addressing the HIV Prevention Needs of Black Men & WomenAddressing the HIV Prevention Needs of Black Men & Women
Addressing the HIV Prevention Needs of Black Men & WomenCamille Abrahams Emeagwali
 
educationActions hidden picture games
educationActions   hidden picture gameseducationActions   hidden picture games
educationActions hidden picture gamesIsmandy Buang
 
Taklimat permohonan kemasukan ke ipta utk stpm 2012
Taklimat permohonan kemasukan ke ipta utk stpm 2012Taklimat permohonan kemasukan ke ipta utk stpm 2012
Taklimat permohonan kemasukan ke ipta utk stpm 2012Siti Norhafiza Zanaia Bidin
 
Nevada webinar scott 2010
Nevada webinar scott 2010Nevada webinar scott 2010
Nevada webinar scott 2010Joe Timmons
 
Unobtrusive js
Unobtrusive jsUnobtrusive js
Unobtrusive jsbretticus
 

Andere mochten auch (6)

Addressing the HIV Prevention Needs of Black Men & Women
Addressing the HIV Prevention Needs of Black Men & WomenAddressing the HIV Prevention Needs of Black Men & Women
Addressing the HIV Prevention Needs of Black Men & Women
 
educationActions hidden picture games
educationActions   hidden picture gameseducationActions   hidden picture games
educationActions hidden picture games
 
A model of capacity building assistance (cba)
A model of capacity building assistance (cba)A model of capacity building assistance (cba)
A model of capacity building assistance (cba)
 
Taklimat permohonan kemasukan ke ipta utk stpm 2012
Taklimat permohonan kemasukan ke ipta utk stpm 2012Taklimat permohonan kemasukan ke ipta utk stpm 2012
Taklimat permohonan kemasukan ke ipta utk stpm 2012
 
Nevada webinar scott 2010
Nevada webinar scott 2010Nevada webinar scott 2010
Nevada webinar scott 2010
 
Unobtrusive js
Unobtrusive jsUnobtrusive js
Unobtrusive js
 

Ähnlich wie Web Development Today

Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologiesHosam Kamel
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Bluegrass Digital
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development PresentationTurnToTech
 
Single Page Apps
Single Page AppsSingle Page Apps
Single Page AppsGil Fink
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web ApplicationSachin Walvekar
 
Single page applications with backbone js
Single page applications with backbone jsSingle page applications with backbone js
Single page applications with backbone jsGil Fink
 
ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)Hatem Hamad
 
Web II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentWeb II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentRandy Connolly
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NETRajkumarsoy
 
Aspnet2.0 Introduction
Aspnet2.0 IntroductionAspnet2.0 Introduction
Aspnet2.0 IntroductionChanHan Hy
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetAdil Mughal
 
Lightweight webdev
Lightweight webdevLightweight webdev
Lightweight webdevdamianofusco
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 

Ähnlich wie Web Development Today (20)

Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologies
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 
Single Page Apps
Single Page AppsSingle Page Apps
Single Page Apps
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
 
Single page applications with backbone js
Single page applications with backbone jsSingle page applications with backbone js
Single page applications with backbone js
 
ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)
 
Web II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentWeb II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side development
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Aspnet2.0 Introduction
Aspnet2.0 IntroductionAspnet2.0 Introduction
Aspnet2.0 Introduction
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
Top 10 Javascript Frameworks For Easy Web Development
Top 10 Javascript Frameworks For Easy Web DevelopmentTop 10 Javascript Frameworks For Easy Web Development
Top 10 Javascript Frameworks For Easy Web Development
 
Mvc3 part1
Mvc3   part1Mvc3   part1
Mvc3 part1
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp Net
 
Lightweight webdev
Lightweight webdevLightweight webdev
Lightweight webdev
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 

Kürzlich hochgeladen

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 

Kürzlich hochgeladen (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Web Development Today

  • 1. B E S T P R A C T I C E S F O R P R O D U C I N G T O D A Y ’ S W E B A P P L I C A T I O N S . B Y B R E T T M I L L E T T H T T P : / / S L I D E S H A . R E / W E B S U U Web Development Today!
  • 2. What is a Web Application?  A Web Application is a collection of several separate, but integrated technologies.  A Web Application typically has scripting on both the client and server “sides.”  Web applications typically have many layers.  Server-side  Web Server (HTTP Protocol)  Apache  Nginx  IIS  Programming Interface (Various computer languages)  PHP  Ruby  Python  Database  MySQL  Postgres  Couch DB  Client-side  Web Browser  JavaScript  AJAX  Cascading Style Sheets (CSS)
  • 3. What is a Web Application?
  • 4. Server-side Components  Which components do you choose?  Factors include:  Operating System  Linux or Microsoft?  OS most often determines Web Server  Linux: Apache (most common, but there are others)  Windows: IIS  Web Server often determines Database & Language  IIS: Microsoft SQL Server & ASP.NET  Apache: MySQL & PHP (most common)  Many other alternatives!
  • 5. Client-side Components  Which components do you choose?  Not so many choices.  You must support all browsers but they typically follow standards (C’mon IE!)  Cascading Styles are pretty standard (new CSS3 spec is pretty useful)  JavaScript frameworks are all the rage.  JQuery  Protocol  MooTools
  • 6. Server-side Components  Which do I typically choose? LAMP.  Linux as OS  Apache for Web Service  MySQL for database  PHP for programming language  LAMP is an acronym for a solution stack. Server-side technologies to provide a Web application.  Probably the most common solution stack for Web Development.
  • 7. Advantages to the LAMP stack  The LAMP stack is widely used because it offers a great number of advantages for developers:  Easy to code: Novices can build something and get it up and running very quickly with PHP and MySQL.  Easy to deploy: Since PHP is a standard Apache module, it is easy to deploy LAMP web applications by uploading .php files to an Apache server and connecting to a MySQL database.  Develop locally: LAMP can be set up so an app can be built locally, then deployed to the Web.  Cheap and ubiquitous hosting: Many inexpensive web hosts provide PHP and MySQL services.  None of the above reasons mean it’s always the best solution stack!
  • 8. Server-side Best Practices  The Model, View, Controller paradigm  Greatest thing since sliced bread…for Web developers anyway!  Web server is abstracted away from this approach. Any Web Server can be used.  It’s a developer thing. If you’re a designer you may only ever deal with the View side of MVC  So…why is it so great again…?
  • 9. MVC: Designer Advantages  Clean HTML templates.  No need to understand complex programming in a dynamic Web Application.  A Website may be completely changed in terms of design and overall layout without requiring a programmer!
  • 11. MVC: Programmer Advantages  “Pretty” SEO-friendly URLs.  Keep business logic separate from layout!  Modularity. Models can be reused.  Same code can be applied to numerous formats  Standard and mobile versions of website.  Feed formats like Atom or RSS  Data formats like XML or JSON  Designers can’t mess up your code! ;-)
  • 12. MVC: Model View Controller
  • 13. MVC: The Controller  Routing  Determines which controller is called via URL.  Example: http://your-web-site.com/controller/home  Controls flow of the Web application.  Convention over configuration.  Application entry point: URL  Routing (configuration)  “Friendly” URL’s  Requests data from Models.  Passes data to Views.  “Thin controllers, fat models…”  Controllers “know” little about data.  Concerned only with aggregating data and passing it to view layer.
  • 14. MVC: The Model  Creates and returns application data  XML  PHP arrays  Database Object  JSON  Business logic relating to application data.  Returns data to Controller on request.
  • 15. MVC: The View  User Interface  HTML  RSS  JSON  Accepts data from Controller  Logic Concerned with layout only  Looping structures to present data (foreach, for, while)  Templates  Special markup tags:  Smarty:  Name: {$name}<br> Address: {$address}<br>  PHP:  Name: <?=$name?><br> Address: <?=$address?><br>
  • 16. Popular MVC Frameworks  PHP  Zend Framework  Symfony  Cake  CodeIgniter  Python  Django  Perl  Catalyst  Ruby  Ruby on Rails  Java  Struts  .NET  ASP.NET MVC Framework
  • 17. Client-side Best Practices  Use the least amount of HTML as possible.  Rely on CSS for layout.  Unobtrusive JavaScript.  Implement AJAX after non-script functionality is assured.
  • 18. Client-side Best Practices  Use the least amount of HTML as possible.  Do not rely on WYSIWYG Editors (Dreamweaver.)  Do not Use HTML tag attributes for layout purposes. Only for meta data.
  • 19. Client-side Best Practices  Rely on CSS for layout.  CSS is yet another abstraction that separates your design elements from your content.  Makes your webpage yummy for Search Engines (search engines prefer vitamin supplements over Seven Layer Dip!)
  • 20. Client-side Best Practices  Unobtrusive JavaScript.  Use a JavaScript framework  JQuery  Prototype  “Latch onto” DOM elements and apply events (English for non-programmers, “onclick in your tag is so 2001!”)  Create your HTML layout as if JavaScript wasn’t an option.  After your website is functional without JavaScript, come back and add JavaScript functionality.
  • 21. Client-side Best Practices  Implement AJAX after non-script functionality is assured.  Short for Asynchronous JavaScript and XML.  Create your HTML forms as if AJAX wasn’t an option.  After your website is functional without AJAX, come back and add AJAX functionality.  JQuery’s (or Prototype’s) selector syntax is perfect for overriding typical form functionality.
  • 22. The Life and Death of Design
  • 23. Questions & Answers  Brett Millett  Slides:  http://slidesha.re/websuu/  Twitter (pretty boring really):  http://www.twitter.com/brettm73/  My Website:  http://www.brettic.us/  Thank You!