编写.NET以外的Windows客户端应用程序的最佳方法是什么?

时间:2008-12-16 03:35:48

标签: .net c++ windows client

我正在尝试评估是否应该将.NET Framework作为我的新Windows应用程序的要求。我相信.NET是编写Windows客户端应用程序的最佳和最有效的方式,因此它归结为下一个最佳替代方案的痛苦程度。具体来说,我试图避免安装.NET客户端配置文件,它下载28MB,如果它像常规的.NET Framework安装程序,则需要永远。

我之前使用过wxWidgets和WTL,认为两者都是不错的选择。静态链接的wxWidgets可执行文件是30MB,但它将被打包。 WTL占用空间小,但是使用丑陋的代码创建。我使用了一些MSI创建者,但它不是WiX或NSIS,这似乎是最好的免费选项。

我正在寻找任何建议,使用客户端配置文件安装程序的经验,使用小型自定义业务应用程序的经验或任何相关建议。

编辑:我这里只赚了几千美元,所以我正在寻找免费或便宜的东西(在我已经拥有的Visual Studio之后)。我不介意用新语言学习,但我更喜欢使用的语言。

16 个答案:

答案 0 :(得分:10)

你实际上可以使用大量库(例如:boost)制作一个MFC应用程序,它将编译为低于10MB的静态链接,具体取决于你包含的代码数量和使用的功能。如果不包含大量二进制资源,即使是大型32位应用程序也不可能超过28MB。该路径的好处很可能高度依赖于您使用C ++和MFC的经验,但它肯定是一个选项(并且,作为奖励,您不依赖于预安装的任何框架的特定版本,或强制任何系统发生了变化)。

答案 1 :(得分:8)

你应该强烈Codegear考虑​​Delphi或C ++ Builder。

两者都生成紧凑的原生Win32应用程序,使用一个出色的双向RAD系统和VCL框架构建。有大量的免费和商业第三方组件,一个活跃的用户社区,Codegear现在似乎完全致力于本地开发,同时使用来自RemObjects的新Delphi Prism系统在.NET领域保持活跃。

编辑:Gortok问道:“有了Delphi IDE的成本,你怎么能建议Delphi?”

简单。我认为这是值得的。我不知道你的时间值多少钱,但是你可以算一算。德尔福2009年的成本为874美元。我认为Visual Studio 2008 Pro价格相同。

如果你真的没有钱,那么你可以免费获得Turbo Delphi,就像啤酒一样。它基本上是Delphi 2006的缩减版本,所以有点笨拙而落后,功能明智 - 但仍然绝对可用。

答案 2 :(得分:7)

这取决于您分发应用的方式。如果你有cd或其他物理媒体的选项,你可以通过该媒体分发运行时,而28Mb则没有。

否则你确实有28Mb的下载来处理。您的另一个选择是放弃.Net并选择其他工具包。 C ++ Builder / Delphi选项过去很有吸引力,但我不知道他们的平台目前是什么样的。

[更新]
我最近听到隆隆声说单声道已经足够好了,你可以使用它来编译和静态链接.Net应用程序作为本机* .exe文件。我们必须看看这是否是一个不错的选择。

答案 3 :(得分:7)

Qt怎么样?它可以生成占地面积小的应用程序,它非常容易学习,它支持与VS200x的完全集成以及(您可能不需要的)它独立于平台 - 甚至可以在没有(大)更改的情况下在WinCE上运行。

答案 4 :(得分:6)

你有没有试过Delphi?

Delphi非常适合快速应用程序开发(RAD)。您可以构建表单,如dotNet,拖放组件。在我看来,它非常适合商业应用。

唯一的问题是你必须学习Pascal,但这应该不是问题。 Delphi编译速度非常快(类似于c ++)。

为什么不下载Delphi的试用版并尝试一下?

我能想到的一个优点是您不需要安装任何其他软件包来运行您的应用程序(不是dotNet运行时或c ++可再发行组件)。

要记住的另一个要点是,它有dotNet支持,还有Prism。

答案 5 :(得分:4)

在相关建议的类别下:

有一个原因可以建立.NET平台,而不是因为Win32很容易编程。有Delphi,有Tcl/TK,还有MFC,但除非这些选项比.NET更容易设计和部署,否则吞下它们会好得多在.NET中下载和设计28Mb。

使用.NET(冒着听起来像啦啦队长的风险),你得到了

  • 拖放式UI设计,
  • .NET框架的强大功能(让我们面对它,你正在为Windows构建 - 让他们完成繁重的工作是主要的奖励)
  • 近平台独立性(取决于Mono有多好)
  • 低成本

因此,如果时间是一个考虑因素,那么在.NET中进行开发。如果时间不是考虑因素,那么你需要原始功能,并且你对C ++和MFC非常熟悉,然后使用它。 Delphi也是一种可能,但他们的开发平台的成本对我来说有点陡峭。

答案 6 :(得分:3)

RealBasic怎么样。

它有一个托管运行时(类似于.NET但不强大)并在windows / linux / mac上运行,运行时大小约为3MB

使用的语言是BASIC的一种方言,并且有一个漂亮的WYSIWYG设计师,支持拖放。

答案 7 :(得分:2)

我同意,您应该使用wtlbuilder.com

在C ++中使用WTL进行编码

答案 8 :(得分:1)

最终答案是在widget框架中,最简单的框架为你包装windows windowing api。根据我的经验,最简单的框架是......

1. /带有c#或VB.NET(.NET)的Windows窗体

2. / Visual Component Library(VCL)与Delphi或C ++ Builder(作为本机应用程序的附加优势,没有额外的库要求)

3. / Windows Presentation Framework(或基础)与C#或VB.NET

4. / MFC - (Shudder)使用Visual C ++

然后还有许多其他较少使用的框架,如PowerBuilder等。

答案 9 :(得分:1)

比编写.NET更容易,并且占用的空间比.NET运行时小得多 - 就是在Visual Basic 6中编写应用程序。

当然,没有人提到它的原因是它现在是一种垂死的语言。但只是想我会提到它没有其他人的。

答案 10 :(得分:1)

如果您担心运行时下载,只需使用.NET 1.1而不是最新最好的.NET Framework。我认为XP(或至少一个服务包)预装了它。在某些时候,你必须说,如果某人使用的是Windows 2000或更早版本,你可以为他们做的事情并不多。

答案 11 :(得分:1)

我建议U++提出另一个问题:

What are some of the "best" cross-platform C++ UI toolkits today?

如果您喜欢C ++,那么一旦您尝试使用U ++,您会惊讶于它的美观,优雅,轻量级,无需.NET,因为您的要求和对C ++的大量使用。

答案 12 :(得分:1)

我也推荐REALbasic。我用它来创建很多Windows客户端应用程序,它在大多数情况下运行良好。

答案 13 :(得分:1)

使用Lazarus IDE的开源免费Pascal编译器可能是一个选项。我使用Free Pascal编译和测试我的大部分Delphi组件和库。对于用户界面,Lazarus提供了自己的可视组件库FCL。

答案 14 :(得分:1)

使用Realbasic。它是最简单,最快速的,不需要依赖。 (因为它的小运行时包含在你的exe中)

答案 15 :(得分:0)

另一种选择是将Mono与mkbundle一起使用。 Mkbundle将您的应用程序及其引用的所有程序集包装到一个二进制包中。

Here is a link to one of the Mono pages about it.