.NET Framework依赖项

时间:2008-08-14 15:25:45

标签: .net frameworks dependencies

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

.NET Framework的要求是基于您已安装的Windows操作系统而假设的,因此列出了Windows操作系统版本要求的原因吗?

15 个答案:

答案 0 :(得分:9)

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

.NET框架的优点在于Windows XP SP2和Vista默认安装了3.0框架运行时。

在很多方面,这是微软的“开发标准”,并且已经有一段时间了。这使您不必担心在应用程序中添加一堆库。如果您坚持使用所有.NET提供的库,那么最后只需要担心部署可执行文件,这是一个令人头疼的问题。如果您还需要部署一堆库,那么在编写更新时就会遇到麻烦,因为您必须确保在现有安装程序中将这些更新推送到所有已安装的应用程序中

至于“首选”,有时总是会出现问题,但是越来越多的.NET开发人员希望在我倾向于访问的寻找工作的网站和桌面上。 8 ^ d

编辑:非常感谢Orion指出我对框架的困惑。如果你使用的是XP SP2或Vista,你可以获得3.0英寸的门。其他任何东西都需要简单的下载或运行Windows Update。

答案 1 :(得分:2)

如果没有.Net框架,您无法运行.Net应用程序。该框架负责处理一些更繁琐的后台任务,因此您无法在没有框架的情况下运行应用程序。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

您可以考虑使用"ClickOnce Deployment",这样可以非常轻松地将.Net 2.0,3.0和/或3.5可再发行安装程序引导到您的应用程序中。只需单击项目属性中的复选框,安装程序就会自动检测是否已安装必备框架,如果没有,则会安装。

它不适合所有情况,但如果你可以利用它,它可以很漂亮。

答案 5 :(得分:1)

我想我想说的是,当我查看某些软件的系统要求时,我很少看到.NET Framework是一个要求。所以,我总是想知道如果没有它们的要求(如果他们用.NET开发软件)他们是如何得到的。所以,我只是假设大多数商业软件都不是用.NET编写的,所以这就是我问这个问题的原因。希望清除一些东西。

答案 6 :(得分:1)

Mono如果你必须避免依赖.NET,那么有一个Windows版本。

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

答案 7 :(得分:1)

.NET应用程序分发的最佳实践是,安装程序以某种方式使用适用于所需框架的.NET Redistributable安装程序进行引导,因此,如果尚未安装所需的框架(例如,在Windows XP中需要3.5),那么安装程序将把它放入。

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

答案 8 :(得分:1)

我认为如果你能够做一些静态链接.NET框架的事情,这样你就不必开发它,那么你就会违反微软提供的EULA!

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

答案 9 :(得分:1)

  

我想我想说的是   当我看到系统要求时   我很少见到的某些软件   .NET Framework是一项要求。   所以,我总是想知道他们是怎么过的   没有它是一个要求(如果   他们用.NET开发了这个软件。   所以,我只是假设大多数商业广告   软件不是用.NET编写的   这就是我问这个问题的原因。   希望清除一些东西。

我没有任何数字,但我会猜测,因为大多数人都在他们的桌面上运行XP和Vista,列出.NET框架没有实际意义,特别是如果他们的目标是2.0应用程序本身的框架。回到那一天,你看到有多少应用程序说“需要vbrun50.dll”或类似的东西,因为它默认放入Windows安装?

另外,对于那些不是非常简单的计算机风格的人来说,它有点“可怕”。他们想要做的就是下载,安装和运行应用程序。我在那里的几个应用程序需要2.0框架,我确实让一些人问这是什么,我如何得到它,它是否花了我一些钱?我给他们的典型答案是“如果你正在运行XP或Vista,就没什么可担心的了”,他们似乎也喜欢这样。

答案 10 :(得分:0)

是的,你可以在不使用框架的情况下构建一个在.NET中构建的应用程序。您可以使用像ESS dotNET FuZe这样的程序将任何dll(包括框架dll)合并到应用程序中。生成的EXE不再需要框架了。

请转到此链接:http://essaver.net/fuze.html以查看FuZe。

答案 11 :(得分:0)

我在.NET中进行了一些编程(使用C#),我意识到我经常渴望更多地控制一些控件。这些所需的知识超出了.NET框架。

例如,当我使用WebBrowser控件生成Web应用程序的自动化测试工具时,我意识到某些情况需要来自较低级别的axWebBrowser ActiveX控件和文档的事件处理程序很少/代码示例合并很多COM Interop概念。那么或许对COM有一些了解可能会有用吗?

答案 12 :(得分:0)

  

我想我想说的是   当我看到系统要求时   我很少见到的某些软件   .NET Framework是一项要求。   所以,我总是想知道他们是怎么过的   没有它是一个要求(如果   他们用.NET开发了这个软件。   所以,我只是假设大多数商业广告   软件不是用.NET编写的   这就是我问这个问题的原因。   希望清除一些东西。

使用C ++ / MFC为Windows桌面开发的许多应用程序需要特定版本的MFC运行时DLL,即使它可能未明确列为要求。我相信对于需要.NET的应用程序来说,情况也是如此。

例如,我工作的应用程序附带了.NET和我们需要的特定MFC版本的可再发行文件以及许多其他必需组件。我们的安装程序将安装用户系统上当前未安装的任何组件。过去几年中的每个版本都使用了比以前版本更多的.NET代码。

我认为假设大多数商业软件不使用.NET只是因为它未被列为要求是不准确的。我认为你不能准确地从中做出任何假设。

答案 13 :(得分:0)

  

.NET框架的优点是Windows XP默认安装了2.0框架运行时库

从什么时候开始?我不得不告诉很多我们的Windows XP用户安装它。是的,你可以通过Windows更新下载,但我非常有信心这是一个可选的安装,而不是自动发生的事情。

  

并且Vista安装了3.5

不,它已安装3.0。你得到了WPF,但你没有获得linq

答案 14 :(得分:-1)

可能不需要.NET Framework;有一些公司出售(数千美元,请注意)解决方案,可以让你这样做。但是,这些都是完整的黑客攻击,并且不受Microsoft支持。

如何开发桌面应用程序(即使用.NET或不使用.NET)取决于您的要求。没有一种首选方式。

最常用的语言可能是C#。