Tools and Skills for .NET 8: Get the career you want with good practices and patterns to design, debug, and test your solutions

Tools and Skills for .NET 8: Get the career you want with good practices and patterns to design, debug, and test your solutions

Tools and Skills for .NET 8: Get the career you want with good practices and patterns to design, debug, and test your solutions
Автор: Price Mark J.
Дата выхода: 2024
Издательство: Packt Publishing Limited
Количество страниц: 779
Размер файла: 7,2 МБ
Тип файла: PDF
Добавил: Федоров_АИ
 Проверить на вирусы  Дополнительные материалы 

Cover....1

Copyright....3

Contributors....4

Table of Contents....8

Preface....32

Chapter 1: Introducing Tools and Skills for .NET....38

Introducing this book and its contents....39

Companion books to complete your learning journey....39

Audiences for this book....40

Tools....41

Skills....42

Testing....42

Design and career development....43

Setting up your development environment....43

Choosing the appropriate tool and application type for learning....43

Using Visual Studio for general development....44

Using Code for cross-platform development....44

Using GitHub Codespaces for development in the cloud....44

Using Rider for cross-platform development....45

What I used....45

Deploying cross-platform....46

Downloading and installing Visual Studio....46

Visual Studio keyboard shortcuts....47

Visual Studio Enterprise edition tools....47

Downloading and installing Code....48

Installing other extensions....49

Managing Code extensions at the command prompt....50

Understanding Code versions....50

Code keyboard shortcuts....51

Downloading and installing Rider....51

Other JetBrains tools....52

Chrome AI tools....53

Making good use of the GitHub repository for this book....53

Raising issues with the book....53

Giving me feedback....53

Downloading solution code from the GitHub repository....54

Where to go for help....54

Reading documentation on Microsoft Learn....54

Getting help for the dotnet tool....54

LLMs like ChatGPT....55

Getting better help from LLMs using prompt engineering....57

AI usage by developers....58

Getting help on Discord and other chat forums....58

Setting up a database and projects for this book....60

Using a sample relational database....60

Setting up SQL Server and the Northwind database....61

Creating the Northwind database for a local SQL Server....61

Creating the Northwind database for SQL Edge in Docker....62

Creating a class library for entity models using SQL Server....63

Creating a class library for the data context using SQL Server....66

Creating a test project to check the integration of the class libraries....69

Running tests....70

Using .NET 9 with this book....71

Practicing and exploring....73

Exercise 1.1 – Online-only material....73

Exercise 1.2 – Practice exercises....73

Exercise 1.3 – Test your knowledge....73

Exercise 1.4 – Explore topics....74

Summary....74

Chapter 2: Making the Most of the Tools in Your Code Editor....76

Introducing common tools and features....76

Refactoring features....77

Code snippets....77

Editor configuration....78

AI companions....80

Tools in Visual Studio 2022....80

Refactoring features....80

Add method parameter checks....83

Method parameter refactoring....84

Convert foreach to for and vice versa....85

Simplify LINQ statements....86

Align code elements....86

Refactor to primary constructors....87

Code snippets....87

Code snippets schema....89

Creating and importing code snippets....91

Distributing code snippets....94

Editor configuration....94

AI companions: GitHub Copilot....96

Making the most of GitHub Copilot....97

Navigating Visual Studio....98

Copying and pasting a statement....98

Switching between file tabs and tool windows....98

Features to improve the editing experience....99

Line numbers and word wrap....99

Keyboard shortcuts....100

Formatting code....101

Task list....101

Extension Manager....102

Tools in Visual Studio Code....103

Refactoring features....103

Code snippets....103

Decompiling .NET assemblies....105

Creating a console app to decompile....105

Decompiling using the ILSpy extension for Visual Studio....108

Viewing source links with Visual Studio....111

No, you cannot technically prevent decompilation....113

Lowering C# code....114

Custom project and item templates....119

Creating a project for a template....120

Testing the project template....126

Practicing and exploring....127

Exercise 2.1 – Online-only material....127

Exercise 2.2 – Practice exercises....127

Exercise 2.3 – Test your knowledge....128

Exercise 2.4 – Explore topics....128

Summary....128

Chapter 3: Source Code Management Using Git....130

Introducing source code management....130

Features of source code management....131

Types of SCM system....131

