动态网站Web开发用什么语言好?PHP、ASP还是ASP.NET。这是一个经常被提出的问题,并且它很容易把人们带入争论Linux还是Windows的歧途。这样的争论事实上反映出了对于相互竞争的Web开发技术要进行并行分析是多么困难的一件事情,而这一难度同时因为开发人员对任何可比较操作系统的不同意见而大大增加。

我们来看看每一项技术对于特定Web开发以及运行环境所表现出的优势。尽管ASP和PHP的相似程度大于其中任庖恢钟階SP.NET的相似程度,我们还是要讨论ASP.NET。原因是开发人员常常将其与ASP相混淆,并且在微软的努力下ASP.NET的确会在将来完全取代ASP。

基本理论——特点概述

ASP——动态服务页面(Active Server Pages)

微软将ASP引入Windows NT Server 4并将其作为IISWeb服务器下的动态Web应用程序的默认使用平台。由于它使用VBScript(VisualBasic语言的一个分支),ASP立即被熟悉Microsoft IDE——VisualStudio编程的开发人员所追捧。随着脚本语言的不断发展,研究人员对ASP并没有引入太多功能使之加入到技术竞争的行列。因此,在PHP中可以看到的诸如图像操作等功能没有集成到ASP中。但开发人员仍然可以通过DLL文件的形式编写(或者安装)第三方COM对象来完成类似的工作。在服务器自身允许的情况下,通过这种方式可以编写代码来完成任何动作。当然,造成的缺陷是这将导致为了配置这些服务开发人员不得不与桌面系统进行交互——对于Web开发人员来说这项功能并不是必须的。

ASP的优势是在企业环境中微软服务器几乎无处不在。此外,MS SQLServer同样具有广泛的市场,并且能很好的支持ASP(这并不会让人感到惊奇)。尽管事实上通过ODBC可以兼容任何数据来源,但SQLServer以及文件DSN访问(file DSN access)可以在代码一级得到实现

PHP——超文本预处理器(Hypertext Pre-processor)

PHP是开放源代码服务器端的脚本语言,在语法上同C语言非常类似。尽管最初是被设计用于基于Linux的Apache Web服务器系统,现在的PHP已经被移植到了任何操作系统并兼容任何标准Web服务器软件。由此也可以得出PHP的三大主要优势。首先它是跨平台的技术,因此PHP应用程序可以被方便的移植——当然这还要取决于诸如厂商特定数据库等需要集成的额外组件。这样的可移植性还带来了另一方面的优势,即绝大部分的Web主机提供商都会支持PHP,因此根据需要更改主机将会非常方便。

第二点,由于PHP同C编程语言有很多相似之处,对于熟悉相关语法的开发人员来说,PHP则非常容易上手——这种语法同样在Java、JavaScript以及Perl中得到应用。第三,由于是开放源代码产品,PHP将继续快速发展,更为重要的是相关漏洞补丁将免费的定期植入到核心库中。

此外,在一些特定的编程需求下,PHP对于开发人员显示出了更为诱人的吸引力。首先,PHP有内建库支持对于图片及PDF文档的直接创建和相关操作。这意味着当一个应用程序调用包含有anti-aliased类型文本的动态创建菜单图像,或者是需要导出Acrobat格式页面时,PHP都将是解决此类问题的理想技术。尽管这些功能在理论上也可以通过其他与PHP相竞争的技术获得,但往往其他技术需要安装第三方自定义组件才能实现。

另一点使得PHP成为编写服务器脚本最佳选择的是在处理连接mySOL或者Postgres数据库一类的问题时PHP的良好表现。尽管对于mySOL或者Postgres数据库的访问可以通过ASP技术借助ODBC连接来实现,但这常常需要系统管理员进行额外的配置。幸运的是,这点限制在ASP.NET中得到了改正,当需要建立类似于使用MSSQL Server的直接数据库连接时可以通过mySQL提供数据。

ASP.NET

是选择ASP还是PHP的争论正在随着.NET的崛起而越来越显得多余。的确,过去长达数年的争论将随着是选择Java还是.NET技术(或是两者)答案的揭晓而终结。ASP以及ASP.NET的唯一联系是二者都使用VBScript。而单独就.NET而言,它可以使用VBScript以及其他大约20种语言。

对于ASP以及PHP来说,将ASP.NET看作是另外一种语言的原因是它运行在完全不同的构架之上。前者是翻译脚本语言,而.NET则是经过编译的framework。这就意味着首先Web页面的运行速度将会有极大提高。同时,源代码更加安全且更为健壮。此外,ASP.NET给Web编程带来了新的理念——即“code-behind页面”的思想。按照code-behind思想,每一个HTML页面都是由自身经过编译的程序化指令进行驱动。因此,HTML——或称之为表现层——很大程度上脱离了应用程序的商业逻辑。尽管这样的分离也可以通过PHP和ASP来实现,但这并非同ASP.NET一样属于自身技术的主要部分。

