Cover Page....2
Table of Contents....3
Preface....5
Part 1: Getting Started....14
Chapter 1: SaaS – the Modern Distribution Model that We All Need....15
What is SaaS?....16
What other types of applications are there?....18
Where did it all begin?....20
Why is SaaS a popular choice for businesses large and small?....23
Which tools are required to build SaaS apps?....24
Which techniques will be used to build SaaS apps?....27
How does this affect the development process?....33
What to expect from this book....35
How to assess and pay off technical debt....35
Summary....37
Further reading....38
Chapter 2: Building a Simple Demo Application....39
Technical requirements....40
Setting up....40
Building out a sample application....60
Where do we go from here?....74
Summary....75
Further reading....75
Questions....76
Part 2: Building the Backend....77
Chapter 3: What Is Multi-Tenancy, and Why Is It Important in SaaS Applications?....78
Technical requirements....79
What is multi-tenancy?....80
Options for data storage with multi-tenant applications....85
Design considerations through the application layers....89
Security considerations....108
Summary....117
Further reading....118
Chapter 4: Building Databases and Planning for Data-Rich Applications....119
Technical requirements....120
The importance of data in a SaaS application....120
Building a database....122
Testing data-rich applications....137
Upgrading a database....138
Summary....143
Further reading....143
Questions....143
Chapter 5: Building Restful APIs....145
Technical requirements....145
What are RESTful APIs?....146
Matching API operations to HTTP verbs....152
Data transfer objects....156
Designing better with REST....158
Versioning public APIs....178
Testing APIs....183
Summary....185
Further reading....185
Questions....186
Chapter 6: Microservices for SaaS Applications....187
Technical requirements....188
What are microservices and why use them?....188
Best practices for building microservices....191
Mixing microservices and RESTful APIs....200
Common pitfalls and how to avoid them....204
Some practical advice....206
A practical example....213
Summary....221
Further reading....221
Questions....222
Part 3: Building the Frontend....223
Chapter 7: Building a User Interface....224
Technical requirements....225
Introduction to the tech stack....225
UX considerations – knowing your customer....227
Building a simple UI....236
Connecting the UI to the backend....251
Building usable UIs....255
Summary....261
Further reading....263
Questions....263
Chapter 8: Authentication and Authorization....264
Technical requirements....265
What are authentication and authorization....265
Multi-tenancy and microservices....283
Managing users, roles, and permissions....291
Summary....295
Further reading....296
Questions....297
Part 4: Deploying and Maintaining the Application....298
Chapter 9: Testing Strategies for SaaS Applications....299
Technical requirements....300
Testing strategies for SaaS applications....300
The testing pyramid – unit, integration, and E2E testing....309
An overview of testing tools and frameworks for SaaS applications....318
A practical demonstration....322
Summary....324
Further reading....325
Questions....326
Chapter 10: Monitoring and Logging....327
Overview....328
Monitoring....330
Logging....338
Monitoring and logging considerations for SaaS applications....346
Summary....348
Further reading....350
Questions....350
Chapter 11: Release Often, Release Early....351
Understanding CI/CD....352
Configuring CI/CD pipelines....359
CI/CD pipelines and tools overview....363
SaaS-specific considerations....367
Summary....371
Further reading....372
Questions....373
Chapter 12: Growing Pains – Operating at Scale....374
The challenges of operating at scale....375
Scaling the database....390
Scaling the API....400
Scaling the UI....410
Summary....417
Further reading....418
Questions....418
Part 5: Concluding Thoughts....420
Chapter 13: Wrapping It Up....421
Well done!....421
What have you learned?....424
How can you use these skills?....427
Summary....433
Index....435
Why subscribe?....472
Other Books You May Enjoy....473
Packt is searching for authors like you....477
Share Your Thoughts....477
Download a free PDF copy of this book....478
There are several concepts that must be mastered to deliver functional and efficient SaaS applications. This book is perfect for developers and teams with experience in traditional application development looking to switch to SaaS and deliver slick and modern applications. You'll start with a general overview of SaaS as a concept and learn with the help of an example throughout the book to bring life to the technical descriptions. You'll use the Microsoft .NET tech stack for development and C# as the programming language to develop your desired SaaS application.
Delivering SaaS requires a deep understanding of all layers in the application stack. As you progress, you'll learn how to approach the database layer, the API, and the UI to confidently approach application development using the SaaS model. Additionally, you'll explore how to test, deploy, maintain, and upgrade each component of the application.
By the end of this book, you will be well equipped to approach all aspects of delivering software using the SaaS paradigm.
If you are a software developer with an interest in developing apps using the 'SaaS' paradigm, or a tech lead, scrum master, or a director and founder - this book will help you understand how to build a SaaS application. If you are a Java developer looking to start fresh with distributed systems, this book is for you. A basic understanding of Java, Spring/Spring Boot, and Web services will help you get the most out of this book.