Common SCM systems....132

Introducing Git....132

Features of Git....133

Why is Git hard to learn?....134

Roles in a team for Git....134

Downloading the latest Git....134

Git integration with Visual Studio....135

Configuring your Git identity....135

Configuring SSH signature enforcement....136

Configuring your default branch....138

Getting help for Git....138

Working with Git....138

Starting with a Git repository....139

Creating and adding files to a Git repository in theory....140

Tracking changes in Git....141

Creating a Git repository in practice....141

Creating a new project....142

Committing files....147

Undoing a commit....149

Cleaning a commit....150

Stashing....150

Ignoring files....152

Reviewing Git repositories....155

Viewing differences in files....155

Viewing your commit history....157

Filtering log output....161

Managing remote repositories....162

Branching and merging....165

Walking through a branching and merging example....165

Deleting and listing branches....171

Summary of common Git commands....171

Practicing and exploring....172

Exercise 3.1 – Online-only material....172

Exercise 3.2 – Practice exercises....173

Exercise 3.3 – Test your knowledge....173

Exercise 3.4 – Explore topics....174

Summary....174

Chapter 4: Debugging and Memory Troubleshooting....176

Debugging strategies....176

Introducing debugging strategies....177

Understanding the problem....178

How to start debugging....180

When to give up debugging....180

Interactive debugging with Visual Studio....180

Creating code with objects to view....180

Setting a breakpoint and starting debugging....183

Navigating with the debugging toolbar....186

Debugging windows....187

Controlling what appears in debug panes....187

Debugging test projects....190

Asking GitHub Copilot Chat for debugging help....191

Understanding stack and heap memory....193

How reference and value types are stored in memory....193

Understanding unsafe code....196

Understanding pointers....196

Other uses of pointers....198

Understanding boxing....199

Understanding garbage collection....200

Controlling the GC....201

Managing resources with IDisposable....202

Tools and skills for memory troubleshooting....203

Common memory tools and skills....203

Visual Studio tools....204

Using Visual Studio Memory Usage....205

Practicing and exploring....208

Exercise 4.1 – Online-only material....208

Exercise 4.2 – Practice exercises....209

Exercise 4.3 – Test your knowledge....209

Exercise 4.4 – Explore topics....209

Summary....209

Chapter 5: Logging, Tracing, and Metrics for Observability....212

Logging and tracing in .NET....213

Understanding ILogger in .NET....214

How to log using ILogger....215

Building a web service for logging....218

Testing the basic functionality of the web service....223

Monitoring with metrics in .NET....224

Concepts for metrics and alerts....224

Metrics....224

Alerts....224

Scenarios for metrics and alerts....225

Implementing metrics....225

Adding metrics to an ASP.NET Core project....226

Viewing metrics....230

Introducing OpenTelemetry....231

Supported instrumentation packages....232

Instrumenting an ASP.NET Core project....233

Viewing the telemetry....235

Practicing and exploring....239

Exercise 5.1 – Online-only material....239

Exercise 5.2 – Practice exercises....239

Exercise 5.3 – Test your knowledge....239

Exercise 5.4 – Explore topics....240

Summary....240

Chapter 6: Documenting Your Code, APIs, and Services....242

Introducing documentation....242

Benefits of documentation....243

When not to document....244

Documenting your source code....245

When should you document your source code?....245

Good practices for commenting your source code....246

Documenting public APIs in class libraries....247

XML comment documentation....248

How to document code using XML comments....249

Generating documentation using DocFX....255

Creating a DocFX project....259

Adding custom documentation content....264

Markdown markup language....264

Headings....265

Formatting text....265

Creating lists....266

Links and images....266

Code blocks and syntax highlighting....266

Tables....267

Documenting services....268

Considerations for documenting services....268

Tools for documenting services....268

Understanding the OpenAPI Specification (OAS)....269

Documenting a Minimal APIs service using OpenAPI....270

Documenting visually with Mermaid diagrams....275

Rendering Mermaid diagrams....276

Flowcharts using Mermaid....277

Class diagrams using Mermaid....279

Converting Mermaid to SVG....280

Practicing and exploring....281

Exercise 6.1 – Online-only material....282

Exercise 6.2 – Practice exercises....283

Exercise 6.3 – Test your knowledge....283

Exercise 6.4 – Explore topics....283

