Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
IBM Lotus Domino: Classic Web Application Development Techniques
IBM Lotus Domino: Classic Web Application Development Techniques

IBM Lotus Domino: Classic Web Application Development Techniques: This tutorial takes Domino developers on a straight path through the jungle of techniques to deploy applications on the web and introduces you to the classic strategies. Why Google it when it’s all here?

Arrow left icon
Profile Icon Richard G Ellis
Arrow right icon
Can$83.99
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (9 Ratings)
Paperback Mar 2011 344 pages 1st Edition
eBook
Can$12.99 Can$66.99
Paperback
Can$83.99
Subscription
Free Trial
Arrow left icon
Profile Icon Richard G Ellis
Arrow right icon
Can$83.99
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (9 Ratings)
Paperback Mar 2011 344 pages 1st Edition
eBook
Can$12.99 Can$66.99
Paperback
Can$83.99
Subscription
Free Trial
eBook
Can$12.99 Can$66.99
Paperback
Can$83.99
Subscription
Free Trial

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

IBM Lotus Domino: Classic Web Application Development Techniques

Chapter 1. Preparation and Habits

A fresh start is invigorating, a chance to look forward with high expectations and new resolve. It's a time to put into practice all the lessons you have learned and to put behind you the issues and problems which previously bogged you down. Take advantage of every fresh start. Look forward to and accept every new challenge and opportunity.

Especially when starting a new job, it is important to take stock of your skills, both technical and non-technical. If you succeeded wildly at your last job or project, then hooray for you! Do it again! But if you fell short in some ways, resolve to do better.

The topics in this chapter address the human and organizational context within which you will develop your Domino applications. Most of these suggestions are relatively non-technical, as they deal with how you might organize yourself and your time and how you might work more effectively with your customers. Topics focus on these key issues:

  • Preparing yourself as a Domino developer

  • The importance of using standards and guidelines

  • Planning your work

  • Handling a development project

  • Documenting your design

Preparing yourself as a developer


A craftsman is only as good as his tools, and in a very real sense, you are your tools. To remain capable and versatile, you should commit to the life-long task of continually acquiring knowledge and skills people-skills as well as technical skills.

As you begin your work on a new project, keep in mind the larger picture. This new project will be followed by others. One polished application will lead to another. One happy and satisfied customer will spread the word about how good you are.

Gather a list of public websites that use Domino

While you browse the Web, gather ideas about what makes web pages look good. Great websites should inspire you. Inspect the layout, the use of images and color, and the navigational strategies. If you see an interesting control, peek under the covers and take notes about how it was coded. But be sensitive to intellectual property and copyright laws not everything published on the Web is free.

In particular, collect links to public websites that use Domino and show it to good advantage. Relatively speaking, only a smaller number of public-facing websites are served by Domino. But browse around; you will find hundreds of them in short order. This collection of websites can become a marketing and public relations tool for you as you sell your ideas to your customers.

Too often Domino web applications crafted in the past were functional, but not pretty. That might have been okay ten years ago, but no longer. Today's customers expect the same kind of functionality from your applications that they see elsewhere on the Web. And there really is no reason why you can't provide it to them.

Take some time and build yourself a small application to hold the links. Eventually, roll this application to the Web so that the links can be shared readily with customers and others who are interested.

In this sample Domino Websites application, details about each website are stored in a separate document. The blue hotspots link to views which display lists of Commercial, Consultants, Government, and Other Sites. With sufficient privileges to the database, a user can add, edit, and delete these documents with the Notes client or with a browser.

Get certified in Lotus Notes / Domino application development

Honing your skills by doing is essential. The more applications you build and the more time you spend on this work, the better you should become at it. Experience is a great teacher.

But you do not have time to figure everything out yourself. So you must read and study what others have done, which is especially easy today with a fast connection to the Internet. Set aside some time every week (or each day if you can swing it) and graze the web landscape.

Commit yourself to preparing for, taking, and passing certification exams in Lotus Notes / Domino application development. If possible work through the Administrator exams as well. Effortful and extensive preparation should make it easier to pass the exams the first time. More importantly, preparation for the exams will broaden your understanding of Domino and teach you about features and techniques that you might not otherwise stumble upon by yourself.

And, of course, holding this certificate looks good on the resume.

Use Domino Help

Experienced developers rely on Domino Help. Be aware that there are separate help databases for each of the clients: Notes, Administrator, and Designer.

The Lotus Domino Designer 8 Help database contains over 9,000 documents. In it, you will find extensive information about features, language syntax, classes, limits, errors, tips, and code examples.

The code examples can be particularly useful. If you find some code that looks just like what you need, simply copy it into your application, and then modify it as necessary.

Especially if you are new to Domino, spend enough time with Help to be comfortable with where things are and how to find information on specific topics. The Contents view organizes the information like a book, by general subject area. Use the Index if you know what you are looking for the syntax of a specific @ function, for example. Use the Search feature when you are not quite sure for what you are looking. Beware of searching too broadly. Search for the term "web" and you will find over a thousand documents!

Once you are comfortable with Designer Help, try Designer's context sensitive help, which is invoked by opening or highlighting a design element and then pressing F1. Display forms in the Work pane and press F1 help on designing forms displays. Select a tab in a Properties box and press F1 help on that tab displays, and so on.

Consider using external editors and development tools

