Cart

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 3rd edition

BRAND: PEARSON

Publisher: Addison-Wesley Professional (June 18, 2020) © 2020
Krzysztof Cwalina, Jeremy Barton, Brad Abrams | eBook ISBN: 9780135896327
eBook edition. 1 Year Subscription. Dành cho Cá nhân  |  Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In  

ISBN: 9780135896464
Giá bán lẻ: 1,971,000₫
Số lượng:
Tổng tiền:
Giá có thể thay đổi bất kỳ khi nào.
Thời hạn giao hàng: 03 ngày làm việc với sách digital và 30 ngày với sách in. Gọi để được Tư vấn Giáo Trình.

Mô tả sản phẩm


Nguyên tắc thiết kế khung từ lâu đã là hướng dẫn chính xác về các phương pháp hay nhất để phát triển các thành phần và thư viện thành phần trong Microsoft .NET. Giờ đây, ấn bản này đã được sửa đổi hoàn toàn để phản ánh những đổi mới trong thiết kế API mang tính thay đổi trò chơi do Microsoft giới thiệu thông qua tám bản cập nhật gần đây cho C#, 11 bản cập nhật cho .NET Framework cũng như sự xuất hiện và phát triển của .NET Core.
Ba kiến ​​trúc sư hàng đầu của Microsoft chia sẻ cùng một hướng dẫn mà các nhóm Microsoft đang sử dụng để phát triển .NET, nhờ đó, bạn có thể thiết kế các thành phần hoạt động tốt giống như các tiện ích mở rộng tự nhiên cho nền tảng. Dựa trên phong cách giải thích đã được chứng minh của cuốn sách, các tác giả và chuyên gia chú thích đưa ra hướng dẫn nội bộ về các khái niệm .NET và C# mới, bao gồm những tiến bộ lớn trong lập trình không đồng bộ và truy cập bộ nhớ nhẹ. Xuyên suốt, chúng làm rõ và làm mới nội dung hiện có, giúp bạn tận dụng tối đa các phương pháp hay nhất dựa trên C# 8, .NET Framework 4.8 và .NET Core.
Khám phá những phương pháp nào nên luôn luôn, nói chung, hiếm khi hoặc không bao giờ được sử dụng—bao gồm cả những phương pháp không còn được khuyến nghị nữa
Tìm hiểu triết lý chung và các nguyên tắc cơ bản của thiết kế khung hiện đại
Khám phá các mẫu thiết kế khung phổ biến với các ví dụ C# cập nhật
Áp dụng các phương pháp hay nhất về đặt tên, loại, khả năng mở rộng và ngoại lệ
Tìm hiểu cách thiết kế các thư viện có quy mô trên đám mây
Nắm vững các kỹ thuật lập trình async mới bằng cách sử dụng Task và ValueTask
Tận dụng tối đa các loại Bộ nhớ lõi và Khoảng cách để truy cập bộ nhớ nhẹ

Figures xvii
Tables xix
Foreword to the Third Edition xxi
Foreword to the Second Edition xxiii
Foreword to the First Edition xxv
Preface xxvii
Acknowledgments xxxiii
About the Authors xxxv
About the Annotators xxxvii


Chapter 1: Introduction 1

1.1 Qualities of a Well-Designed Framework 3

Chapter 2: Framework Design Fundamentals 9

2.1 Progressive Frameworks 12
2.2 Fundamental Principles of Framework Design 15
Chapter 3: Naming Guidelines 41

3.1 Capitalization Conventions 42
3.2 General Naming Conventions 52
3.3 Names of Assemblies, DLLs, and Packages 61
3.4 Names of Namespaces 63
3.5 Names of Classes, Structs, and Interfaces 67
3.6 Names of Type Members 74
3.7 Naming Parameters 79
3.8 Naming Resources 81

Chapter 4: Type Design Guidelines 83

4.1 Types and Namespaces 85
4.2 Choosing Between Class and Struct 89
4.3 Choosing Between Class and Interface 92
4.4 Abstract Class Design 100
4.5 Static Class Design 102
4.6 Interface Design 104
4.7 Struct Design 106
4.8 Enum Design 111
4.9 Nested Types 124
4.10 Types and Assembly Metadata 127
4.11 Strongly Typed Strings 129

Chapter 5: Member Design 135