Summary....284

Chapter 7: Observing and Modifying Code Execution Dynamically....286

Working with reflection and attributes....287

Metadata in .NET assemblies....287

Versioning of assemblies....288

Reading assembly metadata....289

Creating custom attributes....291

Understanding compiler-generated types and members....294

Making a type or member obsolete....295

Dynamically loading assemblies and executing methods....296

A warning about reflection and native AOT....302

Reflection improvements in .NET 9....303

Doing more with reflection....303

Working with expression trees....303

Understanding components of expression trees....305

Executing the simplest expression tree....306

Creating source generators....307

Implementing the simplest source generator....307

Practicing and exploring....312

Exercise 7.1 – Online-only material....312

Exercise 7.2 – Practice exercises....312

Exercise 7.3 – Test your knowledge....312

Exercise 7.4 – Explore topics....313

Summary....313

Chapter 8: Protecting Data and Apps Using Cryptography....314

Understanding the vocabulary of protection....315

Techniques to protect your data....315

Keys and key sizes....316

IVs and block sizes....317

Salts....317

Generating keys and IVs....318

Encrypting and decrypting data....318

Encrypting symmetrically with AES....319

Hashing data....326

Hashing with the commonly used SHA-256....326

Signing data....331

Signing with SHA-256 and RSA....332

Generating random numbers for cryptography....334

Authenticating and authorizing users....336

Authentication and authorization mechanisms....336

Identifying a user....337

User membership....338

Implementing authentication and authorization....339

Protecting application functionality....342

Real-world authentication and authorization....344

What’s coming in .NET 9....344

CryptographicOperations.HashData() method....344

KMAC algorithm....344

Practicing and exploring....345

Exercise 8.1 – Online-only material....345

Exercise 8.2 – Practice exercises....345

Exercise 8.3 – Test your knowledge....346

Exercise 8.4 – Explore topics....346

Summary....346

Chapter 9: Building an LLM-Based Chat Service....348

Introducing LLMs....349

How LLMs work....349

Obtaining access to an LLM....351

Using Semantic Kernel with an OpenAI model....354

Understanding Semantic Kernel....354

Understanding functions....361

Adding functions....362

Adding session memory and enabling multiple functions....368

Streaming results....370

Adding logging and resilience....371

Running local LLMs....373

Hugging Face....373

Ollama....375

Ollama models....375

Ollama CLI....377

OllamaSharp .NET package....378

LM Studio....381

Practicing and exploring....382

Exercise 9.1 – Online-only material....382

Exercise 9.2 – Practice exercises....383

Exercise 9.3 – Test your knowledge....383

Exercise 9.4 – Explore topics....384

Summary....384

Chapter 10: Dependency Injection, Containers, and Service Lifetime....386

Introducing dependency injection....386

Why use DI?....387

The mechanisms of DI in .NET....388

Examples in modern .NET....389

Constructor injection example....390

Property injection examples....391

Method injection example....392

Registering dependency service lifetimes....392

Registering multiple implementations....393

When are exceptions thrown?....394

Best practices for DI....395

Implementing .NET Generic Host....395

Key features of the .NET Generic Host....395

Building a .NET Generic Host....395

Understanding host services and events....401

Service registration methods....405

Dependency graphs and service resolution....406

Disposing services....407

DI with ASP.NET Core....407

Registering services for features using extension methods....407

When you cannot use constructor injection....408

Using scoped services in middleware....409

Resolving services at startup....410

DI and views....410

DI, action methods, and Minimal APIs....410

Practicing and exploring....411

Exercise 10.1 – Online-only material....411

Exercise 10.2 – Practice exercises....411

Exercise 10.3 – Test your knowledge....411

Exercise 10.4 – Explore topics....412

Summary....412

Chapter 11: Unit Testing and Mocking....414

Introducing all types of testing....415

Unit testing....415

Integration, end-to-end, and security testing....415

Performance, load, and stress testing....416

Functional and usability testing....416

Testing terminology....417

Attributes of all good tests....417

Test outcomes....418

Test doubles, mocks, and stubs....419

Adopting a testing mindset....419

Pros and cons of test-driven development....419

Core principles of TDD....420

Pros of TDD....420

Cons of TDD....420

Good practices for TDD....421

Unit testing....421

