【问题标题】:Should I switch to ASP.NET?我应该切换到 ASP.NET 吗?
【发布时间】:2009-08-05 12:33:10
【问题描述】:

我是一名 Web 开发人员,目前主要使用 JavaScript 和 HTML,并且在需要时使用各种后端 PHP 或 servlet。我的印象是很多人都在使用 ASP.NET,而且它似乎有一个很大的社区和许多可重用的组件和小部件。我应该切换到 ASP.NET 吗?我还应该考虑什么,例如,软件成本、培训、学习曲线……?我能否在 ASP.NET 中使用我现有的 JavaScript 资产 - ASP.NET AJAX 到底是什么?

【问题讨论】:

  • Asp.Net 是一种服务器端语言,因此您可能会选择使用 Asp.Net 而不是 php,但您的 Asp.Net 代码仍需要 Html 和 JavaScript。

标签: asp.net asp.net-ajax


【解决方案1】:

这里的答案很大程度上取决于您的环境和需求。如果你不熟悉微软编程,我认为学习曲线非常高。对于简单的 MVC 应用程序,Ruby on Rails 和 Django 非常棒,但 ASP.NET MVC 也非常棒,正如本网站所展示的那样。

如果您已经了解一些 PHP,并且只需要一个框架来完成一些较重的服务器端工作,请查看 CodeIgniter

许多大公司都拥有 ASP.NET,因为它们在 Microsoft 编程方面有着悠久的传统。我没有看到很多学校教它。许多初创公司都在走 Rails 的道路。我毫不费力地学习了 Rails 和 Django,并且对 ASP.NET 感到非常沮丧,但还没有尝试过 ASP.NET MVC。我也在Tomcat中做了很多java server的工作。

除非您有特定需求,否则请使用在您的托管环境中易于部署和维护的任何东西,因为这些令人头疼的问题比学习一门新的语言或框架更难处理。

【讨论】:

  • 是的,学校似乎对任何与 Microsoft 相关的东西都非常厌倦。可笑的是,实际上。
  • @Colin 我会说这通常是因为使用 MS 的技术人员对完成工作、商业和财务成功比对理论纯度更感兴趣,所以他们自然倾向于留在私营行业,远离学术界.这在大多数大学中留下了一个自我延续的 Unix 文化泡沫。
【解决方案2】:

这些问题的答案非常主观。这取决于几个因素,尤其是您当前的技能和经验等。如果您的 OO 背景为零,一开始可能会有点困难。

问:我应该切换到 ASP.NET 吗?

答:谷歌浏览一下概览,查看一些示例并阅读一些评论。你应该能够自己判断。

问:我还应该考虑什么,例如,软件成本、培训、学习曲线...?

答:如果您使用 IDE 的免费快速版本,成本可以(几乎)为零。你甚至可以尝试 MONO/SharpDevelop 等。你不需要去学习有能力的课程,认为它们可能会有所帮助。部署到生产服务器是另一回事。

问:我能否在 ASP.NET 中使用我现有的 JavaScript 资产 - ASP.NET AJAX 到底是什么?

答:是的,您应该能够使用大部分(如果不是全部)当前的 javascript 资产。可能需要进行一些调整。至于ASP.NET AJAX,参考我的第一个回答。

