webmatrix开发asp.net试用手记

前言
  无可否认,microsoft的重量级开发工具visual studio.net确实为我们提供了一个非常强大、优秀的.net应用系统集成开发环境。但是,使用vs.net也要面对一些问题,比如:vs.net 要付费(当然d版另当别论),vs.net安装比较麻烦,vs.net占用空间很大,对机器要求也较高。因此,采用vs.net来开发要付出比较高昂的使用成本,只有应用于大型的系统开发才有较好的性效比。
  如果仅仅只是要进行中小型的基于asp.net的web应用系统开发的话,是否一定要用强大而昂贵的visual studio.net呢?
  答案是否定的。最近microsoft为开发者提供了一款免费的小巧易用的开发asp.net工具,这就是webmatrix。

图1:
http://www.asp.net/webmatrix
  图1是webmatrix项目的主页,webmatrix起源于2000年12月,微软的工程师完全采用.net framework和c#语言开发的一款免费的轻量级asp.net快速开发工具,可以方便快捷的完成web应用系统的开发。
  webmatrix最突出的特点就是小巧灵活,整个安装文件不过1.3m左右,安装后全部大小也不过2.8m左右,使用它只需基本的.net framework支持就可以了,甚至不需要安装iis,因为webmatrix自带了一个microsoft asp.net web matrix server,可以发布、运行asp.net应用程序。
  走近webmatrix
  l) 安装webmatrix
  webmatrix目前可以支持的操作系统是windows 2000和windows xp,可以从
http://www.asp.net/webmatrix/
免费下载。
  安装webmatrix之前必须先装好microsoft .net framework 1.1和internet expleror 5.5以上版本。安装过程是傻瓜式的,只管一路"next"就行了。安装好后运行可以看到webmatrix的主界面如图2所示。其界面布局与 vs.net有点类似,上部是菜单/工具条,左边是工具箱,提供开发asp.net所需的各种控件工具,右边是工作区管理栏和属性栏,分别用于文件/数据的管理和控件属性的配置,中间是主工作区。

图2:webmatrix主界面

  2) 第一个asp.net程序hello webmatrix!
  首先我们来创建第一个asp.net程序,从file菜单新建一个文件,可以看到一个新建文件对话框(图3)。

图3:新建文件对话框
  webmatrix与vs.net的一个很大不同之处是webmatrix是基于文件来进行开发管理的,而不是象vs.net那样基于项目(project)来管理。这跟webmatrix主要面对的开发项目是中小型项目有关系,小型项目开发相对比较简单,管理没有那么复杂, webmatrix自身的定位只是一个轻量级的开发工具。
  从打开的新建文件对话框中可以看到webmatrix支持新建多种类型的文件,包括.aspx、.sql、.cs、.xml文件等,可以支持三种典型的.net应用开发语言--c#、j#、visual basic.net。选择缺省的asp.net page,并输入要创建的文件名hellowebmatrix.aspx,选择c#为编程语言,即可创建一个空白aspx页面文件。
  webmatrix为每个asp.net文件窗口提供了四种视图,分别是设计视图(design),静态代码视图(html),动态代码视图(code)和全局视图(all),缺省显示的是设计视图。
  从左边的工具箱中的web c ",可以看到按钮上的文本随之变为"问候!",如图4所示。从界面右下区域的属性栏中可以看到该控件的缺省名称为butt

图4:在视图区添加"问候!"按钮
  这样hellowebmatrix程序的可视化编辑就完成了,然后开始编辑代码。
  双击视图区中的"问候!"按钮,可以看到页面视图区由design视图转到了code视图,webmatrix自动为按钮butt butt sender, eventargs e),函数体尚无内容。在函数体中添入一行代码:
"button1.text = "hello webmatrix!"
  整个开发过程就完成了,如图5所示。

图5:为按钮click事件添加处理代码
  点击工具条上的运行按钮

运行程序,可以看到webmatrix弹出一个对话框,询问是采用iis还是自带的web matrix server来运行程序,如果机器上没有安装iis,可以选择其缺省的web matrix server,在端口号中输入一个本机空闲的端口号,比如8000,点击start按钮即开始运行,如图6所示。

图6:选择asp.net应用程序的运行服务器
  运行过程中首先启动了web matrix server(可以看到windows系统托盘区出现了一个

图标),然后从弹出浏览器窗口中可以看到运行结果--页面上出现一个"问候"按钮,点击该按钮后按钮上的文本变为"hello webmatrix!",如图7所示。

图7:hellowebmatrix程序运行效果
  开发数据库访问程序
  动态网页开发中最常见的恐怕就是开发数据库访问程序。webmatrix为开发asp.net数据库访问程序提供了很好的支持。观察一下 webmatrix主界面右上区域的工作区管理栏(workspace),会发现在workspace标签页的旁边还有一个data标签页,这里还提供了一个数据栏(data)

,点击data标签页就进入了数据窗口(data),如图8所示。

图8:数据窗口
  开发数据库访问程序首先要建立数据库连接,点击数据窗口中的添加数据库连接按钮

,可以看到添加新数据库连接项目窗口,如图9所示。

图9:添加数据库连接
  webmatrix可以支持access数据库,也可以支持sql server/msde数据库/桌面引擎,如果是后者的话,可以得到更好的支持,在这里为简便起见,可以选择access database,点击ok,从弹出的对话框中选择一个access数据库,比如access自带的sample数据库:家庭成员地址数据库文件 addrbook.mdb,点击ok后可以看到webmatrix已经在数据窗口中建好了一个数据库连接,从中可以看到数据库中的数据表,如图10所示。