How isolated should unit tests be?....421

Naming unit tests....422

Unit testing using xUnit....422

Common xUnit attributes....424

Creating a SUT....425

Writing simple unit tests....426

Test methods with parameters....429

Testing theory methods using InlineData....429

Testing theory methods using ClassData....430

Testing theory methods using strongly typed ClassData....431

Testing theory methods using MethodData....432

Positive and negative test results....433

Red flags in unit tests....433

Seeing output during test execution....434

Set up and tear down....435

Controlling test fixtures....437

Mocking in tests....442

Libraries for mocking....443

Using NSubstitute to create test doubles....444

Mocking with NSubstitute example....445

Making fluent assertions in unit testing....448

Making assertions about strings....448

Making assertions about collections and arrays....449

Making assertions about dates and times....450

Generating fake data with Bogus....451

Faking data test project....453

Writing a method with fake data....455

Practicing and exploring....457

Exercise 11.1 – Online-only material....457

Exercise 11.2 – Practice exercises....457

Exercise 11.3 – Test your knowledge....458

Exercise 11.4 – Explore topics....459

Summary....459

Chapter 12: Integration and Security Testing....460

Basics of integration testing....461

Which external systems to test....462

Sharing fixtures in integration tests....462

Walkthrough of an example integration test....463

Integration testing with data stores....464

Developer instances of the database and migrations....465

Data lifecycle....467

Testing services using dev tunnels....469

Installing the dev tunnel CLI....470

Exploring a dev tunnel with the CLI and an echo service....470

Exploring a dev tunnel with an ASP.NET Core project....472

Introducing security testing....476

Open Web Application Security Project....477

OWASP Top 10....478

A1:2021 – Broken Access Control....478

A2:2021 – Cryptographic Failures....479

A3:2021 – Injection....479

A4:2021 – Insecure Design....479

A5:2021 – Security Misconfiguration....480

A6:2021 – Vulnerable and Outdated Components....480

A7:2021 – Identification and Authentication Failures....480

A8:2021 – Software and Data Integrity Failures....480

A9:2021 – Security Logging and Monitoring Failures....480

A10:2021 – Server-Side Request Forgery (SSRF)....481

OWASP Top 10 summary....481

Threat modeling....481

Microsoft Threat Modeling Tool....481

Security Development Lifecycle (SDL)....482

OWASP resources....482

Azure Security and Compliance Blueprints....482

.NET security best practices....482

Practicing and exploring....483

Exercise 12.1 – Online-only sections....483

Exercise 12.2 – Practice exercises....483

Exercise 12.3 – Test your knowledge....483

Exercise 12.4 – Explore topics....483

Summary....484

Chapter 13: Benchmarking Performance, Load, and Stress Testing....486

Benchmarking performance....486

Importance of a baseline....487

Big O notation....488

Statistical metrics....489

BenchmarkDotNet for benchmarking performance....490

Avoiding benchmarking mistakes....497

Isolating benchmarking code from setup or teardown....497

Trust the tool....499

Compare like to like....500

Beware of environmental variations....500

Identifying poor blog posts about performance....500

Load and stress testing....501

Apache JMeter....503

Bombardier – a fast cross-platform HTTP benchmarking tool....504

Using Bombardier....504

Downloading Bombardier....505

Comparing an AOT and a non-AOT web service....506

Testing the two web services with Bombardier....510

Interpreting Bombardier results....513

NBomber – a load testing framework....514

NBomber scenarios....514

Load simulations....515

NBomber types....515

NBomber project example....516

Practicing and exploring....519

Exercise 13.1 – online-only material....520

Benchmarking mistakes....520

Exercise 13.2 – practice exercises....520

Exercise 13.3 – test your knowledge....520

Exercise 13.4 – explore topics....521

Summary....521

Chapter 14: Functional and End-to-End Testing of Websites and Services....522

Understanding functional and end-to-end testing....522

Example 1: Testing a Web API service....523

Example 2: Testing an ASP.NET Core website....523

Example 3: Testing a SignalR real-time application....524

Testing web user interfaces using Playwright....524

Benefits for .NET developers....525

Alternatives to Playwright....526

Common Playwright testing types....527

Common Playwright testing methods....527

Common Playwright locator methods....528

Common Playwright locator automation methods....529

Testing common scenarios with eShopOnWeb....529

