Table of Contents. Preface... xi. 1. Introduction... 1 Type Safety 1 Concise Code 2 Performance 2 Modularity 3 A Solid Foundation 3

Size: px
Start display at page:

Download "Table of Contents. Preface... xi. 1. Introduction... 1 Type Safety 1 Concise Code 2 Performance 2 Modularity 3 A Solid Foundation 3"

Transcription

1 Table of Contents Preface xi Part I. Basics 1. Introduction Type Safety 1 Concise Code 2 Performance 2 Modularity 3 A Solid Foundation 3 2. Haskell Terminology 5 Tools 6 Language Pragmas 7 Overloaded Strings 8 Type Families 9 Template Haskell 10 QuasiQuotes 12 API Documentation 12 Summary Basics Hello, World 13 Routing 14 Handler Function 16 The Foundation 16 iii

2 Running 17 Resources and Type-Safe URLs 17 Non-HTML Responses 19 The Scaffolded Site 19 Development Server 20 Summary Shakespearean Templates Synopsis 21 Hamlet (HTML) 22 Lucius (CSS) 22 Cassius (CSS) 22 Julius (JavaScript) 22 Types 23 Type-Safe URLs 24 Syntax 25 Hamlet Syntax 26 Lucius Syntax 31 Cassius Syntax 33 Julius Syntax 33 Calling Shakespeare 33 Alternative Hamlet Types 35 Other Shakespeare 37 General Recommendations Widgets Synopsis 39 What s in a Widget? 41 Constructing Widgets 42 Combining Widgets 43 Generating IDs 44 whamlet 44 Types 45 Using Widgets 46 Using Handler Functions 48 Summary The Yesod Typeclass Rendering and Parsing URLs 51 joinpath 53 cleanpath 53 defaultlayout 55 iv Table of Contents

3 getmessage 56 Custom Error Pages 57 External CSS and JavaScript 58 Smarter Static Files 59 Authentication/Authorization 60 Some Simple Settings 61 Summary Routing and Handlers Route Syntax 63 Pieces 64 Resource Name 66 Handler Specification 67 Dispatch 68 Return Type 68 Arguments 69 The Handler Functions 70 Application Information 71 Request Information 71 Short-Circuiting 71 Response Headers 72 I/O and Debugging 73 Query String and Hash Fragments 74 Summary Forms Synopsis 77 Kinds of Forms 79 Types 80 Converting 82 Creating AForms 82 Optional Fields 83 Validation 84 More Sophisticated Fields 85 Running Forms 86 i18n 87 Monadic Forms 87 Input Forms 90 Custom Fields 91 Values That Don t Come from the User 93 Summary 95 Table of Contents v

4 9. Sessions clientsession 97 Controlling Sessions 98 Session Operations 99 Messages 100 Ultimate Destination 102 Summary Persistent Synopsis 106 Solving the Boundary Issue 107 Types 108 Code Generation 109 PersistStore 112 Migrations 113 Uniqueness 116 Queries 117 Fetching by ID 117 Fetching by Unique Constraint 118 Select Functions 118 Manipulation 120 Insert 120 Update 122 Delete 123 Attributes 123 Relations 126 A Closer Look at Types 127 More Complicated, More Generic 128 Custom Fields 129 Persistent: Raw SQL 130 Integration with Yesod 132 More Complex SQL 134 Something Besides SQLite 134 Summary Deploying Your Web App Keter 137 Compiling 138 Files to Deploy 138 SSL and Static Files 139 Warp 139 Nginx Configuration 140 vi Table of Contents

5 Server Process 142 Nginx + FastCGI 142 Desktop 143 CGI on Apache 144 FastCGI on lighttpd 144 CGI on lighttpd 145 Part II. Advanced 12. RESTful Content Request Methods 149 Representations 150 JSON Conveniences 152 New Data Types 154 Other Request Headers 158 Summary Yesod s Monads Monad Transformers 159 The Three Transformers 160 Example: Database-Driven Navbar 161 Example: Request Information 163 Performance and Error Messages 165 Adding a New Monad Transformer 166 Summary Authentication and Authorization Overview 171 Authenticate Me Authorization 180 Summary Scaffolding and the Site Template How to Scaffold 183 File Structure 184 Cabal File 184 Routes and Entities 185 Foundation and Application Modules 185 Import 186 Handler Modules 187 Table of Contents vii

6 widgetfile 187 defaultlayout 188 Static Files 188 Summary Internationalization Synopsis 191 Overview 193 Message Files 194 Specifying Types 195 RenderMessage typeclass 195 Interpolation 196 Phrases, Not Words Creating a Subsite Hello, World Understanding a Request Handlers 203 Layers 204 Content 205 Short-Circuit Responses 206 Dispatch 206 towaiapp, towaiappplain, and warp 207 Generated Code 208 Complete Code 212 Summary SQL Joins Multiauthor Blog 215 Database Queries in Widgets 217 Joins 218 Esqueleto 219 Streaming 220 Summary Yesod for Haskellers Hello, Warp 225 What About Yesod? 230 The HandlerT Monad Transformer 232 (To)Content, (To)TypedContent 235 HasContentType and Representations 236 viii Table of Contents

