چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

Hands-On Software Architecture with C# 8 and .NET Core 3 : Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure Cloud

Gabriel Baptista.; Francesco Abbruzzese

قیمت نهایی

۴۹٬۰۰۰ تومان

نسخه اصلی و اورجینال

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

مشخصات کتاب

سال انتشار
۲۰۱۹
فرمت
PDF
زبان
انگلیسی
تعداد صفحات
۵ صفحه
حجم فایل
۱۲٫۴ مگابایت
شابک
9781789800937، 9781789803280، 1789800935، 1789803284

دربارهٔ کتاب

Design scalable and high-performance enterprise applications using the latest features of C# 8 and.NET Core 3Key FeaturesBecome a software architect capable of creating modular apps for specific business needsDesign high-performance software systems using the latest features of C# 8 and.NET Core 3Solve scalability problems in web apps using enterprise architectural patternsBook DescriptionSoftware 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 learnOvercome real-world architectural challenges and solve design consideration issuesApply architectural approaches like Layered Architecture, service-oriented architecture (SOA), and microservicesLearn to use tools like containers, Docker, and Kubernetes to manage microservicesGet up to speed with Azure Cosmos DB for delivering multi-continental solutionsLearn how to program and maintain Azure Functions using C#Understand when to use test-driven development (TDD) as an approach for software developmentWrite automated functional test cases for your projectsWho this book is forThis 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. Cover......Page 1 Title Page......Page 2 Copyright and Credits......Page 3 About Packt......Page 4 Contributors......Page 5 Table of Contents......Page 7 Preface......Page 17 Section 1: Transforming Customer Needs in Real-World Applications......Page 23 Chapter 1: Understanding the Importance of Software Architecture......Page 25 What is software architecture?......Page 26 Creating an Azure account......Page 28 Understanding the waterfall model principles......Page 30 Analyzing the incremental model......Page 31 Understanding agile software development process models......Page 32 Getting into the Scrum model......Page 33 Understanding the requirements gathering process......Page 34 Practicing the elicitation of user needs......Page 35 Analyzing requirements......Page 36 Reviewing the specification......Page 37 Using design thinking as a helpful tool......Page 38 Understanding the principles of scalability, robustness, security, and performance......Page 39 Case 1 – my website is too slow to open that page!......Page 40 Dealing with object allocation......Page 41 Getting better database access......Page 42 Case 2 – the user's needs are not properly implemented......Page 43 Case study – detecting user needs......Page 44 Book case study – introducing World Wild Travel Club......Page 45 Book case study – understanding user needs and system requirements......Page 46 Questions......Page 48 Further reading......Page 49 Chapter 2: Functional and Nonfunctional Requirements......Page 50 How does scalability interact with Azure and .NET Core?......Page 51 Creating a scalable web app in Azure......Page 52 Vertical scaling (Scale up)......Page 55 Horizontal scaling (Scale out)......Page 57 Creating a scalable web app with .NET Core......Page 58 Performance issues that need to be considered when programming in C#......Page 62 String concatenation......Page 63 Exceptions......Page 64 Multithreading environments for better results – do's and don'ts......Page 65 Usability – why inserting data takes too much time......Page 68 Designing fast selection logic......Page 69 Selecting from a huge amount of items......Page 73 The fantastic world of interoperability with .NET Core......Page 74 Creating a service in Linux......Page 76 Book use case – understanding the main types of .NET Core projects......Page 77 Questions......Page 79 Further reading......Page 80 Introducing Azure DevOps......Page 81 Organizing your work using Azure DevOps......Page 86 Azure DevOps repository......Page 87 Package feeds......Page 89 Test plans......Page 91 Pipelines......Page 92 Managing system requirements in Azure DevOps......Page 93 Features work items......Page 94 Product Backlog items/User Story work items......Page 95 Book use case – presenting use cases in Azure DevOps......Page 96 Summary......Page 100 Further reading......Page 101 Section 2: Architecting Software Solutions in a Cloud-Based Environment......Page 102 Technical requirements......Page 104 Infrastructure as a service and Azure opportunities......Page 105 Security responsibility in IaaS......Page 107 PaaS – a world of opportunities for developers......Page 108 Web apps......Page 109 Azure SQL Server......Page 110 Azure Cognitive Services......Page 112 Understanding what serverless means......Page 116 Why are hybrid applications so useful in many cases?......Page 117 Use case – a hybrid application......Page 118 Book use case – which is the best cloud platform for this use case?......Page 119 Questions......Page 120 Further reading......Page 121 Chapter 5: Applying a Microservice Architecture to Your Enterprise Application......Page 122 What are microservices?......Page 123 Microservices and the evolution of the concept of modules......Page 125 Microservice design principles......Page 126 Containers and Docker......Page 130 Layered architectures and microservices......Page 132 When is it worth considering microservice architectures?......Page 135 How does .NET Core deal with microservices?......Page 136 .NET Core communication facilities......Page 137 Resilient task execution......Page 139 Using generic hosts......Page 141 Visual Studio support for Docker......Page 145 Azure and Visual Studio support for microservice orchestration......Page 150 Defining your private Docker registry in Azure......Page 153 Azure Service Fabric......Page 155 Step 1: Basic information......Page 156 Step 2: Cluster configuration......Page 157 Step 3: Security configuration......Page 159 Azure Kubernetes Service (AKS)......Page 162 Use case – logging microservices......Page 166 Ensuring message idempotency......Page 170 The Interaction library......Page 173 Implementing the receiving side of communication......Page 175 Implementing service logic......Page 178 Defining the microservice's host......Page 184 Communicating with the service......Page 185 Summary......Page 187 Further reading......Page 188 Chapter 6: Interacting with Data in C# - Entity Framework Core......Page 190 Understanding ORM basics......Page 191 Configuring Entity Framework Core......Page 194 Defining DB entities......Page 195 Defining the mapped collections......Page 198 Completing the mapping configuration......Page 199 Entity Framework Core migrations......Page 200 Understanding stored procedures and direct SQL commands......Page 204 Querying and updating data with Entity Framework Core......Page 205 Returning data to the presentation layer......Page 208 Issuing direct SQL commands......Page 209 Deploying your data layer......Page 211 Understanding Entity Framework Core advanced feature – global filters......Page 212 Summary......Page 213 Further reading......Page 214 Chapter 7: How to Choose Your Data Storage in the Cloud......Page 215 Understanding the different repositories for different purposes......Page 216 Relational databases......Page 217 NoSQL databases......Page 219 Redis......Page 220 Choosing between structured or NoSQL storage......Page 222 Azure Cosmos DB – an opportunity to manage a multi-continental database......Page 224 Cosmos DB client......Page 231 Cosmos DB Entity Framework Core provider......Page 232 Use case – storing data......Page 233 Implementing the destinations/packages database with Cosmos DB......Page 234 Questions......Page 239 Further reading......Page 240 Technical requirements......Page 241 Understanding the Azure Functions App......Page 242 App Service Plan......Page 243 Programming Azure Functions using C#......Page 244 Listing Azure Functions templates......Page 248 Maintaining Azure Functions......Page 249 Use case – implementing Azure Functions to send emails......Page 251 First Step – creating Azure Queue Storage......Page 253 Questions......Page 259 Further reading......Page 260 Section 3: Applying Design Principles for Software Delivered in the 21st Century......Page 261 Technical requirements......Page 263 Understanding design patterns and their purpose......Page 264 Builder pattern......Page 265 Factory pattern......Page 267 Singleton pattern......Page 268 Proxy pattern......Page 271 Command pattern......Page 273 Publisher/Subscriber pattern......Page 275 Dependency Injection pattern......Page 276 Understanding the available design patterns in .NET Core......Page 278 Questions......Page 279 Further reading......Page 280 Chapter 10: Understanding the Different Domains in Software Solutions......Page 281 What are software domains?......Page 282 Understanding domain-driven design......Page 285 Entities and value objects......Page 289 Using SOLID principles to map your domains......Page 293 Aggregates......Page 295 The repository and Unit of Work patterns......Page 296 DDD entities and Entity Framework Core......Page 298 Command Query Responsibility Segregation (CQRS) pattern......Page 299 Command handlers and domain events......Page 302 Event sourcing......Page 305 Use case – understanding the domains of the use case......Page 306 Summary......Page 309 Further reading......Page 310 Technical requirements......Page 311 What is not code reuse?......Page 312 What is code reuse?......Page 314 Inserting reusability into your development cycle......Page 315 Creating a .NET Standard library......Page 316 Object-oriented analysis......Page 318 Generics......Page 320 Use case – reusing code as a fast track to deliver good and safe software......Page 321 Summary......Page 322 Further reading......Page 323 Chapter 12: Applying Service-Oriented Architectures with .NET Core......Page 324 Understanding the principles of the SOA approach......Page 325 SOAP web services......Page 329 REST web services......Page 331 REST services authorization and authentication......Page 337 How does .NET Core deal with SOA?......Page 340 A short introduction to ASP.NET Core......Page 342 Implementing REST services with ASP.NET Core......Page 346 ASP.NET Core service authorization......Page 350 ASP.NET Core support for OpenAPI......Page 353 .Net Core HTTP clients......Page 357 Use case – exposing WWTravelClub packages......Page 360 Questions......Page 366 Further reading......Page 367 Chapter 13: Presenting ASP.NET Core MVC......Page 368 Understanding the presentation layers of web applications......Page 369 How ASP.NET Core pipeline works......Page 370 Loading configuration data and using it with the options framework......Page 374 Defining the ASP.NET Core MVC pipeline......Page 379 Defining controllers and ViewModels......Page 384 Understanding Razor Views......Page 389 Learning Razor flow of control statements......Page 390 Understanding Razor View properties......Page 392 Using Razor tag helpers......Page 393 Reusing view code......Page 397 What is new in .NET Core 3.0 for ASP.NET Core?......Page 401 Understanding the connection between ASP.NET Core MVC and design principles......Page 403 Server-side and client-side validation......Page 404 ASP.NET Core globalization......Page 405 The MVC pattern......Page 410 Defining application specifications......Page 411 Defining the application architecture......Page 412 Defining the domain layer......Page 415 Defining the data layer......Page 418 Defining the application layer......Page 423 Controllers and views......Page 428 Questions......Page 434 Further reading......Page 435 Section 4: Programming Solutions for an Unavoidable Future Evolution......Page 436 Technical requirements......Page 437 The more complex your code is, the worse a programmer you are......Page 438 Cyclomatic complexity......Page 439 Depth of inheritance......Page 443 Class coupling......Page 444 Using a version control system......Page 446 try-catch......Page 447 try-finally and using......Page 448 .NET Core tips and tricks for coding......Page 450 WWTravelClub – dos and don'ts in writing code......Page 452 Further reading......Page 453 Chapter 15: Testing Your Code with Unit Test Cases and TDD......Page 455 Understanding automated tests......Page 456 Writing automated (unit and integration) tests......Page 458 Writing acceptance and performance tests......Page 460 Understanding test-driven development (TDD)......Page 461 Defining C# test projects......Page 464 Using the xUnit test framework......Page 465 Advanced test preparation and tear-down scenarios......Page 467 Mocking interfaces with Moq......Page 469 Use case – automating unit tests in DevOps Azure......Page 471 Summary......Page 479 Further reading......Page 480 Chapter 16: Using Tools to Write Better Code......Page 481 Identifying a well-written code......Page 482 Understanding and applying tools that can evaluate C# code......Page 484 Using Microsoft Code Analysis 2019......Page 488 Applying SonarLint for Visual Studio 2019......Page 490 Checking the final code after analysis......Page 491 Use case – evaluating the C# code before publishing the application......Page 493 Questions......Page 495 Further reading......Page 496 Section 5: Delivering Software Continuously and at a High Quality Level......Page 497 Chapter 17: Deploying Your Application with Azure DevOps......Page 499 Adapting your organization to a service scenario......Page 500 Technical implications of a service scenario......Page 501 Adopting a SaaS solution......Page 502 Preparing a solution for a service scenario......Page 503 Creating the Azure Web App and the Azure database......Page 506 Configuring your Visual Studio solution......Page 508 Configuring Azure Pipelines......Page 509 Adding a manual approval for the release......Page 512 Creating a release......Page 514 Summary......Page 516 Further reading......Page 517 Chapter 18: Understanding DevOps Principles......Page 518 Describing DevOps......Page 519 Defining continuous integration......Page 520 Understanding continuous delivery and multistage environment with Azure DevOps......Page 521 Defining continuous feedback and the related DevOps tools ......Page 524 Monitoring you software with Application Insights......Page 525 Using the Test and Feedback tool to enable feedback......Page 531 The WWTravelClub project approach......Page 536 Questions......Page 537 Further Reading......Page 538 Chapter 19: Challenges of Applying CI Scenarios in DevOps......Page 539 Understanding CI......Page 540 Understanding the risks and challenges when using CI......Page 541 Disabling continuous production deployment......Page 542 Incomplete features......Page 543 Unstable solution for testing......Page 546 Summary......Page 550 Further reading......Page 551 Technical requirements......Page 552 Understanding the purpose of functional tests......Page 553 Using unit testing tools to automate functional tests in C#......Page 555 Testing the staging application......Page 556 Testing a controlled application......Page 557 Use case – automating functional tests......Page 559 Further reading......Page 563 Chapter 2......Page 564 Chapter 4......Page 565 Chapter 6......Page 566 Chapter 8......Page 567 Chapter 9......Page 568 Chapter 11......Page 569 Chapter 13......Page 570 Chapter 15......Page 571 Chapter 17......Page 572 Chapter 19......Page 573 Chapter 20......Page 574 Other Books You May Enjoy......Page 575 Index......Page 578 Cover 1 Title Page 2 Copyright and Credits 3 About Packt 4 Contributors 5 Table of Contents 7 Preface 17 Section 1: Transforming Customer Needs in Real-World Applications 23 Chapter 1: Understanding the Importance of Software Architecture 25 Technical requirements 26 What is software architecture? 26 Creating an Azure account 28 Software development process models 30 Reviewing traditional software development process models 30 Understanding the waterfall model principles 30 Analyzing the incremental model 31 Understanding agile software development process models 32 Getting into the Scrum model 33 Enabling aspects to be gathered to design high-quality software 34 Understanding the requirements gathering process 34 Practicing the elicitation of user needs 35 Analyzing requirements 36 Writing the specifications 37 Reviewing the specification 37 Using design thinking as a helpful tool 38 Understanding the principles of scalability, robustness, security, and performance 39 Some cases where the requirements gathering process impacted system results 40 Case 1 – my website is too slow to open that page! 40 Understanding caching 41 Applying asynchronous programming 41 Dealing with object allocation 41 Getting better database access 42 Case 2 – the user's needs are not properly implemented 43 Case 3 – the usability of the system does not meet user needs 44 Case study – detecting user needs 44 Book case study – introducing World Wild Travel Club 45 Book case study – understanding user needs and system requirements 46 Summary 48 Questions 48 Further reading 49 Chapter 2: Functional and Nonfunctional Requirements 50 Technical requirements 51 How does scalability interact with Azure and .NET Core? 51 Creating a scalable web app in Azure 52 Vertical scaling (Scale up) 55 Horizontal scaling (Scale out) 57 Creating a scalable web app with .NET Core 58 Performance issues that need to be considered when programming in C# 62 String concatenation 63 Exceptions 64 Multithreading environments for better results – do's and don'ts 65 Usability – why inserting data takes too much time 68 Designing fast selection logic 69 Selecting from a huge amount of items 73 The fantastic world of interoperability with .NET Core 74 Creating a service in Linux 76 Book use case – understanding the main types of .NET Core projects 77 Summary 79 Questions 79 Further reading 80 Chapter 3: Documenting Requirements with Azure DevOps 81 Technical requirements 81 Introducing Azure DevOps 81 Organizing your work using Azure DevOps 86 Azure DevOps repository 87 Package feeds 89 Test plans 91 Pipelines 92 Managing system requirements in Azure DevOps 93 Epics work items 94 Features work items 94 Product Backlog items/User Story work items 95 Book use case – presenting use cases in Azure DevOps 96 Summary 100 Questions 101 Further reading 101 Section 2: Architecting Software Solutions in a Cloud-Based Environment 102 Chapter 4: Deciding the Best Cloud-Based Solution 104 Technical requirements 104 Different software deployment models 105 Infrastructure as a service and Azure opportunities 105 Security responsibility in IaaS 107 PaaS – a world of opportunities for developers 108 Web apps 109 Azure SQL Server 110 Azure Cognitive Services 112 SaaS – just sign in and get started! 116 Understanding what serverless means 116 Why are hybrid applications so useful in many cases? 117 Use case – a hybrid application 118 Book use case – which is the best cloud platform for this use case? 119 Summary 120 Questions 120 Further reading 121 Chapter 5: Applying a Microservice Architecture to Your Enterprise Application 122 Technical requirements 123 What are microservices? 123 Microservices and the evolution of the concept of modules 125 Microservice design principles 126 Containers and Docker 130 When do microservices help? 132 Layered architectures and microservices 132 When is it worth considering microservice architectures? 135 How does .NET Core deal with microservices? 136 .NET Core communication facilities 137 Resilient task execution 139 Using generic hosts 141 Visual Studio support for Docker 145 Azure and Visual Studio support for microservice orchestration 150 Which tools are needed to manage microservices? 153 Defining your private Docker registry in Azure 153 Azure Service Fabric 155 Step 1: Basic information 156 Step 2: Cluster configuration 157 Step 3: Security configuration 159 Azure Kubernetes Service (AKS) 162 Use case – logging microservices 166 Ensuring message idempotency 170 The Interaction library 173 Implementing the receiving side of communication 175 Implementing service logic 178 Defining the microservice's host 184 Communicating with the service 185 Testing the application 187 Summary 187 Questions 188 Further reading 188 Chapter 6: Interacting with Data in C# - Entity Framework Core 190 Technical requirements 191 Understanding ORM basics 191 Configuring Entity Framework Core 194 Defining DB entities 195 Defining the mapped collections 198 Completing the mapping configuration 199 Entity Framework Core migrations 200 Understanding stored procedures and direct SQL commands 204 Querying and updating data with Entity Framework Core 205 Returning data to the presentation layer 208 Issuing direct SQL commands 209 Handling transactions 211 Deploying your data layer 211 Understanding Entity Framework Core advanced feature – global filters 212 Summary 213 Questions 214 Further reading 214 Chapter 7: How to Choose Your Data Storage in the Cloud 215 Technical requirements 216 Understanding the different repositories for different purposes 216 Relational databases 217 NoSQL databases 219 Redis 220 Disk memory 222 Choosing between structured or NoSQL storage 222 Azure Cosmos DB – an opportunity to manage a multi-continental database 224 Cosmos DB client 231 Cosmos DB Entity Framework Core provider 232 Use case – storing data 233 Implementing the destinations/packages database with Cosmos DB 234 Summary 239 Questions 239 Further reading 240 Chapter 8: Working with Azure Functions 241 Technical requirements 241 Understanding the Azure Functions App 242 Consumption Plan 243 App Service Plan 243 Programming Azure Functions using C# 244 Listing Azure Functions templates 248 Maintaining Azure Functions 249 Use case – implementing Azure Functions to send emails 251 First Step – creating Azure Queue Storage 253 Summary 259 Questions 259 Further reading 260 Section 3: Applying Design Principles for Software Delivered in the 21st Century 261 Chapter 9: Design Patterns and .NET Core Implementation 263 Technical requirements 263 Understanding design patterns and their purpose 264 Builder pattern 265 Factory pattern 267 Singleton pattern 268 Proxy pattern 271 Command pattern 273 Publisher/Subscriber pattern 275 Dependency Injection pattern 276 Understanding the available design patterns in .NET Core 278 Summary 279 Questions 279 Further reading 280 Chapter 10: Understanding the Different Domains in Software Solutions 281 Technical requirements 282 What are software domains? 282 Understanding domain-driven design 285 Entities and value objects 289 Using SOLID principles to map your domains 293 Aggregates 295 The repository and Unit of Work patterns 296 DDD entities and Entity Framework Core 298 Command Query Responsibility Segregation (CQRS) pattern 299 Command handlers and domain events 302 Event sourcing 305 Use case – understanding the domains of the use case 306 Summary 309 Questions 310 Further reading 310 Chapter 11: Implementing Code Reusability in C# 8 311 Technical requirements 311 Understanding the principles of code reusability 312 What is not code reuse? 312 What is code reuse? 314 Inserting reusability into your development cycle 315 Using .NET Standard for code reuse 316 Creating a .NET Standard library 316 How does C# deal with code reuse? 318 Object-oriented analysis 318 Generics 320 Use case – reusing code as a fast track to deliver good and safe software 321 Summary 322 Questions 323 Further reading 323 Chapter 12: Applying Service-Oriented Architectures with .NET Core 324 Technical requirements 325 Understanding the principles of the SOA approach 325 SOAP web services 329 REST web services 331 The OpenAPI standard 337 REST services authorization and authentication 337 How does .NET Core deal with SOA? 340 A short introduction to ASP.NET Core 342 Implementing REST services with ASP.NET Core 346 ASP.NET Core service authorization 350 ASP.NET Core support for OpenAPI 353 .Net Core HTTP clients 357 Use case – exposing WWTravelClub packages 360 Summary 366 Questions 366 Further reading 367 Chapter 13: Presenting ASP.NET Core MVC 368 Technical requirements 369 Understanding the presentation layers of web applications 369 Understanding the ASP.NET Core MVC structure 370 How ASP.NET Core pipeline works 370 Loading configuration data and using it with the options framework 374 Defining the ASP.NET Core MVC pipeline 379 Defining controllers and ViewModels 384 Understanding Razor Views 389 Learning Razor flow of control statements 390 Understanding Razor View properties 392 Using Razor tag helpers 393 Reusing view code 397 What is new in .NET Core 3.0 for ASP.NET Core? 401 Understanding the connection between ASP.NET Core MVC and design principles 403 Advantages of the ASP.NET Core pipeline 404 Server-side and client-side validation 404 ASP.NET Core globalization 405 The MVC pattern 410 Use case – implementing a web app in ASP.NET Core MVC 411 Defining application specifications 411 Defining the application architecture 412 Defining the domain layer 415 Defining the data layer 418 Defining the application layer 423 Controllers and views 428 Summary 434 Questions 434 Further reading 435 Section 4: Programming Solutions for an Unavoidable Future Evolution 436 Chapter 14: Best Practices in Coding C# 8 437 Technical requirements 437 The more complex your code is, the worse a programmer you are 438 Maintainability index 439 Cyclomatic complexity 439 Depth of inheritance 443 Class coupling 444 Lines of code 446 Using a version control system 446 Dealing with version control systems in teams 447 Writing safe code in C# 447 try-catch 447 try-finally and using 448 The IDisposable interface 450 .NET Core tips and tricks for coding 450 WWTravelClub – dos and don'ts in writing code 452 Summary 453 Questions 453 Further reading 453 Chapter 15: Testing Your Code with Unit Test Cases and TDD 455 Technical requirements 456 Understanding automated tests 456 Writing automated (unit and integration) tests 458 Writing acceptance and performance tests 460 Understanding test-driven development (TDD) 461 Defining C# test projects 464 Using the xUnit test framework 465 Advanced test preparation and tear-down scenarios 467 Mocking interfaces with Moq 469 Use case – automating unit tests in DevOps Azure 471 Summary 479 Questions 480 Further reading 480 Chapter 16: Using Tools to Write Better Code 481 Technical requirements 482 Identifying a well-written code 482 Understanding and applying tools that can evaluate C# code 484 Applying extension tools to analyze code 488 Using Microsoft Code Analysis 2019 488 Applying SonarLint for Visual Studio 2019 490 Getting Code Cracker for Visual Studio 2017 as a helper to write better code 491 Checking the final code after analysis 491 Use case – evaluating the C# code before publishing the application 493 Summary 495 Questions 495 Further reading 496 Section 5: Delivering Software Continuously and at a High Quality Level 497 Chapter 17: Deploying Your Application with Azure DevOps 499 Technical requirements 500 Understanding SaaS 500 Adapting your organization to a service scenario 500 Developing software in a service scenario 501 Technical implications of a service scenario 501 Adopting a SaaS solution 502 Preparing a solution for a service scenario 503 Use case – deploying our package-management application with Azure Pipelines 506 Creating the Azure Web App and the Azure database 506 Configuring your Visual Studio solution 508 Configuring Azure Pipelines 509 Adding a manual approval for the release 512 Creating a release 514 Summary 516 Questions 517 Further reading 517 Chapter 18: Understanding DevOps Principles 518 Technical requirements 519 Describing DevOps 519 Understanding DevOps principles 520 Defining continuous integration 520 Understanding continuous delivery and multistage environment with Azure DevOps 521 Defining continuous feedback and the related DevOps tools 524 Monitoring you software with Application Insights 525 Using the Test and Feedback tool to enable feedback 531 The WWTravelClub project approach 536 Summary 537 Questions 537 Further Reading 538 Chapter 19: Challenges of Applying CI Scenarios in DevOps 539 Technical requirements 540 Understanding CI 540 Understanding the risks and challenges when using CI 541 Disabling continuous production deployment 542 Incomplete features 543 Unstable solution for testing 546 Understanding the WWTravelClub project approach 550 Summary 550 Questions 551 Further reading 551 Chapter 20: Automation for Software Testing 552 Technical requirements 552 Understanding the purpose of functional tests 553 Using unit testing tools to automate functional tests in C# 555 Testing the staging application 556 Testing a controlled application 557 Use case – automating functional tests 559 Summary 563 Questions 563 Further reading 563 Assessments 564 Chapter 1 564 Chapter 2 564 Chapter 3 565 Chapter 4 565 Chapter 5 566 Chapter 6 566 Chapter 7 567 Chapter 8 567 Chapter 9 568 Chapter 10 569 Chapter 11 569 Chapter 12 570 Chapter 13 570 Chapter 14 571 Chapter 15 571 Chapter 16 572 Chapter 17 572 Chapter 18 573 Chapter 19 573 Chapter 20 574 Other Books You May Enjoy 575 Index 578 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 applicat..