Designer provides basic editing for text, so for the most part, you can develop applications without using external editors. However, dedicated editors for HTML, JavaScript, Java, and CSS will provide you with conveniences such as syntax checking, color coding, validation, and ready-made functions which may appeal to you. If you develop code in an external editor, you will have to import the files as resources into your application or copy/paste the text into appropriate locations in your design.

You can reasonably get on without external text editors, but learning to use an image editor may be well worth the time it takes, especially if you do not have access to a graphic designer or a library of images. Almost any image editor will do as long as it saves images as JPEG or GIF files. (Designer can accommodate other graphic types, but JPEG and GIF files are natively compatible with the Web.) Although it may take some effort to learn, the open source program GIMP is a no-cost, feature-rich image editor. Find more information at the GIMP website: http://www.gimp.org.

In this book, except where noted, examples rely on only the native capabilities of Designer.

Create sandbox applications

New ideas for solving problems constantly present themselves. But introducing a new, untried technique into an existing application may result in many more problems than it solves due to unintended consequences and side-effects.

Create one or more sandbox applications in which to try out new ideas. Constraining new development this way facilitates isolating and resolving problems specifically related to the new technique. And if, at the end of the day, the technique does not live up to its promise, then nothing needs to be removed from the real application design on which you are working.

Create a personal cookbook

Solutions discovered or invented for one application inevitably find their way into other applications. Code snippets, strategies, and even entire agents are often reused to save development time and effort.

Keeping track of such ideas may be difficult over a period of years, especially if you work on dozens of applications or move from job to job. It might be inappropriate (ethically or legally) to keep personal copies of designs created for previous employers without permission, but it is certainly reasonable to keep detailed personal notes in one form or another. The tools are readily available: paper notebook, flash drive, optical disk.

Keep your notes organized and periodically review items in your cookbook. Revise and annotate. Include variations and caveats. As it is impossible to remember in detail all the code you will ever write, you will find your notes to be an invaluable resource.

Create a personal document library

As a Notes developer, you should always have access to the Notes and Designer clients, so creating a personal document library or a simple Notes application is certainly an option. You can use the standard Lotus Document Library template or you can simply create your own application with whatever features work for you.

One database might contain notes and descriptions. A second database might contain working examples of many techniques a private code library if you will.

Create a website

The Web is a wonderful repository of ideas. Consider keeping a website (blog or Wiki) on which you can post code and ideas that may be helpful to others. Of course this approach may entail some expense and extra effort, but it is also a great way to contribute to the development community. And if you are a freelance consultant, it is also a way to market your skills.

Alternatively, consider contributing ideas to existing websites with blog entries or even entire development projects.

Adopt new language and terms

Over time, the language of Notes and Domino changes, as do the tools. At one time, the Domino Directory was called the Name and Address Book or NAB. The file that contains design elements and documents was called a database and is now referred to as an application. In Designer, the Design Pane became the Application Navigator. Of course, you will come across references that use the older language and some developers who continue to use deprecated terms out of habit or stubbornness.

Be alert for these changes of terms and the definitions which go with them. Be mindful of the old names, but use contemporary and correct vocabulary, just as you should use contemporary development techniques.

Pay attention to web programming developments and practices

Domino applications intended to be accessed with a web browser can take advantage of many contemporary web technologies like Ajax, CSS, and XML. In fact, support for these standards has been included in Domino for many years. As web technologies evolve, so does Domino.

So pay attention to non-Domino web technologies and strategies. Web-enabled Domino applications should be crafted using the best web programming practices.

Standardizing applications


Application development is part engineering and part art. Building some pieces of an application is fairly routine, while other aspects call for inventiveness and creativity.

Domino caters to developers to some extent by enabling applications to be built with any of the several programming languages. It also supports many web technologies which can be pieced together in an unlimited number of ways. This flexibility enables programmers to work the way they want to work. But this same flexibility makes it all too easy to ignore organizational standards.

Standardizing applications makes it easier to develop new ones since reusable components may already exist. And if applications look and operate in a similar manner, then users of new applications will need less training and will be more willing to use them.

Abide by your organization's web development guidelines

If your organization has written web development guidelines, find out what they are and try to embrace them in your own applications. The set of web applications deployed by your organization is probably much larger than just the Domino applications. If they exist, these development guidelines and standards define stylistic and functional commonality that your organization determined to be beneficial. Someone above your pay grade approved those standards, so abide by them!

Web application development guidelines can provide several benefits. They promote an organizational identity or brand through a common look and feel. They improve the effectiveness and the usability of web applications as a whole by standardizing how features and functions operate. And from a developer's point of view, they speed the deployment of new applications and simplify the maintenance and enhancement of existing ones.

If your organization has no written standards, consider discussing this issue with management. Consider taking on the task yourself.

The number of specific development standards can easily number in the hundreds, depending upon how detailed they are. Whoever determines these standards must understand to some extent the entire universe of options, and then must select those guidelines which make sense and which can be implemented within the existing development environment. Many guidelines turn out to be "nice to have" suggestions that are not practical to implement within the confines of budget and project deadlines.

Development guidelines can be classified roughly into three kinds:

  • Usability guidelines

  • Stylistic guidelines

  • Mechanical or process guidelines

Usability

Guidelines that address the usability of an application or website concern themselves with issues of effectiveness, efficiency, learnability, and overall user satisfaction. How well does this application achieve its goals? How easy is it to learn to use? How well do users like it? Usability influences how willing people are to use an application, which can have a dramatic impact on whether they choose your solution or go somewhere else for assistance.