7 Convenience warp Function 238 Writing Handlers 238 Getting Request Parameters 238 Short-Circuiting 239 Streaming 239 Dynamic Parameters 241 Routing with Template Haskell 242 LiteApp 244 Shakespeare 245 The URL Rendering Function 247 Widgets 247 Details We Won t Cover 248 Part III. Examples 21. Initializing Data in the Foundation Data Type Step 1: Define Your Foundation 252 Step 2: Use the Foundation 252 Step 3: Create the Foundation Value 252 Summary Blog: i18n, Authentication, Authorization, and Database Wiki: Markdown, Chat Subsite, Event Source Subsite: Data 265 Subsite: Handlers 266 Subsite: Widget 269 Master Site: Data 271 Master Site: Instances 272 Master Site: Wiki Handlers 273 Master Site: Running 274 Summary JSON Web Service Server 277 Client Case Study: Sphinx-Based Search Sphinx Setup 281 Basic Yesod Setup 282 Searching 285 Table of Contents ix

8 Streaming xmlpipe Output 288 Full Code Visitor Counter Single-Process Pub/Sub Foundation Data Type 299 Allocate a Job 300 Fork Our Background Job 300 View Progress 301 Complete Application Environment Variables for Configuration Route Attributes Alternative Approach: Hierarchical Routes 309 Part IV. Appendices A. monad-control B. Web Application Interface C. Settings Types D. http-conduit E. xml-conduit Index x Table of Contents

9 CHAPTER 1 Introduction Since web programming began, people have been trying to make the development process a more pleasant one. As a community, we have continually pushed new techniques in an effort to solve some of the lingering difficulties of security threats, the stateless nature of HTTP, the multiple languages (HTML, CSS, JavaScript) necessary to create a powerful web application, and more. Yesod attempts to ease the web development process by playing to the strengths of the Haskell programming language. Haskell s strong compile-time guarantees of correctness do not encompass only types; referential transparency ensures that we don t have any unintended side effects. Pattern matching on algebraic data types can help guarantee we ve accounted for every possible case. By building upon Haskell, entire classes of bugs disappear. Unfortunately, using Haskell isn t enough. The Web, by its very nature, is not type safe. Even the simplest case of distinguishing between an integer and a string is impossible: all data on the Web is transferred as raw bytes, evading our best efforts at type safety. Every app writer is left with the task of validating all input. I call this problem the boundary issue: however type safe your application is on the inside, every boundary with the outside world still needs to be sanitized. Type Safety This is where Yesod comes in. By using high-level declarative techniques, you can specify the exact input types you are expecting. And the process works the other way as well: by using type-safe URLs, you can make sure that the data you send out is also guaranteed to be well formed. The boundary issue is not just a problem when dealing with the client: the same problem exists when persisting and loading data. Once again, Yesod saves you on the 1

10 boundary by performing the marshaling of data for you. You can specify your entities in a high-level definition and remain blissfully ignorant of the details. Concise Code We all know that there is a lot of boilerplate coding involved in web applications. Wherever possible, Yesod tries to use Haskell s features to save your fingers the work: The forms library reduces the amount of code used for common cases by leveraging the Applicative typeclass. Routes are declared in a very terse format, without sacrificing type safety. Serializing your data to and from a database is handled automatically via code generation. In Yesod, we have two kinds of code generation. To get your project started, we provide a scaffolding tool to set up your file and folder structure. However, most code generation is done at compile time via metaprogramming. This means your generated code will never get stale, as a simple library upgrade will bring all your generated code up to date. But if you prefer to retain more control, and you want to know exactly what your code is doing, you can always run closer to the compiler and write all your code yourself. Performance Haskell s main compiler, the Glasgow Haskell Compiler (GHC), has amazing performance characteristics and is improving all the time. This choice of language by itself gives Yesod a large performance advantage over other offerings. But that s not enough: we need an architecture designed for performance. Our approach to templates is one example: by allowing HTML, CSS, and JavaScript to be analyzed at compile time, Yesod both avoids costly disk I/O at runtime and can optimize the rendering of this code. But the architectural decisions go deeper: we use advanced techniques such as conduits and builders in the underlying libraries to make sure our code runs in constant memory, without exhausting precious file handles and other resources. By offering high-level abstractions, you can get highly compressed and properly cached CSS and JavaScript. Yesod s flagship web server, Warp, is the fastest Haskell web server around. When these two pieces of technology are combined, it produces one of the fastest web application deployment solutions available. 2 Chapter 1: Introduction