کتاب‌های مشابه

Hands-On Software Architecture with C# 8 and .NET Core 3 : Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure Cloud

Hands-On Software Architecture with C# 8 and .NET Core 3 : Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure Cloud

۴۹٬۰۰۰ تومان

Hands-On Software Architecture with C# 8 and .NET Core 3 : Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure Cloud

Hands-On Software Architecture with C# 8 and .NET Core 3 : Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure Cloud

۴۹٬۰۰۰ تومان

Software Architecture with C# 9 And . NET 5: Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure, 2nd Edition

Software Architecture with C# 9 And . NET 5: Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure, 2nd Edition

۴۹٬۰۰۰ تومان

Software Architecture with C# 9 And . NET 5: Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure, 2nd Edition

Software Architecture with C# 9 And . NET 5: Architecting Software Solutions Using Microservices, DevOps, and Design Patterns for Azure, 2nd Edition

۴۹٬۰۰۰ تومان

Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure, 3rd Edition

Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure, 3rd Edition

۴۹٬۰۰۰ تومان

Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure, 3rd Edition

Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure, 3rd Edition

۴۹٬۰۰۰ تومان

Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure - Third Edition

Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure - Third Edition

۴۹٬۰۰۰ تومان

Software Architecture with C# 12 and .NET 8 - Fourth Edition: Build enterprise applications using microservices, DevOps, EF Core, and design patterns for Azure