Usability guidelines focus on what things make a website easy to use from the end user's point of view. Examples of usability considerations include the following:

  • Content organization

  • Headings and labels

  • Page and form layout

  • Features and functions

  • Accessibility

  • Navigation

  • Images

Explore this topic in greater detail. One online reference which you might consider reviewing is the http://usability.gov website maintained by the U.S. Department of Health and Human Services.

The Guidelines documents at this site were written based on the extensive research. They can serve as a good starting point for understanding usability issues.

Style

Guidelines which address style concern themselves with issues of look and feel, and sometimes function. An organization's font preferences and color palette can be identified. Layouts and menu styles can be defined. Acceptable logos and images can be specified, as can boilerplate text for Copyright, Privacy, and other notices. Very specific guidelines might address issues such as whether or not to underline links or how wide margins should be.

Beyond simply specifying preferences, an organization might codify style requirements into common style sheets. The guidelines would then provide information about how to link to and incorporate those style sheets into applications. Details such as style class names for headings and labels would be included.

Mechanics and process

Guidelines which address issues of coding and application deployment can be extensive and no small task to gather together.

Because Domino web applications can include so many different technologies, coding guidelines could address various options, including the use of these design tools:

  • HTML

  • CSS

  • JavaScript and JavaScript frameworks

  • LotusScript

  • Java

  • Images

Other guidelines might specify requirements for the following design aspects:

  • The About and Using documents

  • Element naming conventions

  • Form and page layout

  • Navigation

  • E-mail notifications

  • Data import and extract

  • Context sensitive help

  • Agent error handling

  • Security and access control

Still other guidelines might concern themselves with the general way in which applications are designed, tested, and rolled into production:

  • How development work is requested and prioritized

  • How applications are named and sponsored

  • The use of templates

  • The use of shared code and resource libraries

  • The use of roles

  • The use and management of Domino groups

  • Application signing

  • Replication

  • Testing and approval

  • Migration to production

  • Documentation and user training

Some developers might find coding and process guidelines to be onerous and overly constraining. Inevitably, there will be requests for exceptions to the rules, so organizations must be prepared to deal with the issues of exceptions and non-compliance.

Clearly, an extensive effort is required to compile standards and guidelines that are appropriate to application development within the context of a specific organization. Additional effort will be required periodically to review, update, and reapprove those guidelines.

Create libraries of common resources

Organizations should consider creating common repositories of reusable objects. The most obvious kinds of libraries (not surprisingly supported natively by Designer) would contain standard design elements such as:

  • Images

  • Java code

  • JavaScript code

  • LotusScript code

  • Style sheets

Images can be organized into common types as follows:

  • Arrows and lines

  • Banners and logos

  • Buttons

  • Patterns

  • Photos

  • Squares and other common shapes

  • Watermarks

Other repositories might include standard or approved "boilerplate" text:

  • Copyright notice

  • Disclaimers and caveats

  • Error messages

  • Privacy notice

Common repositories enable developers to work more rapidly and to create products which conform to organizational standards. Organizational management must address the following issues:

  • Who will create and maintain the repositories?

  • What process will be used to approve, add, and deprecate repository objects?

  • Will applications be reviewed to assure the use of the approved objects?

  • How will developers (especially new developers) be informed about the repositories and how to use them?

Common repositories, like development standards in general, can seriously boost productivity, but they also require ongoing maintenance and commitment. If your organization has such repositories, learn to use them. If no such collections yet exist, speak to management about instituting common repositories for approved design resources.

Planning your work


Volumes have been written about planning, and even more volumes have been written about how to become and stay organized. Here are just a few simple ideas that can be enormously powerful in keeping you personally on task.

Take notes

When you are young and brilliant, your mind might be as sharp as a tack and your memory as long as the Great Wall of China. But as your responsibilities increase, as your projects become larger, as you attend more meetings and deal with more customers as you get older your infallible memory will become fallible.

Take notes. Write things down. Some people prefer to use a laptop or PDA. Personally, after many years of trying several methods, I've come to appreciate the simple notebook. I jot notes all day long at my desk, in the car, at a meeting, in bed at night. It contains my list of tasks, my key contacts, notes from meetings, to-do lists, and timestamps. It is my work-life in a compact, lightweight, versatile package and it works without electricity.

Use to-do lists

It is a simple fact that people who make lists of things they must do, tend to get more things done. This is true on a personal level as well as on the job.

Start each day by making a list of tasks you will work on, meetings you will attend, and phone calls you must make. Keep that list nearby and refer to it often. If things come up during the day, add them to your to-do list. As you finish an item, check it off or scratch it out.

At the end of the day, review what you achieved and what is still undone. Create a new to-do list for the next day. Prioritize each item either in terms of how important it is to do or in terms of when you will do it. This simple activity will help you focus, and when you focus, you accomplish more.

If you are not used to working with to-do lists, it will take some self-discipline. You might also consider creating weekly, monthly, quarterly, or annual to-do lists as well. As you plan each day, consult the lists which deal with the longer timeframes and incorporate all relevant items on the daily to-do. The adage "Plan the work and work the plan" can be fulfilled easily with the simple to-do list.

Keep a list of all active projects and tasks

You should maintain a current list of all your active and pending projects, tasks, and commitments. Each item should include a rough estimate of how long it takes or will take, when you might start and finish it, and who the key contacts are for each item.

Inevitably, you will be asked to undertake new tasks, join committees, attend meetings, and perform services which take time. People easily become overbooked because, with an eagerness to please or to start something new, they simply do not estimate well how much time tasks take to do. Keeping a list of projects and tasks to which you can refer will help you and your boss allocate your time more effectively.

