Different programming models often mean different mind or metaphor. From a large perspective, different combinations can be obtained based on different categories:
Declarative vs imperative;
Procedural programming vs functional programming;
Structured progarmming, oop + AOP, component based, service oriented;
Meta-programming ?;
As a platform,. Net mainly involves language and framework related to programming models. In my personal experience, the. NET platform has put a lot of effort on the above programming model. As we all know, meta-programming is a basic feature of the entire. NET platform. It mainly refers to generics and reflection.
In terms of language, the most representative C # has a great taste, but it maintains its simple style. C # as a whole is imperative, mainly procedural, and partially integrates the declarative and functional elements. Of course, it belongs to OOP + AOP, but in practice, we have written a lotCodeThat is, structured programming or worse.
As far as framework is concerned, it contains a rich set of programming models, which can be said to be brilliant. It is an imperative, mainly procedural, part of which belongs to declarative and belongs to OOP + AOP + component based, some of them belong to service oriented. The following are my personal experiences:
Ado. Net belongs to imperative.
ASP. NET belongs to declarative + imperative. This field is divided into two programming models: webforms and MVC.
WPF belongs to declarative + imperative.
WCF belongs to declarative + imperative and to service oriented. With the concept of loose coupling, AOP is everywhere, and it is amazing.
WF belongs to declarative + imperative. Adhering to the "program is data" concept, it features meta-programming (DSL here) and opens a door for DSL, which is one of the few powerful tools for DDD fans.
EF belongs to declarative + imperative. It is one of the basic weapons that DDD fans love.
Windowsforms is imperative.
Enterpriseservice belongs to declarative + imperative. The essence is to package COM +.