5.1 General Member Design Guidelines 135
5.2 Property Design 158
5.3 Constructor Design 165
5.4 Event Design 175
5.5 Field Design 180
5.6 Extension Methods 184
5.7 Operator Overloads 192
5.8 Parameter Design 202
5.9 Using Tuples in Member Signatures 220

Chapter 6: Designing for Extensibility 227

6.1 Extensibility Mechanisms 227
6.2 Base Classes 242
6.3 Sealing 244

Chapter 7: Exceptions 249

7.1 Exception Throwing 254
7.2 Choosing the Right Type of Exception to Throw 260
7.3 Using Standard Exception Types 273
7.4 Designing Custom Exceptions 279
7.5 Exceptions and Performance 281

Chapter 8: Usage Guidelines 287

8.1 Arrays 287
8.2 Attributes 291
8.3 Collections 294
8.4 DateTime and DateTimeOffset 306
8.5 ICloneable 308
8.6 IComparable<T> and IEquatable<T> 309
8.7 IDisposable 311
8.8 Nullable<T> 311
8.9 Object 312
8.10 Serialization 319
8.11 Uri 321
8.12 System.Xml Usage 323
8.13 Equality Operators 324

Chapter 9: Common Design Patterns 329

9.1 Aggregate Components 329
9.2 The Async Patterns 339
9.3 Dependency Properties 365
9.4 Dispose Pattern 372
9.5 Factories 394
9.6 LINQ Support 400
9.7 Optional Feature Pattern 408
9.8 Covariance and Contravariance 412
9.9 Template Method 423
9.10 Timeouts 426
9.11 XAML Readable Types 427
9.12 Operating on Buffers 430
9.13 And in the End... 464

Appendix A: C# Coding Style Conventions 465

A.1 General Style Conventions 466
A.2 Naming Conventions 480
A.3 Comments 482
A.4 File Organization 483

Appendix B: Obsolete Guidance 487Appendix C: Sample API Specification 523


Appendix D: Breaking Changes 529

D.1 Modifying Assemblies 530
D.2 Adding Namespaces 531
D.3 Modifying Namespaces 532
D.4 Moving Types 532
D.5 Removing Types 533
D.6 Modifying Types 534
D.7 Adding Members 539
D.8 Moving Members 541
D.9 Removing Members 542
D.10 Overloading Members 544
D.11 Changing Member Signatures 545
D.12 Changing Behavior 553
D.13 A Final Note 556

Glossary 557
Index 563

TỔNG QUAN SÁCH

Nguyên tắc thiết kế khung từ lâu đã là hướng dẫn chính xác về các phương pháp hay nhất để phát triển các thành phần và thư viện thành phần trong Microsoft .NET. Giờ đây, ấn bản này đã được sửa đổi hoàn toàn để phản ánh những đổi mới trong thiết kế API mang tính thay đổi trò chơi do Microsoft giới thiệu thông qua tám bản cập nhật gần đây cho C#, 11 bản cập nhật cho .NET Framework cũng như sự xuất hiện và phát triển của .NET Core.
Ba kiến ​​trúc sư hàng đầu của Microsoft chia sẻ cùng một hướng dẫn mà các nhóm Microsoft đang sử dụng để phát triển .NET, nhờ đó, bạn có thể thiết kế các thành phần hoạt động tốt giống như các tiện ích mở rộng tự nhiên cho nền tảng. Dựa trên phong cách giải thích đã được chứng minh của cuốn sách, các tác giả và chuyên gia chú thích đưa ra hướng dẫn nội bộ về các khái niệm .NET và C# mới, bao gồm những tiến bộ lớn trong lập trình không đồng bộ và truy cập bộ nhớ nhẹ. Xuyên suốt, chúng làm rõ và làm mới nội dung hiện có, giúp bạn tận dụng tối đa các phương pháp hay nhất dựa trên C# 8, .NET Framework 4.8 và .NET Core.
Khám phá những phương pháp nào nên luôn luôn, nói chung, hiếm khi hoặc không bao giờ được sử dụng—bao gồm cả những phương pháp không còn được khuyến nghị nữa
Tìm hiểu triết lý chung và các nguyên tắc cơ bản của thiết kế khung hiện đại
Khám phá các mẫu thiết kế khung phổ biến với các ví dụ C# cập nhật
Áp dụng các phương pháp hay nhất về đặt tên, loại, khả năng mở rộng và ngoại lệ
Tìm hiểu cách thiết kế các thư viện có quy mô trên đám mây
Nắm vững các kỹ thuật lập trình async mới bằng cách sử dụng Task và ValueTask
Tận dụng tối đa các loại Bộ nhớ lõi và Khoảng cách để truy cập bộ nhớ nhẹ

