2009-10-12 50 views
1

我正与一位PHP开发人员合作,我们应该说,他对.NET不满意。他的抱怨包括必须为每个测试重新构建Web应用程序解决方案(尽管我指出通常只有在.cs文件已被更改,而不是接口.aspx文件时才需要),必须在解决方案中包含每个文件需要部署等。ASP.Net编译模型的优点?

我已经指出了编译模型的一些优点,包括RTTI(反射),源代码完整性(源不会被部署到服务器,保持meddlesome IT人员不会修改它在性能上的差异(尽管他坚持认为这是无效的,因为PHP现在是“编译”)等等。这可能会引发一场宗教辩论 - 敬请上帝,不要 - 但我是.NET的粉丝,以至于我多年前提出的这些问题中的一些看起来很愚蠢,以至于我无法表达出有效的回应。

他在开发页面的方式上似乎也存在显着差异。例如,声明一个代表页面部分的类(比如3列布局中的特定列),而不是以更合理的方式分解代码,并依靠.aspx来处理布局。这让我感到奇怪的是,页面布局无论如何都会被绑定到类结构之外的类结构,而不仅仅是一个aspx页面的代码。

评论?

UPDATE顺便说一句,这是一个老问题,但我觉得有必要与几点更新:

  1. 优化这是一个大的。编译提供了机会来执行一些在JIT期间不可行的优化。

  2. (虽然我没有)那o.k.w简称为如此明显偏见,有人还没有在.NET,它是几乎不值得一读,工作了显著时创建的文章。它也使得完全是的点不正确

  3. 让Mac人们意识到Windows有它的位置几乎是不可能的。另一方面,我认识的大多数Windows家伙都认为Mac对很多事情都很好。大多数甚至拥有一个。出于某种原因,我们不会将它们用于开发网站或嵌入式系统。 (而且,是的,我们的业务涉及两方面)。

  4. 第一次爱情变得很糟糕...优秀的比喻。这可能很快会在我的口中出现。

  5. 这场辩论毫无用处。我也可以试着说服英国走上正确的道路。和澳大利亚。和香港。而且......你看到了这一切。

干杯。

+3

我努力不回答这个问题。但它太诱人了,而不是谷歌“PHP与asp.net”。所以我评论而不是回答。这里有一个:http://www.bizfive.com/articles/web-design/comparing-php-and-asp.net/ – 2009-10-12 15:34:44

+3

如果PHP是他的第一个爱情,那么这可能是一项艰巨的任务。在我的情况下,它是第一次爱变坏..所以我搬了:) – Perpetualcoder 2009-10-12 15:44:15

+1

这篇文章o.k.w张贴似乎只解决了PHP的优越领域,实际上不正确的几点。 – StriplingWarrior 2009-10-12 16:12:04

回答

3

我每天两种语言的工作,都是极大的发展空间。很难进入“编译与解释”的辩论,没有变得火热和热忱,所以我不认为我会说什么。然而,这里有一些我更喜欢的东西.Net:

  • Visual Studio与Eclipse。

  • 没有@includes,和真正的命名空间。我一直想知道我的类型,而不是依靠怪异的自动加载例程。

  • API可发现。 PHP有可怕的,不一致的API命名。

  • 编译时检查和代码分析

  • 高级调试器和分析器

这是不是真的什么关系,他们虽然使用的模型,它只是属性的工具本身。我不建议尝试改变自己的想法,甚至与他争论了 - 他会看到此优势本人或他不会,而是推动他们对他很可能只是会延长;)

1

主要的问题是,如果一个框架存在,几乎任何你可以用.Net提出的优点都可以用PHP实现。我相信有PHP MVC框架。

但是,我会说这个关于ASP.Net的编译模型,这对了解代码背后的代码中没有语法错误是非常有帮助的。 PHP和ASP Classic没有这个。在一个有400多页的网站中,很难确定哪些网页是功能性的,哪些功能无法确定。

+1

aspnet_compiler.exe附带.net框架。您可以使用它来预编译应用中的所有.aspx和.ascx文件。我已经开始将它作为我的构建的一部分,以尽快捕捉前端的错误。 – Matt 2009-10-12 18:07:18

2

从我明白了什么(没有用功多在PHP自己)PHP是功能强大,易于使用,真正的亮点在较小的,比较简单的项目,特别是在业务逻辑大多由数据库和之间移动内容网页。 ASP.NET更适合更大,更多的业务逻辑密集型应用程序,编译时检查允许您尽早发现错误。在编译时与运行时捕获错误可能会在修复需要多长时间时产生一个数量级的差异。我们使用PHP构建模型以展示客户并让他们签署我们的想法,然后我们用.NET或Java等编译语言编写实际产品,因为这是我们的代码,将需要维持未来十年或更长时间。