11 Modularity Yesod has spawned the creation of dozens of packages, most of which are usable in a context outside of Yesod itself. One of the goals of the project is to contribute back to the community as much as possible; as such, even if you are not planning on using Yesod in your next project, a large portion of this book may still be relevant for your needs. Of course, these libraries have all been designed to integrate well together. Using the Yesod framework should give you a strong feeling of consistency throughout the various APIs. A Solid Foundation I remember once seeing a PHP framework advertising support for UTF-8. This struck me as surprising: you mean having UTF-8 support isn t automatic? In the Haskell world, issues like character encoding are already well addressed and fully supported. In fact, we usually have the opposite problem: there are a number of packages providing powerful and well-designed support for the problem. The Haskell community is constantly pushing the boundaries to find the cleanest, most efficient solutions for each challenge. The downside of such a powerful ecosystem is the complexity of choice. By using Yesod, you will already have most of the tools chosen for you, and you can be guaranteed they work together. And of course, you always have the option of pulling in your own solution. As a real-life example, Yesod and Hamlet (the default templating language) use blaze-builder for textual content generation. This choice was made because blazebuilder provides the fastest interface for generating UTF-8 data. Anyone who wants to use one of the other great libraries out there, such as text, should have no problem dropping it in. Modularity 3

12 Want to read more? You can buy this book at oreilly.com in print and ebook format. Buy 2 books, get the 3rd FREE! Use discount code: OPC10 All orders over $29.95 qualify for free shipping within the US. It s also available at your favorite book retailer, including the ibookstore, the Android Marketplace, and Amazon.com. Spreading the knowledge of innovators oreilly.com

Developing Web Applications with Haskell and Yesod

Developing Web Applications with Haskell and Yesod Developing Web Applications with Haskell and Yesod Michael Snoyman Beijing Cambridge Farnham Köln Sebastopol Tokyo Developing Web Applications with Haskell and Yesod by Michael Snoyman Copyright 2012 Michael

More information

What Is React Native?

What Is React Native? CHAPTER 1 What Is React Native? React Native is a JavaScript framework for writing real, natively rendering mobile applications for ios and Android. It s based on React, Facebook s JavaScript library for

More information

Developing ASP.NET MVC 5 Web Applications. Course Outline

Developing ASP.NET MVC 5 Web Applications. Course Outline Developing ASP.NET MVC 5 Web Applications Course Outline Module 1: Exploring ASP.NET MVC 5 The goal of this module is to outline to the students the components of the Microsoft Web Technologies stack,

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Before you start proceeding with this tutorial, we are assuming that you are already aware about the basics of Web development.

Before you start proceeding with this tutorial, we are assuming that you are already aware about the basics of Web development. About the Tutorial This tutorial will give you an idea of how to get started with SharePoint development. Microsoft SharePoint is a browser-based collaboration, document management platform and content

More information

ASP.NET MVC Training

ASP.NET MVC Training TRELLISSOFT ASP.NET MVC Training About This Course: Audience(s): Developers Technology: Visual Studio Duration: 6 days (48 Hours) Language(s): English Overview In this course, students will learn to develop

More information

Developing ASP.Net MVC 4 Web Application

Developing ASP.Net MVC 4 Web Application Developing ASP.Net MVC 4 Web Application About this Course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will

More information

Developing ASP.NET MVC 5 Web Applications

Developing ASP.NET MVC 5 Web Applications Developing ASP.NET MVC 5 Web Applications Course 20486C; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework tools

More information

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

COURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS ABOUT THIS COURSE In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will be on coding activities that enhance the

More information

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Wakanda Architecture Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Note: For a more general overview of Wakanda, please see What is Wakanda?) Wakanda

More information

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

20486: Developing ASP.NET MVC 4 Web Applications (5 Days) www.peaklearningllc.com 20486: Developing ASP.NET MVC 4 Web Applications (5 Days) About this Course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework

More information

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications Developing ASP.NET MVC 4 Web Applications Course 20486B; 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 information

20486 Developing ASP.NET MVC 5 Web Applications

20486 Developing ASP.NET MVC 5 Web Applications Course Overview In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework tools and technologies. The focus will be on coding activities that enhance the performance

More information

Getting MEAN. with Mongo, Express, Angular, and Node SIMON HOLMES MANNING SHELTER ISLAND

Getting MEAN. with Mongo, Express, Angular, and Node SIMON HOLMES MANNING SHELTER ISLAND Getting MEAN with Mongo, Express, Angular, and Node SIMON HOLMES MANNING SHELTER ISLAND For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher

More information

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies HTTP Hypertext Transfer Protocol (HTTP) Connectionless protocol Client sends an HTTP request to a Web server Gets an HTTP response

More information

20486: Developing ASP.NET MVC 4 Web Applications

