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
Free Learning
Arrow right icon
Modern Web Development with ASP.NET Core 3
Modern Web Development with ASP.NET Core 3

Modern Web Development with ASP.NET Core 3: An end to end guide covering the latest features of Visual Studio 2019, Blazor and Entity Framework , Second Edition

eBook
€8.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m

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
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

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

Modern Web Development with ASP.NET Core 3

Getting Started with ASP.NET Core

Welcome to my new book on ASP.NET Core 3!

.NET and ASP.NET Core are relatively new in the technological landscape, as they were onlyofficially released in August 2017. Given that .NET is in the name, you would think that these would probably only be new versions of the highly popular .NET Framework, but that is not the case: we are talking about something that is truly new!

It's not just multiplatform support (howdy, Linux!), but it's so much more. It's the new modularity in everything: the transparent way by which we can now change things—the source code in front of our eyes teasing us to contribute to it, to make it better—is indeed a lot different from previous versions of .NET Core!

In this first chapter, we are going to talk a bit about what changed in ASP.NET and .NET in the core versions, and also about the new underlying concepts, such...

Technical requirements

Getting started

Microsoft ASP.NET was released 15 years ago, in 2002, as part of the then shiny new .NET Framework. It inherited the name ASP (short for Active Server Pages) from its predecessor, with which it barely shared anything else, other than being a technology for developing dynamic server-side content for the internet, which ran on Windows platforms only.

ASP.NET gained tremendous popularity, it has to be said, and competed hand to hand with other popular web frameworks, such as Java Enterprise Edition (JEE) and PHP. In fact, it still does, with sites such as BuiltWith giving it a share of 21% (ASP.NET and ASP.NET MVC combined), way ahead of Java (https://trends.builtwith.com/framework). ASP.NET was not just for writing dynamic web pages. It could also be used for XML (SOAP) web services, which, in early 2000, were quite popular. It benefited from the .NET Framework and its big library of classes and reusable components, which made enterprise development almost...

Beginning with .NET Core

Talking about ASP.NET Core without explaining .NET Core is somewhat cumbersome. .NET Core is the framework everyone is talking about, and for good reasons. ASP.NET Core is probably the most interesting API right now, as it seems that everything is moving to the web.

And why is that? Well, all these APIs relied heavily on Windows-native features; in fact, Windows Forms was merely a wrapper around the Win32 API that has accompanied Windows since its early days. Because .NET Core is multiplatform, it would be a tremendous effort to have versions of these APIs for all supported platforms. But of course, in no way does this mean that it won't happen; it's just that it hasn't happened yet.

With .NET Core, a host machine only needs a relatively small bootstrap code to run an application; the app itself needs to include all the reference libraries that it needs to operate. Interestingly, it is possible to compile a .NET Core application...

Dependencies and frameworks

Inside a .NET Core project, you specify the frameworks that you wish to target. What are these frameworks? Well, .NET Core itself, but the classic .NET Framework as well, Xamarin, Universal Windows Platform (UWP), Portable Class Libraries (PCL), Mono, Windows Phone, and more.

In the early days of .NET Core, you would either target .NET Core itself, or/as well as one of these other frameworks. Now it is advisable to target standards instead. Now we have .NET Standard, and the differences between the two are as follows:

  • .NET Standard is a specification (a contract) that covers which APIs a .NET platform has to implement.
  • .NET Core is a concrete .NET platform and implements the .NET Standard.
  • The latest .NET Standard will always cover the highest .NET full framework released.

David Fowler (https://twitter.com/davidfowl) of Microsoft came up with the following analogy:

interface INetStandard10...

Understanding the generic host

Starting with version 3.0, ASP.NET Core is now bootstrapped using a generic host. This means that it is not tied specifically to HTTP or any other web protocol, but it potentially supports any kind of protocol, including low-level TCP. The templates have changed and now the bootstrap looks something like this:

Host
.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});

We are now using the Host class to create an instance of a class that implements IHostBuilder, not IWebHostBuilder, although the result is the same.

We can interfere in the bootstrap process by means of extension methods. Specifically, we can configure the following:

  • Services registration
  • Logging
  • Configuration
  • Web hosting defaults (host, startup class)

Here is a full example of changing the configuration:

Host
.CreateDefaultBuilder...

