.NET技术平台体系
2022-02-18 10:18:02 1 举报
AI智能生成
梳理关于.Net技术平台的关键技术整理
作者其他创作
大纲/内容
公共语言运行库
编译阶段
1.0-把源代码编译为Microsoft中间语言(IL)
2.0-CLR把IL编译为平台专用的代码
IL语言
优点
平台无关性
提高性能
语言的互操作性
COM
COM将动态加载代码和类型系统以相当一致的方式有机结合一起。
公共语言规范
遵从性原则
成员可访问性
公有【Public】
其成员变量和方法均可以在其他类中被调用
受保护的【Protected】
同一包中的类、不同包中的子类可以调用
默认包的【internal】
只能同一包中的类可以访问
私有的【Private】
只能在同一个类中被访问
数组
数组的所有维度必须具有零下限
所有属猪元素必须包括符合CLS的类型
特性【Attribute】
在.Net Framework 程序集中。自定义特性提供了一个可扩展机制,用于存储自定义特性和检索有关编程对象的元数据。
作用
特性可向程序中添加元数据
特性可以将一个或多个特性应用到整个程序集、模块或类和属性中
特性可以与方法和属性相同的方式接受参数
程序可以使用反射检查自己的元数据或者其他程序内的元数据
预定义特性
AttributeUsage类
ValidOn
能够定义定制特性应该在何种程序实体前放置。
AllowMutiple
标记了我们的定制特性能否被重复放置在同一个程序实体前多次。
Inherited
标记了我们的特性能否被继承。
Conditional
该特性标记了一个条件方法,其执行依赖于它顶的预处理标识符。
ObsoleteAttribute
标记了不应被使用的程序实体。它可以让您通知编译器丢弃某个特定的目标元素。
自定义特性
自定义特性必须继承于Attribute
通用类型系统
.Net 框架类库
元数据和组件
Windows 显示基础
C#基础
1-基础语法
关键字
sealed
修饰方法
目的是明确禁止子类覆盖这个方法
修饰类
目的是禁止继承
常量
const【编译期常量】
修饰常量,必须能在编译时用于计算。
readonly【运行期常量】
有一些变量,其值不应改变,但在运行之前其值是未知的。
static【静态常量】
修饰变量
局部变量
延长变量的生命周期,将变量从栈转移到静态区中
全局变量
只要被static修饰全局变量,这个全局变量只能在当前文件下使用
修饰函数
类型转换
as【类型转换】
1、检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
2、不会抛出异常;
3、如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
4、用as来进行类型转换的时候,所要转换的对象类型必须是目标类型或者转换目标类型的派生类型
is【类型判断】
1、检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,
变量类型
var
var是编译器的语法糖,是早期绑定
一旦被编译,编译器就会自动匹配var变量的实际类型,并用实际类型来替换该变量的声明,等同于我们在编码时使用了实际类型声明
dynamic
dynamic会在运行时进行绑定
dynamic被编译后是一个Object类型,编译器编译时不会对dynamic进行类型检查。
不支持智能提示,因为你写代码时 dynamic 是什么没法知晓(反射)
2-值类型和引用类型
3-接口、抽象类
4-封装、继承、多态
5-泛型、集合
6-反射、特性
7-委托、事件
8-线程
9-LINQ
10-IO操作、File操作
ADO.Net
事务【Transaction】
四大特性【ACID】
1-原子性(Atomicity)
一个事务的所有操作被捆绑成一个整体,所有的操作要么全部执行,要么都不执行;
2-一致性(Consistence)
事务只会将数据状态从一个一致性状态转换到另一个一致性状态;
3-隔离性(Isolation)
从事务内部来看,组成事务的各个操作是按照一定的逻辑顺序执行的,所以数据具有位于两个一致性状态的“中间状态”。但是,这种中间状态被隔离于事务内部,对于事务外部是不可见的;
4-持久性(Durability)
一旦成功提交,基于持久化资源(比如数据库)的数据将会被持久化,对数据的改变是永久性的。
事务控制
本地事务(Local Transaction)
1-SQL事务处理
BEGIN TRANSACTION: 开始一个事务;
COMMIT TRANSACTION:提交所有位于BEGIN TRANSACTION和COMMIT TRANSACTION之间的操作;
ROLLBACK TRANSACTION:回滚所有位于BEGIN TRANSACTION和COMMIT TRANSACTION之间的操作。
2- ADO.NET事务控制
优点
面相对象的语言更能容易地实现复杂的逻辑:
将太多逻辑运算的执行放在数据库中不利于应用的扩展:
对事务的显式控制仅仅限于对单一的本地资源的控制。
分布式事务(Distributed Transaction)
应用场景
1-将对多个资源的访问纳入同一事务
2-将对各个服务的调用纳入同一事务
3-将对多个资源和服务的访问纳入同一个事务
管理模型
事务参与者
1-应用(Application)、服务(Service)或者组件(Component)
事务最终是为这三者进行服务的
1-开始事务
事务开始的驱动者总是应用,但是并不是所有的应用都会开始一个新的事务,只有最初的应用才才是事务的开启者;
2-事务的奉送(Marshaling)和传播(Propagation)
将应用的本地事务封送、传播给另一个应用或者资源管理器;
3-提交事务
事务的开启者同时也是事务最终的提交者,当事务相关的操作顺利完成后,最初开启事务的应用会提交该事务。
2-资源管理器(RM:Resource Manager)
职责
帮助应用实现对目标资源的操作;
注册到相应的事务管理器,以便事务回滚得时候可以从事务管理器中接收到恢复请求,实现对数据的恢复;
向相应的事务管理器报告本地事务的结果;
分类
持久化资源管理器(Durable Resource Manager):
用于管理持久化资源,比如数据库和MSMQ,当事务回滚得时候,具有可恢复性(Recovery);
易失资源管理器(Volatile Resource Manager):
用于管理像内存数据这样的不会被持久化的易失资源,易失资源不具有可以恢复性
3-事务管理器(Transaction Manager)
职责
控制着事务的所有参与者,协调整个事务从开始到完成的所有相关处理流程。
事务管理器为应用和资源管理器提供一系列核心的事务性的服务,实现事务的开始、提交和回滚。
分类
轻量级事务管理器(LTM: Lightweight Transaction Manager)
作用范围
仅限于开启事务的应用程序域(AppDomain)中
可以同时登记(Enlist)多个易失型资源(Volatile),但是仅仅允许登记唯一一个持久化资源
仅仅限于SQL Server 2005和SQL Server 2008
内核事务管理器(KTM:Kernel transaction Manager)
管辖范围仅限于本地事务
KTM的事务控制引擎运行在内核模式(Kernel Mode),而不是用户模式(User Mode)
KTM对易失型事务资源没有限制,却至于单一的持久化事务资源被涉及。
分布式事务协调器(DTC:Distributed Transaction Coordinator)
DTC用于管理跨边界(跨应用程序域、进程、机器以至跨网络)执行的分布式事务,
它采用相应的事务管理协议,比如Ole-Tx和WS-Atomic Transaction(WS-AT),协调一个分布式事务中的所有参与者。
LINQ
Windows 窗体
ASP.Net 和 ASP.Net AJAX
Windows 工作流基础
Windows 通信基础
0 条评论
下一页