An Atypical ASP.NET Core 6 Design Patterns Guide
eBook - ePub

An Atypical ASP.NET Core 6 Design Patterns Guide

  1. 678 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

An Atypical ASP.NET Core 6 Design Patterns Guide

About this book

The professional developer's essential guide to building robust, maintainable, and flexible web apps by leveraging C# 10 and.NET 6 features and component- and application-scale design patternsKey Features• Apply the SOLID architectural principles and software design patterns effectively with a focus on dependency injection• Discover modern application architectures such as vertical slice, clean architecture, and event-driven microservices• Explore full-stack ASP.NET Core with an overview of BlazorBook DescriptionAn Atypical ASP.NET Core 6 Design Patterns Guide, Second Edition approaches programming like playing with LEGO®: snapping small pieces together to create something beautiful. Thoroughly updated for ASP.NET Core 6, with further coverage of microservices patterns, data contracts, and event-driven architecture, this book gives you the tools to build and glue reliable components together to improve your programmatic masterpieces. The chapters are organized based on scale and topic, allowing you to start small and build on a strong base, the same way that you would develop a program. You will begin by exploring basic design patterns, SOLID architectural principles, dependency injection, and other ASP.NET Core 6 mechanisms. You will explore component-scale patterns, and then move to higher level application-scale patterns and techniques to better structure your applications. Finally, you'll advance to the client side to connect the dots with tools like Blazor and make ASP.NET Core a viable full-stack web development framework. You will supplement your learning with practical use cases and best practices, exploring a range of significant Gang of Four (GoF) design patterns along the way. By the end of the book, you will be comfortable combining and implementing patterns in different ways, and crafting software solutions of any scale.What you will learn• Apply the SOLID principles for building flexible and maintainable software• Get to grasp.NET dependency Injection• Work with GoF design patterns such as strategy, decorator, façade, and composite• Explore the MVC patterns for designing web APIs and web applications using Razor• Discover layering techniques and tenets of clean architecture• Become familiar with CQRS and vertical slice architecture as an alternate to layering• Understand microservices and when they can benefit your applications• Build an ASP.NET user interfaces from server-side to client-side BlazorWho this book is forThe book is intended for intermediate software and web developers with an understanding of.NET who want to write flexible, maintainable, and robust code for building scalable web applications. Knowledge of C# programming and an understanding of web concepts like HTTP is necessary.

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access An Atypical ASP.NET Core 6 Design Patterns Guide by Carl-Hugo Marcotte,Abdelhamid Zebdi in PDF and/or ePUB format, as well as other popular books in Computer Science & Microsoft Programming. We have over one million books available in our catalogue for you to explore.

Information

Section 1: Principles and Methodologies

This section focuses on architectural principles and development methodologies that we use throughout the book. These introductory chapters are essential for progressing toward making great architectural decisions.
We first look at how to approach the book itself, explore prerequisites, and see a few helpful topics. Then, we cover automated testing and xUnit, to finally jump into the architectural principles, where we begin our study of the fundamentals of modern software engineering.
This section comprises the following chapters:
  • Chapter 1, Introduction
  • Chapter 2, Automated Testing
  • Chapter 3, Architectural Principles

1

Introduction

The goal of this book is not to create yet another design pattern book; instead, the chapters are organized according to scale and topic, allowing you to start small with a strong foundation and build slowly upon it, in just the same way that you would build a program.
Instead of this being a guide that covers a few ways of applying a design pattern, we will explore the thought processes behind the systems we are designing from a software engineer’s point of view.
This is not a magic recipe book, and from experience, there is no magic recipe when designing software; there is only your logic, knowledge, experience, and analytical skills. Let’s define “experience” as your past successes and failures. And don’t worry, you will fail during your career, but don’t get discouraged by it. The faster you fail, the faster you can recover and learn, leading to successful products. Many techniques covered in this book should help you achieve that goal. Everyone has failed and made mistakes; you aren’t the first, and you certainly won’t be the last. To paraphrase a well-known saying of Roosevelt’s, the people that never fail are the ones who never do anything.
The high-level plan looks like this:
  • We will explore basic patterns, unit testing, architectural principles, and some crucial ASP.NET Core mechanisms.
  • Then, we will move up to the component scale, exploring patterns oriented toward small chunks of software and individual units.
  • After that, we will move to application-scale patterns and techniques, where we explore higher-level patterns and how to structure an application as a whole.
  • Afterward, we will tackle the client side to connect the dots and make ASP.NET a viable full stack alternative.