Understanding the MVC pattern

Let's go back to ASP.NET now. For those of you that are still working with Web Forms, what is this MVC thing anyway, and where did it come from?

Let's face it: it was pretty easy to do terrible things in Web Forms, such as add lots of sensitive code in the page (which wouldn't be compiled until the page was accessed by the browser), adding complex business logic to a page class, having several megabytes of code in View State going back and forth on every request, and so on. There was no mechanism at all, other than the developer's discretion, to do things the right way. Plus, it was terrible to unit test it, because it relied on browser submission (POST) and JavaScript to have things working properly, such as binding actions to event handlers and submitted values to controls. There had to be a different solution, and in fact, there was.

The model-view-controller (MVC) design pattern was defined in the late 1970s...

Getting your context

You will probably remember the HttpContext class from ASP.NET. The current instance of this class would represent the current context of execution, which included both the request information and the response channel. It was ubiquitous, and even though in Web Forms it was sometimes hidden, it was the way by which the web application communicated with the client.

Of course, ASP.NET Core also has an HttpContext class, but there is a big difference: there is no longer a Current static property that lets us get hold of the current context—instead, the process is a bit more convoluted. Anyway, all of the infrastructure classes—middleware, controllers, views, Razor pages, view components, tag helpers, and filters—allow easy access to the current context. Those who don't can leverage the IHttpContextAccessor interface through DI and get a pointer to the current context:

//this is required to register the IHttpContextAccessor...

Understanding the OWIN pipeline

Previous versions of ASP.NET had a very close relationship with Internet Information Services (IIS), Microsoft's flagship web server that ships with Windows. In fact, IIS was the only supported way to host ASP.NET.

Wanting to change this, Microsoft defined the Open Web Interface for .NET (OWIN) specification, which you can read about at http://owin.org. In a nutshell, it is the standard for decoupling server and application code, and for the execution pipeline for web requests. Because it is just a standard and knows nothing about the web server (if any), it can be used to extract its features.