20486: Developing ASP.NET MVC 4 Web Applications 20486: Developing ASP.NET MVC 4 Web Applications Length: 5 days Audience: Developers Level: 300 OVERVIEW In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework

More information

School of Haskell. Haskell Development Center. Gregg Lebovitz Director, Client Projects FP Complete

School of Haskell. Haskell Development Center. Gregg Lebovitz Director, Client Projects FP Complete School of Haskell Haskell Development Center Gregg Lebovitz Director, Client Projects FP Complete Agenda Explain Design Goals Tell the story behind School of Haskell Demonstrate current implementation

More information

Real Life Web Development. Joseph Paul Cohen

Real Life Web Development. Joseph Paul Cohen Real Life Web Development Joseph Paul Cohen joecohen@cs.umb.edu Index 201 - The code 404 - How to run it? 500 - Your code is broken? 200 - Someone broke into your server? 400 - How are people using your

More information

10267A CS: Developing Web Applications Using Microsoft Visual Studio 2010

10267A CS: Developing Web Applications Using Microsoft Visual Studio 2010 10267A CS: Developing Web Applications Using Microsoft Visual Studio 2010 Course Overview This instructor-led course provides knowledge and skills on developing Web applications by using Microsoft Visual

More information

Microsoft Developing ASP.NET MVC 4 Web Applications

Microsoft Developing ASP.NET MVC 4 Web Applications 1800 ULEARN (853 276) www.ddls.com.au Microsoft 20486 - Developing ASP.NET MVC 4 Web Applications Length 5 days Price $4290.00 (inc GST) Version C Overview In this course, students will learn to develop

More information

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/... PROCE55 Mobile: Web API App PROCE55 Mobile with Test Web API App Web API App Example This example shows how to access a typical Web API using your mobile phone via Internet. The returned data is in JSON

More information

Review of Mobile Web Application Frameworks

Review of Mobile Web Application Frameworks Review of Mobile Web Application Frameworks Article Number: 909 Rating: Unrated Last Updated: Mon, May 9, 2011 at 10:57 AM If you are serious about getting your website or web application mobile-friendly,

More information

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

Course 20486B: Developing ASP.NET MVC 4 Web Applications Course 20486B: Developing ASP.NET MVC 4 Web Applications Overview In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus

More information

Django with Python Course Catalog

Django with Python Course Catalog Django with Python Course Catalog Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com

More information

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications Developing ASP.NET MVC 4 Web Applications Duration: 5 Days Course Code: 20486B About this course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5

More information

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE A Seminar report On Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org Acknowledgement

More information

20486C: Developing ASP.NET MVC 5 Web Applications

20486C: Developing ASP.NET MVC 5 Web Applications 20486C: Developing ASP.NET MVC 5 Web Course Details Course Code: Duration: Notes: 20486C 5 days This course syllabus should be used to determine whether the course is appropriate for the students, based

More information

Getting. Started with. smash. IBM WebSphere. Ron Lynn, Karl Bishop, Brett King

Getting. Started with. smash. IBM WebSphere. Ron Lynn, Karl Bishop, Brett King Getting Started with IBM WebSphere smash Ron Lynn, Karl Bishop, Brett King Contents Introduction 1 Situational Applications 1 Rapid Application Development 1 IBM WebSphere smash Development Process 2 Available

More information

Quick Web Development using JDeveloper 10g

Quick Web Development using JDeveloper 10g Have you ever experienced doing something the long way and then learned about a new shortcut that saved you a lot of time and energy? I can remember this happening in chemistry, calculus and computer science

More information

Oracle APEX 18.1 New Features

Oracle APEX 18.1 New Features Oracle APEX 18.1 New Features May, 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information

"Charting the Course... MOC A Introduction to Web Development with Microsoft Visual Studio Course Summary

Charting the Course... MOC A Introduction to Web Development with Microsoft Visual Studio Course Summary Description Course Summary This course provides knowledge and skills on developing Web applications by using Microsoft Visual. Objectives At the end of this course, students will be Explore ASP.NET Web

More information

Getting started with Convertigo Mobilizer

Getting started with Convertigo Mobilizer Getting started with Convertigo Mobilizer First Sencha-based project tutorial CEMS 6.0.0 TABLE OF CONTENTS Convertigo Mobilizer overview...1 Introducing Convertigo Mobilizer... 1-1 Convertigo Mobilizer

More information

Visual Studio Course Developing ASP.NET MVC 5 Web Applications

Visual Studio Course Developing ASP.NET MVC 5 Web Applications Visual Studio Course - 20486 Developing ASP.NET MVC 5 Web Applications Length 5 days Prerequisites Before attending this course, students must have: In this course, students will learn to develop advanced

More information

Introduction to AngularJS

