与专家一起畅谈ASP.NET与PHP的未来(图)
单纯通过对比两种开发工具,是没有任何意义的。因为二者在自己的开发领域各有所长,就好像Java对比.NET,各有优势。本文主要的目的是通过比较ASP.NET与PHP,让大家更清楚的看到二者的区别,以便于大家选好适合自己的开发工具。
我日常工作使用的是ASP.NET,前一段想学习了解一下其他的网络应用开发技术,本可以选择热门的Ruby on
Rails或者Python,但是无奈精力有限,想都学是不可能的,而我的博客建在WordPress上,WordPress是用PHP写的,所以还是选
择多花些时间了解PHP。
PHP和ASP.NET最大最本质的区别,就是PHP只是一门编程语言,而ASP.NET是一个平台。
这世界上大约1/3的网站的应用程序是用PHP写的,这些PHP程序又大部分运行在Apache上,作为一门语言,PHP并不是必须运行在
Apache上,PHP是独立于运行平台的,它也可以在IIS里运行。与PHP相反,ASP.NET是一个平台而不是语言,ASP.NET的程序可以用
C#写,也可以用VB.NET写,可以用任何能够编译成在.NET
CLR上运行的的编程语言来写,ASP.NET通常运行在Windows+IIS上,但是也可以运行在其他Web Server比如Apache上。
从这个意义上说,PHP和ASP.NET的区别,就好比是iPhone和Windows 7的区别,不是一样的东西,但是你选择了其中一个,就等于选择一种风格。
但是作为开发网络应用的工具,就我的体会,在功能上还有两个显著区别。
Share-Nothing Architecture
PHP的哲学是Share-Nothing
Architecture,每次对HTTP请求的处理都是独立的,不共享任何数据,如果真的需要共享的话,那也是通过文件系统或者数据库,在PHP的运行
空间中不会共享内存对象。这篇关于Share-Nothing Architecture的文章非常详细地介绍了Share-Nothing
Architecture,这种架构能够带来更好的扩展性(Scalability)和可维护性(Maintainablity)。
使用ASP.NET一样可以实现Share-Nothing
Architecture,问题是,ASP.NET一族的编程语言特性让打破Share-Nothing
Architecture太容易了。比如,C#语言中的static变量,如果使用的话,同一AppDomain的每个HTTP请求都Share同一数
据,这样就不是Share-Nothing了。
Asynchronous Programming Model
ASP.NET有一个功能是PHP不具有的,Asynchronous Programming Model(APM),异步编程模型,这一模型可以更有效地利用线程,提高Scalaibility,当然,写异步的程序要比写同步的程序困难得多。
PHP没有ASP.NET一样的Asy
相关文档:
http://www.521000.com/bbs/dispbbs.asp?BoardID=9&ID=1236357
PHP环境搭建
Apache的安装与配置
一、Apache的安装
1.从Apache的官方网站下载安装软件:http://httpd.apache.org/download.cgi,目前的最新版本是apache_2.2.11-win32-x86-no_ssl.msi。
2.打开我的电脑,进入D盘,在其下新建一个文件夹,名为 loca ......
php邮件读取:
程序开发的思路:mail文件:先连接到pop3,读取用户的邮件列表,判断邮件是否读取过,如果没读取过就把邮件加到中转的数据库中。get_mail()函数,读取数据库中的邮件列表,读完后对数据库进行清除。以便能一直读取的都是新的邮件。
代码程序:mail文件:
header("content-type:text/html; charset=utf-8 ......
近日因公司开发需要,在本机Win7下架设了Apache+MySql+PHP
所使用PHP版本:PHP5.3.0, 之后发现无法连接mysql数据库,均报超时错误:
PHP Warning: mysqli::mysqli(): [2002] A connection attempt failed because the connected party did not (trying to connect via tcp://localhost:3306) in xxx.php on line x
PHP Warni ......
smarty作为PHP的模板,实现了前台美工与后台逻辑的分离。前一段时间简单地学了一下,把其安装于配置以及内部的语法来简单总结一下。然后要设计一下电子商务系统。
smarty压缩包解压后,在libs文件夹下,有2个目录和4个文件,2个文件夹分别是internals和plugins,4个文件依次是debug,smarty.class,config_file.class,smarty ......
这里主要谈谈Application类中的事件
由前一篇文章可以知道,一旦出现了HttpContext类的一个实例,HttpRuntime类就会建立一个ASP.NET应用程序对象来完成该请求。一个应用程序包括HttpApplication类的一个实例。HttpApplication是一个global.asax派生的对象,处理所有被传递给某个虚文件夹得Http请求。一个正在 ......