Software Architecture with C# 12 and .NET 8 - Fourth Edition: Build enterprise applications using microservices, DevOps, EF Core, and design patterns for Azure

۴۹٬۰۰۰ تومان

Software Architecture with C# 12 and .NET 8 - Fourth Edition: Build Anterprise Applications Using Microservices, DevOps, EF Core, and Design Patterns for Azure

Software Architecture with C# 12 and .NET 8 - Fourth Edition: Build Anterprise Applications Using Microservices, DevOps, EF Core, and Design Patterns for Azure

۴۹٬۰۰۰ تومان

Software Architecture with C# 12 and .NET 8: Build enterprise applications using microservices, DevOps, EF Core, and design patterns for Azure, 4th Edition

Software Architecture with C# 12 and .NET 8: Build enterprise applications using microservices, DevOps, EF Core, and design patterns for Azure, 4th Edition

۴۹٬۰۰۰ تومان

Software Architecture with C# 12 and .NET 8 - Fourth Edition: Build enterprise applications using microservices, DevOps, EF Core, and design patterns for Azure

Software Architecture with C# 12 and .NET 8 - Fourth Edition: Build enterprise applications using microservices, DevOps, EF Core, and design patterns for Azure

۴۹٬۰۰۰ تومان

Hands-On Microservices with C# 8 and .NET Core 3 : Refactor Your Monolith Architecture Into Microservices Using Azure, 3rd Edition

Hands-On Microservices with C# 8 and .NET Core 3 : Refactor Your Monolith Architecture Into Microservices Using Azure, 3rd Edition

۴۹٬۰۰۰ تومان

قیمت نهایی

۴۹٬۰۰۰ تومان