WebMatrix提供了一个独立的工作窗口,其中包含了在Windows下开发Web程序时要使用的全部栈。如果对“栈”(stack)这个术语不是很理解,不要着急,我们慢慢来。一个Web栈,简单说来就是要运行一个站点时所需要的所有组件的集合。这些组件大体包括:操作系统、Web服务、数据库、程序运行所依托的运行时和程序框架等。
一个典型的Web栈如图所示:
在栈的最底层是托管的Windows操作系统,但在其之上,WebMatrix则提供了让你选择自己所喜爱的技术的机会,比如:
- 程序框架:ASP.NET Web Pages,ASP.NET或PHP
- 数据库:SQL Server Compact,SQL Server或MySQL
- Web服务:IIS或IIS Express
下图阐释的更为详细:
现在这些选项看上去有点晕,别急,一旦使用了WebMatrix,这些选择将变得非常直观了。
你也许发现了在上图中我们把ASP.NET Web Pages和ASP.NET当成了不同的元素来处理。尽管ASP.NET Web Pages是ASP.NET框架的一部分,我还是把它们直接分离对待了。因为在WebMatrix 1.0中你将有效的利用它们的差异。你可能在从模版创建一个新程序时首选使用ASP.NET Web Pages框架;你可能会在使用到开源程序时触碰到ASP.NET了,这些开源程序已经用ASP.NET写好了——具体有ASP.NET Web Forms和ASP.NET MVC两种技术。虽然它们被区分列出来了,但是当你需要使用某种技术或代码时是没有什么分别的,因为在ASP.NET Web Pages和ASP.NET之间迁移代码是非常容易的。
再有需要注意的是不同的框架和数据库之间的链接。不是所有的框架都能支持每种数据库的(实际上只有ASP.NET范畴内才能支持所有三种数据库的),所以在利用WebMatrix创建程序时一定要在脑子里有这根弦儿。
注意Web服务被描述成IIS或IIS Express。IIS是微软的全功能Internet信息服务器,与之相比,IIS Express是功能简单的、轻量的、只使用在开发机器上的Web服务器了。
总的来说在开发程序时,你将用到大致如下三种栈的组合形式:
- ASP.NET Web Pages栈:从模版创建站点时用到这种模式。
- ASP.NET栈:一般你基于一个现存的、开源的ASP.NET程序(比如:BlogEngine.NET或Umbraco)来创建站点时用到这种模式。
- Windows下的PHP栈:一般你使用一个开源的PHP程序(如Wordpress)来创建站点时会应用这种模式。
ASP.NET Web Pages栈
下图标示出ASP.NET Web Pages的WebMatrix栈:
在这种情况下,你在建立站点时会使用到HTML,CSS和JavaScript。当你需要动态的或数据驱动来运行代码时,将使用到ASP.NET Web Pages框架。
请注意ASP.NET Web Pages也可以和SQL Server一起良好运行,但是一般情况下使用SQL Server Compact就可以了。后期我们可以提升到全功能的SQL Server上去。
ASP.NET栈
典型的ASP.NET栈如下所示:
ASP.NET有足够的弹性来处理任何我们之前讨论的数据库,但是最经典的是使用SQL Server数据库,我们则更多的展示SQL Server Compact数据库。比如Orchard CMS就直接支持SQL Server Compact,并且有更多的程序在不断的支持这种数据库。另外,ASP.NET程序通过连接器是可以使用MySQL数据库的。
基本上,如果你想拥有大型的、可伸缩的、安全可靠的站点,那么这种模式非常适合你!但如果你只是一个刚刚上路的Web开发学习者,又或者你只想快速发布一个简单的站点,那么你最好以更为轻量的ASP.NET Web Pages栈来起步,而且当你想提升它时也可以随时方便的迁升到ASP.NET栈模式。
Windows下的PHP栈
在WebMatrix中也可以使用PHP来做开发的:
应用程序使用PHP栈模式时一般也使用典型的MySQL作为数据库,但是PHP也是可以使用SQL Server作为数据库的。