5

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

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

4

15 回答 15

10

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

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

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

至于“首选”,有时总是会惹恼人,但在我经常访问的求职网站上,越来越多的 .NET 开发人员需要网络和桌面。8^D

编辑:非常感谢 Orion 指出我对框架的困惑。如果您使用的是 XP SP2 或 Vista,您将获得 3.0"。其他一切都需要简单下载或运行 Windows 更新。

于 2008-08-14T15:32:49.410 回答
2

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

于 2008-08-14T15:28:11.463 回答
2

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

于 2008-08-14T15:30:17.123 回答
1

我想我想说的是,当我查看某些软件的系统要求时,我很少将 .NET Framework 视为一项要求。所以,我总是想知道他们如何在没有要求的情况下度过难关(如果他们用 .NET 开发软件)。所以,我只是假设大多数商业软件不是用 .NET 编写的,所以这就是我问这个问题的原因。希望能澄清一些事情。

于 2008-08-14T15:33:04.467 回答
1

Mono有一个 Windows 版本,如果您绝对必须避免依赖 .NET。

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

于 2008-08-14T15:40:03.657 回答
1

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

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

于 2008-08-14T15:44:38.577 回答
1

我想我想说的是,当我查看某些软件的系统要求时,我很少将 .NET Framework 视为一项要求。所以,我总是想知道他们如何在没有要求的情况下度过难关(如果他们用 .NET 开发软件)。所以,我只是假设大多数商业软件不是用 .NET 编写的,所以这就是我问这个问题的原因。希望能澄清一些事情。

我没有任何数字,但我猜测由于大多数人在他们的桌面上运行 XP 和 Vista,列出 .NET 框架是没有实际意义的,特别是如果他们的目标是 2.0 框架应用程序本身。过去,您看到有多少应用程序说“需要 vbrun50.dll”或与此相关的内容,因为它是默认放入 Windows 安装的?

另外,对于那些不是非常精通计算机的人来说,它不那么“可怕”。他们想要做的就是下载、安装和运行应用程序。我有几个应用程序需要 2.0 框架,我确实让一些人问那是什么,我如何获得它,它是否花费了我任何东西?我给他们的典型答案是“如果您运行的是 XP 或 Vista,则无需担心”,他们似乎也喜欢这样。

于 2008-08-14T16:01:14.737 回答
1

我认为,如果您能够执行静态链接 .NET 框架之类的操作,而不必开发它,那么您将违反微软提供的 EULA!

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

于 2008-08-14T18:52:03.097 回答
1

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

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

于 2008-08-14T23:31:35.327 回答
1

您可以考虑使用“ClickOnce 部署”,这样可以很容易地将 .Net 2.0、3.0 和/或 3.5 可再发行安装程序添加到您的应用程序中。只需单击项目属性中的复选框,安装程序将自动检测是否已安装必备框架,如果未安装,则安装它。

它并不适合所有情况,但如果你能利用它,它可能会非常巧妙。

于 2008-08-15T08:11:31.893 回答
0

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

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

于 2008-08-14T18:20:57.187 回答
0

我想我想说的是,当我查看某些软件的系统要求时,我很少将 .NET Framework 视为一项要求。所以,我总是想知道他们如何在没有要求的情况下度过难关(如果他们用 .NET 开发软件)。所以,我只是假设大多数商业软件不是用 .NET 编写的,所以这就是我问这个问题的原因。希望能澄清一些事情。

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

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

我认为假设大多数商业软件不使用 .NET 只是因为它没有被列为要求是不准确的。我认为你不能准确地假设任何事情。

于 2008-08-14T18:49:56.813 回答
0

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

从何时起?我不得不告诉很多我们的 Windows XP 用户来安装它。是的,您可以通过 Windows 更新将其拉下来,但我非常有信心这是一个可选安装,而不是自动发生的事情。

Vista 安装了 3.5

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

于 2008-08-14T23:06:40.620 回答
0

是的,您可以在不使用框架的情况下构建一个内置于 dot NET 的应用程序。您可以使用 ESS dotNET FuZe 之类的程序将任何 dll(包括框架 dll)合并到应用程序中。生成的 EXE 不再需要框架。

请到这个链接:http ://essaver.net/fuze.html 来看看 FuZe。

于 2014-02-19T21:31:54.330 回答
-1

可以不需要 .NET Framework;有一些公司出售(请注意,数千美元)解决方案,可以让您做到这一点。然而,这些是完整的黑客攻击,不受 Microsoft 支持。

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

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

于 2008-08-14T15:28:59.623 回答