.NET编程模型体会(Programming Model/Paradigm)
2011-10-19 09:50
274 查看
不同的编程模型往往意味着不同的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平台很基础性的一个特性,这里主要是指Generic和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平台很基础性的一个特性,这里主要是指Generic和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)
- 模型/视图编程(Model/View Programming)
- Qt的模型/视图编程方法(model/view programming)
- Qt 模型视图编程基础 model/view programming
- Qt的模型/视图编程方法(model/view programming)
- QT Basic 014 Model/View programming (模型、视图编程)
- Tips_编程模型(SoC)(application programming model)
- 一起谈.NET技术,ASP.NET MVC & EF 构建智能查询 二、模型的设计与ModelBinder
- .NET 简化的编程模型
- 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会
- ASP.NET MVC & EF 构建智能查询 二、模型的设计“.NET研究”与ModelBinder
- .Net中的事件(Event)编程模型
- .NET 一致的编程模型
- [网络编程]_[Socket]_[Socket 阻塞模式(blocking)下的 I/O模型(model) 之 Select 模型(model)初探]
- Paradigm Shifts in Kernel Programming 内核编程的范式转移
- .NET 4.5 MEF 基于约定的编程模型---重典
- [网络编程]_[Socket]_[Socket 阻塞模式(blocking)下的 I/O模型(model) 之 Select 模型(model)初探]
- QtCreator 模块/视图编程( 一) 模型类,自定义模型QStringListModel,QStandardItemModel,QFileSystemModel,QSqlQueryModel,
- 软件开发方法--.NET基于接口的编程 Interface first programming
- The Linux Programming Interface 04 File I/O: The Universal I/O Model 通用I/O模型