框架设计 电子书下载 PDF下载

框架设计
内容简介
深度挖掘并掌握公共语言运行时、C#和.NET开发的错综复杂之处。作为编程专家和微软.NET团队的长期顾问,Jeffrey Richter将带领你获得务实的见解来创建健壮、可靠且反应迅速的应用程序与组件。更新.NET Framework 4.0及多核编程部分之后,这本完美的经典指南可帮助开发者建立任何类型的应用程序,包括MicrosoftSilverliclht、ASP.NET、Windows、Presentation Foundation、Web services和控制台应用。
  从本书理解以下内容:
  建立、部署基于版本的应用程序、组件和共享程序集;
  在理解原语、数值和引用类型行为的基础上来定义并更高效地使用它们;
  使用泛型和接口定义可重用算法;
  有效地使用特殊的CLR类型——委托、枚举、自定义属性、数组、字符串;
  理解垃圾收集器如何管理资源;
  使用线程池、任务、取消模式、定时器和异步I/O操作来设计灵活、可靠、可扩展的解决方案;
  使用异常处理以协助状态管理;
  使用CLR托管、AppDomain、程序集加载、反射和C#动态类型来构建动态可扩展的应用程序。 ·查看全部>>
目录
Foreward
Introduction
Part l CLR Basics
1 The CLRs Execution Model
Compiling Source Code into Managed Modules
Combining Managed Modules into Assemblies
Loading the Common Language Runtime
Executing Your Assemblys 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 Shouldnt 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
Wintellects 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 (Whats 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
……
Copyright © 2024 by topbester.com.
All Rights Reserved.
沪ICP备14027842号-1