Page navigation and title verification....534

Interacting with a web user interface....537

Selecting dropdown items and clicking elements....537

Form submission, authentication, and validation....539

Responsive design testing....540

Emulating screen sizes....540

Emulating devices....540

Emulating locale, time zone, and geolocation....540

Emulating dark mode and color schemes....541

Emulating the user agent, disabling JavaScript, and going offline....541

Single-Page Applications (SPAs) and dynamic content....542

Generating tests with the Playwright Inspector....542

Testing web services using xUnit....546

Creating a web service ready for testing....547

Creating the test project....548

Practicing and exploring....550

Exercise 14.1 – Online-only material....550

Exercise 14.2 – Practice exercises....550

Exercise 14.3 – Test your knowledge....550

Exercise 14.4 – Explore topics....551

Summary....551

Chapter 15: Containerization Using Docker....552

Introducing containerization....552

How containers work and their benefits....554

Docker, Kubernetes, and .NET Aspire....555

Kubernetes....556

.NET Aspire....556

Container registries....557

Docker concepts....558

Docker tools and technologies....559

Docker command-line interface (CLI) commands....560

Building images using Dockerfiles....562

Configuring ports and running a container....564

Interactive mode....566

Setting environment variables....566

Common Docker container images....567

.NET container images....568

CVEs and Chiseled Ubuntu....568

Managing containers with Docker....569

Installing Docker and using prebuilt images....569

Docker image hierarchy and layers....573

Containerizing your own .NET projects....576

Containerizing a console app project....576

Publishing to a Docker container....579

Containerizing an ASP.NET Core project....583

Working with test containers....586

How Testcontainers for .NET works....586

Usage example....587

Practicing and exploring....588

Exercise 15.1 – Online-only material....588

Exercise 15.2 – Practice exercises....588

Exercise 15.3 – Test your knowledge....589

Exercise 15.4 – Explore topics....589

Summary....589

Chapter 16: Cloud-Native Development Using .NET Aspire....592

Introducing Aspire....593

What does the Aspire team say?....594

Code editor and CLI support for Aspire....594

Starting an Aspire solution....595

Aspire project types....595

Aspire resource types....596

Aspire application model and orchestration....597

Aspire project templates....599

Exploring the Aspire starter template....600

Creating the Aspire starter application....600

Exploring the Aspire starter solution....603

Deeper into Aspire....606

Developer dashboard for monitoring....606

AppHost project for orchestrating resources....607

ServiceDefaults project for centralized configuration....610

Participating functional projects....611

Configuring Redis....613

Aspire components....614

Logging, tracing, and metrics for observability....616

Docker versus Podman for containers....616

Waiting for containers to be ready....617

What about Dapr, Orleans, and Project Tye?....617

Dapr....617

Orleans....618

Project Tye....618

Choosing between Dapr, Orleans, and Aspire....619

Aspire for new and existing solutions....619

Creating a new Aspire solution....619

Aspire and PostgreSQL....624

Using data volumes and configuring a stable password....626

Adding Aspire to an existing solution....626

Switching to Aspire components....627

Reviewing the eShop reference application....628

Deployment with Aspire....634

Practicing and exploring....635

Exercise 16.1 – Online-only material....635

Exercise 16.2 – Practice exercises....636

Exercise 16.3 – Test your knowledge....636

Exercise 16.4 – Explore topics....636

Summary....637

Chapter 17: Design Patterns and Principles....638

SOLID principles....639

Single Responsibility Principle (SRP)....639

SRP example....639

SRP violating example....640

SRP adhering refactoring....640

SRP common mistakes....641

SRP takeaways....641

Open/Closed Principle (OCP)....642

OCP example....642

OCP violating example....642

OCP common mistakes....643

OCP takeaways....644

Liskov Substitution Principle (LSP)....644

LSP example....644

LSP violating example....645

LSP adhering refactoring....646

LSP common mistakes....647

LSP in .NET....647

LSP takeaways....648

Interface Segregation Principle (ISP)....648

ISP example....648

ISP violating example....649

ISP adhering refactoring....650

ISP common mistakes....650

ISP in .NET....651

ISP takeaways....651

Dependency Inversion Principle (DIP)....652

DIP example....652

DIP violating example....653

DIP common mistakes....653

