从 PHP 迁移到 ASP.NET
简介
本文讨论了从 PHP (PHP:Hypertext Preprocessor 4) 到 ASP.NET 的迁移,并对 PHP 和 Microsoft® Visual Basic® .NET 的基本语法以及基本功能和体系结构进行了对比。
尽管使用 PHP 和 ASP.NET 都可以构建复杂的 Web 应用程序(例如电子商务站点、Intranet 和企业门户),但两者之间却存在若干重要差别。与 PHP 不同,ASP.NET 并不是一种语言或分析器,而是 Microsoft .NET Framework 中的一组用于构建 Web 应用程序和 XML Web Service 的技术。同 PHP 一样,Microsoft ASP.NET 页面在服务器上执行并生成标记(例如 HTML、WML 或 XML),标记将发送给桌面应用程序或移动应用程序。但不同的是,ASP.NET 为开发 Web 页面提供了强大的、面向对象的以及由事件驱动的编程模型,同时仍保留了 PHP 开发人员所习惯的那种简单性。
ASP.NET 应用程序是基于强大的面向对象编程 (OOP) 模式,而不是基于脚本模式。这样便可以获得更为严谨的 OOP 功能,例如继承、封装和反射。虽然大多数基本的简单操作可以轻松地从 PHP 转换到 ASP.NET,但要转换更为复杂的应用程序却并不这么简单,这需要仔细的规划和考虑,并采用更符合 OOP 的方法。
本文假设读者具有 PHP 方面的经验,并且对编程和软件开发有着基本了解。本文首先从代码方面对两者的基础体系结构的差别进行简单比较,并简要介绍一下 OOP 开发模型,然后比较两者的功能,最后将使用 PHP 和 ASP.NET 开发 Web 应用程序时的语法和常见任务作以对比。
注意:如果您希望跳过有关迁移的详细信息,而只想尝试 ASP.NET 的使用,则可以直接跳到建议的后续操作部分。
体系结构对比
阅读完本文后,通过比较语法和语言,您将了解 PHP 和 ASP.NET 是很相似的,它们具有类似的功能和语法。但是,从更基本的体系结构层面来讲,PHP 与 ASP.NET 却有着很大差别。PHP 基于独立于平台的处理器/引擎,该处理器/引擎用于分析 PHP 脚本、提供数据库连接、符合 Internet 协议以及提供大多数 Web 应用程序平台所常见的众多其他任务。
ASP.NET 是基于一系列技术(如 CLR)构建的框架,提供了大量以很好的方式组织的类库,这些类库可满足要在 Web 应用程序中使用的大多数功能的需要。您还可以轻松地创建各种组件,对该框架进行扩展。
虽然 PHP 也提供了类似的功能(例如 PEAR 库),但 PHP 和 ASP.NET 并非完全相同,因为 ASP.NET 框架是完全基于 OOP 模式和 OOP 概念构建的,而 PHP 则不然。这种差别在 PHP 和 ASP.NET 中类和对象的访问方式方面表现得犹为明显。
PHP 和 ASP.NET 中的面向对象编程
虽然 PHP 和 ASP.NET 都为应用程序开发提供了 OOP 模式,但它们对各种 OOP 概念(例如封装和多态)的支持却存在差别。例如,PHP 仅支持部分封装(例如,支持在类中声明方法和字段)和部分多态(没有重载和抽象)。此外,由于 PHP 的类中不存在私有 (private)、公有 (public) 或受保护 (protected ) 函数等概念以及重载,因此 PHP 也不支持这些概念及其访问。OOP 纯粹主义者可能会说,ASP.NET 以及各种语言也没有完全支持 OOP 模式中的所有概念,对于使用 OOP 的大多数语言(如 C++ 和 Java)来说,情况确实如此。
这既有积极的一面,也有消极的一面。消极的一面是:对于某些 Web 开发人员来说,学习 ASP.NET 要比学习 PHP 困难些,因为 PHP 提供的是开发人员创建 Web 站点时所惯用的脚本模式。但是,使用过 OOP 语言和/或 V 的开发人员会发现 ASP.NET 比较亲切且易于学习。