• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 白刃之战:PHP vs. ASP.NET(节选)-架构比较

白刃之战:PHP vs. ASP.NET(节选)-架构比较

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了白刃格斗英雄连,白刃战,空手接白刃,白刃头像包,白刃等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
   作者:Robert Lair and Jason Lefebvr Intensity Software, Inc.

  翻译:EasyChen Exlcsoft.com

  概观

  开发界正在进行的一个争论是PHP和ASP中哪一个平台更适合网站开发。这场争论由于微软的ASP.net带来的巨大变化而进入了新时期。和ASP 3.0比起来,ASP.NET采用了全新的设计,有着很多新的特性和优点。究竟ASP.NET 会给PHP和ASP之间的争论带来什么样的影响呢?本文将为你提供这个问题的答案的相关信息。

  架构比较

  PHP

  PHP4.0以Zend Technologies的开源引擎Zend Engine为核心。当用户浏览器向一个由PHP实现的网络服务器发出请求时,这个请求被传给Zend Engine,它将对php脚本进行编译。如果编译顺利, 编译后的代码将被传递给生成发送给客户端的最终HTML代码的Zend Engine Executor。从开发者角度看,PHP 4.0的框架既有优点也有缺点。

  因为PHP是开源的,所以它得到了很多不同平台和web服务器的支持。虽然比以前的PHP引擎大,Zend Engine仍然是轻便和强壮的。作为扩展,PHP也支持面向对象,允许用户建立自己的类和对象。但是,由于某些原因,PHP不是真正的面向对象开发环境。最好的一个例子是类成员函数和属性的作用域。在PHP中,一个类中的所有变量可以从外部读写,这使得类的实现无法隐藏。

  另外,PHP不是强类型语言(就是说,如果你比较字符4和整数4,结果是相同的),这在架构大型程式时带来问题,也使得程式的调试变得困难。使得调试更为困难的是,你甚至不需要声明变量,这和关掉explicit 选项的ASP很像。如果PHP在脚本中遇到新的变量,它只会静静的创建它。

  虽然被认为是宽松的PHP框架的灵活性,不过大概每个开发者在一些情况下都会花数小时去解决由这个特性导致的BUG。对象在PHP中是语言级变量。它们在很大程度上被当作简单变量类型处理。(就像整型和字符型变量一样)当进行像变量赋值和将对象作为参数传递给函数的操作时,整个对象被复制。这将导致低效。另外,不可预知的运行时行为会经常发生。

  PHP缺少一些其它绝大多少现代开发框架拥有的关键元素。其中最重要的一个是结构化异常捕捉。虽然可以给进程错误注册一个error handler,对于语言本身来说并不方便。由于"try . . . catch"错误捕捉的缺席,很多PHP开发者完全忘记了错误捕捉或者在很窄的范围中使用。

  ASP.NET

  ASP.NET的核心是Microsoft .NET框架。这个框架提供了common language runtime (CLR)和类库,ASP.NET就建立在这之上。

  当ASP.NET资源第一次被请求时,高层语言代码(像Microsoft Visual Basic® .NET 或者C#)被编译成Microsoft Intermediate Language (MSIL) code。这个代码将由CLR运行以产生用于网页服务的机器代码。

  ASP.NET强制开发者使用真正的面向对象方式进行程式设计。所有的对象都是真实的OO对象,支持如继承、多态(方法的重载)和封装的特性。

  另外,ASP.NET中的所有语言都是强类型的。举个例子,要比较整数4和字符4,你需要先将变量转换为整型,反之亦然。

  ASP.NET采用事件驱动编程模型,这意味着,代码片断由在程式运行时可能发生的事件联系起来。

  举例而言,在ASP.NET 页面中的Page_Load()事件放置当浏览器读取Web form时将要运行的代码。有很多附加事件和ASP.NET Page object相联系,开发者可以在它们生命周期中的任何时间执行代码。同样的,一个Web form上的各个控件都有一系列可在触发时可执行代码的事件。比如,通过在一个Web form添加一个button,你可以添加一个方法(被叫做一个delegate)来在用户点击button时执行。几乎所有控件都有一个或者多个事件。

  

  你可以访问Microsoft在QuickStart指南中提供的关于Class Browser的例子,可以在http://samples.gotdotnet.com/quickstart/aspplus/samples/classbrowser/vb/classbrowser.aspx在线运行它。

  Easy注:这篇文章译自MSDN,是 白刃之战:PHP vs. ASP.NET 的一部分。文章的其他部分Easy将视事件和精力选译部分。 </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 白刃之战:PHP vs. ASP.NET(节选)-架构比较

相关文章

  • 2017-05-11asp.net网站安全从小做起与防范小结
  • 2017-05-11MVC4 基础 枚举生成 DropDownList 实用技巧
  • 2017-05-11ASP.NET Dictionary 的基本用法示例介绍
  • 2017-05-11asp.net Gridview分页保存选项
  • 2017-05-11aspxgridview CustomButtonCallback 不支持弹出消息提示解决方法
  • 2017-05-11判断WebBrowser浏览器网页加载完成的处理方法
  • 2017-05-11jsp和asp.net共享session值示例代码
  • 2017-05-11ASP.NET网站伪静态下使用中文URL的方法
  • 2017-05-11ASP.NET对无序列表批量操作的三种方法小结
  • 2017-05-11详解Func<T>与Action<T>区别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • DataTable转成字符串复制到txt文本的小例子
    • C#时间格式化(Datetime)用法详解
    • .NET中接口与类的区别浅析
    • Asp.net 获取指定目录下的后缀名为".doc" 的所有文件名和文件路径
    • 用javascript为DropDownList控件下拉式选择添加一个Item至定义索引位置
    • ASP.NET中根据XML动态创建使用WEB组件
    • asp.net gridview列宽固定的几种方法介绍
    • 使用 Salt + Hash 将密码加密后再存储进数据库
    • asp.net URL中包含中文参数造成乱码的解决方法
    • asp.net BasePage类+Session通用用户登录权限控制

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有