Report your progress

Developers and other technicians are often loath to spend time documenting, especially writing progress reports to managers. Managers, on the other hand, really do need to understand what their employees are doing. Well-informed managers can make better decisions when authorizing new work, prioritizing current tasks, handling contrary customers, reporting accomplishments to their managers, and requesting budget for the coming year.

As a developer, you should submit a summary of your work on a regular basis. Your organization may have a prescribed format for this activity. If not, here is a simple outline for weekly e-mail which can work satisfactorily:

  • Highlights from this week

  • Tasks for next week

  • Issues and other items

  • Pending projects

Add bulleted items in each section. Be concise, clear, and plain-spoken. Your goal is to convey a sense of your activities and progress to your (possibly non-technical) manager. Send this summary to him or to a project leader at the end of each work week when the information is fresh. Do not embellish, don't minimize. Use this report also to help plan the week ahead.

Working the project


The right way to begin any project is to plan it. That means taking a decent amount of time to think about what needs to be done, to make lists of requirements and notes about issues, to talk over the effort with customers, to create a project plan, to estimate the time it may take to do the work, and to get all of this approved. Many youthful developers fail to see much value in all that paperwork. They jump right in to begin crafting the prototype. Occasionally, this approach might work, but more often a lack of planning will lead to a lot of rework, missed requirements, and less than happy customers.

Prototyping is of course a great way to prove or present an idea, but do not make the mistake of deploying a prototype. Consider how long it might take to create the production version of your application, and get management's buy-in. Otherwise, you may get stuck supporting a lot of incomplete applications and handling many user complaints.

Work with users, not against them

Some users will tell you exactly what to do and how to do it; others are reluctant to ask for any changes whatsoever. Some developers would rather not speak with customers at all, believing they "know" what the customer needs.

The best circumstance is that in which the developer and the customer work together to advance a project. They share ideas and come to a common understanding of what needs to be done.

Lotus Notes and the Web are very visual environments. As a developer, you need all the help you can get to craft a good-looking and functional application which helps and pleases the customer. Engage with the customer early and often.

It may be difficult to convey in words what a screen will look like or how a workflow will progress. Early in the project, develop a prototype which includes approximations of the forms, pages, views, and other visual elements of the design. Take screenshots and paste those images into an e-mail or a document, and send them along to the customer. Ask for feedback.

If possible, sit with the customer in front of a computer and show him what you want to do. A picture can convey meaning clearly and efficiently, and workflow can be demonstrated really only by trying it out. Do this several times. The customer will share ownership of the project and will offer suggestions to improve the final product. Take notes and take heed. Be a hero.

Identify the champion and other players

With most projects there is one person who will really drive the effort. Identify this champion. He will know the requirements deeply or he will know who knows. He will address resource issues, especially the issue of finding time for customer testing.

Often the most important people are the line staff who will use your application. Find time to discuss with them how they see the new application helping them.

During the planning phase, identify as many people as possible who are interested in the project or who will use the fruits of your labor. Find time to talk with all of them. Your product will be richer and more on-target for the effort.

Don't start without clear requirements

Once in a while you might be required to begin a project without clear, well-written requirements. Resist!

Some customers are notoriously unable to think clearly through and write down what it is they want you to do. They may be willing, but they just do not work that way. Your customer may have an excellent plan in his head, but he just can't get it down on paper.

You may end up writing the specifications yourself and then seeking your customer's approval. So be it. Sit with him, watch what he does on the screen, take notes, and make diagrams. When everything is finally written down, have him sign off on this requirements document. This is the working agreement for the project, and it becomes the arbiter if what you deliver is not what he is expecting.

Understand the budget and timeline; provide an estimate

Requirements identify what the customer wants. You are the resource with the talent who will do whatever needs to be done to satisfy the requirements. But you also must operate within budget and time constraints. How much time, hours or days or weeks, are you authorized to work on this project? Are there any hard deadlines which must be met?

Most likely, before work begins, you will be asked to provide a time estimate for your work on the project. Study the requirements in detail and make notes. Estimate how long each task is likely to take. Be as realistic as possible with each estimate.

If you are familiar with the application, then the project will move along more rapidly. If you must discover the application learn about it from scratch then time must be allotted to that effort as well.

Include time in your overall estimate for the following work:

  • Planning and setup (time to create development and test databases)

  • Discovery (familiarization with the current design, if there is one)

  • Development (all the fun stuff)

  • Developer testing (once the coding is done)

  • Working with customers to test the changes (including code corrections)

  • End-user training

  • Rollover to production

  • Documentation (including suggestions for the next release)

Estimate the work in as detailed a manner as possible, and then roll-up the details into a grand total. Some people suggest adding a contingency factor, perhaps 10-20%, for unknowns. Remember, this is the actual time on the task that you anticipate will be required. It does not take into account non-project commitments, vacations, sick time, and so on.

Avoid scope creep

As the project moves forward, the customer will likely ask for additional features or changes that were not included in the original requirements document. It is tempting to agree to make changes, but such scope creep can be costly in terms of time and money. On the other hand, if the changes are sensible, consider including them. Discuss all such changes with the formal project coordinator or with your manager.

Assume that all Notes applications will be web-enabled in the future

Many times the Web is the first target for a new deployment, but sometimes a customer does not request web-enablement for an application. All well and good, but barring some unexpected international catastrophe, the trend towards moving applications to the Web should continue into the foreseeable future. So assume that a request will come along eventually to make that new "Notes only" application accessible from the Web. And assume also that older Notes applications, if they are not replaced, will in time be web-enabled as well.

