核心内容包括:系统类型和接口,集合和泛型,配置和安装程序集,监视和调试应用程序,读取和写入文件,创建全球化应用程序,委托和事件
1.系统类型和接口
.NET Framework是强类型的开发框架,提供了通用类型系统(CTS),所有类型派生自System.Object类型。
值类型和引用类型,值类型保存在堆栈中,引用类型保存在托管堆中。
装箱和拆箱,值<---->引用
特殊系统类型, 泛型(避免装拆箱,类型安全且可重用),Nullable类型(值设置为null值),异常类(应用程序执行期间发生的错误),特性(attribute) 声明性标记,通过特性将编程元素的信息传递给运行时,从而改变代码执行行为。
异常处理。try可能产生异常的代码 catch扑获产生的异常 finally不管是否出现异常都会执行 throw
使用接口,类或结构遵循的约定,约定的具体实现由实现接口的类或结构来完成。 IDisposable,IComparable, IEquatable, IConvertible, IFormattable等.
2.集合和泛型
System.Collections非泛型版本,System.Collections.Generic泛型版本。
System.Collections.Specialized专用集合。
常见集合接口和类型:
IComparable接口用来比较两对象的大小主要用于排序
ICollection定义所有非泛型和泛型集合的大小,枚举数和同步访问方法。
IList提供对集合进行索引访问
IComparer提供两对象比较方法
IEqualityComparer检查两集合是否相等
IDictionary实现集合键/值对行为
IEnumerable和IEnumerator实现集合项迭代。
非泛型集合:ArrayList, Hashtable, SortedList, BitArray, Queue,Stack
泛型集合: List, Stack, Queue, dictionary和LinkedList 类型安全的集合对象,避免装拆箱操作。
String类,包括StringCollection和StringDictionary 。StringCollection可以看作元素是String的泛型List类,StringDictionary可以看作键和值都是string的泛型Dictionary类. StringEnumerator类提供对字符串集合的枚举操作,通过CollectionUtil类可以创建不区分字符大小写的Hashtable或SortedList对象实例。
Dictionary类,包括:ListDictionary,HybridDictionary和OrderedDictionary.
HybridDictionary内部提供一种机制,在元素较少时使用ListDictionary存储,在元素增加到某个数量时采用Hashtable进行存储,有效提高性能,OrderedDictionary存储通过键或索引进行排序的元素。
Named Collection类 通过键或索引访问的关联键值的集合,派生NameObjectCollectionBase类创建具有各自专用行为的键值集合。NameValueCollection从NameObjectCollectionBase继承,实现了将多个字符串值与单个字符串键相关联功能。
专用位结构,Boolean值和小整数的集合存储,BitVector32支持将Boolean值存储到32位结构中,而BitVector32.Section结构支持小整数的存储。
扩展集合基类,单个元素的集合基类和键值对字典类型的集合基类。通过继承CollectionBase抽象类和ReadOnlyCollectionBase可实现可读写版本的集合和只读集合。通过继承DictionaryBase抽象类可实现自定义的Dictionary类型。
3.配置和安装程序集
由于com组件的版本控制信息是存储在系统注册表中,因此新旧com组件间总会存在版本冲突的可能性,通过被称为dll冲突。
.NET程序集本身存储类型,资源,版本控制,安全权限和元素据的所有信息,不存在注册表设置依赖。完全解决了COM组件中存在的动态链接库版本冲突问题。
安装程序集。 .NET程序集的安装可以有多种方式,包括XCOPY, WINDOWS安装程序和自定义安装程序。 根据安装位置可以安装在本地或者全局程序集缓存中,如果需要安装到全局程序集缓存中需要对程序集进行强类型签名。
单文件程序集和多文件程序集。单文件程序集中包含一个文件,文件里面包含执行程序集所需的所有元素,程序集清单,MSIL代码,和数据类型等。 多文件程序集,
全局程序集缓存。由公共语言运行是CLR管理,提供系统范围的代码缓存,多应用程序共享的程序集通常安装在全局程序集中。
强名称程序集。为程序集提供唯一的标识,防止程序集间命名和版本的冲突,确保程序集的真实唯一性,全局程序集缓存中只可以安装强命名的程序集。
强名称由程序集文件名,版本号,区域性信息,公钥及数字签名,以确保程序集的真实性。sn.exe工具为程序集创建并分配强名称。
自定义安装程序集: System.Configuration.Install命名空间中提供的类型进行编程,Installer类创建自定义程序, AssemblyInstaller类安装程序集,CommponentInstaller类复制运行时安装的组件设置。 InstallerCollection InstallContext类管理程序集的安装,Installer类通过使用InstallEventHandler委托处理安装事件,BeforeInstall AfterInstall committing Committed BeforeRollBack AfterRollback BeforeUninstall afterUninstall事件.
配置程序集:Web.Config,ApplicationName.exe.Config,Machine.config当CLR加载程序集时,Machine.config提供应用程序的默认配置设置。
管理配置设置,System.Configuration管理配置文件,ConfigurationManager,Configuration和WebConfigurationManager核心类,接口包括IConfiguartionSectionHandler, ISettingsProviderService和IApplicationSettingsProvider 管理配置元素的类包括:ConfigurationElement.ConfiguartionElementCollection,ConfiguartionElementProterty
管理配置文件中的节的类包括ConfiguationSection,ConfiguationSectionCollection,ConfigurationSectionGroup,ConfigurationSectionGroupCollection