我应该切换到ASP.NET吗?

时间:2009-08-05 12:33:10

标签: asp.net asp.net-ajax

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

9 个答案:

答案 0 :(得分:6)

这里的答案非常依赖于您的环境和需求。如果您不熟悉Microsoft编程,我认为学习曲线非常高。对于简单的MVC应用程序,Ruby on Rails和Django都很棒,但是ASP.NET MVC也非常棒,正如本站所示。

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

许多大公司都拥有ASP.NET,因为他们拥有微软编程的悠久历史。我没有看到很多学校教它。很多初创公司都在使用Rails方式。我很费力地选择了Rails和Django,并且对ASP.NET非常沮丧,但还没有尝试过ASP.NET MVC。我在Tomcat中也做了很多java服务器工作。

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

答案 1 :(得分:2)

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

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

答:谷歌周围的概述,看一些例子,并阅读一些评论。你应该能够自己判断。

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

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

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

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

答案 2 :(得分:1)

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

我花了几年时间编写Windows应用程序,然后使用各种基于Linux的后端(包括PHP,这可能是我最不喜欢的)开发了一些Web应用程序,然后再使用asp。净。我每天都花了很多时间与一群聊天客户联系,他们正在寻找那些恰好是顾问的朋友,他们互相帮助,互相帮助解决基于微软的网络开发工具的问题。

我不会假装成为“专家”,但我确实有足够的经验来发表意见(除了意见之外,这绝对没什么)。即使它相当不连贯。就像我说的......咖啡。

许多大公司使用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那样令人恐惧![我在那里几乎没有经验,BTW ......我曾经读过一本书]。

它还添加了几个层来隐藏所有令人讨厌的http详细信息,并让开发人员假装他们正在进行Windows开发。对于经验丰富的Windows开发人员来说,这可以让生活变得更轻松,但是在PHP中,一些简单易懂的东西在asp.net中会非常令人沮丧。

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

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

价值2美分。而且,真的,没有其他人没有更好地回答。

答案 3 :(得分:0)

在我看来,ASP.NET非常难看。有更好的解决方案 - 使用Castle Monorail或ASP.NET MVC等MVC模式。

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

答案 4 :(得分:0)

你的后端是php

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

Python Django和Ruby on Rails更好

答案 5 :(得分:0)

对于可重用性,您应该看看Seaside。干得好。

答案 6 :(得分:0)

很大程度上取决于你的经验,而且我只能从我这里说话 - 我是一名经验丰富的PHP程序员,但在过去一个月左右的时间里一直致力于ASP.NET项目。我以前有过使用VBA等编码的经验,但仍然认为ASP.NET是一个巨大的学习曲线,我认为文档或社区支持并不像PHP获得的那样好。我也不认为你可以用ASP.NET做任何事情,PHP无法为你做,所以我的建议是坚持使用PHP。

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

答案 7 :(得分:0)

如果您的职业目标是进入大型企业环境,那么学习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. 安装很多 更简单,因此上市时间会缩短 适用于新开发的应用程序。

  4. 另外,看一下新的ASP.NET MVC。这是另一个讨论。

答案 8 :(得分:-1)

这些是我的意见。有购买Visual Studio和在Windows上部署的替代方案......但我不推荐它们。

<强> 1。操作系统。你运行Windows吗?如果不这样做,您将无法在ASP.NET中进行开发。

<强> 2。定价。如果您运行Windows,那么您必须至少为ASP.NET Visual Studio付费,费用为$549 on amazon.com。然后,如果要将其部署到自己的服务器,则必须支付Windows Server 2003的许可成本,如果要使用Microsoft SQL数据库,则可以支付数千美元。编辑:评论员在评论中注明了一些定价选项。 Visual Studio&amp; MSSQL有快递版本。您可以使用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. 微软支持的可用性,以帮助堆栈的任何部分。
  5. 社区支持 - 大多数人都运行相同的堆栈,因此更容易找到常见问题的解决方案。
  6. 学习ASP.NET的职业理由

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

    实际上并没有看到你有任何这些需求,我建议保持PHP并通过启动一个使用类似CakePHP(一个开源PHP框架)之类的东西的方案来更严肃一些。 / p>