php与asp.net的区别

2024-12-02 12:06:40
推荐回答(5个)
回答1:

1. PHP, Hypertext Preprocessor, 动态网页开发语言。
PHP,Hypertext Preprocessor,最初在95年问世(那时以前叫Personal Home Page)。PHP最初是制作动态网页的服务器端脚本语言,但

现在PHP已经可以作为command line运行有GUI的standalone的程序。现在是PHP Group在开发和管理PHP的规则,功能等。但PHP大都用在

dynamic webpage scripting上,好象没听过谁用它开发desktop application。

PHP使用率是制作动态网页的几种语言(JSP,ASP,ASP.NET, ColdFusion, Ruby, SHTML)中最高的。因为PHP在95年已经问世至今,以有

相当数量的开发者。我们熟知的国际权威百科全书Wikipedia有90%用PHP写的,而且国外流行多年的“校内网”FaceBook 也全部用PHP写

的,同时Yahoo, Sony官方,Pepsi百事官方这些网站都是用PHP的。根据维基百科(Wikipedia)的说法,PHP被超过20,000,000的网站所

用,被超过1,000,000的网页服务器所用。目前到2008五月,PHP最新版本为5.2.6。

PHP不仅使用率高,而且能兼容各类平台。它可以在大多数网页服务器上运行(如:MS IIS,Apache),大多数操作系统上运行(如:

Windows, UNIX, Linux)。而且PHP支持很大多数牌子的数据库:MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Gerneric

ODBC等。

结构方面,虽比JSP,ASP.NET差点,PHP也有很多Framework可用。微软的ASP.NET结构是出名的,JSP的MVC结构也很厉害,所以开发大网

站ASP.NET,JSP都很快。而PHP Group也为此付出很大努力,来开发自己特有的结构适应不同类型的大网站的需求。常见的PHP的

Framework有:CakePHP, PRADO, Symfony, Zend等。

另外LAMP结构,是PHP最常用的开发模式,即是配合Linux, Apache, MySQL, PHP,合称LAMP。

2. ASP(Active Server Pages), ASP.NET 两个分别是 动态网页开发语言,动态网页开发语言和结构
(1) 关于ASP的淘汰
ASP, Active Server Pages已经过时了, 但因为其出现的早,96年就有了,所以现在有些中小网站还用(但,使用最多最广的是PHP,最

初于95年现世。ASP是微软第一代动态网页开发语言,只能在Windows系统 + MS IIS服务器平台下运行。

Wikipedia, Facebook, 百度等都用PHP,PHP学习的简单度和ASP差不多;JSP稍微难点,JSP用的一般都是银行,购物等安全性较高的网站

,Google也用JSP)。但随着开发者的各种需求,ASP以后可以被ASP.NET取代,因为微软停止对其的一切技术维护与功能更新。ASP.NET是

革新版本的ASP(注意是“革新版本”,而非“改进版本”),或者说是完全新一代的Dynamic Web Scripting。

ASP代表着传统的dynamic web scripting,与ASP.NET没什么关系,学了确实也没用。因为ASP不象CGI(Common Gateway Interface),

CGI是动态网站制作的始祖,所有ASP,JSP,PHP什么的都根据CGI演化而来,而且ASP,PHP,JSP都包含了些 CGI的东西;而ASP却没有被

衍生出任何新技术,ASP.NET也不算基于ASP,只能说ASP.NET开发理念,library,功能完全是基于.NET的其它组件。

其实PHP,JSP,ASP明白其中一种,其它的都很容易学会了。如果非要学学传统的dynamic web scripting,那就学学PHP吧,不比ASP难,

但比ASP功能多,稳定性好,PHP5运行速度也比ASP快很多(JSP稍难因为要学点 Java)。学了PHP或JSP什么的,对学ASP.NET有好处,而

且还可以直接用PHP,JSP进行开发。去google差差英文资源,有评价PHP 最好的,有评价JSP最好的,还从没有听谁说过ASP最好。

ASP.NET毕竟在.NET中,所以ASP.NET还是有相当地位的。

