.NET编程模型体会(Programming Model/Paradigm)
2011-10-22 12:48
309 查看
不同的编程模型往往意味着不同的Mind或Metaphor,从大视角来看,可以按不同分类得到如下不同组合:
Declarative vs Imperative;
Procedural Programming vs Functional Programming;
Structured Progarmming,OOP+AOP,Component Based,Service Oriented;
meta-programming vs ?;
.NET作为一个平台,和编程模型相关的主要是Language和Framework。就个人体会而言,.NET平台对以上编程模型着实下了一番“取其精华,去其糟粕”的功夫。众所周知的一点,meta-programming是整个.NET平台很基础性的一个特性,这里主要是指Generics和Reflection。
就Language来言,最具代表性的C#颇有集大成的味道,但又很好地保持了其简约风格。C#整体上属于Imperative,以Procedural为主,局部融入了Declarative和Functional要素。当然其属于OOP+AOP,但实践中,大家着实写了不少OO度不咋地道的代码,也就是Structured Programming或更糟糕了。
就Framework而言,其包含的编程模型很丰富,可以说是百花齐放,精彩纷呈,整体上属于Imperative,以Procedural为主,部分属于Declarative,属于OOP+AOP+Component Based,部分属于Service Oriented,以下是个人体会:
ADO.NET属于Imperative。
ASP.NET属于Declarative+Imperative。此领域又分WebForms和MVC二种编程模型。
WPF属于Declarative+Imperative。
WCF属于Declarative+Imperative,属于Service Oriented。由于秉持松耦合理念,AOP无处不在,令人赞叹不已。
WF属于Declarative+Imperative。其秉持“Program Is Data”理念,有meta-programming味道(这里是指DSL),为DSL打开了一扇门,实为DDD粉丝为数不多的利器之一。
EF属于Declarative+Imperative。乃DDD粉丝所钟爱的基本武器之一。
WindowsForms属于Imperative。
EnterpriseService属于Declarative+Imperative。其实质是把COM+包装了一下。
Declarative vs Imperative;
Procedural Programming vs Functional Programming;
Structured Progarmming,OOP+AOP,Component Based,Service Oriented;
meta-programming vs ?;
.NET作为一个平台,和编程模型相关的主要是Language和Framework。就个人体会而言,.NET平台对以上编程模型着实下了一番“取其精华,去其糟粕”的功夫。众所周知的一点,meta-programming是整个.NET平台很基础性的一个特性,这里主要是指Generics和Reflection。
就Language来言,最具代表性的C#颇有集大成的味道,但又很好地保持了其简约风格。C#整体上属于Imperative,以Procedural为主,局部融入了Declarative和Functional要素。当然其属于OOP+AOP,但实践中,大家着实写了不少OO度不咋地道的代码,也就是Structured Programming或更糟糕了。
就Framework而言,其包含的编程模型很丰富,可以说是百花齐放,精彩纷呈,整体上属于Imperative,以Procedural为主,部分属于Declarative,属于OOP+AOP+Component Based,部分属于Service Oriented,以下是个人体会:
ADO.NET属于Imperative。
ASP.NET属于Declarative+Imperative。此领域又分WebForms和MVC二种编程模型。
WPF属于Declarative+Imperative。
WCF属于Declarative+Imperative,属于Service Oriented。由于秉持松耦合理念,AOP无处不在,令人赞叹不已。
WF属于Declarative+Imperative。其秉持“Program Is Data”理念,有meta-programming味道(这里是指DSL),为DSL打开了一扇门,实为DDD粉丝为数不多的利器之一。
EF属于Declarative+Imperative。乃DDD粉丝所钟爱的基本武器之一。
WindowsForms属于Imperative。
EnterpriseService属于Declarative+Imperative。其实质是把COM+包装了一下。
相关文章推荐
- .NET编程模型体会(Programming Model/Paradigm)
- QT Basic 014 Model/View programming (模型、视图编程)
- Qt的模型/视图编程方法(model/view programming)
- 模型/视图编程(Model/View Programming)
- Tips_编程模型(SoC)(application programming model)
- Qt的模型/视图编程方法(model/view programming)
- Qt 模型视图编程基础 model/view programming
- 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会(转)
- [转]对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会
- .NET平台下几种SOCKET编程通信模型选择以及简要性能供参考解决方案
- 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会
- 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会 【zz】
- .NET 2.0 中的自定义配置处理——编程模型
- 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会【个人复习+zz】
- 一起谈.NET技术,使用View Model从表现层分离领域模型
- .Net插件编程模型:MEF和MAF
- 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会
- .NET 4.5 MEF 基于约定的编程模型
- [网络编程]_[Socket]_[Socket 阻塞模式(blocking)下的 I/O模型(model) 之 Select 模型(model)初探]
- [网络编程]_[Socket]_[Socket 阻塞模式(blocking)下的 I/O模型(model) 之 Select 模型(model)初探]