Introduction to AngularJS CHAPTER 1 Introduction to AngularJS Google s AngularJS is an all-inclusive JavaScript model-view-controller (MVC) framework that makes it very easy to quickly build applications that run well on any desktop

More information

Web Engineering (CC 552)

Web Engineering (CC 552) Web Engineering (CC 552) Introduction Dr. Mohamed Magdy mohamedmagdy@gmail.com Room 405 (CCIT) Course Goals n A general understanding of the fundamentals of the Internet programming n Knowledge and experience

More information

Want to read more? You can buy this book at oreilly.com in print and ebook format. Buy 2 books, get the 3rd FREE!

Want to read more? You can buy this book at oreilly.com in print and ebook format. Buy 2 books, get the 3rd FREE! Want to read more? You can buy this book at oreilly.com in print and ebook format. Buy 2 books, get the 3rd FREE! Use discount code: OPC10 All orders over $29.95 qualify for free shipping within the US.

More information

djangotribune Documentation

djangotribune Documentation djangotribune Documentation Release 0.7.9 David THENON Nov 05, 2017 Contents 1 Features 3 2 Links 5 2.1 Contents................................................. 5 2.1.1 Install..............................................

More information

Composer Guide for JavaScript Development

Composer Guide for JavaScript Development IBM Initiate Master Data Service Version 10 Release 0 Composer Guide for JavaScript Development GI13-2630-00 IBM Initiate Master Data Service Version 10 Release 0 Composer Guide for JavaScript Development

More information

Web Architecture Review Sheet

Web Architecture Review Sheet Erik Wilde (School of Information, UC Berkeley) INFO 190-02 (CCN 42509) Spring 2009 May 11, 2009 Available at http://dret.net/lectures/web-spring09/ Contents 1 Introduction 2 1.1 Setup.................................................

More information

Contents in Detail. Foreword by Xavier Noria

Contents in Detail. Foreword by Xavier Noria Contents in Detail Foreword by Xavier Noria Acknowledgments xv xvii Introduction xix Who This Book Is For................................................ xx Overview...xx Installation.... xxi Ruby, Rails,

More information

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications Developing ASP.NET MVC 4 Web Applications Código del curso: 20486 Duración: 5 días Acerca de este curso In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework

More information

DOT NET Syllabus (6 Months)

DOT NET Syllabus (6 Months) DOT NET Syllabus (6 Months) THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In- Time Compilation and CLS Disassembling.Net Application to IL

More information

Oh yes, wpcache comes with a dashboard wpcache is not Plugin!

Oh yes, wpcache comes with a dashboard wpcache is not Plugin! 1 What is Happening? Oh yes, wpcache comes with a dashboard wpcache is not Plugin! Performance. Speed. Scalability. wpcache delivers world-class content delivery solutions. You are empowered to increase

More information

Introduction to Worklight Integration IBM Corporation

Introduction to Worklight Integration IBM Corporation Introduction to Worklight Integration Agenda IBM Mobile Foundation Introduction to Worklight How to Integrate Worklight Adapters WebAPI HTTP & SOAP Database (SQL) WebSphere Message Broker Cast Iron 2 IBM

More information

Integrated Software Environment. Part 2

Integrated Software Environment. Part 2 Integrated Software Environment Part 2 Operating Systems An operating system is the most important software that runs on a computer. It manages the computer's memory, processes, and all of its software

More information

1 CUSTOM TAG FUNDAMENTALS PREFACE... xiii. ACKNOWLEDGMENTS... xix. Using Custom Tags The JSP File 5. Defining Custom Tags The TLD 6

1 CUSTOM TAG FUNDAMENTALS PREFACE... xiii. ACKNOWLEDGMENTS... xix. Using Custom Tags The JSP File 5. Defining Custom Tags The TLD 6 PREFACE........................... xiii ACKNOWLEDGMENTS................... xix 1 CUSTOM TAG FUNDAMENTALS.............. 2 Using Custom Tags The JSP File 5 Defining Custom Tags The TLD 6 Implementing Custom

More information

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE. CUSTOMER PAIN POINTS 1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.NET FRAMEORK. THAT S TAKING UP SPACE ON MY HARDDRIVE

More information

Front End Programming

Front End Programming Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page

More information

Ruby on Rails. SITC Workshop Series American University of Nigeria FALL 2017

Ruby on Rails. SITC Workshop Series American University of Nigeria FALL 2017 Ruby on Rails SITC Workshop Series American University of Nigeria FALL 2017 1 Evolution of Web Web 1.x Web 1.0: user interaction == server roundtrip Other than filling out form fields Every user interaction

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

Oracle Service Cloud Integration for Developers Ed 1

Oracle Service Cloud Integration for Developers Ed 1 Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Oracle Service Cloud Integration for Developers Ed 1 Duration: 5 Days What you will learn The class covers how to extend the Service

More information

Contents. Introduction

