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
Events
Videos
Audiobooks
Packt Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Mastering Application Development with Force.com
Mastering Application Development with Force.com

Mastering Application Development with Force.com:

Arrow left icon
Profile Icon Kevin J. Poorman
Arrow right icon
£22.49 £24.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.3 (3 Ratings)
eBook Jan 2016 232 pages 1st Edition
eBook
£22.49 £24.99
Paperback
£30.99
eBook + Subscription
£19.99 Monthly
Arrow left icon
Profile Icon Kevin J. Poorman
Arrow right icon
£22.49 £24.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.3 (3 Ratings)
eBook Jan 2016 232 pages 1st Edition
eBook
£22.49 £24.99
Paperback
£30.99
eBook + Subscription
£19.99 Monthly
eBook
£22.49 £24.99
Paperback
£30.99
eBook + Subscription
£19.99 Monthly

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
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
Product feature icon AI Assistant (beta) to help accelerate your learning
Modal Close icon
Payment Processing...
tick Completed

Billing Address

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

Mastering Application Development with Force.com

Chapter 1. A Conceptual Overview of Application Development on the Salesforce1 Platform

This chapter will give you a quick refresher on Force.com development tools and methodologies. We'll discuss the concepts of classes, triggers, and unit testing that we'll be mastering in future chapters. Additionally, we'll discuss the tools available for us to write Salesforce1 code. We'll focus on the developer console built into the Salesforce web interface, and you'll learn to use it for daily development tasks. The following topics will be covered in detail in this chapter:

  • Cloud computing and development
  • Development tools
  • Using the developer console

Developing for the cloud

Starting with e-mail, traditional applications for the desktop have been replaced with browser and mobile-based applications. And just like that, cloud computing has become an everyday fact of our lives. Now, you can find applications on the Web running on your browser that handle everything from photo editing and displaying to music streaming services and, of course, running your business. Corresponding to this shift to cloud-based applications, there's been a shift in how we develop software. True, we are no longer writing software on a local machine, publishing it, and having users run it on a local machine; we're now writing software on our local machine and pushing it to the App Store, the cloud, and increasingly connected devices. Salesforce development has always been somewhat different though. The Salesforce1 platform requires developers not only to run their code in the cloud, but to develop it there as well. This has always been the case to some extent, as you can't run an instance of Salesforce on your local computer. The only way to develop new features, to test, or even run your code is to put that code in the Salesforce cloud. Over the years, Salesforce has continually worked to improve this experience, first with the Eclipse-based Force.com IDE, then with the metadata and tooling APIs that facilitate third-party IDE integrations. Now, Salesforce has created the developer console, an in-browser code editor. We will use a developer console throughout the rest of this book to work through exercises, create and edit metadata, and demonstrate various features of Salesforce cloud. Before you can access the developer console, you'll need a developer edition organization. To sign up for a developer org visit the following URL. I highly encourage you to pause and sign up for the development org. Of course, if you already have a developer org, you can reuse it.

When you go to http://developer.salesforce.com/signup, the signup page will be displayed, as shown in the following screenshot:

Developing for the cloud

Identifying the development tools

There are three main development tools for building Force.com applications. The first and perhaps the most efficient development tool is the Force.com IDE. The IDE is distributed as a plugin for the venerable Eclipse development environment. If you've done Java development, you will feel at home with this. Additionally, in the past few months, an excellent plugin for the venerable Jetbrains Intellij IDEA IDE has been released. It is called Illuminated Cloud (refer to http://www.illuminatedcloud.com/ for more information). If you're a fan of the Intellij platform, you'll feel at home with it. The Salesforce community has also established another tool called MavensMate for developing Salesforce1 applications. MavensMate is a set of plugins for the excellent sublime text and the atom text editors. The plugins use the metadata and tooling APIs to provide a rich set of development tools. These tools include logging, anonymous apex execution, and the creation and editing of metadata. Documentation on installation and use of the MavensMate plugin can be found at the MavensMate home page, http://mavensmate.com/. The developer console is a relatively new feature to Salesforce. It provides an in-browser tool for developers to create and edit metadata, as well as run tests, execute queries, and generally inquire into the state of your application code. You can access the developer console by clicking on your name in the upper right-hand corner of the screen and selecting developer console, as shown here:

Identifying the development tools