Many subjects covered throughout the book could have a book of their own. Once you are done with this book, you should have plenty of ideas about where to continue your journey into software architecture.
Here are a few pointers that I believe are worth stating:
  • The chapters are organized to start with small-scale patterns and then progress to higher-level ones, making the learning curve easier.
  • Instead of giving you a recipe, the book focuses on the thinking behind things and shows the evolution of some techniques to help you understand why the evolution happened.
  • Many use cases combine more than one design pattern to illustrate alternate usage, so that you can understand the patterns and use them efficiently. This also shows that design patterns are not beasts to tame but tools to use, manipulate, and bend to your will.
  • As in real life, no textbook solution can solve all our problems, and real problems are always more complicated than what’s explained in textbooks. In this book, my goal is to show you how to mix and match patterns to think “architecture,” instead of giving you step-by-step instructions to reproduce.
This chapter introduces the different concepts that we will be exploring throughout the book, including refreshers on a few notions. We will also cover .NET and its tooling, as well as the technical requirements, such as where the source code is located.
The following topics will be covered in this chapter:
  • What is a design pattern?
  • Anti-patterns and code smells
  • Understanding the web – request/response
  • Getting started with .NET

What is a design pattern?

Since you just purchased a book about design patterns, I guess that you have some idea of what design patterns are, but let’s just make sure that we are on the same page.
Abstract definition: A design pattern is a proven technique that can be used to solve a specific problem.
In this book, we will apply different patterns to solve different problems and leverage some open source tools to go further, faster! Abstract definitions make people sound intelligent and all, but there is no better way to learn than by experimenting with something, and design patterns are no different.
If that definition does not make sense to you yet, don’t worry. You should have enough information by the end of the book to correlate the multiple practical examples and explanations with that definition, making it clear enough.
I like to compare programming to playing with LEGO® because what you have to do is generally the same: put small pieces together to create something bigger. It could be a castle, a spaceship, or something else that you want to build. With that analogy in mind, a design pattern is a plan to assemble a solution that fits one or more scenarios; a tower or a reactor, for example. Therefore, if you lack imagination or skills in the case of LEGO®, possibly because you are too young, your castle might not look as good as someone else’s who has more experience. Design patterns give you the tools you need, helping you put beautiful and reliable pieces together to improve your masterpiece.
However, instead of snapping LEGOÂŽ blocks together, you nest code blocks and interweave objects in a virtual environment!
Before going into more detail, well-thought-out applications of design patterns should improve your application designs. That is true whether you are designing a small component or a whole system. However, be careful: throwing patterns into the mix just to use them can lead to the opposite result. Aim to write readable code that solves the issue at hand, not at over-engineering systems with as many patterns as ...

Table of contents

  1. Preface
  2. Section 1: Principles and Methodologies
  3. Introduction
  4. Automated Testing
  5. Architectural Principles
  6. Section 2: Designing for ASP.NET Core
  7. The MVC Pattern Using Razor
  8. The MVC Pattern for Web APIs
  9. Understanding the Strategy, Abstract Factory, and Singleton Design Patterns
  10. Deep Dive into Dependency Injection
  11. Options and Logging Patterns
  12. Section 3: Designing at Component Scale
  13. Structural Patterns
  14. Behavioral Patterns
  15. Understanding the Operation Result Design Pattern
  16. Section 4: Designing at Application Scale
  17. Understanding Layering
  18. Getting Started with Object Mappers
  19. Mediator and CQRS Design Patterns
  20. Getting Started with Vertical Slice Architecture
  21. Introduction to Microservices Architecture
  22. Section 5: Designing the Client Side
  23. ASP.NET Core User Interfaces
  24. A Brief Look into Blazor
  25. Appendices
  26. Appendix A
  27. Appendix B
  28. Assessment Answers
  29. Acronyms Lexicon
  30. Other Books You May Enjoy
  31. Index