Contents. Introduction Contents Preface Introduction xiii xvii 1 Why Did the Chicken Cross the Road? 1 1.1 The Computer.......................... 1 1.2 Turing Machine.......................... 3 CT: Abstract Away......................

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

BrownNow A Current Events Application for Brown University. Craig Hawkins Advisor: Stan Zdonik Masters Project Report, Brown University 2017

BrownNow A Current Events Application for Brown University. Craig Hawkins Advisor: Stan Zdonik Masters Project Report, Brown University 2017 BrownNow A Current Events Application for Brown University Craig Hawkins Advisor: Stan Zdonik Masters Project Report, Brown University 2017 1. Introduction Brown University has an existing events notification

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course,

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016-2017 AGENDA FOR TODAY The final project Advanced Mysql Database programming Recap: DB servers in the web Web programming

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

HOMELESS INDIVIDUALS AND FAMILIES INFORMATION SYSTEM HIFIS 4.0 TECHNICAL ARCHITECTURE AND DEPLOYMENT REFERENCE

HOMELESS INDIVIDUALS AND FAMILIES INFORMATION SYSTEM HIFIS 4.0 TECHNICAL ARCHITECTURE AND DEPLOYMENT REFERENCE HOMELESS INDIVIDUALS AND FAMILIES INFORMATION SYSTEM HIFIS 4.0 TECHNICAL ARCHITECTURE AND DEPLOYMENT REFERENCE HIFIS Development Team May 16, 2014 Contents INTRODUCTION... 2 HIFIS 4 SYSTEM DESIGN... 3

More information

CLIENT SERVER ARCHITECTURE:

CLIENT SERVER ARCHITECTURE: CLIENT SERVER ARCHITECTURE: Client-Server architecture is an architectural deployment style that describe the separation of functionality into layers with each segment being a tier that can be located

More information

WebsitePanel User Guide

WebsitePanel User Guide WebsitePanel User Guide User role in WebsitePanel is the last security level in roles hierarchy. Users are created by reseller and they are consumers of hosting services. Users are able to create and manage

More information

Curriculum Guide. ThingWorx

Curriculum Guide. ThingWorx Curriculum Guide ThingWorx Live Classroom Curriculum Guide Introduction to ThingWorx 8 ThingWorx 8 User Interface Development ThingWorx 8 Platform Administration ThingWorx 7.3 Fundamentals Applying Machine

More information

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p. Preface p. xiii Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p. 11 Creating the Deployment Descriptor p. 14 Deploying Servlets

More information

Enterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets

Enterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets 1. Introduction How do the pages you're reading in your favorite Web browser show up there? When you log into your favorite Web site, how does the Web site know that you're you? And how do Web retailers

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Joomla

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Joomla About the Tutorial Joomla is an open source Content Management System (CMS), which is used to build websites and online applications. It is free and extendable which is separated into frontend templates

More information

Learning vrealize Orchestrator in action V M U G L A B

Learning vrealize Orchestrator in action V M U G L A B Learning vrealize Orchestrator in action V M U G L A B Lab Learning vrealize Orchestrator in action Code examples If you don t feel like typing the code you can download it from the webserver running on

More information

Oracle Service Cloud Integration for Develope

Oracle Service Cloud Integration for Develope Oracle Uni Contact Us: 08 Oracle Service Cloud Integration for Develope Durat5 Da What you will learn The class covers how to extend the Service Cloud objec applicable to all APIs before moving on to specific

More information

Contents. Contents... XI

Contents. Contents... XI Contents Preface... V Motivation for this Book... V Who Should Read this Book?...VI Outline to the Book Structure... VII Prerequisite Skills... VIII Acknowledgements... VIII About the Author... VIII Contents...

More information

Table of Contents. CHAPTER 1 Introducing Amazon Web Services. In The Beginning, There Was Affiliate Marketing... 1

Table of Contents. CHAPTER 1 Introducing Amazon Web Services. In The Beginning, There Was Affiliate Marketing... 1 Table of Contents CHAPTER 1 Introducing Amazon Web Services In The Beginning, There Was Affiliate Marketing... 1 Enter Amazon Web Services...2 International Amazon Web Services...3 Other Amazon Web Services

More information

STANDARD REST API FOR

STANDARD REST API FOR STANDARD REST API FOR EMAIL Kalana Guniyangoda (118209x) Dissertation submitted in partial fulfillment of the requirements for the degree Master of Science Department of Computer Science & Engineering

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

Beginning ASP.NET. 4.5 in C# Matthew MacDonald

Beginning ASP.NET. 4.5 in C# Matthew MacDonald Beginning ASP.NET 4.5 in C# Matthew MacDonald Contents About the Author About the Technical Reviewers Acknowledgments Introduction xxvii xxix xxxi xxxiii UPart 1: Introducing.NET. 1 & Chapter 1: The Big

