.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#。


推荐阅读

    回到桌面linux命令?

    回到桌面linux命令?,密码,电脑,系统,位置,环境,底部,终端,桌面,状态,信息,lin

    linux换桌面背景命令?

    linux换桌面背景命令?,环境,软件,工具,时间,基础,系统,数据,管理,图片,公共,G

    linux切换桌面的命令?

    linux切换桌面的命令?,密码,系统,电脑,位置,终端,设备,信息,情况,状态,桌面,

    linux桌面版命令行?

    linux桌面版命令行?,系统,密码,流程,工具,终端,首页,电脑,地方,命令,界面,切

    linux命令桌面叫啥?

    linux命令桌面叫啥?,系统,软件,环境,密码,工具,终端,传播,管理,首页,标准,lin

    linux系统桌面命令?

    linux系统桌面命令?,密码,系统,电脑,环境,终端,信息,工具,位置,桌面,界面,请

    linux进入桌面命令行?

    linux进入桌面命令行?,密码,电脑,系统,终端,位置,状态,信息,底部,字符,桌面,L

    linux用命令重启桌面?

    linux用命令重启桌面?,标准,工作,设备,系统,电脑,盘中,位置,情况,密码,命令,

    linux命令进桌面文件?

    linux命令进桌面文件?,系统,密码,位置,信息,终端,状态,管理,环境,情况,命令,l

    linux刷新桌面命令?

    linux刷新桌面命令?,电脑,软件,系统,位置,质量,实时,时间,平均,数字,资金,为

    linux显示桌面的命令?

    linux显示桌面的命令?,密码,系统,电脑,位置,环境,桌面,官网,设备,底部,管理,l

    linux命令如何到桌面?

    linux命令如何到桌面?,密码,电脑,环境,位置,系统,底部,设备,终端,桌面,页面,l

    linux命令改桌面壁纸?

    linux命令改桌面壁纸?,图片,电脑,照片,位置,信息,手机,环境,壁纸,界面,单击,

    linux桌面命令代码?

    linux桌面命令代码?,电脑,系统,密码,环境,代码,基础,地址,服务,网上,通讯,lin

    linux启动桌面的命令?

    linux启动桌面的命令?,密码,系统,电脑,位置,设备,环境,包装,情况,官网,桌面,

    linux下载桌面命令?

    linux下载桌面命令?,电脑,系统,密码,环境,工具,软件,设备,发行,数据,包装,Lin

    linux命令行装桌面?

    linux命令行装桌面?,环境,系统,网上,名称,密码,发行,地址,桌面,终端,界面,lin

    linux桌面复制命令?

    linux桌面复制命令?,系统,电脑,文件,命令,基本知识,目录,源文件,文件夹,目

    linux命令和应用程序?

    linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,

    linux从桌面进命令行?

    linux从桌面进命令行?,系统,电脑,密码,情况,位置,首页,终端,界面,桌面,图形