.NET是一个框架还是库?

3
我在这里感到困惑。我正在观看一个教育性的教程,讲者将.Net定义为库而不是框架。据我所知,.Net是一个框架。是否有人可以解释一下,.Net是框架还是库。
谢谢
回答后,
但是,演讲者定义框架如下: 1.应该至少运行部分应用程序(他说半完整的应用程序) 2.它应该支持控制反转。
有人能解释一下吗?
再次感谢。

我有点好奇这个说话的人是谁。 - Christoph
2
你的问题的答案是:是的。 - Erik Funkenbusch
Martin Fowler似乎将框架等同于IoC:http://martinfowler.com/bliki/InversionOfControl.html - Trillian
9个回答

17

.NET是一个框架,包括BCL(基类库),CLR(公共语言运行时)等...


2
是的。它确实有一个库,但这个库被称为BCL(基础类库)。.NET作为一个整体比仅仅是这个库要更庞大。 - Joe White
我看了答案。我发了额外的问题。 - wonde

6
请参考http://en.wikipedia.org/wiki/Software_framework了解框架的定义。
  1. 控制反转 - WinForms 和 WPF 库的程序流由这些库而非调用者决定。

  2. 默认行为 - 例如,WinForms 窗口的默认行为是显示一个基本的交互式窗口。

  3. 可扩展性 - 用户可以覆盖和专门化各种 .NET 类的功能。

  4. 不可修改的框架代码 - 如果您修改了任何 .NET 代码,Microsoft 将不会感到高兴。

因此,.NET 是一个框架。

5

这是一个由多个二进制库(DLLs)和CLR组成的框架。

针对第二部分问题的回答: .NET Framework提供了许多二进制库(DLLs),这些库为所有使用.NET语言(C#、F#、J#、VB.NET等)编写的应用程序共享的基本功能提供了很多支持。

在编译后,您的应用程序将被翻译成CLR指令(MSIL),并与为您提供的库一起由.NET Framework执行。


3
它肯定至少是一个框架(语言、运行时、库),而不仅仅是一个库,但我认为它实际上是一种编程哲学模型的继承者,这种模型内化了Microsoft(以及其他类似的领先者)在应用程序开发方面丰富的历史。这个模型有着特定的深度洞察力,在其普及和应用规模上无与伦比。.NET是Microsoft生态系统中长期战略性开发人员倡议的继承者。把它归为仅仅是一个框架,完全没有理解其意义。把它称为一个库就显得有些无知了。

2

这是一个框架。

库通常是一组旨在实现特定目的的类,例如 .NET 中旨在进行互联网通信的 System.Net 库。

框架是一组类(或一组库),几乎涵盖了制作应用程序所需的所有内容,并且应用程序在框架中运行,而不需要直接与底层系统或硬件进行联系。


2

我对这些术语的简单定义如下:

  • 库是一组函数。
  • 框架是一种生活方式。

使用库时,您可以使用其中任何部分;使用框架时,您必须按照其架构方式来设计程序。

因此,.NET可以仅作为库使用(在控制台应用程序、Windows服务等中使用),也可以作为框架使用(在ASP.NET或WinForms中使用)。


1

在我看来,一个区别是一个旨在创建从框架类派生的类。这甚至与类库有所不同。框架旨在更多地控制基本操作,而您可以扩展框架以满足自己的需求。


0
.NET基本上是一个框架/基础/构建块,它包含了代码库API以及其他重要技术。

0

.NET是由微软开发的一个框架。就像给你一辆车的车架,你需要选择适合你的变速器、发动机、消音器、防盗系统等,这里的车架就是.NET,你有自由地放置你的代码来提高性能、SQL引擎连接、通信路径、安全性等。

框架的作用是减少构建应用程序所花费的时间。唯一降低时间成本的方法是提供库文件。这就是为什么有些人说.NET是一个库的原因。.NET不仅仅是一个库,它提供了更多的功能,对程序员来说更有价值。.NET提供了CLR(公共语言运行时)和CTS(公共类型系统),将所有语言集合在一起进行开发,你可以在.NET中使用用语言a编写的库来调用语言b。

请查看以下链接:12


学习使用C#编写.NET的好书是Wrox出版的《Professional C# 2008》。 - Jaison Justus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接