At various points, you'll see text items denoted by the pipe symbol( | ), for example, File | New | Class.

Let's take a look at the following screenshot of menu instructions for the developer console:

Identifying the development tools

For example, if you click on the File menu, followed by the new menu item, and finally on the class menu item, you'll be given an opportunity to create, name, and create a new Apex class:

Identifying the development tools

Object-oriented building blocks of Force.com development

The Salesforce1 platform runs the Apex programming language. Like most other contemporary programming languages, Apex is object-oriented. Object-oriented development is focused on the creation of and interaction between objects. Objects are the result of instantiating classes. Classes describe properties and methods that can be interacted with. For instance, you might have a Box class, with properties of height, width, and depth. A box object would refer to a specific instance of the class box, with it's own values for height, width, and depth. Classes are the basic building blocks of object-oriented development and, therefore, Force.com development. Classes come in many varieties, from Visualforce controllers and controller extensions to inner and wrapper classes and normal classes. We will work with a number of class types throughout the book. Each class type can be created via the developer console using the new class option in the file menu and giving it a name.

While classes are building blocks of object-oriented development in the Salesforce1 ecosystem, there are a couple of other code containers, specifically, triggers and lightning bundles. Aside from where the files are stored, the biggest difference between classes and triggers is found in their first line. Classes use the class keyword, whereas triggers use the Trigger keyword:

