.NET Framework依赖项

.NET Framework依赖项

.NET Framework dependency

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

是否仅根据您已安装的Windows OS假定.NET Framework的要求,因此为什么列出Windows OS版本要求?


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

.NET框架的优点是Windows XP SP2和Vista默认情况下安装了3.0框架运行时。

在很多方面,这是Microsoft的"开发标准",并且已经有一段时间了。这使您不必担心在应用程序上添加大量库。如果您坚持使用所有.NET提供的库,那么您只需要担心部署可执行文件即可,这可以极大地缓解您的麻烦。当您有一堆库时,也必须进行部署,然后在编写更新时就会遇到麻烦,因为必须确保将这些更新推送到现有安装程序中,并推送到所有现有安装的应用程序中。

至于"首选",有时总是会使人轻弹,但我倾向于访问的求职网站上越来越多的.NET开发人员希望将其用于Web和桌面。 8 ^ D

编辑:非常感谢Orion指出我对框架的困惑。如果您使用的是XP SP2或Vista,那么您将获得3.0"的收益。其他所有操作都需要简单下载或运行Windows Update。


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


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


您可能考虑使用" ClickOnce部署",这使将.Net 2.0、3.0和/或3.5可再发行组件的安装程序添加引导程序变得非常容易。 只需单击项目属性中的复选框,安装程序将自动检测是否已安装必备框架,如果未安装,则将安装它。

它并不适合所有情况,但是如果您可以利用它,它可能会很漂亮。


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框架之类的操作,而不必开发它,那么您将违反Microsoft提供的EULA!

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


I guess what I'm trying to say is that
when I look at system requirements for
certain software I rarely ever see the
.NET Framework as being a requirement.
So, I always wonder how they get by
without it being a requirement (if
they developed the software in .NET).
So, I just assume that most commercial
software is not written in .NET so
that's why I'm asking this question.
Hope that cleared some things up.

我没有任何数字,但是我要猜??测,由于大多数人都在其台式机上运行XP和Vista,因此列出.NET框架是没有意义的,尤其是如果他们针对Windows 2000中的2.0框架。应用程序本身。过去,您看到多少个应用程序说" requires vbrun50.dll"或与之相关的东西,因为默认情况下它已放入Windows安装程序中?

另外,对于那些不是非常精通计算机的人来说,它"少有一点吓人"。他们要做的就是下载,安装和运行该应用程序。我那里有几个应用程序都需要2.0框架,我确实引起了一些人的疑问,这是什么?我如何得到它?它花了我多少钱?我给他们的典型答案是"如果您运行的是XP或Vista,则无需担心",他们似乎很喜欢。


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

.NET Runtime足够小,可以进行安装(.NET 2.0约为24MB,尚未检查.NET 3.5的大小)。


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

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


我猜想我要说的是,当我查看某些软件的系统要求时,很少看到.NET Framework是必需项。因此,我总是想知道如果没有要求(如果他们在.NET中开发了软件),他们将如何获得成功。因此,我只是假设大多数商业软件不是用.NET编写的,所以这就是为什么我问这个问题。希望能解决一些问题。


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

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


The nice thing about the .NET framework is that Windows XP has the 2.0 framework runtime library installed by default

从何时起?我不得不告诉很多Windows XP用户进行安装。是的,您可以通过Windows Update将其下拉,但是我非常有信心这是可选安装,不会自动发生。

and Vista has 3.5 installed

不,它已经安装了3.0。您获得了WPF,但您却没有得到Linq


I guess what I'm trying to say is that
when I look at system requirements for
certain software I rarely ever see the
.NET Framework as being a requirement.
So, I always wonder how they get by
without it being a requirement (if
they developed the software in .NET).
So, I just assume that most commercial
software is not written in .NET so
that's why I'm asking this question.
Hope that cleared some things up.

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

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

我认为假设大多数商业软件不使用.NET只是因为没有将其列为要求是不正确的。我认为您不能从中准确地假设任何事情。


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

例如,当我使用WebBrowser控件为Web应用程序生成自动化测试工具时,我意识到在某些情况下,需要较低级axWebBrowser ActiveX控件的事件处理程序,而文档中包含的稀缺/代码示例很多COM Interop概念。因此,也许对COM有所了解会很有用?


可能不需要.NET Framework。有一些公司出售(成千上万美元)的解决方案,可以使您做到这一点。但是,这些是完整的hack,Microsoft不支持。

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

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


推荐阅读