• Complain

Dmitri Nesteruk - Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design

Here you can read online Dmitri Nesteruk - Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2022, publisher: Apress, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Dmitri Nesteruk Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design
  • Book:
    Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design
  • Author:
  • Publisher:
    Apress
  • Genre:
  • Year:
    2022
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Implement design patterns in .NET 6 using the latest versions of the C# and F# languages. This book provides a comprehensive overview of the field of design patterns as they are used in todays developer toolbox. In addition to the functional builder, asynchronous factory method, generic value adapter, and composite proxies, this new edition introduces topics such as Decorator Cycle Policies Functional Commands, a Transformer variation of the Visitor pattern, and factories that can perform Object Tracking and Bulk Replacement.
Using the C# and F# programming languages, Design Patterns in .NET 6 explores the classic design pattern implementations and discusses the applicability and relevance of specific language features for implementing patterns. You will learn by example, reviewing scenarios where patterns are applicable. Former C# MVP and patterns expert Dmitri Nesteruk demonstrates possible implementations of patterns, discusses alternatives and pattern relationships, and illustrates the way that a dedicated refactoring tool (JetBrains Rider) can be used to implement design patterns with ease.
What You Will Learn
  • Become familiar with the latest pattern implementations available in C# 10 and F# 6
  • Know how to better reason about software architecture
  • Understand the process of refactoring code to patterns
  • Refer to researched and proven variations of patterns
  • Study complete, self-contained examples, including many that cover advanced scenarios
  • Use the latest versions of C# and Visual Studio/Rider/ReSharper

Who This Book Is For
Developers who have some experience in the C# language and want to expand their comprehension of the art of programming by leveraging design approaches to solve modern problems

Dmitri Nesteruk: author's other books


Who wrote Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design? Find out the surname, the name of the author of the book and a list of all author's works by series.

Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make

Design Patterns in NET 6 Reusable Approaches in C and F for - photo 1Design Patterns in .NET 6Reusable Approaches in C# and F#for Object-Oriented Software DesignThird EditionDmitri NesterukDesign Patterns in .NET 6: Reusable Approaches in C# and F# for Object-OrientedSoftware Design Dmitri Nesteruk St. Petersburg, c.St-Petersburg, Russia ISBN-13 (pbk): 978-1-4842-8244-1 ISBN-13 (electronic): 978-1-4842-8245-8 https://doi.org/10.1007/978-1-4842-8245-8 Copyright 2022 by Dmitri Nesteruk This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.

While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Joan Murray Development Editor: Laura Berendson Coordinating Editor: Jill Balzano Cover designed by eStudioCalamar Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza, Suite 4600, New York, NY 10004-1562, USA. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@ springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.

