我考虑使用 .NET 构建它,但我想听听大家对于 .NET 是否仍然难以部署的看法。普通用户中已经安装了 .NET 运行时的百分比是多少?我不想给我的用户带来任何痛苦,例如下载 100MB 的运行时才能启动我的应用程序。
你们这些 Stack Overflow 的专业人士认为呢?我应该使用 .NET 还是坚持使用 Win32 API?或者可能使用第三方系统,如 QT 或 wxWidgets?
我不知道具体数字,但Vista已经内置了.NET,并且其他版本的Windows可以通过Microsoft Update轻松获取它。你还可以将.NET运行时与你的应用程序一起重新分发。
我不会过于担心你的用户是否安装了.NET。
微软正在大力推动.NET框架。我相信,即使是安装Microsoft Office 2007也必须在电脑上安装.NET框架。因此,如果微软要求.NET作为其最新Office程序的前置条件,那么您可以肯定地认为,使用微软产品的客户已经安装了必备的.NET基础库。当然,这将大大取决于您构建的应用程序类型。我还听说一些视频游戏开发者会通过打包开源Mono版本的.NET来发布他们的游戏。信不信由你,在Microsoft Windows上实际上有一个非常稳定的Mono版本。
.Net Framework的下载/安装并不是很麻烦。但我建议从另一个角度来考虑您的问题。
如果您知道所有用户都已安装了框架,您会选择C++还是使用.Net?由于您的GUI要求,我猜想您正在使用.Net,因为它为您提供了许多好处。
您列出的其他选项可能是可以接受的,但很难击败.Net Framework在客户端组件方面的支持。
综合考虑,一个单一的下载与更好的应用程序支持之间的权衡似乎是一个不错的选择。
.NET就像Java一样——你需要确保正确的运行时环境已经安装好了。下载大小不是100MB!哈哈!它是196MB。但是我听说有一个“客户端配置文件”可以将其缩小到26MB。
部署.NET运行时环境是一个缺点,但对我来说,使用C#比使用C++提高了开发人员的生产力。为了获得更高的生产力,我很乐意让我的用户忍受45秒的下载时间。但这只是我的看法。(附注:安装程序可以自动下载所需的运行时环境)。
你正在构建什么样的应用程序?这非常重要。如果你担心用户:
自己决定。我可能会选择Silverlight,因为它最接近桌面应用程序(我想你指的是它),而且下载非常小(我猜大约2MB左右)。看看 http://silverlight.net。
虽然我不是专家,但如果你因为某种原因决定不使用.Net,我强烈建议你使用QT而不是Win32 API。我发现Win32 API非常混乱且比QT难用得多,而在我看来,QT真的很好用。