1

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

我已经指出了编译模型的许多优点,包括 RTTI(反射)、源代码完整性(源代码没有部署到服务器上,让爱管闲事的 IT 人员无法即时修改它)、性能差异(尽管他坚持认为这是无效的,因为 PHP 现在已“编译”)等。.NET 与 PHP 相比还有哪些其他优势?这可能会引发一场宗教辩论——请上帝保佑,不——但我是 .NET 的粉丝,以至于我多年前提出的一些问题看起来很愚蠢,以至于我无法清楚地做出有效的回答。

他开发页面的方式似乎也存在显着差异。例如,声明一个代表页面一部分的类 - 例如,3 列布局中的特定列 - 而不是以更合乎逻辑的方式分解代码并依赖 .aspx 来处理布局。让我感到奇怪的是,页面布局无论如何都会与类结构相关联,而不仅仅是 aspx 页面的代码隐藏。

评论?

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

  1. 优化这是一个大问题。编译提供了执行一些在 JIT 期间无法执行的优化的机会。

  2. okw 提到的文章显然是有偏见的,并且是由没有在 .NET 中工作过很长时间的人创建的,因此几乎不值得阅读(尽管我这样做了)。它也提出了完全不正确的观点。

  3. 让 Mac 用户意识到 Windows 占有一席之地几乎是不可能的。另一方面,我认识的大多数 Windows 人都认为 Mac 在很多事情上都很棒。大多数人甚至拥有一个。我们不会出于某种原因将它们用于开发网站或嵌入式系统。(而且,是的,我们的业务涉及两者,密切相关。)

  4. 初恋变坏了……很好的比喻。这可能会在不久的某个会议上从我嘴里说出来。

  5. 这种争论是没有用的。我不妨尝试说服英国在正确的道路上行驶。还有澳大利亚。还有香港。而且......你知道这是怎么回事。

干杯。

4

3 回答 3

3

I work with both languages daily, and both are great for development. It's hard to get into the "compiled vs. interpreted" debate without getting all flamey and zealous, so I don't think I'll say anything about that. However, here are some of things I prefer about .Net:

  • Visual Studio vs. Eclipse.

  • No @includes, and real namespaces. I want to know about my types all the time, and not rely on weird hacky autoloading routines.

  • API discoverability. PHP has horrible, inconsistent API naming.

  • Compile time checking and code analysis

  • Superior debuggers and profilers

This isn't really anything to do with the models they use though, it's just attributes of the tools themselves. I wouldn't suggest trying to change his mind or even arguing with him about it - he'll either see the advantages himself or he won't, but pushing them on him will probably just make it take longer ;)

于 2009-10-12T18:00:57.380 回答
2

From what I understand (not having worked much in PHP myself) PHP is both powerful and easy to use, and really shines on smaller, simpler projects, particularly where the business logic consists mostly of moving content between a database and a web page. ASP.NET lends itself better to larger, more business-logic-intensive applications, where the compile-time checks allow you to catch errors sooner. Catching an error at compile time versus run time can make an order of magnitude of difference in how much time it takes to fix.

Where I work, we use PHP to build mockups to show customers and get them to sign off on our ideas, and then we write the actual product in a compiled language like .NET or Java, since that's the code we'll need to maintain for the next decade or more.

于 2009-10-12T16:22:16.580 回答
1

主要问题是,如果存在适用于 .Net 的框架,则几乎可以使用 PHP 实现您为 .Net 提出的任何优势。我相信有 PHP MVC 框架。

但是,我要说的是 ASP.Net 的编译模型,知道代码后面的所有代码中都没有语法错误是非常有帮助的。PHP 和 ASP Classic 没有这个。在一个有 400 多页的网站中,很难确定哪些是有效的,哪些是无效的。

于 2009-10-12T15:49:50.547 回答