.NET Framework依赖项
在.NET中开发桌面应用程序时,是否可能不需要.NET Framework?在.NET中开发软件是否是开发桌面应用程序的首选方式?软件公司用于开发桌面应用程序的最常用的编程语言是什么?
是仅根据我们已安装的Windows OS假定.NET Framework的要求,因此为什么它们列出Windows OS版本的要求?
解决方案
回答
没有.Net框架,我们将无法运行.Net应用程序。该框架负责一些较繁琐的后台任务,因此如果没有该框架,我们将无法运行该应用程序。
回答
可能不需要.NET Framework。有些公司出售(请注意,成千上万美元)的解决方案,使我们可以做到这一点。但是,这些是完整的hack,Microsoft不支持。
如何开发桌面应用程序(即是否使用.NET)取决于要求。没有首选的方法。
最常用的语言可能是C#。
回答
在Windows平台上,使用.NET是开发桌面应用程序的首选方法。 .NET的WinForms模型是开发传统或者胖客户端应用程序的一种方式,.NET的Windows Presentation Foundation是MS的最新技术方向。
回答
我们仍然可以使用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。
回答
我想我想说的是,当我查看某些软件的系统要求时,很少看到.NET Framework是必需项。因此,我一直想知道如果没有要求(如果他们在.NET中开发了软件),他们将如何获得成功。因此,我只是假设大多数商业软件不是用.NET编写的,所以这就是为什么我问这个问题。希望能解决一些问题。
回答
如果我们绝对必须避免依赖.NET,则Mono具有Windows版本。
但是,从任何角度看,我们都需要在运行应用程序的任何计算机上都具有.NET兼容的运行时。因此,如果我们想完全避免使用.NET,则可能必须将Mono运行时与应用程序一起分发。
回答
.NET应用程序分发的最佳实践是以某种方式使用所需框架的.NET Redistributable安装程序引导安装程序,因此,如果尚未安装所需框架(例如,在Windows XP中需要3.5),则安装程序将放进去
.NET Runtime足够小,可以进行安装(.NET 2.0约为24MB,尚未检查.NET 3.5的大小)。
回答
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(使用C#)中进行了一些编程,并且我意识到,通常我渴望对许多控件拥有更多的控制权。这些要求的知识超出了.NET框架的范围。
例如,当我使用WebBrowser控件为Web应用程序生成自动化测试工具时,我意识到在某些情况下,需要较低级axWebBrowser ActiveX控件的事件处理程序,并且文档中包含很多稀缺/代码示例COM Interop概念。那么也许对COM有所了解可能会有用吗?
回答
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框架之类的操作,而不必开发它,那么我们将违反Microsoft提供的EULA!
这是我们拥有如此丰富的开发人员经验所必须付出的代价!当我们考虑回到MFC编程的困难时,这是值得的!
回答
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
回答
Remotesoft为单个开发人员许可证提供了一个链接器$ 1250:http://www.remotesoft.com/linker/index.html
如果应用程序将在Mono上运行(并且Mono的Winform桌面支持现在非常好),则可以将应用打包为Mono捆绑包,这是一个可执行文件。默认情况下有两个选项,其中包括运行时,但不静态链接到该运行时,另一个选项将我们静态链接到Mono运行时。我们可能不希望进行静态链接的原因是,它会将应用程序置于LGPL之下。不是静态链接(仍然只是一个exe)的包没有此要求。
http://www.mono-project.com/Mono:Runtime#Bundles
回答
我们可能会考虑使用" ClickOnce部署",这使将.Net 2.0、3.0和/或者3.5可再发行组件的安装程序添加引导程序变得非常容易。只需单击项目属性中的复选框,安装程序将自动检测是否已安装必备框架,如果未安装,则将安装它。
它并不适合所有情况,但是如果我们可以利用它,它可能会很漂亮。