Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask
|
|
- Charlotte Newton
- 8 years ago
- Views:
Transcription
1 Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62
2 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates Basic template rendering Using ressources Template inheritance Template macros Template language 6 Requests Devert Alexandre Modern Web Application Framework Slide 2/62
3 Model-View-Controller Most of the modern web development frameworks follow the Model-View-Controller model (MVC model) The model : representation of data. Usually, have a strong relation with the database The views : what is shown to the user. Can be any kind of user interface, usually HTML pages with Javascript. The controls : what operation are done on the data. It s a rather convenient way to design software projects involving user interfaces presenting and manipulating data. Devert Alexandre Modern Web Application Framework Slide 3/62
4 Model-View-Controller Application Controller manipulates Model updates View uses shows User Devert Alexandre Modern Web Application Framework Slide 4/62
5 Model-View-Controller Example for Model-View-Controller : an online management game The rule of the game, updating the state of each player the model The HTML pages, showing the various screen of the game the views The methods called when a user click on the screen the controllers Devert Alexandre Modern Web Application Framework Slide 5/62
6 Model-View-Controller Example for Model-View-Controller : an online shop The list of products, the payment rules, delivery orders the model The HTML pages, showing the various screen of the shop the views The methods for payment, order, shopping cart the controllers Devert Alexandre Modern Web Application Framework Slide 6/62
7 Model-View-Controller Model-View-Controller also helps to organize the work Some work on the views graphic designers, HTML, javascript Some work on the model database, software architecture Some work on the controls rather low-level and/or specialized code Some work on writing unit tests for at least the model and the views Devert Alexandre Modern Web Application Framework Slide 7/62
8 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates Basic template rendering Using ressources Template inheritance Template macros Template language 6 Requests Devert Alexandre Modern Web Application Framework Slide 8/62
9 Web application with script language Why using a scripting language for a web application? More adapted language to paste together various components (database, rendering, routing,... ) Make its easier to release early & often Easier to maintain & modify Speed far enough for many use case Devert Alexandre Modern Web Application Framework Slide 9/62
10 Web application with script language Why not PHP, or PHP framework? Designed to make simple web pages, not large web applications Awfully designed programming language very inconsistent libraries very little help for debugging many security issues many better alternatives Detailed explanation here Devert Alexandre Modern Web Application Framework Slide 10/62
11 Web application with script language Why not using Java/JSP/JBoss/Apache/Hibernate/Spring? Even simple changes requires lots of coding Big changes takes a lot of planning Edit/Compile/Run takes more ressource General speed of development much reduced Working without a big fat IDE is tedious But you can use those all this with a script-like language : Grails and Groovy Devert Alexandre Modern Web Application Framework Slide 11/62
12 Flask I am going to introduce the framework Flask It is small : quick to learn and master It is complete : you can use to do serious apps It is lean : a shell and a text editor are enough, no need for an IDE to be efficient with it It is very well documented The same ideas can be found in most web development frameworks. Devert Alexandre Modern Web Application Framework Slide 12/62
13 Flask Flask is a nice glue around existing tools Python programming language SQL Alchemy database Jinja2 HTML template system Werkzeug WSCGI handling (CGI, but better) Devert Alexandre Modern Web Application Framework Slide 13/62
14 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates Basic template rendering Using ressources Template inheritance Template macros Template language 6 Requests Devert Alexandre Modern Web Application Framework Slide 14/62
15 Hello, world! A minimal Flask application from f l a s k i m p o r t F l a s k app = F l a s k ( n a m e r o u t e ( / ) d e f h e l l o ( ) : r e t u r n H e l l o World! i f n a m e == m a i n : app. run ( ) Run this, and open your web browser at Devert Alexandre Modern Web Application Framework Slide 15/62
16 Hello, world! You will see this Devert Alexandre Modern Web Application Framework Slide 16/62
17 Hello, world! This creates an application instance and run it from f l a s k i m p o r t F l a s k app = F l a s k ( n a m e ) i f n a m e == m a i n : app. run ( ) Devert Alexandre Modern Web Application Framework Slide 17/62
18 Hello, world! This adds the hello method to the application r o u t e ( / ) d e f h e l l o ( ) : r e t u r n H e l l o World! hello() will be called every time the address / is requested hello() returns the text data for the web browser Devert Alexandre Modern Web Application Framework Slide 18/62
19 Debugging Triggering the debug mode is easy from f l a s k i m p o r t F l a s k app = F l a s k ( n a m e r o u t e ( / ) d e f h e l l o ( ) : r e t u r n H e l l o World! i f n a m e == m a i n : app. run ( debug = True ) In debug mode, you can edit the code while the server runs : it will restart! Devert Alexandre Modern Web Application Framework Slide 19/62
20 Debugging The debug mode will also helps a lot to point where the problem is Devert Alexandre Modern Web Application Framework Slide 20/62
21 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates Basic template rendering Using ressources Template inheritance Template macros Template language 6 Requests Devert Alexandre Modern Web Application Framework Slide 21/62
22 Function / URL mapping When an URL is requested, Flask will look for its corresponding function. from f l a s k i m p o r t F l a s k app = F l a s k ( n a m e r o u t e ( / ) d e f i n d e x ( ) : r e t u r n I n d e x r o u t e ( / welcome ) d e f h e l l o ( ) : r e t u r n He ll o World i f n a m e == m a i n : app. run ( ) One function return text data. It can be HTM, XML, JSON, etc. Devert Alexandre Modern Web Application Framework Slide 22/62
23 Function / URL mapping You can defines URL with route ( /show name/<name> ) def print name ( name ) : r e t u r n H e l l o, %s! % name It gives a nice way, intuitive way to define ressources on a website. Devert Alexandre Modern Web Application Framework Slide 23/62
24 Function / URL mapping You can make URL parameters r o u t e ( / h e l l o / r o u t e ( / h e l l o /<name> ) d e f h e l l o ( name = None ) : i f name i s None : r e t u r n A h o r s e with no name e l s e : return A horse named %s % name Devert Alexandre Modern Web Application Framework Slide 24/62
25 Function / URL mapping You can enforce the type of a r o u t e ( /team/< i n t : team id> ) def show team ( team id ) : r e t u r n team #%d % team id Flask will check the type for you Devert Alexandre Modern Web Application Framework Slide 25/62
26 Function / URL mapping You can translate function names to URL with url r o u t e ( / ) d e f welcome ( ) : r e t u r n H e l l o r o u t e ( / t e s t ) d e f t e s t ( ) : name = welcome r e t u r n u r l f o r %s = %s % ( name, u r l f o r ( name ) ) Especially convenient when you might have to change the URL naming scheme Devert Alexandre Modern Web Application Framework Slide 26/62
27 Function / URL mapping url for() also works for URL with route ( /show name/<name> ) def print name ( name ) : r e t u r n H e l l o, %s! % r o u t e ( / t e s t ) d e f t e s t ( ) : func name, user name = print name, Alex r e t u r n u r l f o r %s = %s % ( func name, u r l f o r ( func name, name = user name ) ) Devert Alexandre Modern Web Application Framework Slide 27/62
28 Catching HTTP errors The HTTP protocol defines several status codes. status code meaning 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 500 Internal Server Error 501 Not Implemented 503 Service Unavailable Devert Alexandre Modern Web Application Framework Slide 28/62
29 Catching HTTP errors you can catch such e r r o r h a n d l e r ( ) d e f p a g e f o r b i d d e n ( e r r o r ) : p r i n t Hey! You a r e not a l l o w e d to a c c e s s t h i e r r o r h a n d l e r ( ) d e f p a g e n o t f o u n d ( e r r o r ) : p r i n t Ho no! The r e s s o u r c e you want to a c c e s s does not e x i s t : ( Devert Alexandre Modern Web Application Framework Slide 29/62
30 Throwing HTTP errors It is also possible to throw HTTP errors with r o u t e ( / s h o w a c c o u n t i n f o s ) def show account infos ( ) : i f not u s e r. l o g g e d i n : a b o r t ( 401) # Do t h i n g s... For instance, an error 401 to deny access to ressources Devert Alexandre Modern Web Application Framework Slide 30/62
31 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates Basic template rendering Using ressources Template inheritance Template macros Template language 6 Requests Devert Alexandre Modern Web Application Framework Slide 31/62
32 The need for templates Generating HTML directly with code Easy to make very hard to read code Mix-up the control code with the view code Text template system is a convenient and common way to separade the view code from the remaining code Devert Alexandre Modern Web Application Framework Slide 32/62
33 The need for templates Flask uses Jinja2 as template system. There are many others template system Mako, for Python (if you ask me, it s better than Jinja2) JSP, for Java, THE standard for Java. Allow to mix Java & HTML. ASP, for Microsoft products. Allow to mix VBScript & HTML. XSLT is a template system based on XML. Plateform indepedent but not very convenient in practice. Maybe 10 different for every language you can think of Devert Alexandre Modern Web Application Framework Slide 33/62
34 Basic template rendering The function render template takes a path to an HTML file, and arbitrary parameters from f l a s k import Flask, render template app = F l a s k ( n a m e r o u t e ( / h e l l o / r o u t e ( / h e l l o /<name> ) d e f h e l l o ( name = None ) : r e t u r n r e n d e r t e m p l a t e ( h e l l o. html, name = name ) i f n a m e == m a i n : app. run ( ) What will be returned will the content of hello.html Devert Alexandre Modern Web Application Framework Slide 34/62
35 Basic template rendering The HTML file hello.html <! d o c t y p e html> <html> <head> < t i t l e>the w e b s i t e t h a t s a y s H e l l o to you</ t i t l e> </ head> <body> {% i f name %} <h1>h e l l o, {{ name }}!</h1> {% e l s e %} <h1>hello, thing with no name!</h1> {% e n d i f %} </ body> </ html> It s no ordinary HTML there are instruction mixed in! Devert Alexandre Modern Web Application Framework Slide 35/62
36 Basic template rendering The HTML file hello.html <! d o c t y p e html> <html> <head> < t i t l e>the w e b s i t e t h a t s a y s H e l l o to you</ t i t l e> </ head> <body> {% i f name %} <h1>h e l l o, {{ name }}!</h1> {% e l s e %} <h1>hello, thing with no name!</h1> {% e n d i f %} </ body> </ html> hello.html is processed to generate the HTML to send to a user. Here, we use the name variable, passed as a parameter of render template Devert Alexandre Modern Web Application Framework Slide 35/62
37 Basic template rendering The HTML file hello.html <! d o c t y p e html> <html> <head> < t i t l e>the w e b s i t e t h a t s a y s H e l l o to you</ t i t l e> </ head> <body> {% i f name %} <h1>h e l l o, {{ name }}!</h1> {% e l s e %} <h1>hello, thing with no name!</h1> {% e n d i f %} </ body> </ html> Variables values can be rendered to text with {{ }} Devert Alexandre Modern Web Application Framework Slide 35/62
38 Basic template rendering The HTML file hello.html <! d o c t y p e html> <html> <head> < t i t l e>the w e b s i t e t h a t s a y s H e l l o to you</ t i t l e> </ head> <body> {% i f name %} <h1>h e l l o, {{ name }}!</h1> {% e l s e %} <h1>hello, thing with no name!</h1> {% e n d i f %} </ body> </ html> Blocks of code are put between {% %} Devert Alexandre Modern Web Application Framework Slide 35/62
39 Basic template rendering Flask assumes that all your templates will be in a template directory, relative to your script t e m p l a t e s h e l l o. html t e s t. py Devert Alexandre Modern Web Application Framework Slide 36/62
40 Using ressources If you wish to use other file ressources, like pictures or CSS files, you can put them in directory named static t e m p l a t e s h e l l o. html s t a t i c s t y l e. c s s t e s t. py Those resource are not dynamic, not generated on the fly like the HTML code, hence the name static Devert Alexandre Modern Web Application Framework Slide 37/62
41 Using ressources Then, to use those ressources, you can again use url for <! d o c t y p e html> <html> <head> < t i t l e>the w e b s i t e t h a t s a y s H e l l o to you</ t i t l e> <l i n k r e l=s t y l e s h e e t t y p e=t e x t / c s s h r e f= {{ u r l f o r ( s t a t i c, f i l e n a m e = s t y l e. css ) }} > </ head> <body> {% i f name %} <h1>h e l l o, {{ name }}!</h1> {% e l s e %} <h1>hello, thing with no name!</h1> {% e n d i f %} </ body> </ html> Devert Alexandre Modern Web Application Framework Slide 38/62
42 Template inheritance On a typical website, different views follow a similar design Devert Alexandre Modern Web Application Framework Slide 39/62
43 Template inheritance On a typical website, different views follow a similar design Devert Alexandre Modern Web Application Framework Slide 39/62
44 Template inheritance On a typical website, different views follow a similar design Devert Alexandre Modern Web Application Framework Slide 39/62
45 Template inheritance On a typical website, different views follow a similar design Devert Alexandre Modern Web Application Framework Slide 39/62
46 Template inheritance Jinja2 provides a simple way to share a common template and specialize it : template inheritance {% e x t e n d s base. html %} {% b l o c k c o n t e n t %} {% i f name %} <h2>h e l l o, {{ name }}!</h2> {% e l s e %} <h2>hello, thing with no name!</h2> {% e n d i f %} {% e n d b l o c k %} hello.html extends base.html Devert Alexandre Modern Web Application Framework Slide 40/62
47 Template inheritance Jinja2 provides a simple way to share a common template and specialize it : template inheritance {% e x t e n d s base. html %} {% b l o c k c o n t e n t %} {% i f name %} <h2>goodbye, {{ name }}!</h2> {% e l s e %} <h2>goodbye, thing with no name!</h2> {% e n d i f %} {% e n d b l o c k %} goodbye.html extends base.html Devert Alexandre Modern Web Application Framework Slide 40/62
48 Template inheritance And base.html look like this <!DOCTYPE HTML PUBLIC //W3C//DTD HTML 4.01//EN > <html l a n g= en > <head> < t i t l e>s a l u t e. com, t h e w e b s i t e t h a t s a l u t e s you</ t i t l e> <l i n k r e l=s t y l e s h e e t t y p e=t e x t / c s s h r e f= {{ u r l f o r ( s t a t i c, f i l e n a m e = s t y l e. c s s </ head> <body> <div id= container > <div id= header > <h1>salute. com</h1> <p>the w e b s i t e t h a t s a l u t e s you</p> </ d i v> <div id= content > {% b l o c k c o n t e n t %}{% e n d b l o c k %} </ d i v> </ d i v> <d i v i d= f o o t e r > <h2>salute. com</h2> <p>s i t e design & ; copyright © ; Alexandre Devert</p> </ d i v> </ body> </ html> Devert Alexandre Modern Web Application Framework Slide 41/62
49 Template inheritance On the Python side, hello.html and goodbye.html are just normal HTML pages, nothing special to r o u t e ( / h e l l o / r o u t e ( / h e l l o /<name> ) d e f h e l l o ( name = None ) : r e t u r n r e n d e r t e m p l a t e ( h e l l o. html, name = name r o u t e ( / goodbye / r o u t e ( / goodbye/<name> ) def goodbye ( name = None ) : r e t u r n r e n d e r t e m p l a t e ( goodbye. html, name = name ) Devert Alexandre Modern Web Application Framework Slide 42/62
50 Template inheritance In this exemple, extending base.html provides A common title Includes common ressources (css, javascript, etc.) A common header A common footer The specialized part goes in the content block. Coherent look, code reusage, and clean separation! Devert Alexandre Modern Web Application Framework Slide 43/62
51 Template macros On a website, the same user interface elements are often re-used Devert Alexandre Modern Web Application Framework Slide 44/62
52 Template macros On a website, the same user interface elements are often re-used Devert Alexandre Modern Web Application Framework Slide 44/62
53 Template macros We can define reusable HTML bits of codes. {% macro r e n d e r p a n e l ( t i t l e, s t y l e= l e f t ) %} <d i v c l a s s= p a n e l > <h1 c l a s s= {{ s t y l e }} >{{ t i t l e }}</h1> <d i v c l a s s= panel c o n t e n t > <d i v c l a s s= {{ s t y l e }} > {{ c a l l e r ( ) }} </ d i v> </ d i v> </ d i v> {% endmacro %} This define a box, containing whatever caller() will put in it, and with a title. We put this in ui.html Devert Alexandre Modern Web Application Framework Slide 45/62
54 Template macros Now, we can create lots of boxes. {% e x t e n d s base. html %} {% i m p o r t u i. html as u i %} {% b l o c k c o n t e n t %} <div c l a s s= three columns layout > <d i v c l a s s= l e f t column > {% c a l l u i. r e n d e r p a n e l ( Lorem ipsum, l e f t ) %}... b l a b l a... {% e n d c a l l %} {% c a l l u i. r e n d e r p a n e l ( Lorem ipsum, l e f t ) %}... b l a b l a... {% e n d c a l l %} </ d i v> <d i v c l a s s= r i g h t column > {% c a l l u i. r e n d e r p a n e l ( H i s t o r y, l e f t ) %}... b l a b l a... {% e n d c a l l %} {% c a l l u i. r e n d e r p a n e l ( Now i s t h e time f o r a l l good men, l e f t ) %}... b l a b l a... {% e n d c a l l %} </ d i v> </ d i v> {% e n d b l o c k %} No need to copy paste the same HTML code around! Devert Alexandre Modern Web Application Framework Slide 46/62
55 Template macros To use a macro, first import the file that contains that macro {% i m p o r t u i. html as u i %} Then you can call the macro {% c a l l u i. r e n d e r p a n e l ( My T i t l e Here, l e f t ) %}... b l a b l a... {% e n d c a l l %} What is between call and endcall could be any valid HTML code. It will be placed in place of caller in the macro definition. Devert Alexandre Modern Web Application Framework Slide 47/62
56 Template language Jinja templates use their own language, more or less Python-like. It tries to imitate Python But it is not Python Why not having full power of Python in a template? Devert Alexandre Modern Web Application Framework Slide 48/62
57 Template language Jinja provides a limited language because It s a view. No business code here. Just HTML generation. It s a page that might be served for many different users. Should be fast. Devert Alexandre Modern Web Application Framework Slide 49/62
58 Template language The if block works like Python {% i f show advertisement %} <h1>buy Drunk Panda, the b e s t beer i n Suzhou!</h1> {% e n d i f %} Devert Alexandre Modern Web Application Framework Slide 50/62
59 Template language An optional else block works can be used {% i f show advertisement %} <h1>buy Drunk Panda, the b e s t beer i n Suzhou!</h1> {% e l s e %} Do not buy a n y t h i n g {% e n d i f %} Devert Alexandre Modern Web Application Framework Slide 51/62
60 Template language An even elif blocks are available {% i f show beer advertisement %} <h1>buy Drunk Panda, the b e s t beer i n Suzhou!</h1> {% e l i f s h o w p i z z a a d v e r t i s e m e n t %} <h1>buy Pizza Hut, the worst p i z z a s ever!</h1> {% e l s e %} Do not buy a n y t h i n g {% e n d i f %} Devert Alexandre Modern Web Application Framework Slide 52/62
61 Template language The Jinja for loop works like the Python one {% f o r item i n n a v i g a t i o n %} < l i> <a h r e f= {{ item. h r e f }} >{{ item. c a p t i o n }}</a> </ l i> {% e n d f o r %} Note that navigation is a sequence, passed to the template item is one item of the sequence loop code is between {% for %} and {% endfor %} Devert Alexandre Modern Web Application Framework Slide 53/62
62 Template language Jinja provides a loop object that can be called inside a for loop {% f o r item i n n a v i g a t i o n %} < l i> <a h r e f= {{ item. h r e f }} >{{ l o o p. i n d e x }} {{ item. c a p t i o n }}</a> </ l i> {% e n d f o r %} Devert Alexandre Modern Web Application Framework Slide 54/62
63 Template language This loop object provides some useful informations about the current item of the loop loop variable loop.index loop.index0 loop.revindex loop.revindex0 loop.last loop.first meaning Current index (1-indexed) Current index (0-indexed) Current index, reversed order (1-indexed) Current index, reversed order (0-indexed) True if last item True if first item Devert Alexandre Modern Web Application Framework Slide 55/62
64 Template language You can filter the for loop, as in Python {% f o r u s e r i n u s e r l i s t i f not u s e r. i s h i d d e n %} < l i> {{ u s e r. name }} </ l i> {% e n d f o r %} Devert Alexandre Modern Web Application Framework Slide 56/62
65 Template language If the sequence you iterate turns out to be empty, you can catch this case with an else block {% f o r u s e r i n u s e r l i s t i f not u s e r. i s h i d d e n %} < l i> {{ u s e r. name }} </ l i> {% e l s e %} No u s e r s found! {% e n d f o r %} Devert Alexandre Modern Web Application Framework Slide 57/62
66 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates Basic template rendering Using ressources Template inheritance Template macros Template language 6 Requests Devert Alexandre Modern Web Application Framework Slide 58/62
67 Requests We can send data (HTML, JSON, XML, any kind of text), but we also need to receive data passwords checkboxes values... Devert Alexandre Modern Web Application Framework Slide 59/62
68 Requests The HTTP protocol defines different kind of requests GET request to send data POST request to accept data So far, we only handled GET requests : sending HTML data. Devert Alexandre Modern Web Application Framework Slide 60/62
69 Requests We can also handle POST requests, like this from f l a s k i m p o r t r e q u e s r o u t e ( / l o g i n, methods = [ GET, POST ] ) d e f l o g i n ( ) : # GET r e q u e s t i f request. method == GET : r e t u r n r e n d e r t e m p l a t e ( l o g i n. html ) # POST REQUEST e l s e : e m a i l = r e q u e s t. form [ e m a i l ] password = r e q u e s t. form [ password ] # Check e m a i l & password # TODO r e t u r n r e n d e r t e m p l a t e ( welcome. html ) Devert Alexandre Modern Web Application Framework Slide 61/62
70 Requests The request object hold the information sent to the server <form name= l o g i n method= p o s t a c t i o n= {{ u r l f o r ( l o g i n ) }} > <l a b e l> </ l a b e l> <input type= text name= maxlength= 254 /> <l a b e l>password</ l a b e l> <input type= password name= password /> <button </ form> type= submit >Enter</ button> Devert Alexandre Modern Web Application Framework Slide 62/62
Web Development with Flask and the Raspberry Pi Leading by Example CUAUHTEMOC CARBAJAL ITESM CEM 22/04/2014
Web Development with Flask and the Raspberry Pi Leading by Example CUAUHTEMOC CARBAJAL ITESM CEM 22/04/2014 Introduction Flask: lightweight web application framework written in Python and based on the
More informationDeveloping ASP.NET MVC 4 Web Applications MOC 20486
Developing ASP.NET MVC 4 Web Applications MOC 20486 Course Outline Module 1: Exploring ASP.NET MVC 4 The goal of this module is to outline to the students the components of the Microsoft Web Technologies
More informationDeveloping ASP.NET MVC 4 Web Applications
Course M20486 5 Day(s) 30:00 Hours Developing ASP.NET MVC 4 Web Applications Introduction In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools
More informationDeveloping ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led
Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
More informationCredits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf
1 The Web, revisited WEB 2.0 marco.ronchetti@unitn.it Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)
More informationASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT
ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT Dr. Mike Morrison, University of Wisconsin-Eau Claire, morriscm@uwec.edu Dr. Joline Morrison, University of Wisconsin-Eau Claire, morrisjp@uwec.edu
More informationINTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency 1. 420-PA3-AB Introduction to Computers, the Internet, and the Web This course is an introduction to the computer,
More informationOutline. Lecture 18: Ruby on Rails MVC. Introduction to Rails
Outline Lecture 18: Ruby on Rails Wendy Liu CSC309F Fall 2007 Introduction to Rails Rails Principles Inside Rails Hello World Rails with Ajax Other Framework 1 2 MVC Introduction to Rails Agile Web Development
More informationSlides from INF3331 lectures - web programming in Python
Slides from INF3331 lectures - web programming in Python Joakim Sundnes & Hans Petter Langtangen Dept. of Informatics, Univ. of Oslo & Simula Research Laboratory October 2013 Programming web applications
More informationDeveloping Web Views for VMware vcenter Orchestrator
Developing Web Views for VMware vcenter Orchestrator vcenter Orchestrator 5.1 This document supports the version of each product listed and supports all subsequent versions until the document is replaced
More informationEsigate Module Documentation
PORTAL FACTORY 1.0 Esigate Module Documentation Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels to truly control
More informationHTML Form Widgets. Review: HTML Forms. Review: CGI Programs
HTML Form Widgets Review: HTML Forms HTML forms are used to create web pages that accept user input Forms allow the user to communicate information back to the web server Forms allow web servers to generate
More informationCourse Name: Course in JSP Course Code: P5
Course Name: Course in JSP Course Code: P5 Address: Sh No BSH 1,2,3 Almedia residency, Xetia Waddo Duler Mapusa Goa E-mail Id: ITKP@3i-infotech.com Tel: (0832) 2465556 (0832) 6454066 Course Code: P5 3i
More informationGetting Started with SharePoint Three projects. Legislative Service Center (LSC) Homepage Employee Bulletin Board CMS to SharePoint Migration
Tom A. Puleo Legislative Service Center State of Washington NALIT 2008 Getting Started with SharePoint Three projects Legislative Service Center (LSC) Homepage Employee Bulletin Board CMS to SharePoint
More informationPortals and Hosted Files
12 Portals and Hosted Files This chapter introduces Progress Rollbase Portals, portal pages, portal visitors setup and management, portal access control and login/authentication and recommended guidelines
More informationADMINISTRATOR GUIDE VERSION
ADMINISTRATOR GUIDE VERSION 4.0 2014 Copyright 2008 2014. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means electronic or mechanical, for any purpose
More informationDevelopers Guide. Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB. Version: 1.3 2013.10.04 English
Developers Guide Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB Version: 1.3 2013.10.04 English Designs and Layouts, How to implement website designs in Dynamicweb LEGAL INFORMATION
More informationSoftware Development Kit
Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice
More informationHow to Re-Direct Mobile Visitors to Your Library s Mobile App
One of the easiest ways to get your Library s App in the hands of your patrons is to set up a redirect on your website which will sense when a user is on a mobile device and prompt them to select between
More informationGUI and Web Programming
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program
More informationInternet Technologies_1. Doc. Ing. František Huňka, CSc.
1 Internet Technologies_1 Doc. Ing. František Huňka, CSc. Outline of the Course 2 Internet and www history. Markup languages. Software tools. HTTP protocol. Basic architecture of the web systems. XHTML
More informationWeb Applications Testing
Web Applications Testing Automated testing and verification JP Galeotti, Alessandra Gorla Why are Web applications different Web 1.0: Static content Client and Server side execution Different components
More informationSysPatrol - Server Security Monitor
SysPatrol Server Security Monitor User Manual Version 2.2 Sep 2013 www.flexense.com www.syspatrol.com 1 Product Overview SysPatrol is a server security monitoring solution allowing one to monitor one or
More information10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
More informationExample. Represent this as XML
Example INF 221 program class INF 133 quiz Assignment Represent this as XML JSON There is not an absolutely correct answer to how to interpret this tree in the respective languages. There are multiple
More informationHP WebInspect Tutorial
HP WebInspect Tutorial Introduction: With the exponential increase in internet usage, companies around the world are now obsessed about having a web application of their own which would provide all the
More informationWebObjects Web Applications Programming Guide. (Legacy)
WebObjects Web Applications Programming Guide (Legacy) Contents Introduction to WebObjects Web Applications Programming Guide 6 Who Should Read This Document? 6 Organization of This Document 6 See Also
More informationCEFNS Web Hosting a Guide for CS212
CEFNS Web Hosting a Guide for CS212 INTRODUCTION: TOOLS: In CS212, you will be learning the basics of web development. Therefore, you want to keep your tools to a minimum so that you understand how things
More informationWeb Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence
Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence Introduction Client-Side scripting involves using programming technologies to build web pages and applications that are run on the client (i.e.
More informationExample for Using the PrestaShop Web Service : CRUD
Example for Using the PrestaShop Web Service : CRUD This tutorial shows you how to use the PrestaShop web service with PHP library by creating a "CRUD". Prerequisites: - PrestaShop 1.4 installed on a server
More informationThis course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.
20486B: Developing ASP.NET MVC 4 Web Applications Course Overview This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. Course Introduction Course Introduction
More informationPower Tools for Pivotal Tracker
Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development
More informationCrownPeak Java Web Hosting. Version 0.20
CrownPeak Java Web Hosting Version 0.20 2014 CrownPeak Technology, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical,
More informationMigrating helpdesk to a new server
Migrating helpdesk to a new server Table of Contents 1. Helpdesk Migration... 2 Configure Virtual Web on IIS 6 Windows 2003 Server:... 2 Role Services required on IIS 7 Windows 2008 / 2012 Server:... 2
More informationCIS 192: Lecture 10 Web Development with Flask
CIS 192: Lecture 10 Web Development with Flask Lili Dworkin University of Pennsylvania Web Frameworks We ve been talking about making HTTP requests What about serving them? Flask is a microframework small
More informationAn introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0
An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Rational Application Developer, Version 8.0, contains
More informationA Comparative Study of Web Development Technologies Using Open Source and Proprietary Software
Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 4, Issue. 2, February 2015,
More informationWeb development... the server side (of the force)
Web development... the server side (of the force) Fabien POULARD Document under license Creative Commons Attribution Share Alike 2.5 http://www.creativecommons.org/learnmore Web development... the server
More informationSOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
More informationRuby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is
Chris Panayiotou Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is the current buzz in the web development
More informationWeb Pages. Static Web Pages SHTML
1 Web Pages Htm and Html pages are static Static Web Pages 2 Pages tagged with "shtml" reveal that "Server Side Includes" are being used on the server With SSI a page can contain tags that indicate that
More informationWeb+Center Version 7.x Windows Quick Install Guide 2 Tech Free Version Rev March 7, 2012
Web+Center Version 7.x Windows Quick Install Guide 2 Tech Free Version Rev March 7, 2012 1996-2012 Internet Software Sciences Welcome to the Web+Center Installation and Configuration guide. This document
More informationWeb Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.
Web Frameworks web development done right Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.ssa Anna Corazza Outline 2 Web technologies evolution Web frameworks Design Principles
More informationXtreeme Search Engine Studio Help. 2007 Xtreeme
Xtreeme Search Engine Studio Help 2007 Xtreeme I Search Engine Studio Help Table of Contents Part I Introduction 2 Part II Requirements 4 Part III Features 7 Part IV Quick Start Tutorials 9 1 Steps to
More informationLesson 7 - Website Administration
Lesson 7 - Website Administration If you are hired as a web designer, your client will most likely expect you do more than just create their website. They will expect you to also know how to get their
More informationEmbedded BI made easy
June, 2015 1 Embedded BI made easy DashXML makes it easy for developers to embed highly customized reports and analytics into applications. DashXML is a fast and flexible framework that exposes Yellowfin
More informationHow To Use Query Console
Query Console User Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Query Console User
More informationSelectSurvey.NET Developers Manual
Developers Manual (Last updated: 6/24/2012) SelectSurvey.NET Developers Manual Table of Contents: SelectSurvey.NET Developers Manual... 1 Overview... 2 General Design... 2 Debugging Source Code with Visual
More informationhttp://alice.teaparty.wonderland.com:23054/dormouse/bio.htm
Client/Server paradigm As we know, the World Wide Web is accessed thru the use of a Web Browser, more technically known as a Web Client. 1 A Web Client makes requests of a Web Server 2, which is software
More informationCreating a Restaurant Website
11 Creating a Restaurant Website In This Lesson This lesson looks at the process of creating a small business website, in this case for a restaurant. Starting from a needs analysis, this lesson shows you
More informationCIS 192: Lecture 10 Web Development with Flask
CIS 192: Lecture 10 Web Development with Flask Lili Dworkin University of Pennsylvania Last Week s Quiz req = requests.get("http://httpbin.org/get") 1. type(req.text) 2. type(req.json) 3. type(req.json())
More information15 minutes is not much so I will try to give some crucial guidelines and basic knowledge.
1 Presentation. Good morning ladies and gentlemen, dear colleagues. First of all I would like to thank the committee for this invitation and letting me speak about one of my favourite topics: the internet.
More informationDreamFactory & Modus Create Case Study
DreamFactory & Modus Create Case Study By Michael Schwartz Modus Create April 1, 2013 Introduction DreamFactory partnered with Modus Create to port and enhance an existing address book application created
More information1. Tutorial - Developing websites with Kentico 8... 3 1.1 Using the Kentico interface... 3 1.2 Managing content - The basics... 4 1.2.
Kentico 8 Tutorial Tutorial - Developing websites with Kentico 8.................................................................. 3 1 Using the Kentico interface............................................................................
More informationServer-Side Scripting and Web Development. By Susan L. Miertschin
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
More informationWeb Development: Techniques for Handling Content. Shelley Slaey June 2, 2014
Web Development: Techniques for Handling Content Shelley Slaey June 2, 2014 Web Background Author User (Client) Web Server (Server) Web Background Request Response Web Server Request Web Browser Response
More informationNew Features Overview
Master Web Site Development AceHTML 6 Pro is a highly effective tool that allows you to build and manage professional Web sites with ease, control, and efficiency. By balancing power and flexibility, AceHTML
More informationWindows Services Manager
July 2012 Windows Services Manager User Guide Welcome to AT&T Website Solutions SM We are focused on providing you the very best web hosting service including all the tools necessary to establish and maintain
More informationFig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript.
Client-Side Dynamic Web Page Generation CGI, PHP, JSP, and ASP scripts solve the problem of handling forms and interactions with databases on the server. They can all accept incoming information from forms,
More informationChapter 4. Learning Objectives. Learning Objectives. Building an E-commerce Web Site. Building an E-commerce Web Site: A Systematic Approach
Chapter 4 Building an E-commerce Web Site Created by, David Zolzer, Northwestern State University Louisiana Copyright 2002 Pearson Education, Inc. Slide 4-1 Copyright 2002 Pearson Education, Inc. Slide
More informationCSC9B2 Spring 2015 Web Design Practical 1: Introduction to HTML 5
CSC9B2 Spring 2015 Web Design Practical 1: Introduction to HTML 5 AIM To learn the basics of creating web pages with HTML5. Remember to register your practical attendance. This sheet contains one checkpoint.
More informationShoppingcart page type overview
Shoppingcart page type overview Here is a quick overview of it: You can create specially formatted links (see below) anywhere in your app which when tapped by user will ADD an item to shopping cart or
More informationDiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com info@flexense.com 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
More informationGoogle AdWords TM Conversion Tracking Guide
Google AdWords TM Conversion Tracking Guide CONTENTS INTRODUCTION TO CONVERSION TRACKING...2 PRODUCT DESCRIPTION...2 OVERVIEW...2 DEFINITION OF TERMS...3 ADDING THE CODE SNIPPET...4 CONVERSION TRACKING
More informationElgg 1.8 Social Networking
Elgg 1.8 Social Networking Create, customize, and deploy your very networking site with Elgg own social Cash Costello PACKT PUBLISHING open source* community experience distilled - BIRMINGHAM MUMBAI Preface
More informationWorking With Virtual Hosts on Pramati Server
Working With Virtual Hosts on Pramati Server 13 Overview Virtual hosting allows a single machine to be addressed by different names. There are two ways for configuring Virtual Hosts. They are: Domain Name
More informationJBoss Portlet Container. User Guide. Release 2.0
JBoss Portlet Container User Guide Release 2.0 1. Introduction.. 1 1.1. Motivation.. 1 1.2. Audience 1 1.3. Simple Portal: showcasing JBoss Portlet Container.. 1 1.4. Resources. 1 2. Installation. 3 2.1.
More informationBlueball Design Dynamic Content 2 Stack Readme Manual v1.0
Blueball Design Dynamic Content 2 Stack Readme Manual v1.0 A unique responsive stack that dynamically populates and updates a content area within the stack using a warehoused external XML flat text file
More informationGLEN RIDGE PUBLIC SCHOOLS MATHEMATICS MISSION STATEMENT AND GOALS
Course Title: Advanced Web Design Subject: Mathematics / Computer Science Grade Level: 9-12 Duration: 0.5 year Number of Credits: 2.5 Prerequisite: Grade of A or higher in Web Design Elective or Required:
More informationSyllabus INFO-UB-3322. Design and Development of Web and Mobile Applications (Especially for Start Ups)
Syllabus INFO-UB-3322 Design and Development of Web and Mobile Applications (Especially for Start Ups) Fall 2014 Stern School of Business Norman White, KMEC 8-88 Email: nwhite@stern.nyu.edu Phone: 212-998
More informationRelease 1. ICAPRG604A Create cloud computing services
Release 1 ICAPRG604A Create cloud computing services ICAPRG604A Create cloud computing services Modification History Release Release 1 Comments This version first released with ICA11 Information and Communications
More informationTutorial: Building a Web Application with Struts
Tutorial: Building a Web Application with Struts Tutorial: Building a Web Application with Struts This tutorial describes how OTN developers built a Web application for shop owners and customers of the
More informationDesign and Functional Specification
2010 Design and Functional Specification Corpus eready Solutions pvt. Ltd. 3/17/2010 1. Introduction 1.1 Purpose This document records functional specifications for Science Technology English Math (STEM)
More informationMAGENTO TRAINING PROGRAM
Design Integration Guideline MAGENTO TRAINING PROGRAM Contents 1 Standard development workflow 32 Prepare working environment 3 Layout comprehension 34 Introduce Block 5 Understand header and footer elements
More informationFundamentals of Web Design (One Semester)
Fundamentals of Web Design (One Semester) In this course students are introduced to the basics of web page design. Topics include information about the World Wide Web, copyright and e Commerce as well
More informationModule Google Rich Snippets + Product Ratings and Reviews
Module Google Rich Snippets + Product Ratings and Reviews Date : May 13 th, 2013 Business Tech Installation Service If you need help installing and configuring your module, we can offer you an installation
More informationCLC Server Command Line Tools USER MANUAL
CLC Server Command Line Tools USER MANUAL Manual for CLC Server Command Line Tools 2.5 Windows, Mac OS X and Linux September 4, 2015 This software is for research purposes only. QIAGEN Aarhus A/S Silkeborgvej
More informationApp Building Guidelines
App Building Guidelines App Building Guidelines Table of Contents Definition of Apps... 2 Most Recent Vintage Dataset... 2 Meta Info tab... 2 Extension yxwz not yxmd... 3 Map Input... 3 Report Output...
More informationBuilding and Using Web Services With JDeveloper 11g
Building and Using Web Services With JDeveloper 11g Purpose In this tutorial, you create a series of simple web service scenarios in JDeveloper. This is intended as a light introduction to some of the
More informationBEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME System Analysis and Design S.Mohammad Taheri S.Hamed Moghimi Fall 92 1 CHOOSE A PROGRAMMING LANGUAGE FOR THE PROJECT 2 CHOOSE A PROGRAMMING LANGUAGE
More informationJD Edwards EnterpriseOne Tools. 1 Understanding JD Edwards EnterpriseOne Business Intelligence Integration. 1.1 Oracle Business Intelligence
JD Edwards EnterpriseOne Tools Embedded Business Intelligence for JD Edwards EnterpriseOne Release 8.98 Update 4 E21426-02 March 2011 This document provides instructions for using Form Design Aid to create
More informationJTouch Mobile Extension for Joomla! User Guide
JTouch Mobile Extension for Joomla! User Guide A Mobilization Plugin & Touch Friendly Template for Joomla! 2.5 Author: Huy Nguyen Co- Author: John Nguyen ABSTRACT The JTouch Mobile extension was developed
More informationAdvanced Tornado TWENTYONE. 21.1 Advanced Tornado. 21.2 Accessing MySQL from Python LAB
21.1 Advanced Tornado Advanced Tornado One of the main reasons we might want to use a web framework like Tornado is that they hide a lot of the boilerplate stuff that we don t really care about, like escaping
More informationHow To Test The Bandwidth Meter For Hyperv On Windows V2.4.2.2 (Windows) On A Hyperv Server (Windows V2) On An Uniden V2 (Amd64) Or V2A (Windows 2
BANDWIDTH METER FOR HYPER-V NEW FEATURES OF 2.0 The Bandwidth Meter is an active application now, not just a passive observer. It can send email notifications if some bandwidth threshold reached, run scripts
More informationCSE 510 Web Data Engineering
CSE 510 Web Data Engineering Introduction UB CSE 510 Web Data Engineering Staff Instructor: Dr. Michalis Petropoulos Office Hours: Location: TA: Demian Lessa Office Hours: Location: Mon & Wed @ 1-2pm 210
More informationWeb Cloud Architecture
Web Cloud Architecture Introduction to Software Architecture Jay Urbain, Ph.D. urbain@msoe.edu Credits: Ganesh Prasad, Rajat Taneja, Vikrant Todankar, How to Build Application Front-ends in a Service-Oriented
More informationProgramming Fundamentals of Web Applications Course 10958A; 5 Days
Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc Programming Fundamentals of Web Applications Course 10958A; 5 Days Course
More informationGenerate Android App
Generate Android App This paper describes how someone with no programming experience can generate an Android application in minutes without writing any code. The application, also called an APK file can
More informationOffice 888-707-3030. Fax 888-300-3002
Office 888-707-3030 Fax 888-300-3002 1 Reseller Quick-Start Guide Table of Contents Reseller Account Setup Checklist 2 Domain & Name Servers 3 Payment Gateway(s) 4 Dedicated Email Servers 5 Landing Page
More informationA Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 cernyto3@fel.cvut.cz Michael J. Donahoo 2 jeff_donahoo@baylor.edu Abstract: One of the main goals of web application
More informationCreating Online Surveys with Qualtrics Survey Tool
Creating Online Surveys with Qualtrics Survey Tool Copyright 2015, Faculty and Staff Training, West Chester University. A member of the Pennsylvania State System of Higher Education. No portion of this
More informationTIBCO Spotfire Web Player 6.0. Installation and Configuration Manual
TIBCO Spotfire Web Player 6.0 Installation and Configuration Manual Revision date: 12 November 2013 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED
More informationMVC pattern in java web programming
MVC pattern in java web programming Aleksandar Kartelj, Faculty of Mathematics Belgrade DAAD workshop Ivanjica 6. -11.9.2010 Serbia September 2010 Outline 1 2 3 4 5 6 History Simple information portals
More informationMacromedia Dreamweaver 8 Developer Certification Examination Specification
Macromedia Dreamweaver 8 Developer Certification Examination Specification Introduction This is an exam specification for Macromedia Dreamweaver 8 Developer. The skills and knowledge certified by this
More informationDreamweaver CS3 THE MISSING MANUAL. David Sawyer McFarland. POGUE PRESS" O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo
Dreamweaver CS3 THE MISSING MANUAL David Sawyer McFarland POGUE PRESS" O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents The Missing Credits Introduction 1 Part
More informationMicrosoft Dynamics GP. Extender User s Guide
Microsoft Dynamics GP Extender User s Guide Copyright Copyright 2010 Microsoft. All rights reserved. Limitation of liability This document is provided as-is. Information and views expressed in this document,
More informationIntruduction to Groovy & Grails programming languages beyond Java
Intruduction to Groovy & Grails programming languages beyond Java 1 Groovy, what is it? Groovy is a relatively new agile dynamic language for the Java platform exists since 2004 belongs to the family of
More informationHow To Use Titanium Studio
Crossplatform Programming Lecture 3 Introduction to Titanium http://dsg.ce.unipr.it/ http://dsg.ce.unipr.it/?q=node/37 alessandro.grazioli81@gmail.com 2015 Parma Outline Introduction Installation and Configuration
More informationWeb Security. Mahalingam Ramkumar
Web Security Mahalingam Ramkumar Issues Phishing Spreading misinformation Cookies! Authentication Domain name DNS Security Transport layer security Dynamic HTML Java applets, ActiveX, JavaScript Exploiting
More informationINSTALLATION GUIDE VERSION
INSTALLATION GUIDE VERSION 4.1 2014 Copyright 2008 2014. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means electronic or mechanical, for any purpose
More information