ASP.NET的另一好处是它完整的集成了对XML以及Web服务的各种支持。对.NET而言可以使用非常广泛的安全以及密码系统库,这对于金融机构和企业数据应用程序尤为有用。就缺陷而言,即使是具备丰富经验的开发人员也会发现使用.NET可能把自己搞糊涂。不考虑开发者对于所使用的编程语言的熟悉程度,对于Web开发人员来说,在程序范例方面难度的大幅提升可能会成为他们融入ASP.NET的主要障碍。对ASP.NET应用程序来说主机同样是个问题,ASP.NET并未同ASP或者PHP一样获得了主机提供商的广泛支持,无法在同一级别上展开竞争。

动态网站Web开发用什么语言好?PHP、ASP还是ASP.NET相关推荐

  1. 自学Web开发第十四天-基于VB和ASP.NET;丰富数据呈现:TreeView控件的使用及与GridView控件联动,深入研究从GridView中取数据

    自学Web开发第十四天-基于VB和ASP.NET:丰富数据呈现:TreeView控件的使用及与GridView控件联动,深入研究从GridView中取数据 GridView操作数据库后,刷新TreeV ...

  2. web开发的java语言步骤_java web开发入门一(servlet和jsp)基于eclispe

    servlet 用java语言开发动态资源网站的技术,在doGet方法中拼接显示html,在doPost方法中提交数据.类似于.net的ashx技术. servlet生成的class文件存放在tomc ...

  3. 动态网站设计与开发学习第三周体会

    这学期开始接触了动态网站的开发和设计,认识到以前学习静态网站的弊端(静态网站无法实现搜索.购买.登录等交互功能,无法对静态页面的内容进行实时更新) 认识并学习web项目开发 web(World Wid ...

  4. 开发动态网站所需的构件

    开发动态网站所需的构件 动态网站的开发不同于其他的应用程序开发,它需要有多种开发技术结合在一起使用.每种技术的功能各自独立而又要相互配合才能完成一个动态网站的建立,使用我们需要掌握以下Web构件,才能 ...

  5. html是面向对象的开发语言,Web开发常用的6大编程语言和优势

    Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色,所有用户终端产品与视觉和交互有关的部分,都是Web前端工程师的专业领域.Web开发常用的6大编程语言和优势你知道多少,北大青鸟的老师带您 ...

  6. web开发语言大盘点

    Web 开发与设计语言的层级 Web 语言按层级分,传统上是这样分的,标记层(HTML),修饰层(CSS),客户端脚本层(JavaScript),服务器端(PHP,ASP.NET).如果按功用分,参看 ...

  7. java web 开发——第一章jsp简介

    目录 前言 1.1 JSP的概念? 1.2 安装和配置JSP运行环境 1.2.1 下载tomcat9.0 1.2.2 下载安装jdk并配置jdk环境 1.2.3 测试tomcat是否安装成功 1.3 ...

  8. 【Asp.net入门01】动态网站基础知识

    本节将介绍: 网站搭建流程 动态网站相关基础概念 网页的访问原理 使用浏览器访问网站是我们几乎天天在做的事情.以前我们只需要关注网页内容,作为网站开发人员,从现在开始我们要关注更深层次的东西了. 1. ...

  9. 什么是静态网站?什么是动态网站?

    什么是静态网站?什么是动态网站?对于从没有接触过网站建设的朋友来说,这个问题还是没有真正的了解,许多朋友至今还认为动态网站就是网页中有flash动画,即会动的东西,才是动态网站,这样的理解是会被人当作 ...

最新文章

  1. 数字图像处理——第九章 形态学图像处理
  2. Burp Suite入门笔记
  3. php 调用系统命令 执行外部程序
  4. MySQL 使用 OR 条件导致索引失效
  5. python基础(part14)--异常处理
  6. ADFS 登录页面自定义
  7. 正月初六 | 2月17日 星期二 | 快手体育拿下斯诺克赛事版权;华为推出“智慧养猪”方案;春节档总票房突破60亿元...
  8. android编程设备信息,Android获取当前手机设备信息工具类详解
  9. 程序员该面向运维,还是面向开发?
  10. 让《强化学习(第2版)》架起一座通往强化学习经典知识宝库的桥梁
  11. 修复ipad提示无法连接到服务器,修复无法连接到iPad的App Store
  12. 许奔创新社-第38问:如何练就跨界打劫的本领?
  13. 更换浏览器标题栏图标
  14. Detectron 创建blob的过程
  15. 干货!图像集分类大杀器--混合黎曼度量学习
  16. 使用vue-admin-template搭建简单增删改查导入导出项目及CentOs服务器部署
  17. 纯Asp实现微信支付
  18. C# 操作Word书签(二)——读取、替换Word书签
  19. 部暑nginx digest auth
  20. 为什么要给网桥分配IP地址

热门文章

  1. webapi 初识 net
  2. 如何修改opencart的模版适合为mycncart系统使用
  3. nyoj 239 月老的难题
  4. 老鸟对菜鸟的一些建议
  5. StreamingAssets文件夹的读取异常
  6. jquery ajax缓存问题解决方法小结
  7. pytorch实战从入门到精通第二部分——卷积神经网络
  8. Python正则表达式总结
  9. java+tableseg,多种功能集成,带Refresh刷新的tableV,Seg分段控件
  10. 大数据城市规划 杨东_空头转多!前期大比例减仓的私募,目前开始加仓