A Motivating Example: Building a Static Website

Similar documents
Angular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy

All India Council For Research & Training

Etanova Enterprise Solutions

20486: Developing ASP.NET MVC 4 Web Applications (5 Days)

Front End Nanodegree Syllabus

ASP.NET MVC Training

Developing ASP.Net MVC 4 Web Application

Building Effective ASP.NET MVC 5.x Web Applications using Visual Studio 2013

University of North Dakota

EBS goes social - The Triumvirate Liferay, Application Express and EBS

CSCI 1320 Creating Modern Web Applications. Content Management Systems

20486: Developing ASP.NET MVC 4 Web Applications

COURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS

Developing ASP.NET MVC 4 Web Applications

CodeHub. Curran Kelleher 8/18/2012

Course 20486B: Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 5 Web Applications. Course Outline

Visual Studio Course Developing ASP.NET MVC 5 Web Applications

Front End Nanodegree Syllabus

Developing ASP.NET MVC 5 Web Applications

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

20486C: Developing ASP.NET MVC 5 Web Applications

20486 Developing ASP.NET MVC 5 Web Applications

Microsoft Developing ASP.NET MVC 4 Web Applications

This tutorial has been prepared for beginners to help them understand the basic functionalities of Gulp.

Web Design Course Syllabus and Course Outline

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

Architecture and Governance with SharePoint for Internet Sites. Ashish Bahuguna Kartik Shah

55249: Developing with the SharePoint Framework Duration: 05 days

Lab 1 MonarchPress Product Description. Robert O Donnell CS411. Janet Brunelle. September 20, Version #2

Adobe Dreamweaver CS5

Full Stack Web Developer

welcome to BOILERCAMP HOW TO WEB DEV

Static Site Generation

Full Stack Web Developer Nanodegree Syllabus

Web Technology for Test and Automation Applications

Developing ASP.NET MVC 4 Web Applications

How to Install (then Test) the NetBeans Bundle

Drupal 8 THE VIDER ITY APPR OACH

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

Liferay Digital Experience Platform. New Features Summary

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

WebApp development. Outline. Web app structure. HTML basics. 1. Fundamentals of a web app / website. Tiberiu Vilcu

Web Page Designing Manual READ ONLINE

UX400. OpenUI5 Development Foundations COURSE OUTLINE. Course Version: 02 Course Duration: 5 Day(s)

CompuScholar, Inc. Alignment to Utah's Web Development I Standards

Collaboration. Problems in collaboration. The solution

Lab 1 MonarchPress Product Description. Robert O Donnell. Old Dominion University CS411. Janet Brunelle. November 23, 2015.

PASCO SHERIFF S OFFICE POSITION DESCRIPTION

WebDev. Web Design COMBINES A NUMBER OF DISCIPLINES. Web Development Process DESIGN DEVELOPMENT CONTENT MULTIMEDIA

Simple AngularJS thanks to Best Practices

JavaScript and MVC Frameworks FRONT-END ENGINEERING

20486-Developing ASP.NET MVC 4 Web Applications

Google Map for Magento 2

Web Development for Dinosaurs An Introduction to Modern Web Development

Multiple Choice Question Generator on Gitlab Markdown Wiki

Comprehensive AngularJS Programming (5 Days)

August, HPE Propel Microservices & Jumpstart

Static Site Generation

Building Websites for Lake Organizations

Introduction to Web Development

The main website for Henrico County, henrico.us, received a complete visual and structural

Magnolia. Content Management Suite. Slide 1

WEB DEVELOPER BLUEPRINT

Developing ASP.NET MVC Web Applications (486)

INTERFACE FOUNDATIONS OF WEB DEVELOPMENT

Front-End Web Developer Nanodegree Syllabus

FRONT END DEVELOPER CAREER BLUEPRINT

Handbook Design Templates For Website Html5 And Css3 And Jquery

HTML Fundamentals. Code Institute Modular Outline for each Subject in the Program. Quizzes %

Collaborative Authoring Tool

Jason Rundell. Full stack development: Genesis Land. Full Stack Developer: Portfolio

Orlando - Responsive Tumblr Theme

Peers Technologies Pvt. Ltd. SHAREPOINT 2010 SHAREPOINT 2010 USAGE SHAREPOINT SERVER 2010 ADMINISTRATION SHAREPOINT SERVER 2010 DESIGN

Mobile Technologies. Types of Apps

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18

Sphinx prototype Documentation

An Oracle White Paper April Oracle Application Express 5.0 Overview

FlexJS. OmPrakash Apache Flex PMC Member Advisory Software Engineer, IBM

Creating and Managing Snippets

Oracle APEX 18.1 New Features

Modern and Responsive Mobile-enabled Web Applications

Beneath the Surface. How Web Design Impacts Your Site s Health

University of Manchester School of Computer Science. Content Management System for Module Webpages

Web 2.0 Käyttöliittymätekniikat

GMusicProcurator Documentation

eclipse rich ajax platform (rap)

SharePoint Online Office 365 Developer Course Content

Index. Bootstrap framework ASP.NET MVC project set-up, default template, 223

PROCE55 Mobile: Web API App. Web API.

