聆听专家指导,决胜.NET框架开发\r\n 开发人员使用Microsoft.NET框架可以快速地创建健壮、安全的ASP.NET Web Forms和XML Web服务应用程序以及Windows Forms程序、工具和类型。 本书出自Windows开发界公认的大师之手,详细讲述了.NET框架的核心一CLR、可扩展类型系统CTS和类库FCL,并探讨了运行时环境如何管理类型行为,程序如何操纵类型等等重要主题。虽然是围绕C#讲解的,但是书中的概念完全适用于其他.NET语言。\r\n 本书涵盖的主题包括:\r\n◆.NET框架的体系结构 \r\n◆创建、部署和管理应用程序及类型\r\n◆创建和部署共享配件 \r\n◆类型基础\r\n◆基本类型引用类型和值类型 \r\n◆对象通用的操作 \r\n◆类型成员和可访问性 常量,字段,方法,性质(property)和事件\r\n◆文本处理 \r\n◆枚举类型和位标志\r\n◆数组类型 \r\n◆接口 \r\n◆自定义属性(attribute) \r\n◆委托 \r\n◆使用异常进行错误处理 \r\n◆自动内存管理\r\n◆AppDomain和反射
Acknowledgments\r\nIntroduction\r\n\r\nPart I Basics of the Microsoft.NET Framework\r\n\r\n1 The Architechiture of the .NET Framework Development Platform\r\n\r\nGompiling Source Gode into Managed Modules\r\nCombining Managed Modules into Assemblies\r\nLoading the Common Language Runtime\r\nExecuting Your Assembly's Gode\r\nIL and Verification\r\nThe .NET Framework Class Library\r\nThe Common Type System\r\nThe Common Language Specification\r\nInteroperability with Unmanaged Code\r\n\r\n2 Building, Packaging, Deploying, and Administering Applications and Types\r\n\r\n.NET Framework Deployment Goals\r\nBuilding Types into a Module\r\nCombining Modules to Form an Assembly\r\nAdding Assemblies to a Rroject Using the Visual Studio .NET IDE\r\nUsing the Assembiy Linker\r\nIncluding Resource Files in the Assembly\r\nAssembly Version Resource Information\r\nVersion Numbers\r\nCulture\r\nSimple Application Deployment (Privately Deployed Assemblies)\r\nSimple Administrative Control (Contiguration)\r\n\r\n3 Shared Assemblies\r\n\r\nTwo Kinds of Assemblies, Two Kinds of Deployment\r\nGiving an Assembly a Strong Name\r\nThe Global Assembly Cache\r\nThe Internal Structure of the GAC\r\nBuilding an Assembly That References a Strongly Named Assembly\r\nStrongly Named Assemblies Are Tamper-Resistant\r\nDelaynd Signing\r\nPrivately Deploying Strongly Named Assemblies\r\nSide-by-Side Execution\r\nHow the Runtime Resolves Type References\r\nAdvanced Administrative Control (Configuration)\r\nPublisher Policy Control\r\nRepairing a Faulty Application\r\n\r\nPart II Working with Types and the Common Language Runtime\r\n\r\n4 type Fundamentals\r\n\r\nAII Types Are Derived from System. Object\r\nCasting Between Types\r\nCasting with the C# is and as Operators\r\nNamespaces and Assemblies\r\n\r\n5 Primitive, Reference, and Valve Types\r\n\r\nProgramming Language Primitive Types\r\nChecked and Unchecked Primitive Type Operations\r\nReference Types and Values Types\r\nBoxing and Unboxing Value Types\r\n\r\n6 Common Object Operations\r\n\r\nObject Equality and Identity\r\nImplementing Equals for a Reference Type Whose Base Classes\r\nDon't Override Object's Equals\r\nLmplementing Equals for a Reference Type When One or More of\r\nIts Base Classes Overrides Object's Equals\r\nImplementing Equals for a Value Type\r\nSummary of Implementing Equals and the ==/1=Operators\r\nIdentity\r\nObject Hash Codes\r\nObject Cloning\r\n\r\nPart III Designing Types\r\n\r\n7 Type Members and Their Accessibility\r\n\r\nType Members\r\nAccessibility Modifiers and Predefined Attributes\r\nType Predefined Attributes\r\nField Predefined Attributes\r\nMethod Predefined Attributes\r\n\r\n8 Constants and Fields\r\n\r\nConstants\r\nFields\r\n\r\n9 Methods\r\n\r\nInstance Constructors\r\nType Constructors\r\nOperator Overload Methods\r\nOperators and Programming Language Interoperability\r\nConversion Operator Methods\r\nPassing Parameters by Reference to a Method\r\nPassing a Variable Number of Parameters to a Method\r\nHow Virtual Methods Are Called\r\nVirtual Method Versioning\r\n\r\n10 Properties\r\n\r\nParameterless Properties\r\nParameterful Properties\r\n\r\n11 Events\r\n\r\nDesigning a Type That Exposes an Event\r\nDesigning a Type That Listens for an Event\r\nExplicitly Controlling Event Registration\r\nDesigning a Type That Defines Lots of Events\r\nDesigning the EventHandlerSet Type\r\n\r\nPart IV Essential Types\r\n\r\n12 Working with Text\r\n\r\nCharacters\r\nThe System.String Type\r\nConstructing Strings\r\nStrings Are Immutable\r\nGomparing Strings\r\nString Interning\r\nString Pooling\r\nExamining a String's Characters\r\nOther String Operations\r\nDynamically Constructing a String Efficiently\r\nConstructing a StringBullder Object\r\nStringBulIder'S Members\r\nObtaining a String Representation for an Object\r\nSpecific Formats and Cultures\r\nFormatting Multiple Objects into a Single String\r\nProviding Your Own Gustom Formatter\r\nParsing a String to Obtain an Object\r\nEncodings: Converting Between Characters and Bytes\r\nEncoding/Decoding Streams of Characters and Bytes\r\nBase-64 String Encoding and Decoding\r\n\r\n13 Enumerated Types and Bit Flags\r\n\r\nEnumerated Types\r\nBit Flags\r\n\r\n14 Arrays\r\n\r\nAII Arrays Are Implicitly Derived from System.Array\r\nCasting Arrays\r\nPassing and Returning Arrays\r\nCreating Arrays That Have a Nonzero Lower Bound\r\nFast Array Access\r\nRedimensioning an Array\r\n\r\n15 Interfaces\r\n\r\nInterfaces and Inheritance\r\nDesigning an Application That Supports Plug-In Components\r\nChanging Fields in a Boxed Value Type Using Interfaces\r\nImplementing Multiple Interfaces That Have the Same Method\r\nExplicit Interface Member Implementations\r\n\r\n16 Custom Attributes\r\n\r\nUsing Custom Attributes\r\nDefining Your Own Attribute\r\nAttribute Constructor and Field/Property Data Types\r\nDetecting the Use of a Custom Attribute\r\nMatching Two Attribute Instances Against Each Other\r\nPseudo-Custom Attributes\r\n\r\n17 Delegates\r\n\r\nA First Look at Delegates\r\nUsing Delegates to Call Back Static Methods\r\nUsing Delegates to Call Back Instance Methods\r\nDemystifying Delegates\r\nSome Delegate History: System.Delegate and System.MulticastDelegate\r\nGomparing Delegates for Equality\r\nDelegate Chains\r\nC#s Support for Delegate Chains\r\nHaving More Control over Invoking a Delegate Chain\r\nDelegates and Reflection\r\n\r\nPart V Managing Types\r\n\r\n18 Exceptions\r\n\r\nThe Evolution of Exception Handling\r\nThe Mechanics of Exception Handling\r\nThe try Block\r\nThe catch Block\r\nThe finally Block\r\nWhat Exactly Is an Exception?\r\nThe System. Exception Class\r\nFCL-Detined Exception Classes\r\nDefining Your Own Exception Class\r\nHow to Use Exceptions Properly\r\nYou Can't Have Too Many finally Blocks\r\nDon't Catch Everything\r\nGracefully Recovering from an Exception\r\nBacking Out ot a Panially Completed Operation When an\r\nUnrecoverable Exception Occurs\r\nHiding an Implemeniation Detail\r\nWhat's Wrong with the FCL\r\nPerformance Considerations\r\nCatch Filters\r\nUnhandled Exceptions\r\nControlling What the CLR Does When an Unhandled Exception Occurs\r\nUnhandled Exceptions and Windows Forms\r\nUnhandled Exceptions and ASP.NET Web Forms\r\nUnhandled Exceptions and ASP.NET XML Web Services\r\nException Stack Traces\r\nRemoting Stack Traces\r\nDebugging Exceptions\r\nTelling Visual Studio wnat Kind ot Code to Debug\r\n\r\n19 Automatic Memory Management (Garbage Collection)\r\n\r\nUnderstanding the Basics of Working in a Garbage-Gollected Plafform\r\nThe Garbage Collection Algorithm\r\nFinalization\r\nWhat Causes Finalize Methods to Get Called\r\nFinalization Internals\r\nThe Dispose Pattern: Forcing an Object to Clean Up\r\nUsing a Type That Implements the Dispose Pattern\r\nC#'s using Statement\r\nAn Interesting Dependency Issue\r\nWeak References\r\nWeak Reference Internals\r\nResurrnction\r\nDesigning an Object Pool Using Resurrection\r\nGenerations\r\nProgrammatic Gontrol of the Garbage Collector\r\nOther Garbage Collector Performance Issues\r\nSynchronization-Free Allocations\r\nScalable Parallel Collections\r\nConcurrent Collections\r\nLarge Objects\r\nMonitoring Garbage Collections\r\n\r\n20 CLR Hosting, AppDomains, and Reflection\r\n\r\nMetadata: The Gornerstone of the .NET Framework\r\nCLR Hosting\r\nAppDomains\r\nAocessing Objects Across AppDomain Boundaries\r\nAppDomain Events\r\nApplications and How They Host the CLR and Manage AppDomains\r\n“Yukon”\r\nThe Gist of Reflection\r\nReflecting Over an Assembly's Types\r\nReflecting Over an AppDomain's Assemblies\r\nReflecting Over a Type's Members: Binding\r\nExplicitly Loading Assemblies\r\nLoading Assemblies as "Data Files"\r\nBuilding a Hierarchy of Exception-Derived Types\r\nExplicitly Unloading Assemblies: Unloading an AppDomain\r\nObtaining a Reference to a System.Type Object\r\nReflecting Over a Type's Members\r\nCreating an Instance of a Type\r\nCalling a Type's Method\r\nBind Once, Invoke Multiple Times\r\nReflecting Over a Type's Interfaces\r\nReflection Performance\r\n\r\nIndex