More information

Microsoft. Inside Microsoft. SharePoint Ted Pattison. Andrew Connell. Scot Hillier. David Mann

Microsoft. Inside Microsoft. SharePoint Ted Pattison. Andrew Connell. Scot Hillier. David Mann Microsoft Inside Microsoft SharePoint 2010 Ted Pattison Andrew Connell Scot Hillier David Mann ble of Contents Foreword Acknowledgments Introduction xv xvii xix 1 SharePoint 2010 Developer Roadmap 1 SharePoint

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel About the Tutorial Laravel is a powerful MVC PHP framework, designed for developers who need a simple and elegant toolkit to create full-featured web applications. Laravel was created by Taylor Otwell.

More information

FACETs. Technical Report 05/19/2010

FACETs. Technical Report 05/19/2010 F3 FACETs Technical Report 05/19/2010 PROJECT OVERVIEW... 4 BASIC REQUIREMENTS... 4 CONSTRAINTS... 5 DEVELOPMENT PROCESS... 5 PLANNED/ACTUAL SCHEDULE... 6 SYSTEM DESIGN... 6 PRODUCT AND PROCESS METRICS...

More information

Managing State. Chapter 13

Managing State. Chapter 13 Managing State Chapter 13 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of Web http://www.funwebdev.com Development Section 1 of 8 THE PROBLEM OF STATE IN WEB APPLICATIONS

More information

Read & Download (PDF Kindle) Programming Python

Read & Download (PDF Kindle) Programming Python Read & Download (PDF Kindle) Programming Python If you've mastered Python's fundamentals, you're ready to start using it to get real work done. Programming Python will show you how, with in-depth tutorials

More information

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary INTERNET ENGINEERING HTTP Protocol Sadegh Aliakbary Agenda HTTP Protocol HTTP Methods HTTP Request and Response State in HTTP Internet Engineering 2 HTTP HTTP Hyper-Text Transfer Protocol (HTTP) The fundamental

More information

White Paper: Delivering Enterprise Web Applications on the Curl Platform

White Paper: Delivering Enterprise Web Applications on the Curl Platform White Paper: Delivering Enterprise Web Applications on the Curl Platform Table of Contents Table of Contents Executive Summary... 1 Introduction... 2 Background... 2 Challenges... 2 The Curl Solution...

More information

A Simple Course Management Website

A Simple Course Management Website A Simple Course Management Website A Senior Project Presented to The Faculty of the Computer Engineering Department California Polytechnic State University, San Luis Obispo In Partial Fulfillment Of the

More information

A Technical Perspective: Proxy-Based Website Translation. Discover how the proxy approach eliminates complexity and costs for you and your team.

A Technical Perspective: Proxy-Based Website Translation. Discover how the proxy approach eliminates complexity and costs for you and your team. A Technical Perspective: Proxy-Based Website Translation Discover how the proxy approach eliminates complexity and costs for you and your team. Introduction As your company expands into new global markets,

More information

20486-Developing ASP.NET MVC 4 Web Applications

20486-Developing ASP.NET MVC 4 Web Applications Course Outline 20486-Developing ASP.NET MVC 4 Web Applications Duration: 5 days (30 hours) Target Audience: This course is intended for professional web developers who use Microsoft Visual Studio in an

More information

Oracle Service Cloud Integration for Developers Ed 1

Oracle Service Cloud Integration for Developers Ed 1 Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Oracle Service Cloud Integration for Developers Ed 1 Duration: 5 Days What you will learn The class covers how to extend the

More information

The 4D Web Companion. David Adams

The 4D Web Companion. David Adams David Adams TABLE OF CONTENTS Welcome 1 About this Book 3 Overview... 3 Terminology... 5 Special Symbols Used in this Book... 5 Versions Covered... 5 About the Demonstrations... 6 About the 4D Code...

More information

How to Install (then Test) the NetBeans Bundle

How to Install (then Test) the NetBeans Bundle How to Install (then Test) the NetBeans Bundle Contents 1. OVERVIEW... 1 2. CHECK WHAT VERSION OF JAVA YOU HAVE... 2 3. INSTALL/UPDATE YOUR JAVA COMPILER... 2 4. INSTALL NETBEANS BUNDLE... 3 5. CREATE

More information

Servlet Performance and Apache JServ

Servlet Performance and Apache JServ Servlet Performance and Apache JServ ApacheCon 1998 By Stefano Mazzocchi and Pierpaolo Fumagalli Index 1 Performance Definition... 2 1.1 Absolute performance...2 1.2 Perceived performance...2 2 Dynamic

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Drupal

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Drupal About the Tutorial is a free and open source Content Management System (CMS) that allows organizing, managing and publishing your content. This reliable and secure CMS is built on PHP based environment

More information

How to set up SQL Source Control The short guide for evaluators