MỤC LỤC

Figures xvii
Tables xix
Foreword to the Third Edition xxi
Foreword to the Second Edition xxiii
Foreword to the First Edition xxv
Preface xxvii
Acknowledgments xxxiii
About the Authors xxxv
About the Annotators xxxvii


Chapter 1: Introduction 1

1.1 Qualities of a Well-Designed Framework 3

Chapter 2: Framework Design Fundamentals 9

2.1 Progressive Frameworks 12
2.2 Fundamental Principles of Framework Design 15
Chapter 3: Naming Guidelines 41

3.1 Capitalization Conventions 42
3.2 General Naming Conventions 52
3.3 Names of Assemblies, DLLs, and Packages 61
3.4 Names of Namespaces 63
3.5 Names of Classes, Structs, and Interfaces 67
3.6 Names of Type Members 74
3.7 Naming Parameters 79
3.8 Naming Resources 81

Chapter 4: Type Design Guidelines 83

4.1 Types and Namespaces 85
4.2 Choosing Between Class and Struct 89
4.3 Choosing Between Class and Interface 92
4.4 Abstract Class Design 100
4.5 Static Class Design 102
4.6 Interface Design 104
4.7 Struct Design 106
4.8 Enum Design 111
4.9 Nested Types 124
4.10 Types and Assembly Metadata 127
4.11 Strongly Typed Strings 129

Chapter 5: Member Design 135

5.1 General Member Design Guidelines 135
5.2 Property Design 158
5.3 Constructor Design 165
5.4 Event Design 175
5.5 Field Design 180
5.6 Extension Methods 184
5.7 Operator Overloads 192
5.8 Parameter Design 202
5.9 Using Tuples in Member Signatures 220

Chapter 6: Designing for Extensibility 227

6.1 Extensibility Mechanisms 227
6.2 Base Classes 242
6.3 Sealing 244

Chapter 7: Exceptions 249

7.1 Exception Throwing 254
7.2 Choosing the Right Type of Exception to Throw 260
7.3 Using Standard Exception Types 273
7.4 Designing Custom Exceptions 279
7.5 Exceptions and Performance 281

Chapter 8: Usage Guidelines 287

8.1 Arrays 287
8.2 Attributes 291
8.3 Collections 294
8.4 DateTime and DateTimeOffset 306
8.5 ICloneable 308
8.6 IComparable<T> and IEquatable<T> 309
8.7 IDisposable 311
8.8 Nullable<T> 311
8.9 Object 312
8.10 Serialization 319
8.11 Uri 321
8.12 System.Xml Usage 323
8.13 Equality Operators 324

Chapter 9: Common Design Patterns 329

9.1 Aggregate Components 329
9.2 The Async Patterns 339
9.3 Dependency Properties 365
9.4 Dispose Pattern 372
9.5 Factories 394
9.6 LINQ Support 400
9.7 Optional Feature Pattern 408
9.8 Covariance and Contravariance 412
9.9 Template Method 423
9.10 Timeouts 426
9.11 XAML Readable Types 427
9.12 Operating on Buffers 430
9.13 And in the End... 464

Appendix A: C# Coding Style Conventions 465

A.1 General Style Conventions 466
A.2 Naming Conventions 480
A.3 Comments 482
A.4 File Organization 483

Appendix B: Obsolete Guidance 487Appendix C: Sample API Specification 523


Appendix D: Breaking Changes 529

D.1 Modifying Assemblies 530
D.2 Adding Namespaces 531
D.3 Modifying Namespaces 532
D.4 Moving Types 532
D.5 Removing Types 533
D.6 Modifying Types 534
D.7 Adding Members 539
D.8 Moving Members 541
D.9 Removing Members 542
D.10 Overloading Members 544
D.11 Changing Member Signatures 545
D.12 Changing Behavior 553
D.13 A Final Note 556

Glossary 557
Index 563

-%
0₫ 0₫
0915920514
0915920514