This book will help web application developers and software architects pick the right strategy for developing cross-platform applications that run on a variety of desktop computers as well as mobile devices. The primary audience is developers from a large organization who need to learn how to develop web applications using the HTML5 stack.
Whats an Enterprise Application?
This book has the word enterprise in its title, and well explain what we consider to be enterprise applications by giving you some examples. Creating a web application that processes orders is not the same as creating a website to publish blogs. Enterprise applications require company-specific workflows, which usually need to be integrated with various internal systems, data sources, and processes.
Google Docs is not an enterprise web application. But Google Search Appliance, which integrates search operations with company documents, databases, processes, and tickets, and provides collaboration is: it integratesthe consumer-workforce front office with what the company does (back office).
Google Maps is not an enterprise application. But Google Maps integrated with a company site used by insurance agents to plan their daily route, create scheduling, perform address verification, and use geocoding is.
Just using a web application in a business doesnt make it an enterprise web application. If you take Gmail as is, it wont be an enterprise application until you integrate it into another process of your business.
Is an online game an enterprise application? It depends on the game. A multiplayer online roulette game hooked up to a payment system and maintaining users accounts is an enterprise web application. Butplaying Sudoku online doesnt feel too enterprisey.
How about a dating website? If the site just offers an ability to display singles, its just a publishing site because there is not much of a business there. Can you turn a dating website into an enterprise application? Its possible.
Some people will argue that an enterprise application must support multiple users and a high data load, include data grids and dashboards, be scalable, have business and persistence layers, offer professional support, and more. This is correct, but we dont believe that a web application should do all this to qualify for the adjective enterprise .
Lets create a simple definition of an enterprise web application:
An enterprise web application is one that helps an organization run its business online.
Why the Authors Wrote This Book
The authors of this book have 90 years of combined experience in developing enterprise applications. During all these years, weve been facing the same challenges regardless of which programming language we use:
- How to make the application code base maintainable
- How to make the application responsive by modularizing its code base
- How to minimize the number of production issues by applying proper testing at earlier stages of the project life cycle
- How to design a UI that looks good and is convenient for users
- Which frameworks or libraries to pick
- Which design patterns to apply in coding
This list can be easily extended. Ten years ago, we were developing UIs mainly in Java; five years ago, we used Adobe Flex; today, we use HTML5-related technologies. This book shares with you our understanding of how to approach these challenges in HTML5.
Who This Book Is For
Web application development with HTML5 includes HTML, JavaScript, CSS, and dozens of JavaScript frameworks. The main goal of this book is to give you a hands-on overview of developing web applications that can be run on a variety of devicesdesktops, tablets, and smartphones. We expect you to have some experience with any programming language. Knowledge of basic HTML is also required. Understanding the principles of object-oriented programming would be helpful, too.
This book is intended for software developers, team leaders, and web application architects who want to learn the following:
- How to write web applications by using some of the popular libraries and frameworks
- How to modularize the clients side of web applications written in JavaScript
- How to test web applications
- Whether applying responsive design principles is the right strategy for your application
- Which security vulnerabilities to watch for
- Why developing for mobile devices differs from developing for desktops
- The pros and cons of developing mobile applications by using the HTML5 stack versus native languages
Note
If youre new to programming in JavaScript, start reading this book from the bonus online chapter, which is an introduction to JavaScript.
What This Book Is and Why Its Important
This book has a lot of breadth, but for mastering some of the topics in depth, be prepared to do additional studying. On the other hand, we provide a lot of working code samples for those who prefer studying by reading code.
This book can be important for busy professionals who dont have time to read a separate book about each and every library and framework that exist in the HTML5 universe. This book will help you to narrow the list of technologies and frameworks to be considered for the next project.
Enterprise server-side developers will also benefit from reading this book. Pretty often enterprise Java or .NET developers feel caught off guard when they need to create a new web application with a cross-platform and cross-browser UI. These strong enterprise developers with good business knowledge may not have enough exposure to how things work in the HTML5 domain. This book can be a time-saver for all server-side developers who need to start working on the frontend of web applications.
Finally, this book is important because of the way its written: youll be working on the application thats introduced next.
Introducing the Save The Child Application
To make this book more practical, we decided not to give you unrelated code snippets illustrating various syntax or techniques, but to bring all of that together in a working application (just the UI portion). While learning the various frameworks, libraries, and approaches to building UIs for web applications, youll be writing multiple versions of the same web applicationSave The Child (see ). Its a sample charity application used to collect donations for children who need medical attention.
Figure 1. Save The Childa sample application
This web application will allow people to register, donate, find local kids who need help, match donors and recipients, upload images and videos, and display statistics.
Is This Even an Enterprise App?
While looking at the preceding image, you might be thinking, This doesnt look like an enterprise application. Lets see. Do you believe that an enterprise application has to consist of boring gray windows with lots of grids and forms, and some charts?True, but we have all of these elements in our application, too:
- Clicking the Donate Now button reveals a form that has to be filled out and sent to a payment processing system.
- The interactive live pie chart is something that many modern enterprise dashboards include.