The ASP.NET Core and Angular series of titles have established themselves as a popular choice for learning full-stack development. This new edition is an in-depth guide completely rewritten to cover the latest version of Angular and ASP.NET Core. The book features brand-new sample projects created using ASP.NET Core 5 Web API and Angular 11, including:
- HealthChecks, a monitoring app that leverages the ASP.NET Core Health Checks Middleware for reporting app infrastructure component health.
- WorldCities, a database app that allows the user to browse a multi-level list of cities and countries with the ability to search and filter, and add, edit and delete features.
All of them are freely available on GitHub for your review, even if you didn't purchase the book. In this article the author shares his thoughts about the making of this best-selling book series, as well as the most noticeable improvements over the previous editions in terms of new contents and topics covered.
What is new in the fourth edition?
I did my best to satisfy the numerous feedback received following the release of the third edition by adding a series of insights on some advanced programming techniques, including:
- Side-by-side comparison between the Visual Studio's built-in Angular App Template and the Template provided by the Angular CLI (Chapter 2)
- Improved HTTP Caching strategies using ETag and Last-Modified response headers (Chapter 2)
- In-depth analysis of the AngularRoutingModule, with a lot of practical code samples throughout all the book (Chapter 2-12)
- EF Core Fluent API and EntityTypeConfiguration classes (Chapter 4)
- Visual Studio User Secrets to securely store passwords and access keys during development (Chapter 4)
- HTTP Call Debouncing and Throttling (Chapter 6)
- How to prevent Angular memory leaks with RxJS (Chapter 8)
- DBMS structured logging using third-party providers such as SeriLog (Chapter 8)
- Send e-mail messages using transactional email API from third-party providers, as well as from SMTP servers (Chapter 10)
- MS Azure App Service deploment / serverless deployment (Chapter 12)
... and more! Furthermore, most of the content has been completely rewritten to reflect the various changes brought by .NET 5.
How does your book differ from other books on ASP.NET and Angular?
The book guides the reader through real programming cases and development scenarios that they will likely face when building an ASP.NET Core and Angular app: most of them are taken from my personal experience as lead developer, team leader and senior software engineer. In my professional activity I’ve always had to deal with those challenges using a thoughtful approach, in order to find the most effective solution in terms of performance, security and maintainability.
You won’t find “quick and dirty” workarounds in this book: all the topics covered, the problems faced, and the solutions implemented are thoroughly analyzed taking as a reference the most authoritative standards and bibliographic references available.
What are the key takeaways you want readers to get from this book?
Once you've read this book, you can expect to be able to:
- Implement a Web API interface with ASP.NET Core, and learn how to consume it with Angular.
- Create a data model using Entity Framework Core with code-first approach and migrations support.
- Set up and configure a SQL database server using a local instance or a cloud data store on Azure.
- Perform C# and JavaScript debugging using Visual Studio 2019.
- Create TDD and BDD unit tests using xUnit, Jasmine, and Karma.
- Implement authentication and authorization using ASP.NET Identity, IdentityServer, and Angular API.
- Build Progressive Web Apps and understand the role of the Service Workers in modern browsers to improve UX on desktop and mobile.
- Deploy your ASP.NET Core and Angular apps to physical servers, Virtual Machines and MS Azure App Service.
To what extent does the book prepare its readers for dealing with real-world situations?
The book deals with all the aspects related to the development and implementation of the most common functions that are required by the market today to programmers: from the definition of the Data Model to the design of the user interface, from the creation of REST interfaces based on structured APIs to modern techniques of querying data in real time, up to debugging, testing and deploying. Most of the best practices shown by the book are frequently adopted by most Agile and DevOps approaches, and will greatly help the reader to understand and apply these methodologies in a practical way.
How does the book help a reader advance professionally?
Both technologies are attracting a huge interest in the sector, especially when deploying high-level enterprise applications: the built-in scaling capabilities, the cross-platform approach, the chance to decouple frontend and backend using different techniques and methodologies, as well as the support for cloud-based development and modern microservice-based architectures, make ASP.NET and Angular an optimal choice to build a professional career.
Furthermore, they’re both backed up by a huge and competent community you can always rely on.
Your book goes beyond the ASP.NET and Angular fundamentals. Why did you decide to write an advanced book?
Programming is one of the most fun and rewarding activities for any computer enthusiast. At the same time, I have spoken to many developers who are not satisfied with their work and feel they've made the wrong choice.
This attitude is largely due to incorrect approaches to a software developer’s role: the wide adoption of SOA may lead IT experts and tech companies to mistakenly see the developer as a 'bricklayer' of a single set of microservices. In today's changing and connected world, the developer has the unique opportunity to become a business innovation architect. The full-stack development approach (and the increased awareness it provides) is the way for developers to become enablers - if not protagonists - of such changes.
This belief, gained over many years as head of IT systems and network infrastructures, has led me to write this book. I want to show the benefits of full-stack programming to the widest possible audience, overcoming misconceptions regarding the role of coders and help fellow programmers to improve.
What makes ASP.NET stand out among the various available web frameworks such as Ruby on Rails, Django, etc.?
According to Stack Overflow’s 2020 survey, ASP.NET and ASP.NET Core are still among the most popular back-end frameworks, overtaking Ruby, Django and the likes by different lengths - and this keep happening every year.
I believe that this success is mostly due to the fact that the Microsoft development platform has been able to continuously improve throughout the last 20 years, without ever stopping or taking it easy: anyone who works with .NET is fully aware of the constant flow of updates that gets released every year and the improvements in performance, reliability and security they bring.
Don’t get me wrong, I love the simplicity of Ruby and I still use Django professionally, albeit rarely: however, right now I think that the .NET Framework has an edge in terms of functionality and versatility, especially for cloud-based applications and distributed services.
What are the future advancements that you anticipate in ASP.NET and Angular?
Regarding ASP.NET, we can reasonably expect that Microsoft will continue the unification scheme started with the latest .NET 5 release: the vision aims to release a single platform for every use: back-end and front-end, desktop and mobile, thanks to the big strides that are slowly but surely entering in the arena: on top of them I’ve currently see Blazor, a new ASP.NET feature that allow developers to build interactive web UIs using C# instead of JavaScript: being able to write client and server code using the same language was the key to success for the Node.JS and Express combo, and ASP.NET could reasonably try and do the same.
As for Angular, despite the market trends are still skewed towards React, I think it's a framework that still has a lot to say, mostly thanks to a ton of available features out of the box and a learning curve that gets better and better after each version. Although I like the simplicity and versatility of React, I honestly think that Angular is still unmatched in terms of robustness and component management: however, front-end frameworks life spawns are quite hard to predict and Angular has a lot of strong competitors other than React, such as Vue, Backbone, Knockout - not to mention the “upcoming” Blazor. Such a fierce scenario could also have positive effects on Angular, because it could force the developer team to keep improving the framework and adding new features.