.NET已经成为小型应用程序开发的正确方法吗?

时间:2009-02-09 11:03:15

标签: .net

我正在开发一个小型Windows应用程序,但在决定是否使用.NET时遇到一些麻烦。作为一个编码器,我想利用.NET库。另一方面,要求我的用户下载庞大的.NET运行时似乎是一个可怕的决定。

对于Visual Studio规模的软件来说,100兆的先决条件可能没问题,但我觉得这对于快速轻量级工具来说是一个破坏性的(例如,Notepad ++)。在未来,.NET运行时可能已经足够普及以消除问题,但在短期内,我感到不安。

在您的观点/经验中,对于小型应用程序而言,2009年还是太早了吗?我应该等待更大的玩家铺平道路吗?

编辑:默认情况下XP SP2和Vista有哪些版本?

14 个答案:

答案 0 :(得分:6)

.NET随任何最新版本的Windows一起提供,因此我怀疑使用.NET会严重限制您。

您需要支持Windows 2000吗?如果您对2003和Vista感到满意,那么您应该没有问题。

请记住,并非每个人都会在.NET 3.5(SP1)上遇到困难,但如果你没有使用任何一个,那就没问题了。

编辑:似乎我对XP SP2有误。 XP 2.0的Service Pack 2中不包含.NET 2.0。根据{{​​3}} W2003R2是第一个包含.NET 2.0的版本。

答案 1 :(得分:3)

.net的可再发行组件包的cca为25MB。在这些日子里,当用户在youtube上观看视频时,25 MB不是障碍。例如,.NET 2.0是Win XP SP 2的一部分,.NET 3.5应该是Windows更新的一部分。

即便如此,用户只需要下载一次.NET。然后,您只能分发您的应用。

答案 2 :(得分:3)

您可能需要查看Scott Hanselman's site。它消除了.NET框架下载量为数百兆的常见错觉。那只是Redistributable。最终用户无需下载该版本。

答案 3 :(得分:2)

为什么在做出假设之前不要查看.NET Runtime的“真实”大小?

http://www.smallestdotnet.com

这并不总是80兆的下载。大多数情况下,由于某些位已存在,所以需要的时间要少得多。

另请注意,Jan .NET 3.5 SP1在Windows Update中。

答案 4 :(得分:2)

嗯,取决于你的目标是哪个.NET平台。 说.net 2.0然后你就可以自由开发所有windows xp和更高版本的操作系统,并且不需要框架安装作为先决条件。 然后在我认为目标3.0不值得,而直接到3.5,因为它包含了相当多的新东西,可以使您的开发更容易 使用3.5你不需要完整的框架安装,我最近一直在为windows xp和up构建.net 3.5 sp1应用程序,我使用了一个非常好的Microsoft客户端配置文件工具来为我的应用程序提供先决条件。

详细信息如下:Client Profile

答案 5 :(得分:2)

这实际上取决于每个项目。

  1. 使用.NET为项目节省多少时间/金钱? (有些事情很容易做到没有.NET,有些则没有。)
  2. 使用.NET会在多大程度上提高修复错误/添加功能的能力? (难以维护的代码已经过时,人们对产品失去兴趣。)
  3. 您的目标受众有多少可能已经安装了框架,或者至少足够熟练以获得框架?
  4. 由于.NET要求,人们没有“关闭”产品对您来说有多重要? (显然,使用你的应用程序的人越多越好,但与前两点相比,这有多重要?你宁愿拥有更好的应用程序但用户更少吗?)

答案 6 :(得分:1)

你是对的,.NET应用程序因需要框架而膨胀。如果您正在创建一个每个人都会使用的大型应用程序,那么用本地语言编写它可能是值得的。对于其他任何事情,那么使用.NET之类的东西可以节省的时间超过运行时成本。

答案 7 :(得分:0)

如果您的用户获胜xp sp2或vista,那么他们已经安装了框架。

因此,如果您在考虑是否应该开始在.NET中开发应用程序,那么应该是。

答案 8 :(得分:0)

你是对的,.NET应用程序因需要框架而膨胀。如果您正在创建一个每个人都会使用的大型应用程序,那么用本地语言编写它可能是值得的。对于其他任何事情,那么使用.NET之类的东西可以节省的时间超过运行时成本。

除非您需要最新和最强大的功能,否则请坚持使用旧版本的.NET,您不必过于担心。立即采用合理使用的最旧的操作系统,以便进行定位。所以我猜这是Windows XP。无论如何,最新的服务包都安装了.NET框架。如果用户缺少.NET,那么显示一个合理的警告会很好,但除此之外你不必担心它。

答案 9 :(得分:0)

这些当然是主观的,但我更喜欢JDK / JRE;它更成熟,作为奖励,它的平台独立性是真实的,而不仅仅是纸上的东西(.NET的Mono项目还没有。)

如果您确定Windows是您想要使用的全部内容,请使用.NET。

答案 10 :(得分:0)

取决于目标受众。想象一下您的典型用户。现在尝试猜测他的互联网带宽和技术技能。

如果您使用56kbit调制解调器开发“for grandma”,并且没有技术知识,请不要使用它。

如果您为宽带用户开发并且不担心自己安装软件,则应使用.NET。

答案 11 :(得分:0)

我从2005年发现this blog post,表明85%的新消费者PC和58%的新商用PC安装了.NET Framework(我假设是.NET 1.1)。您的目标受众可能会有所不同,但我认为很多潜在客户已经安装了它。

答案 12 :(得分:0)

是的,这对快速小工具来说是一个破坏者。这就是德尔福的用武之地。

但你应该好好看看你的市场。不升级的人也不太可能购买太多的软件,所以除非你的目标市场在那里,否则可能并不重要。

还有另一种权衡,你可以用更短的时间用.net提供更多的功能。

你在这里得到的答案可能会偏向.net开发。

答案 13 :(得分:0)

另一个亮点在于这个主题,随着Mono的出现,你可能会发现你能够支持更多平台(windows,linux,macos,iOS,android等),而无需重新编写每个平台的完整客户端。

我开始研究我们想要针对多个平台的企业级应用程序,并且在环顾四周并考虑用c ++编写之后,市场成本似乎仍然将我们转向.Net单声道感觉。

关于这个问题我只需0.02美元。 YMMV,IANAL等:)