//Definition of a class
Public with sharing class myExampleClass {
//Definition of a Trigger
Trigger myExampleTrigger on Account (before insert) {

Triggers differ from classes in that they define reflexive behavior that the system takes in response to certain data manipulation actions. Triggers have their own rules and ecosystems, and we will look at them in detail in their own Chapter 2, Architecting Sustainable Triggers using a Trigger Framework. Lightning Bundles, on, on the other hand contain more than just code. Lightning bundles also contain other assets like CSS style definitions, icons and documentation.

Learning to master Salesforce1 development

There is an old story about a new developer and a seasoned developer tackling the same problem. The new programmer Googles the problem, and after looking at a few stack exchange posts, pastes together some code and is confident that it works. After all, he thinks, other people have this exact same problem and they helpfully posted their results online. With their help, the new developer can put together a solution. On the other hand, the experienced developer first sits down and writes a test to prove that the problem exists. Only then does the developer write code to try to rectify it. This is one of the key differences between being an application developer and a master application developer. This is equally true for Salesforce1 platform. To truly master the platform, you not only need to know the language, logic, and patterns, but also how to know, objectively, when the code is done. Because of this, we'll be focusing on writing automated tests for our code.

Knowing when your code works is paramount to Apex solutions. However, the Salesforce1 platform provides a number of ways to develop solutions without writing Apex. Almost everything that can be done with the declarative tools can be done with Apex code, but to master the platform, you need to know when to use those declarative tools and when to write Apex.

Using the Salesforce developer console

Our code must live in the Salesforce cloud. Throughout this book, there will be a number of example code segments. Each of these is intended to highlight a technique, pattern, or feature of either Apex or the Salesforce1 platform. While you are free to use MavensMate or the Eclipse Force.com IDE plugin, this book will demonstrate code segments that have been tested in the developer console. Because of this, it's probably a wise idea for us take some time and demonstrate how to use the developer console. Once the window opens, you'll see a two-pane interface generally broken down into a taller pane and a shorter one below it. The menu bar across the top pane gives you access to several development features, while the lower pane gives you access to things such as logs and the query editor. Additionally, you can use this lower pane to access the view state of a visual force page and a number of other features as well. Let's talk about some common use cases for the developer console and walk through how to accomplish them.

Opening and creating metadata

Unless you're working with a brand new developer org that contains no metadata, you can open existing pages, classes, and triggers through the use of the file menu. To open up an existing class choose File | Open. You'll see a pop-up window with three panes:

Opening and creating metadata

The first pane shows various types of metadata you can open that is Triggers, Classes, Objects, and so on. Once you select a metadata type, the middle pane will populate with all of the files of that type. For instance, if you select classes, you'll see all the classes in the org. You can open up any given metadata file by double-clicking on the name in the middle pane. Additionally, other resources, such as lightning bundles and static resource bundles can be opened using the File menu option, Open Resource. If you've ever used sublime text, this works similarly to the open-anything command. Start typing in the filter modal and it will reduce your selection options helping you find what you're looking for.

Likewise, to create new classes, pages, and triggers use the New menu of the Developer console. The new submenu lists all of the various types of metadata you can create in the console, including things such as Static Resources and Visualforce Components. Ensure that you familiarize yourself with the process of creating new classes, triggers, and Visualforce pages; we will be doing this throughout the book.

Running SOQL and SOSL queries

Across the top of the shorter pane in the developer console is a series of tabs: Logs, Tests, Checkpoints, Query Editor, View State, Progress, and Problems. One of the most important features of the developer console lies in the ability to run SOQL and SOSL queries directly from it. To open the query editor, click on the Query Editor tab. Once opened, you can start typing your query in the lower pane.

Running SOQL and SOSL queries

Remember that SOQL queries must start with SELECT and SOSL queries must start with FIND when you run a query. After you run a query you'll see the results in the upper pane of the developer console. You can interact with these records by selecting a record and clicking on the command buttons at the bottom of the pane. This allows you to open the record in the Salesforce user interface, or delete the record right there in the developer console, as shown in the following screenshot:

Running SOQL and SOSL queries

While we're discussing this, let's go ahead and give it a try. Your developer org comes with a certain number of accounts and contacts pre-established. We can run a query right now and experience how the developer console query editor works. Write this query in the query editor of your developer console:

Select SELECT Id, name Name from FROM Account;  

If you're using a new developer org, you'll have between 10 and 12 accounts that are returned as results in the top pane of the developer console. In fact, unless you delete the accounts from your org, this query will always return at least a few records, each column being one of the two fields requested in select clause of the query. Double-click on the Name field of the first record. As soon as you do so, you'll find that you can edit the record name right there. However, once you have edited a field on a record, ensure that you hit the Save record button at the bottom of the pane. You'll also find buttons to insert a new row, access that record in the Salesforce user interface, and open the records detail page.

Running unit tests

Another tab in the bottom pane is the Tests tab. This is where you will run and, otherwise, interact with unit tests. Unit tests are methods of code that we run to execute and test units of live code. We'll talk extensively about unit tests in Chapter 5, Writing Efficient and Useful Unit Tests. Unit tests are run asynchronously, meaning they don't run immediately when you fire them up. You'll need to wait a bit while your tests run and the tests tab will show you when they start. As the test run completes, you'll see that the individual suites are completed and the individual tests are underneath them via disclosure triangles. Should you have a failure, you can double-click on the failure to bring up the results of that particular test in the upper portion of the developer console. Here, you can see the tests tab with the test suites and test methods expanded:

Running unit tests

When viewing the Tests tab, an additional data pane shows up in the lower-right corner. While the bottom-left pane allows you to view test runs, the bottom-right pane shows you the code coverage for the various classes and triggers in your org:

Running unit tests

This window shows the overall aggregate code coverage metric that matters when deploying from one org to another and you must have at least 75% of your code covered as measured here. As you can see, I don't have anywhere near the code coverage I need. Double-clicking on a class or trigger listed in this code-coverage pane will open the class and display which lines are covered and which are not. This is an incredibly useful tool for finding testing gaps!

Running unit tests

Creating and opening Lightning Components

Lightning Components are the building blocks of lightning apps. They're written in JavaScript, Apex, and HTML/CSS; they represent the next evolution of Salesforce application development. If you've enabled Lightning Components in your org, you'll see that the ability to create new Lightning Components is in the same New menu list as classes, triggers, and so on. Specifically, you'll see options to create new lightning apps, Lightning Components, lightning interfaces, and lightning events. However, opening lightning resources is slightly different than opening a Visualforce page or an Apex class. Instead of navigating to File | Open, you have to use the new open lightning resources menu item in your file. We'll talk more about lightning components in Chapter 6, Deploying Your Code.

Opening and reading debug logs and adjusting log levels

One of the great benefits of the developer console is that you can read all of the debug logs that come through your org. Debug logs are log files generated by code execution on the platform. Whenever a user navigates to a Visualforce page or a trigger is run, for instance, the platform generates detailed logs about what happened and how long it took, developers can insert data into these logs using the Apex method, System.debug(string). By default, only debug logs created when your user has taken action are shown on the Logs option. However, you can toggle seeing the debug logs for all users via the Debug menu. Once an event that has generated logs has occurred, you'll see them listed under the Logs tab, as shown here:

Opening and reading debug logs and adjusting log levels

Default sorting is by time, with the newest on top; however, you can sort by the username, application, and so on. More importantly, you are able to sort through them by status. To open the log, simply double-click on it. This will open up in the larger pane of the developer console. Alternatively, if you'd like more of a raw view of the log, you can right-click on it and open Raw Log.

Opening and reading debug logs and adjusting log levels

Regardless of how you open the log, the more you deal with them, the more you'll realize they can get to be quite large; sometimes, several megabytes in size. To help with this, the developer console has a way for you to alter the log verbosity. These settings are referred to as the log levels and they provide a fairly fine-grained level of control over how verbose the various system components log. To modify the log levels, click on the Debug menu and then select Change Log Levels:

Opening and reading debug logs and adjusting log levels

Here, you can set the general log levels for a given period of time for database (DB) calls, Callouts, Apex Code, Validation (validation rules), Workflow (workflow rules), Profiling and Visualforce, and the System itself. Each log type has seven verbosity levels ranging from ERROR at the lowest verbosity to FINEST at the most verbose. At the most basic, at the least verbose setting of ERROR, only true errors are logged. On the other hand, FINEST logs the most minute details of the code execution:

Opening and reading debug logs and adjusting log levels

More importantly, you can set per class and per trigger overrides if you want to debug a specific class or trigger. Increasing the logging verbosity for your troublesome class or trigger can help you highlight performance problems as well as logic issues. In general, while writing code, it's good to leave most log types on INFO but I set workflow and validation rule logging to error, as workflow and validation rules can log quite a lot.

An anonymous Apex execution

Anonymous Apex is probably one of the most misunderstood and easily overlooked aspects of Force.com development. Anonymous apex allows you to run scripts or snippets of Apex code without compiling it into a class. Functionally, this means that you can run a query and iterate over the results to do a one-off data cleanup script, for example. Alternatively, you can also do functional system tests, such as making callouts and executing code. You can think of this as a little bit like a DOS batch job or a Linux shell script. To access the execute anonymous window, open the developer console and click on the Debug menu and then select Open Execute Anonymous Window:

An anonymous Apex execution

This will open a resizable modal window where you can type the Apex code, as shown in the following screenshot:

An anonymous Apex execution

Unlike the main class and trigger editor you will not receive syntax help, but you will get syntax highlighting. Anonymous apex is not terribly different from a Swiss Army chainsaw. You can do anything you want with it, but if you're not careful, you'll cut your foot off. A mistake can easily delete records or modify them beyond repair. Be careful.

Addressing problems

The last bit of the developer console we need to cover is the Problems tab. Should you have a syntax error in any of your code, the Problems tab will list them along with the class name and line number:

Addressing problems

For instance, if you forget a ; it will list the name of the class, a pretty decent rough estimate of the problematic line number, and what the compilation error is. The Problems tab updates asynchronously to other activities. However, it will update a badge style count of errors in the background. Whenever you see a badge icon over the Problems tab, you have a syntax error in your code.

Developer console exercises

We'll be using the developer console throughout this book, so it is necessary that you become familiar with it. The following are some exercises to help you familiarize with the consoles development features:

  • Create a class: Using the developer console, create a new class and give it the name DevConsoleExample. Ensure that the class compiles without errors.
  • Run a SOQL query: Run a SOQL query from the query editor, that finds all the opportunities that are on the closed/won stage.
  • Execute anonymous: Run the following code block in execute anonymous window:
    System.assert(1, (1/0), 'should throw an assertion error');
  • Log viewing: Having run that snippet of Apex in the developer console, navigate to the Logs tab and open the raw log option of its execution. Does the code throw assertion exception or division by 0 exception?

Summary

In this chapter, we discussed the object-oriented nature of Salesforce's programming language Apex, and dove into how to use the Developer console. Along the way, we discussed a couple of other development tools and hopefully what your appetite for future topics. In our next chapter, we will cover one of the fundamental aspects of Salesforce.com development—Triggers.

Left arrow icon Right arrow icon

Key benefits

  • *Flaunt your skillsets by developing complex applications that include demanding concepts such as triggers, Visualforce controllers, batch jobs, and Lightning components
  • *Earn the gratitude of your colleagues by structuring a project so that multiple developers can work independently of each other
  • *Kevin Poorman, the author of the book and a Force.com MVP, shares his years of Force.com knowledge and experience with you through the medium of telling examples

Description

Force.com is an extremely powerful, scalable, and secure cloud platform, delivering a complete technology stack, ranging from databases and security to workflow and the user interface. With salesforce.com's Force.com cloud platform, you can build any business application and run it on your servers. The book will help you enhance your skillset and develop complex applications using Force.com. It gets you started with a quick refresher of Force.com's development tools and methodologies, and moves to an in-depth discussion of triggers, bulkification, DML order of operations, and trigger frameworks. Next, you will learn to use batchable and schedulable interfaces to process massive amounts of information asynchronously. You will also be introduced to Salesforce Lightning and cover components—including backend (apex) controllers, frontend (JavaScript) controllers, events, and attributes—in detail. Moving on, the book will focus on testing various apex components: what to test, when to write the tests, and—most importantly—how to test. Next, you will develop a changeset and use it to migrate your code from one org to another, and learn what other tools are out there for deploying metadata. You will also use command-line tools to authenticate and access the Force.com Rest sObject API and the Bulk sObject API; additionally, you will write a custom Rest endpoint, and learn how to structure a project so that multiple developers can work independently of each other without causing metadata conflicts. Finally, you will take an in-depth look at the overarching best practices for architecture (structure) and engineering (code) applications on the Force.com platform.

Who is this book for?

If you're a Force.com developer with a fundamental understanding of Apex and JavaScript but now want to enhance your skills with tips, tricks, and guidance on the best architectural and engineering practices, then this book is for you.

What you will learn

  • • Creating triggers, and the best practices for writing them
  • • Developing a number of Visualforce controllers and extensions
  • • Integrating third-party web APIs into your Apex code
  • • Writing unit tests that cover testing bulk safety, user and profile settings, and negative tests
  • • Creating a Lightning component for use in Salesforce1
  • • Getting acquainted with various methods for deploying metadata between orgs
  • • Using the Rest sObject API for access to Salesforce objects and data using the REST methodology
  • • Learning about overarching architectural considerations such as naming conventions, testing practices, and data modeling practices

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jan 28, 2016
Length: 232 pages
Edition : 1st
Language : English
ISBN-13 : 9781782172826
Vendor :
Salesforce
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
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
Product feature icon AI Assistant (beta) to help accelerate your learning
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Jan 28, 2016
Length: 232 pages
Edition : 1st
Language : English
ISBN-13 : 9781782172826
Vendor :
Salesforce
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
£16.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
£169.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 £5 each
Feature tick icon Exclusive print discounts
£234.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 £5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total £ 121.97
Force.com Enterprise Architecture
£51.99
Apex Design Patterns
£38.99
Mastering Application Development with Force.com
£30.99
Total £ 121.97 Stars icon

Table of Contents

10 Chapters
1. A Conceptual Overview of Application Development on the Salesforce1 Platform Chevron down icon Chevron up icon
2. Architecting Sustainable Triggers Using a Trigger Framework Chevron down icon Chevron up icon
3. Asynchronous Apex for Fun and Profit Chevron down icon Chevron up icon
4. Lightning Concepts Chevron down icon Chevron up icon
5. Writing Efficient and Useful Unit Tests Chevron down icon Chevron up icon
6. Deploying Your Code Chevron down icon Chevron up icon
7. Using, Extending, and Creating API Integrations Chevron down icon Chevron up icon
8. Team Development with the Salesforce1 Platform Chevron down icon Chevron up icon
9. My Way – A Prescriptive Discussion of Application Development on Salesforce1 Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.3
(3 Ratings)
5 star 33.3%
4 star 33.3%
3 star 0%
2 star 0%
1 star 33.3%
Kristi MunLeeuw Dec 19, 2016
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Very well written book, not a re-hash of the documentation, real world guidance. Love the Continuous Integration chapter.
Amazon Verified review Amazon
Richard Hedin Jun 17, 2016
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
I'm learning from it, but the book is in many cases wrong. It says to type in this: System.assert(1, (1/0), 'should throw an assertion error'); It turns out that System.assert doesn't exist. Something similar does I'm sure, but not that.
Amazon Verified review Amazon
Muzeeb Oct 19, 2016
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
Lots of printing mistakes...Most of the code was copy Pasted from somewhere
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.

Modal Close icon
Modal Close icon