网站版本2,使用PHP还是移动到.Net?

网站版本2,使用PHP还是移动到.Net?,.net,php,frameworks,.net,Php,Frameworks,我有一个用PHP4构建的网站,其框架是我亲手制作的。这段代码已经3年了,我的能力有限(需要付出很多努力才能修改) 我决定做这个网站的新版本。此后,我的知识不断增长,现在我知道有很多框架存在,IOC也存在,ORM也存在。。。问题是,在我所有的研究中,我没有在PHP中找到完全满足我的东西。另一方面,在我的工作中(主要是在.Net winform 2.0中),我看到许多优秀的IOC和其他解决方案是可能的,而且,我认为.Net在使用最佳实践开发软件方面更为成熟 我还没有找到很多适合PHP的好IOC。至于

我有一个用PHP4构建的网站,其框架是我亲手制作的。这段代码已经3年了,我的能力有限(需要付出很多努力才能修改)

我决定做这个网站的新版本。此后,我的知识不断增长,现在我知道有很多框架存在,IOC也存在,ORM也存在。。。问题是,在我所有的研究中,我没有在PHP中找到完全满足我的东西。另一方面,在我的工作中(主要是在.Net winform 2.0中),我看到许多优秀的IOC和其他解决方案是可能的,而且,我认为.Net在使用最佳实践开发软件方面更为成熟

我还没有找到很多适合PHP的好IOC。至于ORM,我见过Propel,它看起来不错,但也没有找到一个完整的框架(Symfony文档不是最新的,包含很多错误;我认为Zend看起来太大了……),等等

你是建议我简单地尝试另一个框架并将网站保持在PHP中,还是切换到.Net是一个好主意

这个问题的原因
  • 该系统工作正常,但已经开始减速(因为它有更多的用户)。数据库规范化太多。。。等等
  • 代码还不错-业务逻辑与HTML分离-但问题是控制器在视图中,因此进行一些布局更改越来越困难
  • 没有进行单元测试,进行更改非常“有压力”
  • 系统中没有日志记录,很难获取快照以查看是否一切正常
更多信息(2008年11月3日增补)
  • 我知道.Net 2.0这就是为什么我的选择是.Net而不是RoR
  • 我建议使用另一种语言,不是针对速度问题,而是针对可用的工具/框架
  • 它的速度很慢,因为数据库规范化,太多的表在理论上很好,但在实践中却不行(我们从错误中吸取了教训!)
  • 这是一种爱好,但我认真对待它,因为我从一开始就有25000多名用户注册(并非全部活跃)
这里的人的最新建议 我想我会保留我所做的,并尝试慢慢地进行重构。我感到惊讶的是,大多数投票都是为了保持目前的制度,但好吧:P短期内,这对我来说可能更简单



Thx到nickf,他对我的所有文本进行了拼写检查。

如果你自己制作了整个框架,我建议你升级到PHP5,然后继续。大多数PHP4代码将在PHP5中“正常工作”;例外情况是使用新保留字的代码,以及依赖于PHP4与PHP5不同方式的代码——这意味着PHP4功能边缘的类和引用中有一些东西

根据代码量的不同,留在PHP中可能是个好主意。如果你决定迁移到.Net,这基本上是一个完全的重写。因为您将使用一个完全不同的框架,使用一种完全不同的语言,在一种完全不同的开发范式下,您无法带来很多东西

如果这是一个爱好项目,而你对项目的当前状态感到有点不高兴,我会说:一定要试试.net——出于同样的原因,我建议使用jsp或几乎任何其他可行的语言/平台/运行时:乐趣和体验。即使过了一段时间后,您决定恢复使用php,您仍将保留如何完成任务的“新视角”。另一方面,很难放弃旧的代码和方法。完全重写是很困难的,因为一开始你失去了所有的bug修复、一些小的调整和技巧——回到原点。通常你不会得到完全相同的结果。但是,如果你打算构建一个(改进的)2.0版本,并且想要扩展自己……那就试试新的吧。即使你失败了,至少你可以在你的网站上写点东西:)

编辑:也可以只移植部分代码或在.net中开发新特性,只要能够“承载”两个独立的代码库。
您可能还想研究一下php的.net编译器。(还没有尝试过。)

我强烈建议ASP.NET MVC使用LINQ-to-SQL或LINQ-to-Entities作为ORM。

为什么您只限于这些选择?为什么不试试RubyonRails呢?我有一个内置的ORM

为了响应您的额外信息,从PHP4迁移到PHP5可能是重写您的框架以解决其中一些问题的黄金时期

您也可以利用这个机会增加层间距。例如,您说它有一些减速,可能与过度规范化有关。好的,如果您的框架足够抽象数据访问,那么您应该能够向该层添加一些缓存(例如memcached),而应用程序不需要知道任何事情

您还可以通过同样的努力以一种相当简单的方式添加日志记录。如果使用对象层,则可以将日志添加到通用数据存储中,并免费获得大量日志记录

其他减速可能是由于数据库索引不正确。这与您的框架无关。如果您使用的是MySQL,请打开慢速查询日志并对其中一些日志运行解释。您应该看到哪些列需要索引,而哪些列不需要索引


PHP本身并不是一种慢语言。缓慢将在其他地方出现。:-)

对于一个好的PHP ORM,您应该看看。它似乎更易于安装和编写,并且有更好的文档。编写查询的方法可能会让您想起LINQ

关于,它是大的,但它不是真正相关的;所有组件或多或少都是独立的。它更像是一个库,而不是像Cake PHP或ROR这样的单一框架:

  • 如果您不喜欢,可以使用+
  • 你不喜欢你可以试试++
你可以