PHP和ASP之间的概念差异

时间:2009-09-24 12:45:20

标签: php asp.net architecture

我正在为网站开发一个开源PHP项目,一旦我发布1.0版,我想为使用IIS / ASP.NET平台的网站提供相同的产品。

到时候我会继续学习ASP.NET来进行翻译,但如果两个平台之间存在任何基本的概念或架构差异,那么对我来说将会有所帮助。我想在构建PHP时牢记这些,以使两个代码库看起来尽可能相似,即使语法和库函数名称当然会有很多差异。

我想到了变量/数组类型,常量定义,函数名称空间,HTTP表单和标头处理等内容。任何使得难以并排查看这两个代码库的东西,并且看到每行代码之间的直接关联。

我的PHP向后兼容4.x,所以我没有使用异常处理或对象。

这是否有关于此在线的好文章或逐点?

4 个答案:

答案 0 :(得分:1)

根据您使用的ASP.NET版本,在PHP5和.NET 3.5之间存在令人难以置信的差异。

首先,您需要学习.net语言。

.NET框架将在创建一些交互式组件方面花费大量工作,因此人们可能会期望您正在利用这些,因此页面看起来会有所不同,或者您需要做更多的工作让php看起来像asp.net。

我认为人们的期望将成为这种努力的最大障碍,我同意Matt Lacey的说法,如果有办法让你完成它,你可能只想从那开始,但是,你会想学习C#或VB.NET(我会建议前者)并自己做翻译,以更好地满足用户的期望。

另一个很大的区别是.NET提供了几种创建Web服务的方法,因此您需要在编写时确定哪种方法最适合您的产品。

但是,如果你的应用程序的业务逻辑和视图部分之间有很好的分离,那么视图的设计不应该改变太多。

答案 1 :(得分:1)

PHP和经典ASP之间的差异相对较小,足够小,可以进行一些机械翻译。看一下asp2php,证明它可以在ASP到PHP的方向上完成。

然而,在您的问题正文中,您提到了asp.net。通常,ASP.NET使用名为webforms的框架,该框架旨在使编程Web应用程序更像编程桌面应用程序。这与原始PHP所支持的内联代码非常不同,为了利用ASP.NET,您将不得不放弃您的PHP代码并仅将该应用程序用作.NET端口应如何工作的功能示例。我听说有可能编写更多脚本风格的ASP.NET直接编写响应,但我没有这样做的经验,你会发现它的支持非常小。

简而言之:将原始PHP移植到经典ASP应该很容易。两者都是脚本语言,它们提供对各种HTTP变量和参数的原始访问,并允许程序员直接写入响应。如果您在PHP或ASP端使用框架,那么如果您使用ASP.NET,那么事情将会非常不同。

答案 2 :(得分:1)

只是为了让它脱离我的胸膛:为什么要转换它?在IIS / PHP堆栈上运行相同的代码库应该相当容易。

话虽如此,请查看Microsoft提供的PHP to ASP.NET Migration Assistant工具。

该页面还提供了can be converted(好吧,大多数情况下)的项目列表:

  • 语言迁移
  • 内置功能支持
  • 包含文件
  • ...

以及can't be converted(您必须完全重写的项目)的项目:

  • 动态包含
  • 声明声明
  • PHP函数未在当前脚本中完成。
  • ...

答案 3 :(得分:0)

与其尝试翻译成语言(和堆栈?)而不是我不熟悉我建议您查看http://www.hawhaw.de/之类的内容来为您进行转换/翻译。