Server-Side Scripting and Web Development By Susan L. Miertschin
The OOP Development Approach OOP = Object Oriented Programming Large production projects are created by teams Each team works on a part as a separate building block for the app In OOP development (and in ASP.NET) the building blocks are classes 11/14/2011 2
Class A class is a blueprint for an object Includes properties Attributes Characteristics Includes methods Functions Operations Behaviors 11/14/2011 3
Abstraction (OOP Terminology) A model of an object that determines Characteristics properties Behaviors methods UML = Unified Modeling Language 11/14/2011 4
Encapsulation (OOP Terminology) Combine characteristics of an object along with its behaviors into one package Data hiding Properties and procedures are hidden Programmer controls exposure of properties and methods available to other objects 11/14/2011 5
Inheritance (OOP Terminology) Form is a frmmain person is a $$customer$$ Base class Superclass parent derived class Subclass child Public Class frmmain Inherits System.Windows.Forms.Form Object-Oriented 11/14/2011 Programming 6
Polymorphism (OOP Terminology) Methods with identical names have different implementations e.g., the Select method is different for radio buttons, check boxes, and list boxes Allows a single class to have more than one method with the same name but different argument lists Polymorphism is the ability to take on Multiple shapes or forms. 11/14/2011 7
Abstraction + Encapsulation + Inheritance + Polymorphism = Support for Reusability REUSABILITY CREATION OF OBJECT FUNCTIONALITY THAT MAY BE USED IN MULTIPLE PROJECTS 11/14/2011 8
Reusable Objects Classes created may be used in multiple projects Example Microsoft Spell Checker 11/14/2011 9
Multitier Applications Write components that can be replaced or modified without replacing or modifying other components Plug-in new components to update or extend the application 11/14/2011 Applications designed as components that work together. Each component performs a service. Each service provides part of the necessary actions. 10
Multitier Applications Three-tier applications are popular Presentation tier Business tier Data tier 11/14/2011 11
Multitier Applications User Services Business Services Data Services User Interface Forms Controls Menus Business Object Validation Calculations Business logic Business rules Data Retrieval Data storage 11/14/2011 12
Multitier Applications Presentation tier the user interface You can change the method of delivery without changing the processing for the task 11/14/2011 13
The Web is the current development platform WEB = CLIENT COMPUTER + BROWSER + WEB SERVER 11/14/2011 14
The Story So Far FML HTML/XHTML for Page Structure CSS for Page Format HTTP for transport WML XML dialects XSLT (Transformations) Clients (browsers) URL/URI for addressing (X)HTML XML HTTP Server (Web Server) Server Side Programming Client-side Programming 11/14/2011 15 for Interactivity
Evolution of Web Technologies Static Web Pages (Text + Images = WOW!) Interactive Pages Recommendation systems HTML 5.0 Dynamic Pages AJAX and RIAs Social Web Semantic Web 11/14/2011 16
Where Are We? Client-Side + Server-Side =?????? 11/14/2011 17
We are Here! Client-Side + Server-Side = A real Web application The Web is the development platform 11/14/2011 18
Ingredients? Have an idea Add a Web server (http) nginx, lighttp, apache, GWS, MS IIS GlassFish, jboss, WebLogic 11/14/2011 19
Netcraft Survey - June 2011 Vendor Product Web Sites Hosted Percent Apache Apache 224,484,657 64.88% Microsoft IIS 58,213,391 16.82% Igor Sysoev nginx 22,668,760 6.55% Google GWS 15,958,106 4.61% 11/14/2011 20
Ingredients? Have an idea Add a Web server (http) nginx, lighttp, apache, GWS, MS IIS GlassFish, jboss, WebLogic Add a Database 11/14/2011 21
Ingredients? An idea? Add a Web server (http) nginx, lighttp, apache, GWS, MS IIS GlassFish, jboss, WebLogic Add a Database Add a server-side technology 11/14/2011 22
Some Server-Side Technologies Python Php Ruby Java.NET Ruby-on-Rails Etc. 11/14/2011 23
MVC Frameworks Model-view-controller Help you structure your code for better performance, maintenance, etc 11/14/2011 24
Server-Side Components Web Server Delivers applications Coordinates functions of applications Programming Language Database Code Libraries frameworks 11/14/2011 25
Why Server Side Programming? Evolution: extend a static web-server to provide more functionality Dynamic content Customized services Persistency (besides cookies) Content-based servers 11/14/2011 26
Web Applications The Current Development Model Web Services Service Oriented Architecture (SOA) Cloud applications Software as a Service 11/14/2011 27
Execution Model Code executed by the web application server sends pages to the client (browser) Pages contain XHTML, CSS, Javascript 11/14/2011 28
Client- vs. Server-side Page-embedded Scripting Client-side HTML and script sent to client Script processed before display in browser Script visible to client Server-side Script processed before sending HTML to client Client receives and displays processed HTML Script hidden from client 11/14/2011 29
Server-Side Scripting and Web Development By Susan L. Miertschin