With this in mind, it makes sense to focus on using only techniques that are directly transferable to the Web or that have highly comparable correlates. So as you develop, don't rely on techniques (like Environment variables and @Picklist) that have no direct counterpart for web applications. Check the Designer Help files for the lists of features that do and do not work on the Web. Keep this list handy.

Familiarize yourself with an unknown design

If the task at hand involves enhancing or web-enabling an existing application, then one of your first tasks is to familiarize yourself with the application as it exists already. If there is any existing documentation, read it. If not, you will have to undertake the discovery process on your own.

Start by taking a copy of the design. If there is an archived authoritative design, request a copy of it. If there is no authoritative design, don't trust any copies you may find on the development or staging servers. Previous developers may have left pre-production changes lying around that never made it to production before they moved onto something else. Ask for Editor access to the production database and take the design from there.

Examine the agents in the current design. If any of them are enabled and scheduled, make notes about which ones are enabled and then disable them. It may well be that some of these agents send e-mail notifications to people as part of a workflow. Other agents may automatically download or upload data to other databases. Until you know what the agents do, disable them.

Determine if there is a version or release designation for the production design. If not, assign it one. Then set the designation for the new version you are about to craft (for example, "Version 1.3").

Create a development database from the production design on your development server. You will be accessing this database with a web browser, so placing it on a server provides you with a more realistic view of how the application is accessed (or will be accessed) by your customers.

If you can copy documents from production without compromising security, then do so. Otherwise, copy some documents from another non-production database or simply create your own documents with the current design.

Examine the Access Control List (ACL) of the production database. Take note of which groups are listed and what privileges and roles each is assigned. Adjust the ACL of your development database if necessary to assure you have Manager access to it. This level of access enables you to modify the ACL if your design changes require it.

Open the application with Notes and look around. Read the About and Using documents. Look to see if there is any other internal documentation which may be helpful in understanding the design. Open the views and a document or two. Look over the agents.

Open your web browser and create a bookmark to the development database. Try to open it. If the database fails to open properly, re-open it with Notes and look for a "configuration" view and document of some sort. A configuration document or application profile may require changes before the database will open properly on the Web perhaps the configuration document lists the wrong server name or database file path. Make changes and try again. Once you have the application open in a browser, explore it. Begin to think about what you must change in order to implement the requested changes.

Assess an existing application for web enablement

A customer may inquire about web-enabling an existing Notes application. As a first step you may be called upon to assess the condition of the application as it currently exists and to provide a work estimate for the uplift.

The first task, assessing the application as it currently exists, might best be undertaken by a quality assurance tester or by a power user who will "think like a user" rather than like a developer. On the other hand, if someone like that is not available, you may be tasked to perform the assessment.

Think like a user

Understanding an application from a user's perspective is an important part of designing a good application. Take off your developer's hat for a time, and do not think about how this or that feature might be coded. Experience the application. Is the navigation intuitive? Do the forms look good? Is it clear what needs to be done?

Make at least two passes through the application before drafting a proposal. During the first pass access the application with Notes to understand what the application is supposed to do. Reviewing the application with Notes provides a baseline of expectations and may also uncover anomalies which warrant fixing.

Then access the application from the Web to see how it already compares (favorably or unfavorably) to the Notes version. Start at the beginning when the application first launches and proceed in an orderly fashion through all the features. Make notes. Take screenshots.

Think like a developer

Once the initial functional and UI assessment takes shape, go back through the application with Designer to get some ideas about what needs to be done to correct the application and to get it ready for the Web.

Especially if the application is several years old, there may be many opportunities to spruce it up by making relatively modest changes that won't break the bank and that may greatly improve customer satisfaction. After all, older "out of the box" Domino applications can look dated compared to contemporary websites and well-crafted web applications. Here are some cosmetic, "low hanging fruits" to consider. Some of these issues are covered in more depth in later chapters:

  • Change to web-oriented fonts like Verdana or Tahoma, rather than fonts which are more suitable to the printed page

  • Add accent color

  • Adjust field alignment and layout

  • Convert styling to CSS (Cascading Style Sheets) for maximum flexibility and styling options

  • Standardize the size and color of buttons

  • Try using tabbed tables

  • Style Action Bar buttons or remove the Action Bar altogether

  • Use some visually interesting HTML, like the<fieldset> and<legend> tags

Write a report

The end product of the assessment should be a report with plenty of screenshots which demonstrate the current state of the design. Here is a simple outline which can be used for such an assessment report:

Title Page

  • Business owner name and contact information

  • Developer name and contact information

Table of Contents

Summary

  • Purpose of the application

  • Summary table (information about the application: name, owner, location, size, replication, indexing)

  • General recommendations

Notes

  • Screenshot upon opening the application

  • Testing notes

  • Errors encountered

  • Deficiencies noted

  • Other observations

Web Browser

  • Screenshot upon opening the application

  • Testing notes

  • Errors encountered

  • Deficiencies noted

  • Other observations

Developer Recommendations

  • Each observation and recommendation can be assigned a specific number and title using the form in this example.

  • APP-01: There is no obvious way to create a new document

The assessment report can be used in discussions with the customer to illustrate how features currently work (or do not work) on the Web. Screenshots can help to set customer expectations about how much work is required.

The outcome of the general assessment would be a decision whether or not to allocate resources for refreshing and upgrading the Domino application.