DIP takeaways....654

Design patterns....655

Creational patterns....658

Builder pattern....659

Structural design patterns....661

Adapter a.k.a. the Wrapper pattern....662

Behavioral design patterns....664

Template Method pattern....664

Design principles....667

DRY....667

KISS....667

YAGNI....668

Law of Demeter....668

LoD example....668

LoD takeaways....670

Composition over Inheritance....670

Composition over Inheritance example....670

Composition over Inheritance violating example....671

Composition over Inheritance takeaways....672

Principle of Least Astonishment....672

PoLA example....672

PoLA takeaways....674

Algorithms and data structures....674

Sorting algorithms....675

Searching algorithms....675

Data structure algorithms....675

Hashing algorithms....675

Recursive algorithms....675

Where to learn more about algorithms and data structures....676

Practicing and exploring....676

Exercise 17.1 – Online-only material....676

Exercise 17.2 – Practice exercises....676

Exercise 17.3 – Test your knowledge....677

Exercise 17.4 – Explore topics....677

Summary....677

Chapter 18: Software and Solution Architecture Foundations....680

Introducing software and solution architecture....681

Software architecture....681

Solution architecture....682

Software architecture concepts....682

Domain-Driven Design (DDD)....683

Software Development Lifecycle (SDLC) methodologies....684

Software architecture styles....685

Command Query Responsibility Segregation (CQRS)....688

Solution architecture concepts....689

Conclusion....690

Uncle Bob’s Clean Architecture....691

Clean architecture concepts....691

Defining entities....692

Defining use cases and business rules....693

Implementing interfaces....693

Implementing presenters....693

Implementing controllers....693

Good practices in .NET Clean Architecture....694

Diagramming design using Mermaid....694

Mermaid for software and solution architecture....694

Mermaid diagram types....695

Mermaid flowcharts....696

Flowchart syntax....696

Example flowchart – a user login process....697

Example flowchart – a software development process....698

Sequence diagram syntax....700

Example sequence diagram – a user registration process....700

Example sequence diagram – website querying a database....702

Practicing and exploring....703

Exercise 18.1 – Online-only material....703

Exercise 18.2 – Practice exercises....703

Exercise 18.3 – Test your knowledge....704

Exercise 18.4 – Explore topics....704

Summary....705

Chapter 19: Your Career, Teamwork, and Interviews....706

Working on a development team....706

Being a software engineer....707

Career path....708

Roles on a development team that you will collaborate with....708

Project manager....709

Business analyst....709

Quality assurance analyst or tester....709

User experience designer....709

Database administrator....710

DevOps engineer....710

Front-end (FE) developer....711

Technical lead or architect....711

Onboarding process....711

How to ask for training and development....712

Identify specific training needs....712

Align training with business goals....713

Prepare a cost-benefit analysis....713

Propose a flexible plan....713

Request a meeting and present your case....714

Pair programming....714

Could an LLM replace a human paired programmer?....715

Applying for a job....716

Before you apply....716

Refine your skills and knowledge....716

Obtain certifications....716

Search for job openings....717

Craft your job application, resume, and online profiles....717

Your resume or curriculum vitae....718

Ask an LLM to improve your resume....718

Interview preparation....719

Do not use an LLM during an interview....720

Interviewing at the big companies....721

Applying for more experienced positions....722

Applying for tester positions....724

Selection of questions....726

Behavioral questions....727

STAR method....729

Using the STAR method effectively....730

Tips during interviews....730

How to handle difficult coding questions....733

How to handle unprepared interviewers....734

What to never do....735

Sample interview questions....736

1. .NET CLI tools....737

Good answer....737

Commonly given poor answer....738

2. Git fundamentals....739

Good answer....739

Commonly given poor answer....740

3. Entity Framework Core....740

Good answer....740

Commonly given poor answer....742

4. Interfaces and abstract classes....742

5. Properties and indexers....742

6. Generics....742

7. Delegates and events....743

8. Language Integrated Query (LINQ)....743

9. Asynchronous programming with async and await....743

10. Memory management and garbage collection....743

11. Differences between modern .NET and .NET Framework....743

12. Cross-platform capabilities....743

13. .NET Standard....743

14. Dependency injection in .NET....743

15. Middleware in ASP.NET Core....743

16. Configuration and Options pattern....744

