Book description
Design scalable and high-performance enterprise applications using the latest features of C# 8 and .NET Core 3
Key Features
- Become a software architect capable of creating modular apps for specific business needs
- Design high-performance software systems using the latest features of C# 8 and .NET Core 3
- Solve scalability problems in web apps using enterprise architectural patterns
Book Description
Software architecture is the practice of implementing structures and systems that streamline the software development process and improve the quality of an app. With this software architecture book, you'll follow a hands-on approach to learning various architectural methods that will help you develop and deliver high-quality products.
You'll begin by understanding how to transform user requirements into architectural needs and exploring the differences between functional and non-functional requirements. Next, you'll explore how to carefully choose a cloud solution for your infrastructure, along with covering dos and don'ts that will help you manage your app in a cloud-based environment. Later chapters will cover techniques and processes such as DevOps, microservices, and continuous integration, along with providing insights into implementing them using Microsoft technologies such as ASP.NET Core, the Entity Framework, Cosmos DB, and Azure DevOps. You will also learn about testing frameworks and automation tools that will help you through the development process. Finally, you'll discover design patterns and various software approaches that will allow you to solve common problems faced during development.
By the end of this book, you'll be able to develop and deliver highly scalable enterprise-ready apps that meet customers' business needs.
What you will learn
- Overcome real-world architectural challenges and solve design consideration issues
- Apply architectural approaches like Layered Architecture, service-oriented architecture (SOA), and microservices
- Learn to use tools like containers, Docker, and Kubernetes to manage microservices
- Get up to speed with Azure Cosmos DB for delivering multi-continental solutions
- Learn how to program and maintain Azure Functions using C#
- Understand when to use test-driven development (TDD) as an approach for software development
- Write automated functional test cases for your projects
Who this book is for
This book is for engineers and senior developers aspiring to become architects or looking to build enterprise applications with the .NET Stack. Experience with C# and .NET is required to understand this book.
Publisher resources
Table of contents
- Title Page
- Copyright and Credits
- About Packt
- Contributors
- Preface
- Section 1: Transforming Customer Needs in Real-World Applications
-
Understanding the Importance of Software Architecture
- Technical requirements
- What is software architecture?
- Software development process models
- Enabling aspects to be gathered to design high-quality software
- Using design thinking as a helpful tool
- Some cases where the requirements gathering process impacted system results
- Case study – detecting user needs
- Summary
- Questions
- Further reading
-
Functional and Nonfunctional Requirements
- Technical requirements
- How does scalability interact with Azure and .NET Core?
- Performance issues that need to be considered when programming in C#
- Multithreading environments for better results – do's and don'ts
- Usability – why inserting data takes too much time
- The fantastic world of interoperability with .NET Core
- Book use case – understanding the main types of .NET Core projects
- Summary
- Questions
- Further reading
- Documenting Requirements with Azure DevOps
- Section 2: Architecting Software Solutions in a Cloud-Based Environment
-
Deciding the Best Cloud-Based Solution
- Technical requirements
- Different software deployment models
- Infrastructure as a service and Azure opportunities
- PaaS – a world of opportunities for developers
- SaaS – just sign in and get started!
- Understanding what serverless means
- Why are hybrid applications so useful in many cases?
- Use case – a hybrid application
- Summary
- Questions
- Further reading
- Applying a Microservice Architecture to Your Enterprise Application
-
Interacting with Data in C# - Entity Framework Core
- Technical requirements
- Understanding ORM basics
- Configuring Entity Framework Core
- Entity Framework Core migrations
- Querying and updating data with Entity Framework Core
- Deploying your data layer
- Understanding Entity Framework Core advanced feature – global filters
- Summary
- Questions
- Further reading
- How to Choose Your Data Storage in the Cloud
- Working with Azure Functions
- Section 3: Applying Design Principles for Software Delivered in the 21st Century
- Design Patterns and .NET Core Implementation
- Understanding the Different Domains in Software Solutions
- Implementing Code Reusability in C# 8
- Applying Service-Oriented Architectures with .NET Core
-
Presenting ASP.NET Core MVC
- Technical requirements
- Understanding the presentation layers of web applications
- Understanding the ASP.NET Core MVC structure
- What is new in .NET Core 3.0 for ASP.NET Core?
- Understanding the connection between ASP.NET Core MVC and design principles
- Use case – implementing a web app in ASP.NET Core MVC
- Summary
- Questions
- Further reading
- Section 4: Programming Solutions for an Unavoidable Future Evolution
- Best Practices in Coding C# 8
- Testing Your Code with Unit Test Cases and TDD
- Using Tools to Write Better Code
- Section 5: Delivering Software Continuously and at a High Quality Level
- Deploying Your Application with Azure DevOps
- Understanding DevOps Principles
- Challenges of Applying CI Scenarios in DevOps
- Automation for Software Testing
- Assessments
- Other Books You May Enjoy
Product information
- Title: Hands-On Software Architecture with C# 8 and .NET Core 3
- Author(s):
- Release date: November 2019
- Publisher(s): Packt Publishing
- ISBN: 9781789800937
You might also like
book
The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition, 2nd Edition
"One of the most significant books in my life." —Obie Fernandez, Author, The Rails Way "Twenty …
book
Hands-On Design Patterns with C# and .NET Core
Apply design patterns to solve problems in software architecture and programming using C# 7.x and .NET …
book
.NET Core in Action
Summary .NET Core in Action shows .NET developers how to build professional software applications with .NET …
book
Head First Design Patterns, 2nd Edition
You know you don’t want to reinvent the wheel, so you look to design patterns—the lessons …