【问题标题】:When is the right time to switch to a new technology?何时是切换到新技术的合适时机?
【发布时间】:2010-06-23 14:29:04
【问题描述】:

我是软件开发和网站开发的初学者。我喜欢使用 Microsoft .NET 的东西,但似乎他们总是推出新技术,要求用户下载新工具来使用它们。例如,我编写的许多 Windows 应用程序都要求用户下载 .NET 平台 3.5。如果我切换到 VS2010 并开始利用所有新功能,用户将需要下载 .NET 4.0。我最近开始研究网站的 Silverlight 开发,但是每个用户都必须安装 Silverlight。

现在,我意识到对于大多数人来说,下载 Silverlight 或最新的 Flash 播放器并不是什么大问题,但可能有相当多的人(我想是老年人)总是点击“取消”当下载提示弹出并转到另一个页面时。如果我在 Silverlight 和 aspx 技术上构建一个完整的网站,我可能会减少自己的流量。特别是如果我处于技术的前沿,例如使用 Silverlight 的前几个站点。

所以我的问题是,您如何决定何时适合改用新技术?在什么时候你只是说'去他妈的'用户可以下载silverlight或者他们不能查看我的网站。您正在设计的网站类型是否会有所不同(即电子商务网站与提供简单信息服务的页面)吸引客户,但不要过于浮华,以至于人们无法在没有所有这些额外工具的情况下查看它......

【问题讨论】:

  • 许多人评论说,如果您不满足项目目标/要求,您应该切换到新技术。我认为在很多情况下,尤其是在网络上,外观就是一切。人们喜欢看起来专业、干净和时尚的网站。像苹果这样的公司仅仅因为时尚就取得了巨大的成功。你能用纯html制作你的网站吗?是的,但你失去了很多时尚/华丽的效果?您可以轻松使用 Flash,但随后您将无法在 Visual Studio 中进行所有开发,这对开发人员来说是一大优势!

标签: silverlight


【解决方案1】:

关于网络技术要记住的一点是,仅仅说服您的用户群使用它们是不够的,您需要确保搜索引擎也可以使用它们。如果您使用 Flash 或 Silverlight 构建整个网站,那么这意味着 Google、Bing、Yahoo 和其他搜索引擎将不会抓取您的网站,因此您的网站不会成为使用网络搜索的人的目的地找东西。虽然对于人们已经知道的电影的电影网站来说这可能不是一件坏事(例如:http://disney.go.com/toystory/),但对于一个未知产品的网站来说,情况就大不相同了。甚至 AJAX 也可能成为某些用户(视力障碍或运动障碍)进入的障碍。

在推荐新技术之前要问自己(和您的客户)的问题是:

我是否愿意排除或忽略:

  • 使用不同平台(Mac、Linux、智能手机、上网本、平板电脑等)的人
  • 身体有问题(视力、听力、运动等)的人
  • 不能或不会加载浏览器插件的人。

如果您对答案感到满意,那就去做吧……但不要指望我会访问您的网站。

【讨论】:

  • 我要补充一点:Silverlight 与搜索引擎配合得很好,它允许您生成引擎指定的 HTML(专门用于 SEO)。如果您的客户端没有安装 SilverLight,也会显示此 HTML。它更丑陋(比 WPF 表示的内容),但它有效。
【解决方案2】:

在您将新技术投入使用之前很久,您就已经在使用它们了。如果你不是市场上的大玩家,那么当你的用户会顺利支持切换时,你就会切换。如果一切都失败了,你会在必要时切换。

例如,绝大多数企业网站仍然支持IE6;不是因为开发人员想这样做,而是因为他们必须这样做。

如果您在 Flash 上构建整个网站,您将失去 iPhone,但几乎所有人都拥有它。 Silverlight,我敢打赌。

【讨论】:

  • 我听说 Flash 在 Android 上也不能很好地工作。就个人而言,我认为出于大多数商业目的,您至少希望允许人们通过手机使用您的网站。
  • 理想情况下,您可以为您的内容提供特定的移动实现,该实现针对较小的屏幕进行了优化,无需键盘、无需鼠标。对于大多数设计师来说,这可能比从您的主站点中删除 Flash 更容易?
【解决方案3】:

技术前沿

总是有问题。避免它。

这真的很简单。当您的客户强迫您采用新技术时。

除非您已经拥有巨大的细分市场,否则您不能采用一项技术,因为它很酷。

您采用一种技术是因为愿意使用该技术的人您的目标市场。

【讨论】:

  • 公司一直在寻求击败竞争对手。更新更好的技术是实现这一目标的一种方式。所以我想说,对于一家大公司来说,技术是推动创新和增加市场份额的一种方式。现在对于小型企业,我完全不同意你的看法。一家新公司应该不断创新,尽其所能打入市场。大公司必须牢记现有客户,同时进行创新。规模较小的企业正处于技术适应的最佳时机,因为他们的客户群还不一致。
  • 一家新公司应该提供创新的价值。不需要新颖、未经证实的领先技术。这是整体价值,而不是技术。确实,只有基于经过验证的价值,您才能考虑新技术。
【解决方案4】:

我为同一个问题奋斗了 20 多年。

我的经验是,如果你继续追求最新的技术,你只会输。 我认为最好有一个“自适应”策略,如下所示:

  • 如果您是一家新成立的公司,或者您从全新的应用程序开始,请使用最新技术
  • 以模块化方式编写您的应用程序,以便在不影响其他模块/类的情况下升级不同的模块/类(请参阅:四合一设计模式、依赖注入...)。使您的应用程序尽可能模块化。不要让整个应用程序依赖于一个大框架,因为这样您就会将自己与那个框架联系在一起。
  • 如果需要重新设计模块(因为主要的新功能,...),请查看使用新技术重写模块是否有意义。不要强迫自己使用最新的技术,而是要找到适合自己需求的东西。

【讨论】:

    【解决方案5】:

    简单的答案是“使用它可以解决您遇到的问题。”

    然而,实际情况比这要复杂一些。

    您需要权衡新技术的优势 - 例如它可以让你做 X - 针对缺点 - 例如。它需要 250MB 下载 - 看看结果是否支持该技术。

    您还需要考虑您的目标受众。企业环境往往是一致的 - 所有用户的设置几乎相同 - 但您可能会为让企业 IT 接受技术而奋斗。

    【讨论】:

      【解决方案6】:

      这实际上取决于您的用户群和您的应用程序,以下是我遵循的一些准则:

      1. 新工具/框架是否提供 显着增加我的应用程序的价值或 它们是绒毛/眼睛糖果吗?
      2. 多久 您的特定用户群是否 升级他们的系统,这是相当 如果您的用户群是不同的 略带技术性或随意性 仅限互联网用户。
      3. 有多容易 供用户升级到新的 技术? .NET、闪存、 silverlight都可以相对 很容易,虽然 .NET 可能是时间 消费。

      要考虑的更重要的一点是,您能否让您的应用程序功能为那些更新缓慢的用户很好地降级?同样取决于您的用户群,您可以在这里非常严格或非常灵活。

      【讨论】:

        【解决方案7】:

        至于 .NET 与其他东西,在网络上真的没关系,因为你永远不应该要求用户安装框架来使用你的网站。用户应该只能看到任何现代浏览器都可以呈现的标准 HTML/CSS/Javascript。

        Flash 无处不在,您可以放心地使用它,但您仍然不需要它。您可以拥有漂亮的 Flash 前端,但您应该提供一个功能齐全的 HTML 版本。 Silverlight 也是如此,但要知道它的覆盖范围比 Flash 少得多。

        如果您的网站设计要鼓励用户使用特定的软件,为什么不鼓励使用兼容 HTML5 的浏览器呢?

        【讨论】:

          【解决方案8】:

          您应该始终使用最适合网站整体目的的技术。用户是一个因素,但最重要的是网站做了它应该做的事情。如果您在没有 Silverlight 的情况下无法解决问题,那么您应该使用 Silverlight。

          就技术而言,我会查看创新的扩散(http://en.wikipedia.org/wiki/Diffusion_of_innovations) 并查看您希望使用您的产品定位哪些受众并相应地调整您的技术。

          【讨论】:

            【解决方案9】:

            当新技术准备就绪并发布最终产品时。
            根据您的可行性研究,当您真正需要它时。

            【讨论】:

              【解决方案10】:

              其他人已经为您的问题提供了相当好的答案,所以我将提供一个您没有提出的相关问题的答案:虽然这比简单地决定何时切换到新技术需要更多的工作,为什么不制作两个版本的网站,一个花哨,另一个更简单?就像您可以根据需要查看纯 HTML 版本的 Gmail 一样。这样一来,您不仅可以支持那些计算机不是完全最新的用户,还可以为那些不希望首先使用该站点的更高级版本的用户提供服务地方。 (而且这种人确实存在,原因有很多,不一定与计算机有关。)

              【讨论】:

              • ...可能是测试量的三倍。
              • @DOK:真的取决于你如何实现它。您可能会将工作量提高到原始量的 1.5 倍,具体取决于您能够在两者之间共享多少代码。
              【解决方案11】:

              是的,网站/应用程序的类型很重要,但在基础设施中使用该技术的位置也很重要。

              例如,对于一个 ASP.NET 网站来说,使用框架 2.0 或框架 4.0 对用户来说并不重要,因为使用框架的代码运行在服务器上,因此用户不必安装任何事物。您只需确保框架已安装在 Web 服务器上。

              另一个因素是网站/应用程序的使用情况。大型网站可以通过及早采用新技术来推广新技术,同时仍然保留大多数访问者。小型网站必须等待技术流行后再采用,以避免被遗弃的风险。

              【讨论】:

                【解决方案12】:

                在开发网络应用程序时,“技术升级”问题只涉及您托管网站的网络服务器。

                对于用户而言,除非您要集成 flash/silverlight,否则只关注 Web 标准。

                如果您输出带有 CSS 样式的格式良好的 (x)html,用户将能够在几乎所有浏览器上使用它而不会出现任何问题。其背后的服务器端技术对用户是隐藏的。

                现在,如果您像我一样喜欢 .net 框架,我建议您使用 .net 4.0 和 Mvc 框架 2.0 进行开发,它允许您生成比传统 asp.net 更高质量的网站,而传统的 asp.net 会使您的页面杂乱无章并向您隐藏 Http 的机制。

                如果您需要,我可以提供更多信息。

                【讨论】:

                • ASP.Net WebForms 和 MVC 之间的区别在于产生更高质量的网站。质量将取决于开发人员的能力。
                • 如果您仔细阅读我的评论,我会说它“允许您制作更高质量的网站”。这对我来说似乎很清楚。 Mvc 没有任何魔力,它比传统的 Asp.Net 具有更大的潜力,这就是我的意思。你仍然可以使用 Mvc 制作糟糕的网站,甚至比普通的 Asp.Net 网站更糟糕。
                • "格式良好的 html" != "没有浏览器问题" 您可以拥有最漂亮的格式良好的 html 5 网站;但如果他们使用 IE 6,那么,不知道它会是什么样子。
                • 另外,我支持 DOK。 MVC != "生成更高质量网站的能力" 您可以在 web 表单、经典 asp、常规 php 等中生成高质量网站。这完全取决于您(即程序员)的能力。
                • 再次,我邀请您仔细阅读我的评论。我只是指出 Mvc 不会添加像 viewstate 这样的垃圾,也不会添加名称修饰等等。本站用户是否有曲解 cmets 以降低其评级的习惯?我从来没有说过,如果你使用 Mvc,你就有能力做一些好事。技能是个人的。但是使用具有更多潜力和更少缺点的工具是绝对的。尝试用普通锯或电锯切割一棵树,并告诉我是否需要相同的时间。
                猜你喜欢
                • 2019-02-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-11-11
                • 2011-02-27
                • 1970-01-01
                • 2011-02-15
                • 1970-01-01
                相关资源
                最近更新 更多