17. Hosting and Kestrel server....744

18. Data types....744

19. Globalization and localization....744

20. Control structures....744

21. Exception handling....744

22. Git branching strategies....744

23. Code reviews and pair programming....744

24. Agile and Scrum methodologies....744

25. Documentation standards....745

26. Problem-solving skills....745

27. Project management tools....745

28. Estimation techniques....745

29. Team collaboration....745

30. Leadership and mentorship....745

31. MVC pattern....745

32. Razor syntax....745

33. Web API development....745

34. RESTful services best practices....746

35. SignalR for real-time web functionality....746

36. State management....746

37. Authentication and authorization....746

38. Blazor WebAssembly....746

39. Benefits of microservices....746

40. Challenges in microservices architecture....746

41. Docker containers and .NET....746

42. Microservices communication patterns....746

43. Resilience and transient fault handling....747

44. Distributed tracing....747

45. Health checks and monitoring....747

46. AutoMapper vs. extension method vs. implicit operator....747

47. ADO.NET fundamentals....747

48. Entity Framework Core performance tuning....747

49. Unit testing frameworks like xUnit....747

50. Mocking frameworks like NSubstitute....747

51. Integration testing strategies....747

52. Performance testing....748

53. Security testing....748

54. Automated UI testing....748

55. SOLID principles....748

56. Singleton pattern....748

57. Factory pattern....748

58. Memory leak identification....748

59. Development methodologies....748

60. Big O....748

When you’re failing, you’re learning....748

Practicing and exploring....749

Exercise 19.1 – Online-only material....749

Exercise 19.2 – Practice exercises....749

Exercise 19.3 – Test your knowledge....749

Exercise 19.4 – Explore topics....750

Summary....750

Chapter 20: Epilogue....752

Next steps on your .NET learning journey....752

Companion books to continue your learning journey....752

Ninth edition of C# 12 and .NET 8 coming soon for .NET 9....753

Planned .NET 10 trilogy....754

Packt books to take your learning further....754

Good luck!....755

Packt Page....756

Index....758

Elevate your career by mastering key .NET tools and skills, including debugging, source code management, testing, cloud-native development, intelligent apps and more.

Key Features

  • Coverage of key .NET tools and skills including refactoring, source code management, debugging, memory troubleshooting, and more.
  • Practical guidance on using code editors effectively, implementing best practices, and protecting data.
  • Explore cutting-edge techniques like building intelligent apps, cloud native development with .NET Aspire, and Docker containerization.

Unlock the full potential of .NET development with Tools and Skills for .NET 8. Dive into source code management using Git and learn how to navigate projects while ensuring version control. Discover advanced debugging techniques and troubleshooting strategies to identify and resolve issues, and gain practical insights on documenting your code, APIs, and services, fostering project clarity and maintainability. Delve into the world of cryptography, ensuring confidentiality and integrity throughout your development lifecycle. Elevate your skills as you explore cutting-edge topics such as building intelligent apps using custom LLM-based chat services, mastering dependency injection, optimizing performance through testing, and Docker ontainerization. Harness the power of cloud-native development with .NET Aspire, unlocking the benefits of modern cloud platforms. With guidance on software architecture best practices, this book empowers you to build robust, scalable and maintainable applications. Advance your career with invaluable insights on job readiness and interview preparation, positioning yourself as a top-tier candidate in today's competitive job market. Whether you're a seasoned .NET professional or an aspiring developer looking to enhance your skills, this book is your ultimate companion on the journey to .NET mastery.

What you will learn

  • Make the most of code editor tools for efficient development.
  • Learn advanced debugging techniques and troubleshooting strategies.
  • Understand how to protect data and applications using cryptography.
  • Build a custom LLM-based chat service.
  • Discover how to master dependency injection.
  • Optimize performance through benchmarking and testing.
  • Delve into cloud-native development using .NET Aspire.
  • Advance your career with advice on job readiness and interviews.

Who this book is for

.NET professionals seeking to enhance their expertise, as well as aspiring developers aiming to advance their careers in the field. This book caters to individuals eager to master essential .NET tools, refine their development practices, explore advanced techniques and cutting-edge tools, and prepare themselves for job opportunities and interviews in the competitive landscape of .NET development


Похожее:

Список отзывов:

Нет отзывов к книге.