【问题标题】:Conceptual differences between PHP and ASPPHP 和 ASP 之间的概念差异
【发布时间】:2010-12-01 02:01:50
【问题描述】:

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

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

我在考虑变量/数组类型、常量定义、函数命名空间、HTTP 表单和标头处理。任何会让人难以并排查看两个代码库,并看到每行代码之间的直接关联的事情。

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

网上有没有关于这个的好文章或分点?

【问题讨论】:

    标签: php asp.net architecture


    【解决方案1】:

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

    话虽如此,看看微软提供的PHP to ASP.NET Migration Assistant 工具。

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

    • 语言迁移
    • 内置函数支持
    • 包含文件
    • ...

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

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

    【讨论】:

      【解决方案2】:

      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 所期望的那样,那么情况将大不相同。

      【讨论】:

        【解决方案3】:

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

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

        .NET 框架将在创建一些交互式组件时完成大量工作,因此人们可能期望您正在利用这些组件,因此页面要么看起来不同,要么您需要做更多工作才能让 php 看起来像 asp.net。

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2014-08-21
            • 2021-03-08
            • 1970-01-01
            • 1970-01-01
            • 2023-03-25
            • 1970-01-01
            • 1970-01-01
            • 2017-02-02
            • 1970-01-01
            相关资源
            最近更新 更多