How to set up SQL Source Control The short guide for evaluators GUIDE How to set up SQL Source Control The short guide for evaluators 1 Contents Introduction Team Foundation Server & Subversion setup Git setup Setup without a source control system Making your first

More information

Web & APP Developer Job Assured Course (3 in 1)

Web & APP Developer Job Assured Course (3 in 1) T&C Apply Web & APP Developer Job Assured Course (3 in 1) From Quick pert Infotech Interview Process Full Stack Web APP Developer Full Stack Web & App Developer (3 in 1 - Opens WebDesign, Web Developer

More information

Google Plugin for Eclipse

Google Plugin for Eclipse Google Plugin for Eclipse Not just for newbies anymore Miguel Mendez Tech Lead - Google Plugin for Eclipse 1 Overview Background AJAX Google Web Toolkit (GWT) App Engine for Java Plugin Design Principles

More information

Liferay Digital Experience Platform. New Features Summary

Liferay Digital Experience Platform. New Features Summary Liferay Digital Experience Platform New Features Summary Liferay has redesigned its platform with new functionality in Liferay Digital Experience Platform (DXP). The following is a summary of the key new

More information

Quest: Choose the ideal web platform for your business

Quest: Choose the ideal web platform for your business Quest: Choose the ideal web platform for your business When you re rebuilding or upgrading your website, battling through the unending waves of options, features, and fine print can be a harrowing adventure.

More information

Overview: Understanding the Toolbox

Overview: Understanding the Toolbox 3 Overview: Understanding the Toolbox In this chapter, we will review the different components of SQL Server Integration Services (SSIS). Our intent here is to go over the main components of SSIS, to give

More information

Hands On, Instructor-Led IT Courses Across Colorado

Hands On, Instructor-Led IT Courses Across Colorado Hands On, Instructor-Led IT Courses Across Colorado Offering instructor-led courses in: Java, Java EE and OOAD SQL Programming and SQL Server UNIX, Linux Administration.NET Programming Web Programming

More information

JSON Home Improvement. Christophe Pettus PostgreSQL Experts, Inc. SCALE 14x, January 2016

JSON Home Improvement. Christophe Pettus PostgreSQL Experts, Inc. SCALE 14x, January 2016 JSON Home Improvement Christophe Pettus PostgreSQL Experts, Inc. SCALE 14x, January 2016 Greetings! Christophe Pettus CEO, PostgreSQL Experts, Inc. thebuild.com personal blog. pgexperts.com company website.

More information

Pro Events. Functional Specification. Name: Jonathan Finlay. Student Number: C Course: Bachelor of Science (Honours) Software Development

Pro Events. Functional Specification. Name: Jonathan Finlay. Student Number: C Course: Bachelor of Science (Honours) Software Development Pro Events Functional Specification Name: Jonathan Finlay Student Number: C00193379 Course: Bachelor of Science (Honours) Software Development Tutor: Hisain Elshaafi Date: 13-11-17 Contents Introduction...

More information

Foundations of Python

Foundations of Python Foundations of Python Network Programming The comprehensive guide to building network applications with Python Second Edition Brandon Rhodes John Goerzen Apress Contents Contents at a Glance About the

More information

Snapt Accelerator Manual

Snapt Accelerator Manual Snapt Accelerator Manual Version 2.0 pg. 1 Contents Chapter 1: Introduction... 3 Chapter 2: General Usage... 3 Accelerator Dashboard... 4 Standard Configuration Default Settings... 5 Standard Configuration

More information

How to pimp high volume PHP websites. 27. September 2008, PHP conference Barcelona. By Jens Bierkandt

How to pimp high volume PHP websites. 27. September 2008, PHP conference Barcelona. By Jens Bierkandt How to pimp high volume PHP websites 27. September 2008, PHP conference Barcelona By Jens Bierkandt 1 About me Jens Bierkandt Working with PHP since 2000 From Germany, living in Spain, speaking English

More information

Flex 3 Pre-release Tour

Flex 3 Pre-release Tour Flex 3 Pre-release Tour Andrew Shorten shorten@adobe.com Enrique Duvos duvos@adobe.com Flex 3 Pre-release Tour Agenda Adobe Platform Update (45 mins) Flex Builder 3 Features (45 mins) Adobe & Open Source

More information

AWS Lambda + nodejs Hands-On Training

AWS Lambda + nodejs Hands-On Training AWS Lambda + nodejs Hands-On Training (4 Days) Course Description & High Level Contents AWS Lambda is changing the way that we build systems in the cloud. This new compute service in the cloud runs your

More information

BEAWebLogic. Portal. Overview

BEAWebLogic. Portal. Overview BEAWebLogic Portal Overview Version 10.2 Revised: February 2008 Contents About the BEA WebLogic Portal Documentation Introduction to WebLogic Portal Portal Concepts.........................................................2-2

More information