For information on translations, please e-mail booktranslations@springernature.com; for reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub (https://github.com/Apress). apress.com/source-code. apress.com/source-code.

Printed on acid-free paper The forces of light shall overcome the forces of darkness.Table of Contents About the Author xv About the Technical Reviewer xvii Introduction xix Part I: Introduction 1 Chapter 1: The SOLID Design Principles 3 Single Responsibility Principle 3 Open-Closed Principle 6 Liskov Substitution Principle 13 Interface Segregation Principle 15 Parameter Object 20 Dependency Inversion Principle 21 Chapter 2: The Functional Perspective 25 Function Basics 25 Functional Literals in C# 27 Storing Functions in C# 28 Functional Literals in F# 30 Composition 32 Functional-Related Language Features 33 Part II: Creational Patterns 35 Chapter 3: Builder 37 Scenario 37 Simple Builder 40 Fluent Builder 41 v Table of ConTenTs Static Initialization 41 Communicating Intent 42 Nested Builder and Immutability 44 Composite Builder 45 Builder Marker Interfaces 49 Stepwise Builder (Wizard) 51 Builder Parameter 56 Builder Extension with Recursive Generics 58 Lazy Functional Builder 62 Builder-Decorator 65 Scoping Builder Method 68 DSL Construction in F# 69 Summary 70 Chapter 4: Factories 73 Scenario 73 Factory Method 75 Asynchronous Factory Method 76 Factory 77 Inner Factory 78 Physical Separation 79 Abstract Factory 79 Delegate Factories in IoC 83 Object Tracking and Bulk Replacements 85 Object Tracking 85 Bulk Modifications 87 Functional Factory 90 Summary 91 vi Table of ConTenTs Chapter 5: Prototype 93 Deep vs Shallow Copying 93 ICloneable Is Bad 94 Deep Copying via Copy Construction 96 Note on Record Classes 97 Deep Copying with a Special Interface 97 Deep Copying and Inheritance 98 Deep Copying Guidelines 102 Trivially Copyable Types 103 Arrays 103 Common Collection Types 104 MemberwiseClone Is Not Terrible 105 Summary 106 Serialization 107 Prototype Factory 109 Source Generators 110 Summary 111 Chapter 6: Singleton 113 Singleton by Convention 113 Classic Implementation 114 Lazy Loading and Thread Safety 115 Reusable Base Class 116 The Trouble with Singleton 117 Per-Thread Singleton 121 Ambient Context 122 Uses in the NET Framework 126 Singletons and Inversion of Control 127 Monostate 128 Multiton 129 Summary 130 vii Table of ConTenTs Part III: Structural Patterns 131 Chapter 7: Adapter 133 Scenario 133 Adapter 135 Adapter Temporaries 136 The Problem with Hashing 140 Property Adapter (Surrogate) 142 Generic Value Adapter 144 Adapter in Dependency Injection 152 Bidirectional Adapter 155 Adapters in the NET Framework 156 Summary 157 Chapter 8: Bridge 159 Conventional Bridge 159 Dynamic Prototyping Bridge 163 Summary 166 Chapter 9: Composite 167 Grouping Graphic Objects 167 Neural Networks 170 Shrink Wrapping the Composite 173 Composite Specification 175 Summary 178 Chapter 10: Decorator 179 The Basics of Delegation 180 Points and Lines 182 Adapter-Decorator 185 Simulating Multiple Inheritance 185 Multiple Inheritance with Interfaces 186 viii Table of ConTenTs Multiple Inheritance with Default Interface Members 189 Dynamic Decorator Composition 191 Decorator Cycle Policies 194 Static Decorator Composition 200 Functional Decorator 201 Summary 202 Chapter 11: Faade 205 Magic Squares 206 Building a Trading Terminal 211 An Advanced Terminal 212 Wheres the Faade? 214 IoC Modules 216 Summary 218 Chapter 12: Flyweight 219 User Names 219 Text Formatting 222 Using Flyweights for Interop 225 Summary 226 Chapter 13: Proxy 227 Protection Proxy 227 Property Proxy 229 Composite Proxy: SoA/AoS 232 Composite Proxy with Array-Backed Properties 235 Virtual Proxy 237 Communication Proxy 240 Dynamic Proxy for Logging 242 Composite Proxy 245 Summary 248 ix Table of ConTenTs Chapter 14: Value Object 251 Two-Dimensional Point 252 Percentage Value 253 Units of Measure 255 Summary 257 Part IV: Behavioral Patterns 259 Chapter 15: Chain of Responsibility 261 Scenario 261 Method Chain 262 Broker Chain 265 Functional Chain of Responsibility 270 Summary 271 Chapter 16: Command 273 Scenario 273 Implementing the Command Pattern 274 Undo Operations 276 Composite Commands (aka Macros) 279 Functional Command 283 Queries and Command-Query Separation 285 Summary 285 Chapter 17: Interpreter 287 Integer Parsing 288 Numeric Expression Evaluator 289 Lexing 290 Parsing 292 Using Lexer and Parser 296 Interpretation in the Functional Paradigm 296 Transpiler 300 Summary 302 x Table of ConTenTs Chapter 18: Iterator 305 Array-Backed Properties 306 Lets Make an Iterator 309 Improved Iteration 312 Iterator Specifics 314 Iterator Adapter 315 Composite Iteration 317 Summary 319 Chapter 19: Mediator 321 Chat Room 321 Mediator with Events 326 Introduction to MediatR 330 Service Bus as Mediator 332 Summary 333 Chapter 20: Memento 335 Bank Account 335 Undo and Redo 337 Memento and Command 340 Summary 341 Chapter 21: Null Object 343 Scenario 343 Intrusive Approaches 345 Nullable Virtual Proxy 346 Null Object 347 Null Object Singleton 348 Dynamic Null Object 349 Drawbacks 350 Summary 351 xi Table of ConTenTs Chapter 22: Observer 353 Events 353 Weak Event Pattern 355 Event Streams 357 Property Observers 361 Basic Change Notification 361 Bidirectional Bindings 363 Property Dependencies 366 Views 372 Case Study: Quadratic Equation Solver 374 Circular Recalculation Limitations 376 Observable Collections 377 Observable LINQ 378 Declarative Subscriptions in Autofac 378 Summary 382 Chapter 23: State 383 State-Driven State Transitions 384 Enum-Based State Machine 387 Switch-Based State Machine 390 Encoding Transitions with Switch Expressions 392 State Machines with Stateless 394 Types, Actions, and Ignoring Transitions 395 Reentrancy Again 396 Hierarchical States 397 More Features 397 Concurrent State Machines 398 Implicit State Machines 399 Summary 399 xii Table of ConTenTs Chapter 24: Strategy 401 Dynamic Strategy 401 Static Strategy 404 Equality and Comparison Strategies 406 Functional Strategy 408 Declarative Strategies 409 Summary 410 Chapter 25: Template Method 411 Game Simulation 411 Template Method Mixin 413 Functional Template Method 415 Summary 416 Chapter 26: Visitor 417 Intrusive Visitor 418 Reflective Visitor 419 Extension Methods? 422 Functional Reflective Visitor (C#) 424 Functional Reflective Visitor (F#) 426 Improvements 427 What Is Dispatch? 428 Dynamic Visitor 430 Classic Visitor 432 Abstract Classes and Virtual Methods 435 Reducing Boilerplate 437 Implementing an Additional Visitor 437 Type Checks Are Unavoidable 439 Acyclic Visitor 441 Visitable Null Object 443 xiii Table of ConTenTs Visitor Adapter 447 Reductions and Transforms 450 Functional Visitor in F# 454 Summary 455 Index 457 xiv About the Author Dmitri Nesteruk is a quantitative analyst developer course - photo 2

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design»

Look at similar books to Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design»

Discussion, reviews of the book Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-Oriented Software Design and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.