Active Workspace 3.4 Configuration. David McLaughlin / Oct 2017

JBoss Portal Quickstart User Guide. Release 2.6.6

Teachers Manual for Creating a Website with WordPress

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Ten interesting features of Google s Angular Project

Course Details. Skills Gained. Who Can Benefit. Prerequisites. View Online URL:

Product Features. Web-based e-learning Authoring

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1

The 9 th International Scientific Conference elearning and software for Education Bucharest, April 25-26, / X

Transcription:

A Motivating Example: Building a Static Adolfo Villafiorita For more info: http://www.spmbook.com

Types of s Static: content is fixed. Layout and some content might be modified on the client side by Javascript. However, nothing changes on the server side and every time you reload the page, you go back to the initial state. Advantages: resource, efficient, simple to install (work on any hosting platform), secure. Dynamic: content on the server can be updated, through transactions (web requests in the form of URLs with parameters; PUT and POST). Some requests change the state on the server side in a permanent way. Advantage: collaborative, simple to use, scale up with complexity. Some examples: Blog, CMS (Content Management Systems), Wikis (focus on content) WebApps: focus on functions/services (e.g., Google Maps)

Anatomy of a Web Page CSS and Javascript embedded in the HTML page or loaded (locally or from the Internet) Content (HTML) Media Content (Images,...) Presentation (CSS) Behavior (Javascript) Try: inspect page with your browser Conceptual structure (on the left) different from actual deployment: bundling (put together all files) and compression (to speed up loading time)

Anatomy of a WebPage Many sites are expected to work with different devices and different browsers: responsiveness: adapt to the device capabilities and size modernize : make sure all browsers (especially older ones respond in the same way to your code/webpages) Frameworks (libraries) exist to simplify the work. You include libraries as special css and javascript on your website and use their features. Examples include: Foundation, Bootstrap, jquery, Modernizr, Prototype, However: frameworks and libraries evolve and are themselves built on top of other frameworks and libraries which evolve over time. One important need, therefore, is managing runtime dependencies, that is make sure your website uses a known and decided version of each library it depends on Bower

Building a Static A static website is a good solution for small to medium websites whose content does not change very often

Building a Static Simple approach. Write page by page: Tools: text editor, MS Word, LibreOffice, BlueGriffon Advantage: it does not get any simpler ( for small websites) Problems: coherency of layout, reuse of components, behaviours (responsiveness), etc, etc. Slightly more complex approach: share layout and write content: Tools: Freeway Pro, RapidWeaver, iweb, Sandvox Advantage: separation of content from layout; WYSIWYG (WYSIWYM) interaction Problems: you get what the tool allows you to do; lock-in (migrating your existing content to a different tool might be difficult)

Building a Static A nerdish but effective approach: use a static site generator Prepare content, layout, behaviour, and rules for aggregation: the tool aggregates and generates a website Tools: jekyll (jekyllrb.com) and other 294 alternatives (http:// staticsitegenerators.net/) Advantages: separation of content from layout; flexibility, scalability (you increase complexity as the need arises), no vendor lock-in; fun (if you are a programmer) Problems: it requires skills to master the tools; you are in control of everything (can be an advantage or a disadvantage)

Jekyll, a static website generator Sources Content (HTML, Markdown, Textile, Creole) Presentation (CSS) Structured Data (YAML) Jekyll Page Fragments (HTML, Markdown, Textile, Creole) Behavior (Javascript) plugins (Ruby Code) Media Content (Images,...) Layout (HTML)

Jekyll Basic behavior of Jekyll: take all input pages, apply the directives (e.g., layout, inclusion of fragments) and spit the corresponding HTML pages Variations: allow plugins to pre-process input or output in different ways: generation of galleries, management of non standard markup, generate a site map

Input Files (Sources) Jekyll manages different types of input files in different formats: HTML is boring to write: light markup languages (e.g, textile, markdown, org-mode, creole) Javascript is difficult to write: CoffeeScript CSS is limited: SASS Another problem we need to face, therefore, is managing compile-time dependencies: to build my website I need to make sure I m using all the right versions of all the required tools

Moving from one to many developers Some needs: Site Sources (pages, fragments, SASS,...) jekyll plugins (Ruby Code) Programmer 1 Programmer 2 deploy Live everyone starts from the right (latest) version of sources before publishing everyone uses the same tools (management of compile-time dependencies) Site Sources (pages, fragments, SASS,...) jekyll plugins (Ruby Code) deploy everyone uses the same conventions and run-time dependencies (or it will be difficult to avoid interferences ) work is coordinated

Moving from one to many developers Programmer 1 Site Sources (pages, fragments, SASS,...) jekyll deploy Live Source Repository git plugins (Ruby Code) dependency management system Programmer 2 Project Organization (allocation of work, instructions,...) Site Sources (pages, fragments, SASS,...) jekyll deploy git plugins (Ruby Code) dependency management system

Take-home lessons The development of software systems seldom starts from scratch (library and dependencies) Building software systems requires an appropriate technical setup (compile-time library and dependencies) When we move from single to many developers: we need to coordinate work (who does what), contributions (how things are done), development environment (with what tools) we need to protect our assets: make sure we know what is and where is the latest version of the sources