只是为了给我基于我的答案的背景知识,我已经进行了6年以上的专业PHP开发,最近3-4个月我一直在使用ASP.NET MVC,并且我一直在进行C#编程的时间与PHP编程差不多。
对我来说,这更多的是PHP vs C#参数,而不是PHP vs ASP.NET。
功能/可扩展性
我认为ASP.NET在这里胜出,而这更多是因为能够使用C#这样的语言。C#是一种比PHP更好的语言,它具有面向对象的支持。我也是一个喜欢静态类型语言的人(即使考虑过C#4.0,我相信您也可以做动态类型变量)。就语言功能而言,PHP在C#之上具有的唯一优点是可选参数,但这是C#4.0中已添加的另一件事(不确定它的工作程度,因为我还没有尝试过)。
安全
我可能会说这是两者之间的洗礼。我认为他们两个都有适当的功能来帮助提高安全性,但是确保他们的应用程序安全最终是程序员的工作。
框架
好PHP似乎有更多的主流框架(CakePHP的,笨,Symfony的,Zend框架)和其他很多比ASP.NET更小的框架。ASP.NET具有Microsoft的2个主要框架,WebForms(有点废话)和ASP.NET MVC(我开始涉足ASP.NET开发的原因)。尽管PHP具有更多框架,但我发现ASP.NET MVC 3框架比任何一个PHP框架都要好。
平均开发时间
我认为对于较小的项目,PHP的开发时间要好得多,但是随着您的项目规模的扩大,C#在这方面的伸缩性会更好。
成本
应该提高的是成本。PHP在这方面赢得了胜利。尽管您可以在Linux上的Mono上运行ASP.NET,但它确实有其自身的问题。
如果您正在做一个中小型项目和/或成本是一个因素,PHP就是赢家。如果您正在做一个大型项目,我会选择带有C#和ASP.NET MVC的ASP.NET。