Keep an issues log

Issues arise during the course of development, and even during routine maintenance tasks. There are decisions to make, problems to investigate, code to fix, tests to run, and documents to write. Typically, there are too many items to keep in your head, and jotting notes on scraps of paper, frankly, does not work well when there are many issues or when several people are involved in a project.

Keep an active log of items in a spreadsheet, in Team Room documents, or even in outline form with a word processor. Read and prioritize this list regularly. Review items with your project team, manager, and customer as appropriate. The issues log will help to keep you focused and moving forward. Fewer issues will fall through the cracks.

Track information about each issue in a consistent way. Keep enough information about each item to answer questions that arise, but do not overdo it. Create the issues log which you need for your project. Here are a few key items which might be tracked. Add to or subtract from this list as appropriate to your needs:

  • Item number

  • Title or subject

  • Status

  • Short description

  • Date reported

  • Who reported

  • Dependencies

  • Assigned developer

  • Assigned tester

  • Comments

Improve the application under the covers

Customers are concerned with look and feel and with functionality. These are aspects of an application which they can see and about which they may have opinions or demands. They assume that applications will perform well and flawlessly, and therefore considerations like good response time and effective error trapping are unlikely to make it to their requirements list.

However, these are things which developers should care about in great detail. A good looking, feature-rich application which is slow or which hangs, or displays many error messages, such an application is a failure.

Here are some things to consider. Each of these topics is elaborated in later chapters.

Enhance performance wherever possible

Web applications require significantly more server and network resources than do comparable Notes applications. Reduce this performance hit by using strategies known to help. For example, use Ajax calls to refresh a pick list rather than re-compute the entire form with a round-trip to the server. Compile a list of performance techniques and implement them.

Add error trapping

Nothing is more annoying than seeing an HTTP 500 error displayed in a browser. This and related error messages are generic; they provide little value in determining what went wrong. Aggravated, the user calls the Help Desk to complain, a ticket is issued, the developer interrupts his current task to attend to the user's problem.

Thorough testing will uncover the majority of error conditions, but never all of them. Again, compile a list of error handling techniques and implement them in your applications.

Add diagnostic and repair aids

Views that display data in ways that simplify troubleshooting can be invaluable when tracking down obscure data issues. Small agents that repair various problems within documents can also be added. It might be best to allow these tools to be seen and used only by the application administrators and developers.

Provide the customer with a summary of changes

Prior to or coincident with rolling a new application or a design upgrade to production, prepare a somewhat detailed Summary of Changes for the new version or release. In this document, identify for each change the following things:

  • An identifier and a title

  • A statement of the customer requirement fulfilled by the change

  • The design elements that were added or modified

  • Screenshots before and after if appropriate

  • Other notes

  • Test that were run to verify the change

The Summary of Changes is the final report of the project, a clear statement of what was done. You may wish to include a list of suggestions for the next design upgrade.

Documenting your applications


Application documentation provides a more detailed record of what was done and why. Months or years later, you will appreciate such notes when you revisit the code to make modifications. And it is certainly a professional courtesy to other developers to provide insight about why some aspect of an application works the way it does.

There may be an organizational requirement to document applications in a certain way, and if so, do so. Consider going beyond the minimum requirements. In any case, leave tracks.

Add comments to the code

If you took a programming class somewhere along the way, you were told to add comments to your code. This admonition is still valid today. Comment complex or obscure code in a plain way so that future developers can more readily grasp the associated technical implementation.

Every agent should include a summary of what it does, how it is called, what calls it makes, and how and when it was revised. A complex @ formula or JavaScript function should likewise include statements describing what it does. Sometimes hidden text placed on forms also can be helpful.

Create internal developer notes

Developers generally write too little documentation, and what is written is often found in documents external to the Notes application itself. Months or years later, no one can find the external documentation. A new developer begins discovery of the application all over again.

Instead of writing external documents, use the Page design element to record developer documentation. Maintain a consistent naming scheme, and identify them as 'Developer Notes' in the Comment field on the Page Info tab of Page Properties. Keep these pages within the design template. They will take little space, and they will always be there for the next developer.

Add release notes to the About document

In addition to the application owner and developer contact information, an application's About document often includes release notes. Details about a specific release can be included in a separate collapsible section that lists changed elements.

Consider organizing release notes in an outline form. Here is a sample:

  • Summary of Changes

  • Developer(s)

  • Database as a whole

  • Framesets

  • Pages

  • Forms, and so on

Add numbered or bulleted items in each section with specific information about the changed design elements.

Include external documentation in the design as file resources

Word processing documents, spreadsheets, presentations, and so on created during the course of a project can be imported into the design template as file resources. In this way, relevant external documents are never lost and remain with the design for future reference.

Create user-oriented help pages

Application discovery is a great time to make notes about how an application works. If little or no useful user-oriented documentation exists, consider saving notes and screenshots on pages in a separate user help database. Work out a simple, common navigational menu for each page. Once the collection of pages is complete, deploy it for customer use as well as your own.

Summary


Application development is about more than mastering a set of technical skills. It is also about you, the developer, and your customers. It involves strategies for staying organized, gathering information and requirements, estimating how long work will take, and reporting progress. It also involves going the extra mile to enhance performance, harden applications against unexpected failures, and documenting what you did and why. This chapter has provided general suggestions which may be applied to any development project.

Left arrow icon Right arrow icon

