.NET Framework 依赖性

5

在.NET中开发桌面应用程序时,是否有可能不需要.NET Framework?使用.NET开发软件是开发桌面应用程序的首选方式吗?软件公司用来开发桌面应用程序的最常用编程语言是什么?

.NET Framework的要求是否只是基于您安装的Windows操作系统而假定的,因此他们列出了Windows操作系统版本要求?

15个回答

10

你仍然可以使用C/C++为Windows桌面开发应用程序,而不需要.NET框架,但你需要确保必要的库已经在系统上或已安装。

使用.NET框架的好处是,Windows XP SP2和Vista默认安装了3.0框架运行时。

在很多方面,这是微软的“开发标准”,并且已经保持了一段时间。这样可以避免在应用程序中附加大量库文件的问题,如果你坚持使用所有.NET提供的库,你只需关注部署可执行文件,这会大大减轻负担。当你需要部署一堆库文件时,更新时就会遇到麻烦,因为你必须确保这些更新已被推送到现有的安装程序和所有现有的已安装应用程序中。

至于“首选”,这总是会引起争议,但是我经常访问的求职网站上越来越需要.NET开发人员来进行网络和桌面开发。8^D

编辑:非常感谢Orion指出我的框架混淆。如果你使用XP SP2或Vista,则可以获得3.0“出门即用”。其他版本则需要简单下载或运行Windows更新。


2

如果没有 .Net framework,你将无法运行 .Net 应用程序。框架会处理一些繁琐的后台任务,因此如果没有框架,你将无法运行应用程序。


2

在Windows平台上,使用.NET是开发桌面应用程序的首选方式。.NET的WinForms模型是一种开发传统或厚客户端应用程序的方法,而.NET的Windows Presentation Foundation则是微软最新的技术方向。


1
我想说的是,当我查看某些软件的系统要求时,很少看到.NET Framework作为要求。因此,我总是想知道如果他们使用.NET开发软件,那么他们是如何没有这个要求的。所以,我认为大多数商业软件都不是用.NET编写的,这就是我提出这个问题的原因。希望这能澄清一些事情。

1

Mono有一个Windows版本,如果你绝对要避免依赖.NET的话。

无论如何,你在任何运行你的应用程序的计算机上都需要一个.NET兼容的运行时。所以如果你想完全避免使用.NET,你可能需要将Mono运行时与你的应用程序一起分发。


1

.NET应用程序分发的最佳实践是,安装程序与所需框架的.NET可再发行安装程序进行引导,以便如果所需框架尚未安装(例如,在Windows XP中需要3.5),则安装程序将自动安装。

.NET运行时的安装大小足够小,这是可行的(.NET 2.0大约为24MB,还没有检查.NET 3.5有多大)。


1
我想说的是,当我查看某些软件的系统要求时,很少看到.NET Framework作为必备条件。所以,我一直在想,如果他们是用.NET开发的软件,那么他们是如何没有将其列为必备条件的。因此,我认为大多数商业软件都不是用.NET编写的,这就是我提出这个问题的原因。希望这能澄清一些事情。
我没有任何数据,但我猜测由于大多数人在他们的桌面上运行XP和Vista,所以列出.NET Framework是无意义的,特别是如果他们在应用程序本身中针对2.0框架进行了定位。回想过去,有多少应用程序说“需要vbrun50.dll”或类似的东西,因为它已经默认安装在Windows中了呢?
此外,对于那些不太懂电脑的人来说,这也减少了一点“可怕”的感觉。他们想要做的就是下载、安装和运行应用程序。我发布的一些应用程序需要使用2.0框架,有些人会问它是什么,如何获取,以及是否需要付费?我通常会回答他们:“如果你使用XP或Vista系统,那你就不用担心了”,他们似乎很满意。

1

我认为如果你能够像静态链接.NET框架那样做,以便不必开发它,那么你将违反微软提供的最终用户许可协议!

这是我们为拥有如此丰富的开发体验所付出的代价!当你考虑回到MFC编程的困难时,这是值得的!


1

Remotesoft提供一个链接器 - 单个开发人员许可证为1250美元: http://www.remotesoft.com/linker/index.html

如果您的应用程序将在Mono上运行(而且Mono的Winform桌面支持现在非常好),您可以将您的应用程序打包成一个Mono bundle,这是一个单独的可执行文件。有两个选项 - 默认包括运行时但不静态链接到它,另一个则静态链接到Mono运行时。您可能不想静态链接的原因是它会使您的应用程序受到LGPL的限制; 没有静态链接的bundle(仍然只是一个单一的exe)没有这个要求。 http://www.mono-project.com/Mono:Runtime#Bundles


1

您可以考虑使用"ClickOnce 部署",它使得将 .Net 2.0、3.0 和/或 3.5 可再发行安装程序的引导程序添加到您的应用程序非常容易。只需在项目属性中勾选一个复选框,您的安装程序将自动检测预备条件框架是否已安装,并在未安装时进行安装。

它并不适用于每种情况,但如果您能够利用它,它会非常流畅。


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