【问题标题】:.NET Framework dependency.NET 框架依赖项
【发布时间】:2010-09-05 21:18:43
【问题描述】:

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

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

【问题讨论】:

    标签: .net frameworks dependencies


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

              【解决方案6】:

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

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

              【讨论】:

                【解决方案7】:

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

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

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

                【讨论】:

                  【解决方案8】:

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

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

                  【讨论】:

                    【解决方案9】:

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

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

                    【讨论】:

                      【解决方案10】:

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

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

                      【讨论】:

                        【解决方案11】:

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

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

                        【讨论】:

                          【解决方案12】:

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

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

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

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

                          【讨论】:

                            【解决方案13】:

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

                            从什么时候开始?我不得不告诉很多我们的 Windows XP 用户来安装它。是的,您可以通过 Windows 更新将其拉下来,但我很确定这是一个可选安装,而不是自动发生的事情。

                            Vista 已经安装了 3.5

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

                            【讨论】:

                              【解决方案14】:

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

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

                              【讨论】:

                                【解决方案15】:

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

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

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

                                【讨论】:

                                • 我想知道为什么这被否决了,虽然它是正确的答案。
                                猜你喜欢
                                • 2010-11-20
                                • 1970-01-01
                                • 2012-11-17
                                • 1970-01-01
                                • 2011-03-16
                                • 1970-01-01
                                • 2012-12-21
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多