4

几天前我发布了一个问题,非常感谢那些已经回答的人。我重新发布这个问题是因为我似乎需要澄清我们的要求。所以这里更详细。

我正在尝试构建一个非常小的桌面应用程序——人们可以很快下载的东西。我正在尝试决定是用 .NET 还是 Java 构建它。我有两个目标:1. 快速下载 2. 针对最大的用户群(按此顺序)

我知道 Java 将是跨平台的,但是如果很多 Windows 用户没有在他们的计算机上安装 JRE,我被告知他们需要下载一些 15MB 的 JRE 软件才能运行这个应用程序,而 .NET 可以预装在大多数 Windows 机器中。

如前所述,对我来说,一个可快速下载的小型应用程序比跨平台应用程序更重要。因此,我想使用预装在最多计算机中的平台,这样我的用户只需下载我的应用程序,而无需额外下载平台本身(JRE 或 .NET)。从这个角度来看,哪个平台预装的机器比较多?Java 还是 .NET?

有谁知道有多少百分比的 Windows 用户在他们的机器上没有 JRE?有多少百分比的 Windows 用户预装了 .NET?

谢谢。

4

9 回答 9

10

如果您走 .NET Framework 的路线,问题可能是您将针对哪个版本的框架。

例如,如果您想针对 .NET Framework 3.5,虽然很多人可能已经通过自动更新安装了它,但有些人可能不会。就我而言,去年夏天我购买了我的 Eee PC 时,它只安装了 .NET Framework 1.1

当我想升级到 .NET Framework 3.5 时,安装程​​序是 2.7 MB——这很好,除了它是一个在线安装程序,而且微软下载中心说我可能需要多达500 MB的可用空间。(而且离线安装程序是 197 MB!)这是一个小问题,因为 Eee PC 的主分区在出厂安装条件下只有 1.3 GB 可用空间。

另一方面,最新版本的 JRE 下载为 15.5 MB,其中包括所有内容——不仅仅是在线安装程序——它是一个离线安装程序。安装的 JRE 在我的机器上占用了大约 90 MB。

考虑到这一点,是的,.NET Framework 可能存在,但也可能需要相当大的下载才能开始,如果它不存在,特别是如果目标系统上存在版本非常过时。

使用 Java,下载量最多为 15.5 MB,这就是全部。此外,使用新的Java 内核,可以通过下载管理器逐步获取 JRE,基本下载量约为2 MB(在此处此处此处阅读有关它的更多信息。)“Windows 内核安装”的下载页面列出为 0.22 MB。(这可能意味着它仍然需要上网并下载最多 2 MB 的所需文件。)

如果最佳情况和最差情况之间的差异是 0 MB 与 200 MB,这对于用户在安装时将面临的体验来说似乎非常不可预测。这是向用户解释“安装将在几分钟内完成”与“安装可能需要一个小时”的区别。

由于 0 MB 或 15 MB 之间的差异,它可能不是很好,但也不是很糟糕,尤其是对于潜在的在线增量安装程序,只需下载 2 MB 即可开始使用。

回答完这个问题后,我开始认为 Java 运行时并不像我以前想象的那么庞大,现在我实际上已经花时间研究了这个问题。

于 2009-05-25T06:03:54.070 回答
7
  1. 非常快的下载
  2. 针对最大的用户群(按此顺序)

1、你知道有所谓的java小程序,所以从网上下载小应用程序是很常见的,而且jar都是压缩文件(我不知道CLI exes)

2,如果你想瞄准最大的用户群,忘记“.Net”,因为它只适用于 Windows 用户而不是 Mac OS X 或 Linux 用户......所以,你会自动忽略这些潜在用户。

于 2009-05-25T05:19:09.957 回答
3

我的个人意见。我会在 .net 中进行。这是我自己的经验。我在 .net(非常小的桌面应用程序)中开发了 TweetMyPC,一个月内的下载量几乎超过了 3700 次,但我只收到了 5 到 10 封电子邮件,要求我使用 Mac 应用程序,而要求我使用 Linux 应用程序的电子邮件很少。

编辑:我知道这些电子邮件是由真正关心我的申请的人发送的。其他人只会忽略。我不反对 mac 或 java 应用程序开发 ;-) 我刚刚写了关于我的 exp。