.NET Core borrowed heavily from the OWIN specification. There are no more Global.asax, web.config, or machine.config configuration files, modules, or handlers. What we have is the following:

  • The bootstrap code in Program.Main declares a class that contains a convention-defined method (Startup will be used if no class...

Hosting ASP.NET Core

You probably noticed, when we talked about OWIN, that I mentioned that the sample app was hosted in Kestrel. Kestrel is the name of a platform-independent web server fully written in .NET Core (of course, using the native libraries of your operating system). You need to host your web application somewhere, and .NET Core offers the following options:

  • Kestrel: Platform independent, your host of choice if you want to have your code run on any platform.
  • WebListener: A Windows-only host, offering significant performance advantages over Kestrel, but also has the disadvantage of needing Windows; starting with ASP.NET Core 2, it is now called HTTP.sys.
  • IIS: As in the past, you can continue to host your web app in IIS, on Windows, benefiting from the old pipeline and configuration tools.

A server in this context is merely an implementation of IServer, an interface defined in the Microsoft.AspNetCore...

Inversion of control and dependency injection

Inversion of control (IoC) and dependency injection (DI) are two related but different patterns. The first tells us that we should not depend on actual, concrete classes, but instead on abstract base classes or interfaces that specify the functionality we're interested in.

Depending on its registrations, the IoC framework will return a concrete class that matches our desired interface or abstract base class. DI, on the other hand, is the process by which, when a concrete class is built, the dependencies it needs are then passed to its constructor (constructor injection, although there are other options). These two patterns go very well together, and throughout the book, I will use the terms IoC or DI container/framework to mean the same thing.

.NET always had support for a limited form of IoC; Windows Forms designers used it at design time to get access to the current designer's services, for example, and...

Knowing the environments

.NET Core has the concept of the environment. An environment is basically a runtime setting in the form of an environment variable called ASPNETCORE_ENVIRONMENT. This variable can take one of the following values (note that these are case sensitive):

  • Development: A development environment, which probably does not need much explaining
  • Staging: A preproduction environment used for testing
  • Production: An environment (or as similar as possible) in which the application will live once it is released

To be specific, you can pass any value, but these have particular significance to .NET Core. There are several ways by which you can access the current environment, but you're most likely to use one of the following methods, extension methods and properties of the IWebHostEnvironment interface (add a using reference to the Microsoft.Extensions.Hosting namespace):

  • IsDevelopment...

Understanding the project templates

The Visual Studio template for creating an ASP.NET Core project, since version 3.x, adds the following (or very similar) contents to the Program class:

publicstaticvoid Main(string[] args)
{
    CreateHostBuilder(args).Build().Run();
}
 
publicstatic IHostBuilder CreateHostBuilder(string[] args) =>
    Host
.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(builder =>
{
builder.UseStartup<Startup>();
});

This has changed a bit since previous versions and is now more opinionated; I already showed this when talking about OWIN earlier in this chapter.

The Host class exposes the static CreateDefaultBuilder, which returns a fully built IHostBuilder instance. The CreateDefaultBuilder method is actually doing a lot of things behind our backs:

  • Creates a ConfigurationBuilder and adds the environment variables provider to it (see Chapter 2, Configuration...

What's new since version 2.0?

Let's see what is new in version 2.0 by going through the following sections.

ASP.NET Core 2.1

ASP.NET Core 2.1 was released on the web on May 30 2018. It doesn't contain a large number of breaking changes or fantastic new features, but I would highlight the following ones.

SignalR

SignalR, the real-time communication library for ASP.NET Core, finally made it out of prerelease. It has lots of goodies that didn't exist in pre-Core versions, and we will cover it in its own chapter.

Razor class libraries

It is now possible to package Razor UI files (.cshtml) as NuGet packages. This opens the door to lots of interesting possibilities. There will be more on this in the chapter about component reuse.

Razor pages improvements

Razor pages, introduced in ASP.NET Core 2.0, now also support areas and have a couple of additional features. We will go through them in the chapter...

The NuGet and dotnet tools

There are two tools that are closely related to the .NET Core SDK:

  • dotnet
  • nuget

These tools are must-haves for .NET development: the first, dotnet, is what, NuGet ecosystem of libraries and installs, publishes, and otherwise manages sets of NuGet packages. This one is

dotnet always executes with the most recent .NET Core version available on the system. In Appendix 1, you will find a good description of this tool and its usages.

You can get the nuget tool from https://www.nuget.org/packages/NuGet.CommandLine.

Summary

In this first chapter, we went through some of the biggest changes in ASP.NET Core and .NET Core. You are introduced to some of the key concepts in .NET Core: the NuGet distribution mode, the OWIN pipeline, the hosting model, environments, the improved context, and the built-in dependency framework, which are new in ASP.NET Core 3. We also had a look at the nuget and dotnet tools, the Swiss army knife of command-line .NET development, which will be covered in more detail in Appendix 1.

In the next chapter, we will start our .NET Core journeyby exploring the configuration of an application.

Questions

By now you should be able to answer the following questions:

  1. What are the benefits of DI?
  2. What are environments?
  3. What does MVC mean?
  4. What are the supported lifetimes in the built-in DI container?
  5. What is the difference between .NET Core and the .NET Standard?
  6. What is a metapackage?
  7. What is OWIN?
Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Delve into MVC patterns, configuration, routing, and deployment to build professional-grade applications
  • Learn how to integrate ASP applications with the JavaScript frameworks React, Vue, and Angular
  • Improve the performance of applications and the development team by implementing advanced ASP.NET Core concepts

Description

ASP.NET has been the preferred choice of web developers for a long time. With ASP.NET Core 3, Microsoft has made internal changes to the framework along with introducing new additions that will change the way you approach web development. This second edition has been thoroughly updated to help you make the most of the latest features in the framework, right from gRPC and conventions to Blazor, which has a new chapter dedicated to it. You’ll begin with an overview of the essential topics, exploring the Model-View-Controller (MVC) pattern, various platforms, dependencies, and frameworks. Next, you’ll learn how to set up and configure the MVC environment, before delving into advanced routing options. As you advance, you’ll get to grips with controllers and actions to process requests, and later understand how to create HTML inputs for models. Moving on, you'll discover the essential aspects of syntax and processes when working with Razor. You'll also get up to speed with client-side development and explore the testing, logging, scalability, and security aspects of ASP.NET Core. Finally, you'll learn how to deploy ASP.NET Core to several environments, such as Azure, Amazon Web Services (AWS), and Docker. By the end of the book, you’ll be well versed in development in ASP.NET Core and will have a deep understanding of how to interact with the framework and work cross-platform.

Who is this book for?

If you are a developer with basic knowledge of ASP.NET MVC and want to build powerful applications, then this book is for you. Developers who want to explore the latest changes in ASP.NET Core 3.1 to build professional-level applications will also find this book useful. Familiarity with C#, ASP.NET Core, HTML, and CSS is expected to get the most out of this book.

What you will learn

  • Understand the new capabilities of ASP.NET Core 3.1
  • Become well versed in how to configure ASP.NET Core to use it to its full potential
  • Create controllers and action methods, and understand how to maintain state
  • Implement and validate forms and retrieve information from them
  • Improve productivity by enforcing reuse, process forms, and effective security measures
  • Delve into the new Blazor development model
  • Deploy ASP.NET Core applications to new environments, such as Microsoft Azure, AWS, and Docker

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jun 25, 2020
Length: 802 pages
Edition : 2nd
Language : English
ISBN-13 : 9781789614282
Category :
Languages :

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
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Jun 25, 2020
Length: 802 pages
Edition : 2nd
Language : English
ISBN-13 : 9781789614282
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.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
€189.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
€264.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 143.97
C# 9 and .NET 5 – Modern Cross-Platform Development
€62.99
Clean Code in C#
€38.99
Modern Web Development with ASP.NET Core 3
€41.99
Total 143.97 Stars icon
Banner background image

Table of Contents

24 Chapters
Section 1: The Fundamentals of ASP.NET Core 3 Chevron down icon Chevron up icon
Getting Started with ASP.NET Core Chevron down icon Chevron up icon
Configuration Chevron down icon Chevron up icon
Routing Chevron down icon Chevron up icon
Controllers and Actions Chevron down icon Chevron up icon
Views Chevron down icon Chevron up icon
Section 2: Improving Productivity Chevron down icon Chevron up icon
Using Forms and Models Chevron down icon Chevron up icon
Implementing Razor Pages Chevron down icon Chevron up icon
API Controllers Chevron down icon Chevron up icon
Reusable Components Chevron down icon Chevron up icon
Understanding Filters Chevron down icon Chevron up icon
Security Chevron down icon Chevron up icon
Section 3: Advanced Topics Chevron down icon Chevron up icon
Logging, Tracing, and Diagnostics Chevron down icon Chevron up icon
Understanding How Testing Works Chevron down icon Chevron up icon
Client-Side Development Chevron down icon Chevron up icon
Improving Performance and Scalability Chevron down icon Chevron up icon
Real-Time Communication Chevron down icon Chevron up icon
Introducing Blazor Chevron down icon Chevron up icon
gRPC and Other Topics Chevron down icon Chevron up icon
Application Deployment Chevron down icon Chevron up icon
Assessments Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.7
(6 Ratings)
5 star 33.3%
4 star 33.3%
3 star 16.7%
2 star 0%
1 star 16.7%
Filter icon Filter
Top Reviews

Filter reviews by




Frank Solomon Aug 07, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Full disclosure:Packt Publishing sent me a free review copy of this book, I had the lead co-author role for a recent Packt book, and I had a technical reviewer role for another Packt book. This background had no impact on my review of this book.Summary:Written by a heavyweight team of authors, this book assumes a reader with a comfortable ASP.NET MVC background, and literacy with technologies central to .Net web development: ASP.net, C#, combined with HTML and CSS. It covers ASP.NET development in a modern world that features GitHub and Linux.* product spaces. Built in three sections• The Fundamentals of ASP.NET Core 3• Improving Productivity• Advanced Topicseach section drills down into component topics, often enough almost in a story-arc way. For example, Chapter 1 introduces Razor class libraries as a way to blend C# and HTML, and to control the behavior of .Net application engineering. Chapter 4 slightly covers Razor, integrating the topic with Controller engineering, Chapter 5 covers it more, and Chapter 7 covers it exclusively and at length.The good stuff:The broad topic coverage of a broad topic space works well, touching on the issues that will matter and count, at least for the “foreseeable” future. It’s good to see the authors recognize the merits of “old,” proven technology – for example, they discuss AJAX in Chapter 6 (Using Forms and Models) – essentially forcing modern ASP.NET Core technology to accept AJAX with a little bit of creative jQuery.The not-so-good stuff:Although the authors provide a large number of code samples, and carefully describe the engineering of those samples in the surrounding chapter text, heavier and more detailed comments would only work better, especially in the code samples for this book – all available at the Packt website. Comments don’t matter very much – until a developer needs them.What I’d like to see:VB.net coverage of the topics would be welcome, but at almost 750 pages, that might become unrealistic for a book that size. An exclusively VB.net version of this book would clearly work. Awhile back, Visual Basic had a huge presence in the front-end web development space. Visual Basic has evolved into modern VB.net, which essentially clones C#. Fast forward to now, and VB.net (Visual Basic) has become more of a guilty pleasure, overshadowed by C#. Still, VB.net has plenty of merit.In the preface, the authors do explain Visual Studio 2019 – at least the Community edition – as a prerequisite, and this makes sense in the modern world because earlier Visual Studio versions won’t necessarily have the needed feature space. Still, coverage of older Visual Studio technologies would be welcome. This could mean separate editions for earlier Visual Studio editions, fully recognizing that the feature spaces of those Visual Studio products might not match the topics covered in this book.Wrap-up:Modern Web Development with ASP.NET Core 3 Second Edition covers a heavy topic space – modern ASP.NET development – in a necessarily heavy way. Because of its broad topic coverage, the book lends itself to use as a textbook, for a formal class or focused self-study. It also works well as a reference resource.
Amazon Verified review Amazon
Sean K. Jan 16, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Disclaimer:Please note that I received this complementary from the publisher, Packt, in electronic (PDF) format. My review is not affected in any way by the fact that I received this free of charge. I am not a professional reviewer but hopefully this helps to explain my experience reading it. I have not yet gone through all of the examples but I believe they are all coded in a properly structured manner.Summary:This is a well-written book featuring many high-level concepts and it does cover a lot of ground regarding building reliable and secure ASP.NET Core apps. All of the chapters are well-organized and overall it is a fairly straightforward read. There is a significant amount of material regarding this amazing framework including its thorough history and helps to learn how it progressed through the years going all the way back to Active Server Pages (ASP). It provides excellent coverage of configuration and settings aspects. I suggest working through all of the example code to aid in understanding all information. The source is available through github using the link provided on page 3 and throughout the chapters.I find the explanations of dependency injection (DI) to be quite helpful. The author, Mr. Peres, clearly explains how to access services and how ASP.NET Core can be extended and customized to fit your needs. There are extensive explanations of Model-View-Controller (MVC), including Razor in chapter 7 (both pages and views), Entity framework and also Web API in chapter 8. Swagger is mentioned as well and I actually use it in my own work; it is certainly recommendable to learn that. In addition, there is really helpful advice on globalization in chapter 4 and how to support multiple languages in your web app.There are code examples of most, if not all, concepts which I have read so far in every chapter. This book has a great deal of material on how to effectively build a web app using C# and .NET Core. The versions 2.2, 3.0, are covered. I think 3.1 is also. The author does a fantastic job teaching advanced topics such as implementation of custom middleware as well.To sum up, I definitely recommend this book especially for intermediate to advanced level developers, wanting to build modern web apps using this technology. Some advanced chapters regarding exciting topics such as performance and scaling, unit testing, gRPC, Blazor and real-time communication with SignalR are covered. I particularly enjoyed reading about how to implement AJAX in .NET Core; to me, it is great the author included that because I have not seen much regarding this in other (web development) books that I have read.In my opinion, this book could easily be part of coursework, and it serves as an excellent reference giving a plethora of resources to learn .NET Core development. Like with other technical literature, there is definitely a great deal of knowledge to absorb here (including a lot of details to examine) but that is always a good thing!
Amazon Verified review Amazon
McRae Meade Oct 10, 2020
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This book breaks ot down to a simple method of implementation of asp web design, o would suggest looking at angular first especially if your into dynamic web pages .
Amazon Verified review Amazon
khicks Jul 01, 2021
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Bought as a reference.
Amazon Verified review Amazon
Ian Marteens Nov 12, 2020
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
It's absurd that a book of this (small) size try to appeal both to beginners and advanced readers. At the end, it's mostly a book for beginners.
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.