(2). 关于ASP.NET的优势
ASP.NET是微软.NET Framework的一部分。伴随.NET 1.0在2002的问世,ASP.NET也出现在动态网页开发语言的家族中(与

PHP,JSP,ColdFusion, Ruby, SHTML等并行了)。

功能上,ASP.NET比ASP有更强大的library, 更好的稳定性。 ASP.NET可以使用.NET Framework中所有组件(也就是说.NET能实现的,

ASP.NET一样能实现),功能上显然强大于传统功能单调的ASP。最强的技术支持Web Service, 而且有.NET的所有library做后盾。而且

ASP.NET 在.NET 3.5中还有微软专门为AJAX开发的功能--ASP.NET AJAX。

结构上,传统的ASP把所有代码混为一团,简单的用<%%>把HTML和VBScript(或JScript)分开,实现动态输出 HTML。因为ASP.NET模仿

JSP的MVC网页结构,微软为ASP.NET开发了自己的Code-Behind结构,将 presentation(文件拓展名:.aspx)和business logic(文件拓

展名:.cs或.vb等)分离。同时Code-Behind模式也实现了让ASP.NET开发者用.NET中最普通Winform的开发模式来开发网站,方便非网页开

发者制作动态网站。所以ASP.NET更容易维护,比ASP更适合于Enterprise Level 的大网站开发。

由于ASP.NET比JSP,PHP等更接近于.NET Winform的开发。如Tree View, Datagrid View(即高级Table)等高级UI,都可以直接用

ASP.NET中的Web Control来实现,这比传统的使用JavaScript + XTHML + CSS的DHTML开发方式简单不少,也更好维护。同时ASP.NET开发

这可以定义自己的User Control,制作自己特别的一种UI(如网站LOGO,版权等部分),而且此User Control可以被存为.ascx文件,方

便让每一页(.aspx)来使用。

运行速度上,ASP.NET模仿了JSP的预编译机制(Pre-Compile)。使编译好的代码(MSIL语言)在网页服务器上运行。这样比传统的ASP,传统

PHP(PHP4以前版本)更快,因为传统的ASP是直接运行开发者写的Script,相当于每运行一次,就得编译一次那么慢。 ASP.NET可以用

VB, C#, J#等所有.NET Framework的语言开发.(但其实每种语言做的东西都一样... 就象山东话, 东北话, 写出来都是中文:)

不过ASP.NET对出学者可能有点难. 因为它其实在模拟desktop application development,即Winforms开发的模式, 不象传统的JSP,

PHP, ASP这样容易明白。传统的Dynamic Server Scripting, 象PHP 5, 这是现在最简单的, 最有效的了。( 那个JSP也不难. 如果有钱

还可以考虑下Adobe ColdFusion。)

ASP.NET的新潮的Dynamic Server Scripting, 在其带动下SUN也推出自己的JavaServer Faces (其实是拓展JSP,但JSF无法取代JSP), 和

ASP.NET很象, 也有很多Web Control(JTable, JTree),同时JSF也曾强了对WEB SERVCIE的支持, 也很适合ENTERPRISE LEVEL 的网站。

(3). ASP与ASP.NET的优劣总结:
-- ASP已经被微软停止更新;ASP.NET却在.NET(1.0, 2.0, 3.0, 3.5)中突飞猛进;
-- ASP在96年出现,并没有引领一个潮流,PHP,ColdFusion都出现于95年,引领了整个潮流;ASP.NET引领新的动态网站开发潮流,SUN

的JSF(JavaServer Faces)就是与ASP.NET极其相似;
-- ASP大多被用在是中小网站;PHP被Wikipedia, Facebook, 百度所用,JSP被GOOGLE所用;
-- ASP不支持Web Service; ASP.NET支持Web Service。要是了解.NET中的Web Service在大组织系统中的重要性,就能立杆见影的看出差


