框架設計

框架設計

《框架設計》是2010年東南大學出版社出版的圖書,作者是瑞奇特。該書內容包括建立、部署基於版本的應用程式、組件和共享程式集,在理解原語、數值和引用類型行為的基礎上來定義並更高效地使用它們。

作者簡介

作者:(美國)瑞奇特(Jeffrey Richter)

Jeffrey Richter是Winteltect的共同創辦人之一,這是一家培訓、諮詢和調試相關的企業,專門致力於幫助其他公司更快構建更好的軟體。他於1999年10月開始為微軟的.NET框架團隊提供諮詢,並已促成了微軟的數款產品。除了本書之前的版本,他還寫過一些其他流行的主題,包括《Windows via C/C++》和《Advanced Windows》。

內容簡介

從《框架設計(第3版)(影印版)》理解以下內容:建立、部署基於版本的應用程式、組件和共享程式集,在理解原語、數值和引用類型行為的基礎上來定義並更高效地使用它們。使用泛型和接口定義可重用算法,有效地使用特殊的CLR類型——委託、枚舉、自定義屬性、數組、字元串。

理解垃圾收集器如何管理資源

使用執行緒池、任務、取消模式、定時器和異步I/O操作來設計靈活、可靠、可擴展的解決方案,

使用異常處理以協助狀態管理

使用CLR託管、AppDomain、程式集載入、反射和C#動態

類型來構建動態可擴展的應用程式

作品目錄

Foreward

Introduction

Part l CLR Basics

1 The CLR's Execution Model

Compiling Source Code into Managed Modules

Combining Managed Modules into Assemblies

Loading the Common Language Runtime

Executing Your Assembly's Code

IL and Verification

Unsafe Code

The Native Code Generator Tool: NGen.exe

The Framework Class Library

The Common Type System

The Common Language Specification

Interoperability with Unmanaged Code

2 Building, Packaging, Deploying, and Administering Applications and Types

.NET Framework Deployment Goals

Building Types into a Module

Response Files

A Brief Look at Metadata

Combining Modules to Form an Assembly

Adding Assemblies to a Project by Using the Visual Studio IDE

Using the Assembly Linker

Adding Resource Files to an Assembly

Assembly Version Resource Information

Version Numbers

Culture

Simple Application Deployment (Privately Deployed Assemblies)

Simple Administrative Control (Configuration)

3 Shared Assemblies and Strongly Named Assemblies

Two Kinds of Assemblies, Two Kinds of Deployment

Giving an Assembly a Strong Name

The Global Assembly Cache

Building an Assembly That References a Strongly Named Assembly

Strongly Named Assemblies Are Tamper-Resistant

Delayed Signing

Privately Deploying Strongly Named Assemblies

How the Runtime Resolves Type References

Advanced Administrative Control (Configuration)

Publisher Policy Control

Part II Designing Types

4 Type Fundamentals

All Types Are Derived from System.Object

Casting Between Types

Casting with the C# s and as Operators

Namespaces and Assemblies

How Things Relate at Runtime

5 Primitive, Reference, and Value Types

Programming Language Primitive Types

Checked and Unchecked Primitive Type Operations

Reference Types and Value Types

Boxing and Unboxing Value Types

Changing Fields in a Boxed Value Type by Using Interfaces (and Why You Shouldn't Do This)

Object Equality and Identity

Object Hash Codes

The dynamic Primitive Type

6 Type and Member Basics

The Different Kinds of Type Members

Type Visibility

Friend Assemblies

Member Accessibility

Static Classes

Partial Classes, Structures, and Interfaces

Components, Polymorphism, and Versioning

How the CLR Calls Virtual Methods, Properties, and Events

Using Type Visibility and Member Accessibility Intelligently

Dealing with Virtual Methods When Versioning Types

7 Constants and Fields

Constants

Fields

8 Methods

Instance Constructors and Classes (Reference Types)

Instance Constructors and Structures (Value Types)

Type Constructors

Type Constructor Performance

Operator Overload Methods

Operators and Programming Language Interoperability

Conversion Operator Methods

Extension Methods

Rules and Guidelines

Extending Various Types with Extension Methods

The Extension Attribute

Partial Methods

Rules and Guidelines

9 Parameters

Optional and Named Parameters

Rules and Guidelines

The Defaul tParameterVal ue and Optional Attributes

Implicitly Typed Local Variables

Passing Parameters by Reference to a Method

Passing a Variable Number of Arguments to a Method

Parameter and Return Type Guidelines

Const-ness

10 Properties .

Parameterless Properties

Automatically Implemented Properties

Defining Properties Intelligently

Object and Collection Initializers

Anonymous Types

The System, Tuple Type

Parameterful Properties

The Performance of Calling Property Accessor Methods

Property Accessor Accessibility

Generic Property Accessor Methods

11 Events

Designing a Type That Exposes an Event

Step #1: Define a type that will hold any additional information

that should be sent to receivers of the event notification

Step #2: Define the event member

Step #3: Define a method responsible for raising the event to

notify registered obJects that the event has occurred

Step #4: Define a method that translates the input into the desired event.

How the Compiler Implements an Event

Designing a Type That Listens for an Event

Explicitly Implementing an Event

12 Generics

Generics in the Framework Class Library

Wintellect's Power Collections Library

Generics Infrastructure

Open and Closed Types

Generic Types and Inheritance

Generic Type Identity

Code Explosion

Generic Interfaces

Generic Delegates

Delegate and Interface Contravariant and Covariant Generic Type Arguments.

Generic Methods

Generic Methods and Type Inference

Generics and Other Members

Verifiability and Constraints

Primary Constraints

Secondary Constraints

Constructor Constraints

Other Verifiability Issues

13 Interfaces

Class and Interface Inheritance

Defining an Interface

Inheriting an Interface

More About Calling Interface Methods...

Implicit and Explicit Interface Method Implementations (What's Happening Behind the Scenes)

Generic Interfaces

Generics and Interface Constraints

Implementing Multiple Interfaces That Have the Same Method Name and Signature

Improving Compile-Time Type Safety with Explicit Interface Method Implementations

Be Careful with Explicit Interface Method Implementations

Design: Base Class or Interface?

Part III Essential Types

14 Chars, Strings, and Working with Text

Characters

The System, String Type

Constructing Strings

Strings Are Immutable

Comparing Strings

……

相關詞條

熱門詞條

聯絡我們