【讨论】:

    【解决方案3】:

    这似乎更像是一场宗教辩论而不是技术问题,但我需要一些东西来假装我很忙,直到咖啡开始。

    我花了几年时间编写 Windows 应用程序,然后又使用各种基于 Linux 的后端(包括 PHP,这可能是我最不喜欢的)开发了一些 Web 应用程序,然后又使用了一些 asp。网。我几乎每天都花一整天时间与一个群聊客户端联系,看着碰巧是顾问的朋友互相交流想法,并使用基于 Microsoft 的 Web 开发工具互相帮助解决问题。

    我不会假装自己是“专家”,但我确实有足够的经验来发表意见(这绝对是意见)。尽管它相当不连贯。就像我说的……咖啡。

    许多大公司都在使用 asp.net,其中有几家正在转向 sharepoint(这对它的作用来说很好,但 MS 正在推动它作为所有问题的答案,但事实并非如此)。似乎更多人正在使用 Java [目前]。如果您想在一个大团队或某家大公司找到一份工作,请学习其中的一个(或者,更好的是,两者都学习)。

    就我个人而言,我永远不会将 PHP 用于任何大型项目,因为它不符合我的想法。有很多其他人的思维方式与我不同,他们能够很好地处理大型项目 [使用 PHP]。

    asp.net 的 MVC 版本非常肯定(好吧,就你所能得到的……你永远不知道)Windows 平台上 Web 开发的未来。还有各种其他选项(如 Java),但真的

    当然,在 Linux(或 BSD)主机上,所有其他选项都变得非常现实。对于任何给定的项目,我可能会选择几乎所有其他提到过 PHP 的项目,但这只是我的偏见(好吧,我已经知道所涉及的大多数其他语言,除了 smalltalk,我想)。其他写答案的人似乎已经涵盖了大部分显而易见的答案,所以我不会费心重复他们已经写过的内容。

    我的印象(可能是错误的)经典的 ASP 是对 PHP 的一种回答。或者反之亦然。或者,也许它们只是并肩进化。这两种语言非常相似。它们非常适合小型、简单的网站。

    然后是 java,当涉及到大型企业网站时,它似乎几乎称雄(目前)。

    在我看来,MS 意识到他们在与 Java 和 PHP 的竞争中失败了,所以他们推出了 asp.net 作为两者的答案。它比经典的 ASP 大得多,涉及更多,并且需要更多的努力才能适合小型站点。但是对于大型站点(当然对于“大”的某些定义)来说,它[可以说]更容易维护。而且(从我的角度来看)它似乎并不像 java 那样可怕[我在那里的经验几乎为零,顺便说一句......我读过一本书]。

    它还添加了几层来隐藏所有讨厌的 http 细节,让开发人员假装他们正在做 Windows 开发。这可以使有经验的 Windows 开发人员的生活更轻松,但在 PHP 中非常简单的一些事情可能会令人难以置信地令人沮丧 [在 asp.net 中]。

    Asp.net ajax 在到达时几乎已经死了。它并没有太可怕地破碎,但它还有很多不足之处。 MS似乎已经把马换成了jquery。 还有其他 javascript 框架值得一看(又是一场宗教辩论),但就我个人而言,我不认为 asp.net ajax 是其中之一。 (而且,通常情况下,我只想“检查所有选项,比较成本/收益,并针对每种特定情况做出明智的决定”。

    您可能无法将现有的 javascript 与 asp.net 一起使用。我会猜测“一些,经过调整”,但实际上只有一种方法可以找出答案。

    只值我的 2 美分。而且,真的,没有其他人没有更好地回答的任何问题。

    【讨论】:

    • 我只是在你发帖时输入了一些类似的东西,但你说得更好,所以我停下来!
    • 我认为您夸大了 Java 的情况。鉴于流行替代品的增长,我不知道有多少人转向 Java。它仍然是一个强大的社区,但我想说它正在努力维持其在市场中的地位。
    • 虽然不完全针对这个问题,但我喜欢阅读这篇文章。
    【解决方案4】:

    在我看来,ASP.NET 相当丑陋。有更好的解决方案 - 使用 MVC 模式,如 Castle Monorail 或 ASP.NET MVC。

    您也可以考虑使用 Python Django 和 Ruby on Rails。 RoR 的学习曲线可能是三个中最平滑的(Django 也非常接近 RoR)。

    【讨论】:

      【解决方案5】:

      你的后端是 php

      为什么不试试 CodeIgniter 或 CakePHP? 所以你不应该切换到 ASP.net

      Python Django 和 Ruby on Rails 更好

      【讨论】:

        【解决方案6】:

        为了可重用性,您应该看看 Seaside。 DRY 做得对。

        【讨论】:

          【解决方案7】:

          如果您的职业目标是进入大型企业环境,那么学习 ASP.NET 将是一个不错的选择。我不想进入更好的领域,只关注 ASP.NET 的好处。

          ASP.NET AJAX 的优势在于 Ajax — 无需掌握 Ajax 技术。 ASP.NET AJAX 可以为您管理 Ajax 功能,其方式与 ASP.NET 管理 HTTP 功能(例如回发、状态管理以及使 ASP.NET 全部“正常工作”所需的客户端脚本)非常相似。

          在服务器端,ASP.NET AJAX 作为 ASP.NET 的一部分工作,充分利用了其所有固有特性。 ASP.NET AJAX 控件可以与其他 ASP.NET 控件和组件交互并参与页面生命周期。它还可以链接到会话、身份验证和配置文件,允许您在客户端上利用这些类型的功能。最后,使用 ASP.NET AJAX 和 ASP.NET,您可以直接与 Web 服务交互。

          .NET 框架本身的其他优点是

          1. .NET Framework 允许开发人员 构建应用程序的类型 用户要求的。有一个共同的集合 系统工具,他们将能够 编写一次代码并拥有它 交付给各种设备。

          2. .NET Framework 包装 向上接口成 易于使用的面向对象 结构体。这加速了 新开发人员的学习曲线 同时允许高级开发人员 以创建 Web 应用程序 他们可以的时间的一小部分 之前。

          3. 安装很多 更简单,因此上市时间会缩短 用于新开发的应用程序。

          另外,看看新的 ASP.NET MVC。那完全是另一个讨论。

          【讨论】:

          • 您的很多观点仅与 .NET(Windows 应用程序)有关,与 ASP.net 无关
          【解决方案8】:

          很大程度上取决于您的经验,我只能从我的经验谈起——我是一位经验丰富的 PHP 程序员,但过去一个月左右一直在从事 ASP.NET 项目。我以前在 VBA 等方面有过编码经验,但仍然发现 ASP.NET 是一个巨大的学习曲线,而且我认为文档或社区支持远不及使用 PHP 获得的支持。我也不认为你可以用 ASP.NET 做任何 PHP 不能为你做的事情,所以我的建议是坚持使用 PHP。

          在职业方面,似乎有更多可用的 ASP.NET 工作,但就纯粹从开发人员的角度来看哪个更好,我会选择 PHP。

          【讨论】:

            【解决方案9】:

            这些是我的意见。除了购买 Visual Studio 并在 Windows 上部署之外,还有其他选择……但我不推荐它们。

            1.操作系统。 你运行 Windows 吗?否则,您将无法在 ASP.NET 中进行开发。

            2。定价。 如果您确实运行 Windows,那么您至少需要为 ASP.NET Visual Studio 付费,费用为$549 on amazon.com。然后,如果你想将它部署到你自己的服务器上,你将不得不支付 Windows Server 2003 的许可费用,如果你想使用 Microsoft SQL 数据库,你可以支付数千美元。编辑:评论员已经注意到 cmets 中的一些定价选项。 Visual Studio 和 MSSQL 有 express 版本。您可以使用开源数据库,例如 MySQL 或 PostgreSQL。您可以免费使用 Mono 部署到 linux 服务器。您甚至不必使用 Visual Studio 来编写应用程序 - 但我不建议这样做。如果您因为定价而打算对大多数 Microsoft Stack 使用大量开源解决方案,我建议您完全从 ASP.NET 迁移到完全开源的替代方案。

            我可以使用我现有的吗 ASP.NET 中的 JavaScript 资产 - 什么 究竟是 ASP.NET AJAX?

            Javascript 在 ASP.NET 中的工作方式与任何其他框架几乎相同。 ASP.NET WebForms(除了 ASP.NET MVC 之外的另一个选项)会篡改任何动态的 HTML 实体(标签、网格和诸如此类)的 ID,因此您必须使用类选择器而不是 ID 选择器(发生这种情况在许多其他框架中)。

            ASP.NET AJAX 是一组 Javascript 代码,可让您轻松在 ASP.NET 应用程序中使用 AJAX - 您不必使用它,但它更容易在你的 javascript 中调用 c# 函数等等。它主要只是增强了 ASP.NET 中的现有功能。

            使用 ASP.NET 的原因

            1. 您已经运行 windows。
            2. 您担心缩放。
            3. 易于使用。 (我花了很多时间在开源 java 项目上感到困惑,因为您正在使用一堆不同的开源项目来获得 Microsoft Stack 中包含的相同功能 - 完全可行,但您可能会花更多时间整合和学习所有不同的开源项目。)
            4. Microsoft 支持可帮助解决堆栈的任何部分问题。
            5. 社区支持 - 大多数情况下,每个人都运行相同的堆栈,因此更容易找出常见问题的解决方案。

            学习 ASP.NET 的职业原因

            很多大公司都使用 ASP.NET - 我认为主要是因为他们更喜欢微软解决方案,所以有很多工作。如果您想为自己工作或为较小的公司工作,那么使用免费框架是有意义的。

            看起来你真的没有任何这些需求,我建议继续使用 PHP,并通过启动一个使用像 CakePHP(一个开源 PHP 框架)之类的项目来变得更加认真。

            【讨论】:

            • 不完全正确。您可以在不需要 windows 的 Linux 上使用 Mono,并且您不需要 Visual Studio 来开发 ASP.Net,但它确实更容易。根据您的需要,还有免费版本的 SQL Server。
            • 成本并不高,因为实际上每个人都有权购买Visual Studio的升级版本。而对于网络开发来说,标准版也绰绰有余..amazon.com/Microsoft-Visual-Studio-Standard-Upgrade/dp/… 而且他还可以获取 Visual Studio 和 sql express 的免费版本
            • 技术上 是的——但作为尝试学习 ASP.net 的人,我最初尝试使用 Mono/MonoDevelop/XSP/Apache-Mono 插件——很难找到任何教程/书籍/等。这将解决除在通过 Visual Studio 开发的 Windows/IIS 上运行的 ASP.Net 之外的任何问题。所以我切换到 Windows/Visual Web Developer Express 并且我想如果/当我更好地学习 ASP.Net 时我会切换回 Mono。
            • 我同意总体结论,但有关定价、堆栈、WinForms [原文如此]、ASP.NET Ajax 等的陈述具有误导性。
            • Visual Studio Express 版本是免费的。这使得进入门槛非常低。
            猜你喜欢
            • 2010-09-05
            • 2011-07-01
            • 1970-01-01
            • 2011-06-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多