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

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

有帮助吗?

解决方案

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

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

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

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

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

其他提示

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

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

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

单核细胞增多症 如果您绝对必须避免对 .NET 的依赖,则有 Windows 版本。

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

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

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

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

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

另外,对于那些不太精通计算机的人来说,它不那么“可怕”。他们想要做的就是下载、安装并运行该应用程序。我的一些应用程序需要 2.0 框架,确实有人问我那是什么,我如何获得它,它需要我付出什么代价吗?我给他们的典型答案是“如果您运行的是 XP 或 Vista,则无需担心”,他们似乎喜欢这样。

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

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

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

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

您可能会考虑使用 “单击一次部署”, ,这使得将引导 .Net 2.0、3.0 和/或 3.5 可再发行安装程序添加到您的应用程序中变得非常容易。只需单击项目属性中的复选框,安装程序就会自动检测是否已安装先决框架,如果没有安装,则会安装它。

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

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

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

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

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

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

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

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

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

Vista已安装3.5

不,它已经安装了3.0。你得到了 WPF,但是你 获取链接

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

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

可以不需要 .NET Framework;有些公司出售(请注意,价格为数千美元)的解决方案可以让您做到这一点。然而,这些都是彻头彻尾的黑客行为,并且不受 Microsoft 支持。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top