-- ASP开发AJAX比较麻烦;而ASP.NET专门用AJAX控件,更方便。要是了解Web 2.0,那么AJAX是什么地位,就不用我说了吧。
-- ASP.NET模仿JSP,是pre-compile的;ASP不compile,直接运行Script的速度显然没有compile之后的快。
-- ASP.NET的唯一缺点,就是开发用的IDE--Visual Studio Professional比较贵(express版免费的功能太少);ASP的唯一优点是,其

学起来最简单,跟PHP一样简单,比JSP简单,更比ASP.NET简单几倍。

3. .NET Framework
.NET Framework的概念就大了。.NET Framework是微软开发的一种软件开发技术。主要用来开发MS Windows系统上的各类软件。.NET主要

包含一个庞大的library(解决常见编程问题)和一个virtual machine(管理程序的运行)。可以说Windows是微软的命根:),所

以.NET就是微软占领软件市场的关键。

.NET Framework的library叫做BCL, Base Class Library,包含了在各种领域的大范围的编程需要,如user interface用户界面,data

access数据接入,database connectivity, cryptography, web application development网站开发,numeric algorithms数学计算,

network communications网络交流等。开发者利用各种BSL来构成自己的代码,进而开发出多样的应用程序。

.NET写出的程序在CLR, Common Language Runtime上运行。CLR是一个application virtual machine来帮助运行开发者写的程序。CLR提

供很多重要功能,如:security安全,memory management内存管理,exception handling错误控制。

BSL,CLR构成了强大的.NET Framework。

.NET Framework主要安装在Windows Server 2008, Windows Vista。小版本的.NET Framework还安装在Windows Mobile系统上。但是家用

Windows XP等系统一样可以安装.NET Framework来运行用.NET写的程序。

平时在学校学习,通常学习.NET中的三个主要技术:Winforms(桌面应用程序开发,就是平时普通程序如QQ,Skype可以用它,但其实QQ

用C,C++写的), ASP.NET(网页,平时在IE,FireFox上看的网页可以用它), ADO.NET(接入数据库,处理相关数据)。但.NET不是一种

语言。写.NET程序可以用任何.NET支持的语言,如:C#, VB.NET, J#等等。明白其中一种就可以了。

.NET概念挺大,东西也非常非常多。与之相似的技术有SUN的Java技术(分三个技术部分Java SE, Java EE, Java ME)。

回答2:

php 跨平台,Linux/Unix、Windows 都能用。(LAMP是最佳组合)
ASP.NET 只能用在 Windows 平台。

php 基本没有“可视化”的开发环境(IDE),最然有 Zend Studio 和 Eclipse 的 PDT 等开发环境,也不是太好用,个人认为用文本编辑器就足够。
ASP.NET 有开发环境 Visual Studio,可视化,组件方式,熟悉了开发效率可能比较高。

用 php 开发的网站数量远远多于用 ASP.NET 开发的网站。

回答3:

1楼的回答太幽默了。。(呵呵,也的确是这样)

要说PHP和ASP.NET的最大区别就是前者比较开源(所谓开源,就是公开,免费的,广大的社区受好者开发出的网站开发设计语言),后者是闭源的(ASP 是一项微软公司的技术,技术专属微软公司)。。

我个人到是很喜欢PHP,鄙视ASP.net。。PHP相对于ASP.net来说十分便捷,学习简单,相对于其他语言,编辑简单,实用性强,更适合初学者。。学习资源也丰富,因为是开源的,有很多人可以请教和帮助。。

至于ASP.net,我就不想多说了。。不喜欢。。

如果说要从安全性、发展性来比较两种语言的化,我认为PHP的安全性和发展性优于ASP.net。因为它是开源的,有广大的社区爱好者进行维护、更新,而ASP.net只有微软人才维护、更新,难免有局限性,不全面。。

我强力推荐多学习学习PHP,ASP.net略约了解即可。。

回答4:

php是3个字符.
asp.net是7个字符.

回答5:

开源代码的意思,ASP是开源的,无论编辑什么样的网页基于编辑上是跟收费无关的,但是发布的版权会引起问题而已,一般的小站不会出现这个问题,所以你完全没必要担心,但是有的空间不支持NET语言编辑的网页,建议用ASP或者PHP来做