以下是我选择 .net 的原因

  1. 安装时不那么头疼(我的个人经验——当你没有 jre 时,大多数时候安装 Java 应用程序会让人头疼。我总是感到困惑)所以对于普通 PC 用户来说,安装应用程序会很容易。

  2. 更快的发展。我建议您现在针对一个平台。我使用 .net 的另一个原因是因为该应用程序主要针对 PC(即 TweetMyPC ;-))我的应用程序的功能是重新启动/关闭,我无法在一个应用程序中使其跨平台。所以我针对的是 Windows 用户。

  3. ClickOnce:如果您计划将来为您的应用程序添加更多功能,这将是一个非常有用的功能。就我而言,我的应用程序变得非常受欢迎(这是我从未预料到的),但现在我不知道如何通知我现有的 3000 多名用户有关更新的信息。

于 2009-05-25T05:47:17.267 回答
3

(个人意见)在 .net 中开发您的应用程序会更快(dons armour)。

此外,JRE 是一个重要的考虑因素。这取决于你的目标受众是谁。在技​​术规模上,人们更有可能拥有 JRE 和/或非 Windows 环境。在技​​术规模较低的情况下,人们更有可能拥有窗户,可能没有 JRE。

因此,如果它是 'joe blow' 的程序,那么一定要去 .net。如果它是为“技术人员”的人准备的,我会说这取决于您的个人喜好,但 java 可能会接触到更广泛的受众。

于 2009-05-25T05:29:48.697 回答
2

似乎没有人回答您关于 JRE 安装基础的问题,尽管许多人同意您的假设,即 JRE 部署非常低。

那么一些实际数据呢?据TheCounter称,92% 的浏览器用户拥有 JRE。当然,明智的做法是尽可能多地寻找数据。但这表明你的担心可能被夸大了。

但更重要的是,使用最新版本的 .NET 或最新版本的 JRE 的用户很少。因此,如果您打算使用最新的功能,您的用户可能不得不下载一些东西。

于 2009-05-25T06:04:02.167 回答
1

我了解您的要求是:

  1. 非常快的下载
  2. 目标最大的用户群

正如其他人所提到的,我认为很难准确衡量所涉及的所有变量。它是针对高技术还是低技术的受众?它有什么作用?您表示它可能是跨平台的,但您不在乎它是否是。这表明它不是非常特定于平台的。您甚至可以选择完全基于 Web 的路线。

如果您的要求颠倒了:

  1. 目标最大的用户群
  2. 非常快的下载

我会说使用Java。具体来说,将 Java 1.4.2 或 Java 1.5 定位为最低版本。这将使您几乎免费使用 Mac/Windows/Linux 和其他几个平台(当然取决于应用程序功能)。所以这将针对近 99.9% 的用户......这比 90% 的用户要好。同样,这是如果您的目标是尽可能多的受众。

我之所以颠倒这些要求,是因为我不确定您是否可以自信地说您选择的平台总是会为大多数用户带来非常快速的下载。我主要做Java开发。当我最近创建一个 Java 小程序作为项目的一部分时,我确实遇到了大量没有 Java 并且需要安装它的用户。但是一旦安装,它通常非常顺利。根据您打算定位的 .NET 版本,您的结果可能相似。

我想我的建议是:

  1. 如果您需要大量观众和少量下载,请使用 Flash
  2. .NET 如果您不打算支持其他平台
  3. Java 如果您想支持尽可能多的平台,而 Flash 无法满足您的需求

我从未在 Flash 或 AIR 中开发过任何东西,但如果您的应用程序符合它提供的功能,那么它可能值得研究。

于 2009-05-25T08:07:34.933 回答
1

考虑改用 Flash。超大市场渗透率,易+小安装,非常适合小程序

于 2009-05-25T06:45:11.133 回答
0

在桌面上被 Java 烧毁后,我会说坚持使用 .NET 或 flash。即使是最新的 javaFX,查看演示应用程序(Sun 已经做了很多工作,您会感觉到它以前有多糟糕)仍然需要两个安全对话框才能玩突围游戏。他们只是不在那里。

但是,如果您走这条路,请以 .NET 2.0 为目标,以尽可能避免下载问题。

于 2009-05-25T14:14:04.787 回答
0

银光怎么样?它将在 Windows、Linux 和 Mac 上运行,并且只需从网络上下载大约 4mb(如果他们还没有的话)。它可以作为 Web 应用程序或桌面应用程序(仅限 Silverlight 3)运行,并且具有使用完整 .NET 框架的许多功能和优势。

于 2009-05-25T05:29:38.353 回答