Key benefits

  • Classic techniques used for Web-enabling traditional Domino applications
  • Demonstrates how to incorporate HTML, CSS and JavaScript into designs
  • Offers tips and suggestions for testing, debugging, and troubleshooting
  • Organized, easy to read, and well-illustrated, with numerous code examples
  • Instructions valid for Domino versions 6, 7, and 8

Description

Domino is an application server that can be used as a standalone web server. As part of the Domino suite, it provides a powerful collaborative platform for the development of customized business applications. It provides enterprise-grade e-mail, messaging, and scheduling capabilities. There are many novice and moderately experienced developers who would like to enhance a Web-enabled Domino application, but to do so they need to learn the fundamentals of HTML, CSS, and JavaScript, and also how to use those technologies in the context of a Domino application. Information about how to do this is available on the Web, but the sheer volume of that information makes it very difficult for the newbie to get started. Topics and techniques presented in this book provide a comprehensive overview of all major design strategies used to Web-enable traditional Domino applications. Illustrations provide clear working examples of how HTML, CSS, and JavaScript can be incorporated into existing applications to improve both look and performance. Early chapters provide suggestions for working with users and for managing your development time and effort. Later chapters focus in detail on forms and pages, views, navigation, agents, security, performance, and troubleshooting. Examples demonstrate clearly how to incorporate HTML, CSS, and JavaScript into Domino designs. By the end of this book you will have learned what you need to know to quickly and competently tackle web application enhancement tasks. Beyond providing a good understanding, this book will continue to serve as a valuable source of ideas and techniques. This book brings together essential classic strategies and techniques used to deploy Domino applications to the Web. Chapters cover all major design elements, with a special emphasis on how to craft these elements to work well with web browsers. Many topics include alternative techniques for solving particular problems. Illustrations and examples can be used where appropriate, or they can serve as jumping off points for your own solutions.

Who is this book for?

This book is for novice to moderately experienced Domino developers who are new to the task of Web-enabling traditional Domino applications. Readers should be familiar with using Domino Designer to develop applications for the Lotus Notes client. It is also assumed that readers have, or can acquire, at least rudimentary knowledge of HTML, CSS, and JavaScript.

What you will learn

  • Incorporate dynamic debugging, which can be turned on after an application is in production
  • Learn to style design elements with CSS rules
  • Learn how to use the various application launching options
  • Create and customize views for the Web
  • Work with hidden fields and CGI variables
  • Validate fields with JavaScript
  • Include a date picker on a web form
  • Learn to incorporate AJAX into an application
  • Include diagnostic features to help you understand an existing application
  • Understand how LotusScript agents work with web pages
  • Learn to troubleshoot web applications
  • Review ways to improve application performance
Estimated delivery fee Deliver to Canada

Economy delivery 10 - 13 business days

Can$24.95

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Mar 23, 2011
Length: 344 pages
Edition : 1st
Language : English
ISBN-13 : 9781849682404
Vendor :
IBM

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to Canada

Economy delivery 10 - 13 business days

Can$24.95

Product Details

Publication date : Mar 23, 2011
Length: 344 pages
Edition : 1st
Language : English
ISBN-13 : 9781849682404
Vendor :
IBM

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total Can$ 223.97
IBM Lotus Notes 8.5 User Guide
Can$69.99
IBM Lotus Domino: Classic Web Application Development Techniques
Can$83.99
Microsoft SharePoint 2010 Developer's Compendium: The Best of Packt for Extending SharePoint
Can$69.99
Total Can$ 223.97 Stars icon
Banner background image

Table of Contents