图10:一个建立好的数据连接
  建好了数据库连接后,剩下来的事情就简单了,新建一个asp.net程序文件databaseaccess.aspx,然后在数据窗口中选择一个数据表(比如"家庭成员"表)拖放到页面设计视图上,可以看到页面上自动建立了一个mxdatagrid控件和一个 accessdatasourcec

图11:拖放一个数据表到页面设计视图区后的效果
  此时已经完成了一个具有基本的数据显示功能的数据库访问程序的开发。点击运行按钮运行程序,可以看到页面的显示效果--页面上显示出一张有关家庭成员信息的数据表,可以看到这个数据表还进行了自动分页显示处理,在表格的最后一行是数据分页显示的页码链接,用鼠标点击表格的表头各列,表中数据可以自动按照该列排序显示,这样的数据表已经可以满足一般的页面数据显示需要,而此时你甚至还没有编写一行代码。

图12:databaseaccess程序运行效果
  作为一个数据库访问程序,仅仅有数据显示功能当然是不够的,还需要加上一些基本的增、删、改等交互功能,下面我们为databaseaccess程序加入数据查询功能。
  回到页面设计视图,从工具箱中将webc butt

图13:添加查询文本框和按钮
  此时程序的页面可视化设计就完成了,接下来实现一个按照用户在文本框中输入的成员姓氏查询成员信息的功能(删除、修改功能可以以类似方式实现)。
  在页面视图区中点击底部的code标签页

,页面视图区转到了code视图,可以看到webmatrix界面左边的工具箱中出现了代码向导(code wizard)一栏,如图14所示。

图14:代码向导栏
  可以看到"代码向导"提供了几种基本的数据操作(比如select、insert、delete、update等)代码向导,双击其中的"select data method",可以看到屏幕弹出一个查询代码添加向导对话框,如图15。

图15:查询代码添加向导对话框
  依照该向导顺序操作,
  1) 选择要进行查询操作的数据库(addrbook.mdb),如图15;
  2) 选择要在查询结果中显示的数据项(成员编号、名字、姓氏、角色等),如图16;

图16:选择要在查询结果中显示的数据项
  3) 点击where按钮,选择要查询的数据项和查询条件(姓氏),如图17;

图17:选择要查询的数据项和查询条件
  4) 完成设置后点击next按钮进入查询测试对话框,点击test query按钮进行查询测试,输入编号"赵",可以看到姓赵的成员信息被显示出来,这说明测试成功,如图18;

图18:测试查询结果
  5) 最后设置生成的查询方法的名称(缺省为myquerymethod)和返回类型(缺省为dataset),如图19;

图19:设置生成的查询方法名称和返回类型
  6) 完成设置后回到code视图,可以看到webmatrix自动生成的myquerymethod方法源代码,如图20。

图20:生成的查询方法源代码
  接下来是最后一步,把查询按钮的点击事件与查询方法关联起来。
  点击页面视图区底部的design标签页

回到design视图,双击前面添加到页面上的"查询"按钮,可以看到页面视图区由design视图转到了code视图,webmatrix自动为"查询 "按钮的click事件创建了一个函数--void butt sender, eventargs e),函数体尚无内容。在函数体中添入两行代码:
datagrid1.datasource = myquerymethod( textbox1.text );
datagrid1.databind();
  整个开发过程就完成了,如图21所示。

图21:为查询按钮的点击事件添加关联代码
  点击工具条上的运行按钮

运行程序,可以看到运行效果,页面出现了文本框和查询按钮,在文本框中输入"赵",点击"查询"按钮后,数据表中所有姓"赵"的成员的信息被查出并显示在了页面上,如图22。

图22:程序按姓氏进行条件查询的运行效果
  如果觉得页面中datagrid的显示效果难看的话,可以很方便进行调整修饰。
  回到webmatrix中的程序页面设计视图窗口,点击页面上的控件datagrid1,可以看到webmatrix右下区域的属性设置区中出现了对 datagrid的各种属性设置项,最简便的修饰外观的方法是点击该区域下部的"auto format…"链接,从弹出的自动格式设置对话框中选择一种喜欢的外观样式就可以了,如图23所示。

图23:datagrid的外观设置
  再次运行,可以看到界面显示效果已经自动进行了修饰,如图24所示。 

图24:加入修饰效果后的数据查询程序页面运行效果
  结束语
  至此,相信你已经领会到了webmatrix的强大功能了,回过头来想一想,真有点不敢相信这个东西居然只有2.8m。
  webmatrix在asp.net程序代码处理上与vs.net的不同之处在于webmatrix将程序的逻辑处理代码与页面静态代码放在一个文件中,而不像vs.net那样做到了数据与显示的分离。因此,在程序员与网页美工的配合上会麻烦一点,但对于开发中小型系统来说,这并不是很大问题。
  总而言之,webmatrix是一款小巧灵活、功能强大的基于web的asp.net应用系统开发工具,虽然相对vs.net来说它还是一个非常轻量级的开发工具,但其自身相当有特点,很多功能并不逊于vs.net,对于中小型的系统开发来说它是一个不错的选择,而且最重要的是--它是免费的。