10 Chapters
Preparation and Habits Chevron down icon Chevron up icon
Design and Development Strategies Chevron down icon Chevron up icon
Forms and Pages Chevron down icon Chevron up icon
Navigation Chevron down icon Chevron up icon
Cascading Style Sheets Chevron down icon Chevron up icon
JavaScript Chevron down icon Chevron up icon
Views Chevron down icon Chevron up icon
Agents Chevron down icon Chevron up icon
Security and Performance Chevron down icon Chevron up icon
Testing and Debugging Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(9 Ratings)
5 star 33.3%
4 star 44.4%
3 star 11.1%
2 star 11.1%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Gavin Bollard May 09, 2011
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I have to admit to wondering, when I was first asked to review this book, exactly what the market was that it's aimed at. After all, aren't all domino developers heading towards XPages now? Could a book on "traditional web programming in domino" still be relevant today?Well, surprisingly it is.The opening chapters deal with issues and requirements that our developers and I still constantly struggle with . They cover version control, issues logs, staging servers, commenting/documentation, standards and the big killer "scope creep". There are sections on using the "champions" in your office to drive projects, maintaining consistent URLs and setting up a developer test environment.These are aspects which affect all domino development regardless of the technology level (XPages, Notes, Pure HTML or JavaScript/CSS). If you regularly contract domino developers to develop applications for your environment, those first chapters are absolutely required reading. They're not overly technical and are very suitable for management level reading.The last two chapters of the book cover Security, Performance, Testing and Debugging. Again, these are mostly high-level. The security sections discuss planning for security, ACLs, reader and editor fields, the problems of hidden fields and sensible additions such as edit prevention after approval and logout facilities. The performance sections discuss archiving, code optimisation and the measurement of response time. The testing and debugging chapter talks about the requirements and limitations of user-testing and suggests various ways this testing could be improved. There are also some great sections on debugging which will help those new to domino to track down issues in their applications.The middle chapters cover CSS and JavaScript as it relates to forms, views and agents. The book talks about some features which are only available in Notes/Domino 8.5 but it never discusses XPages.If you're already a domino developer and you're looking to move into XPages, then this book certainly isn't for you. If however, you've been using Notes and want to quickly port some applications to the web or if you're familiar with classic HTML, CSS and JavaScript but want to get some Domino projects off the ground, then this is the right book.Of course, if you're on a version of notes/domino prior to 8.5 with little prospect of upgrading in the near future, this book will help you to get the best development potential out of your existing systems.The book offers a lot of great web development advice and code. It covers basic design rules mentioning some stylistic considerations which many web developers seem to overlook. It looks at form validation, usability and export functionality.The book exposes each increment in usability/design one step at a time. This will provide people new to domino with an understanding of the effect of each of their changes. It's a great way to cover these topics.There's also a whole chapter dedicated to navigation. It covers action buttons (how to style them, where to put them and when to use them). It provides tips for adding better URLs to your applications and provides some great coverage of the "go forward" navigational strategy.This is a really good book with great explanations and good technical detail. If this book had come out three years ago, it would have been a bestseller. Sadly though, XPages is taking over (at least in the minds of cutting domino developers) and this dates the technology in the book a little.If you're not going XPages yet and you're interested in classic domino development, then this is easily the best book I've seen on the subject.
Amazon Verified review Amazon
Melu26 Jun 16, 2013
Full star icon Full star icon Full star icon Full star icon Full star icon 5
La référence que je recherchais.Attention, ne s adresse pas aux débutants.Tres complet. Je vous le recommande vivement !!
Amazon Verified review Amazon
JLDMan Aug 11, 2011
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I would divide up the audience into three readers for "Classic Web Application" with Lotus Domino: 1. The "classic" adjective in the book's title is an acknowledgment that not all Domino developers are jumping into XPages and mastering the subtleties of Dojo. Some developers wear many hats and don't have time (or, are not ready) to push into frontiers. 2. There are Domino applications that are essential to a business, in which the architecture is late 1990's or early 2000, and does not need to be modernized, just maintained. This is the book for building the checklist of what can be polished up. 3. There is also the newbie programmer, frequently presented with the task of taking on a Domino application as their entry into enterprise application development. This is the book for them.With sections on design strategies, testing, and core application development (e.g., forms and views) anyone will find the right orientation for working in Domino web development. CSS and Javascript were clearly explained (and their integration isn't exactly transparent in Domino). Finally, the security chapter is terrific, with a very practical perspective on what is a good idea and what doesn't work well.
Amazon Verified review Amazon
K. Yee Jun 23, 2011
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
The short summary is that this is a book that gives you guidelines for developing Domino web applications the non-XPages way (introducted in Domino 8.5), and gives you pointers to where you can look for more information, but isn't a "cookbook" kind of book with a lot of samples. It's targeted at Domino developers who are new to web development on Domino, but are decent at HTML/CSS, and Javascript.This book covers techniques used in Domino 6.5 and up, but unfortunately doesn't point out which versions specific features were added; this would help if you're maintaining older versions of Domino, but doesn't matter if you're running the latest version of Domino because it has always been good about backwards compatibility.Good best practices are recommended for things like using div tags to replace framesets and aligned fields, how to organize css/styling. There's good overage of making the ugly default Domino web views prettier using CSS and Javascript. Domino techniques for security (hidden fields, controlled access sections, and read/author fileds) are covered well. There's also good coverage of things that can slow down the server so you can avoid them. And there's a good guide to testing/debugging.There are also some oddities like recommending that you avoid coding java applets, but it's ok to use built-in Domino applets like the action bar. An example of using Ajax calls to call an agent is used but there's no mention of using jQuery or Dojo to make it easier. There's good coverage of Lotuscript agents, but no coverage of Java agents.Overall, it's a good "best practices" guide, with a lot of mentions of design elements mentioned that you can look up fairly easily, but be prepared to dig at other resources to get the most out of this book. Packt Publishing has PDF/ePub e-book versions of this book if you'd prefer an electronic version.
Amazon Verified review Amazon
AlexK May 11, 2011
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
The folks at Packt Publishing are continuing to expand their shelf of IBM Lotus books. Their latest addition - Classic Web Application Development Techniques by Richard G. Ellis.Before I tell you how absolutely awesome this book is, I have to get something off my chest. The word "Classic" in the title is the absolute key word here. Mr. Ellis starts off the book by saying that everything here was written for and tested with Domino Designer 8.0. Upon reading that sentence I just had to go back to the very first page to check the publication date: someone is playing a trick on me. Alas, no tricks. The book was indeed published in March of 2011.The book also stays away, far away, from anything related to XPages and says so right off bat. But it is about classic development after all.Once you get over those two facts, the book is actually very good.I was afraid that it would stick to the trivial topics of web enabling Domino applications and using framesets and tables to layout an application. Of course, you can't talk about web development without explaining the basics of including HTML in a Notes form. And the book certainly does mention framesets and tables. However, it quickly moves to more advanced techniques of using DIV tags and CSS to effectively build a modern-looking web application. And for Notes developers who are not faint of heart, there are even sections devoted to advanced JavaScript and AJAX calls to boost performance.If you are an advanced Domino developer building web applications every day, this book may not be for you. But if you are a Notes developer who is making a transition to the web and want to know how to web enable your awesome Notes apps without looking like they were built by 5th-grader in 1999, get a copy of the book. You'll be hard pressed to find a better single source collection of Domino web development tricks.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela