前天晚上,我在微软技术社区打算看看CodeRush的重构性以及用法,却发现了一样新的东西,名叫WebMatrix。

我是个爱尝新的人,就迫不及待的进行了安装,并开始根据微软社区的教程进行WebMatrix的学习。

经初步了解,WebMatrix确实能让Web网页开发变得更加简单,而其也所使用了一种新的视图引擎,名叫Razor。

虽然我也初步学过MVC的一些概念,View代表视图,对视图的认识我仅仅限于此。

在WebMatrix中,Razor语法使得程序更富有可读性,跟我们学习的面向对象编程语言很类似。

有点JavaScript的感觉,因为都是支持Var弱类型的,语法完全兼容C#,可以对比着学习。

其最明显的标志为@,既可以声明变量,也可以声明代码段,类比(<% %>).

下面就让我来介绍一下我自己初步学习Razor的一些用法。

1.变量声明

   @varibleParm ---可以直接作为变量输出

2.代码段声明

   @{

            var db=Database.Open("MyDataBase");

            var sqlQuery="select * from YaziTable";

            var data=db.Query(sqlQuery);

       }

      以上代码声明了一段数据库查询代码

      如果要输出查询的数据,比如说遍历数据

3. 遍历数据

            @foreach(var row in data){

             @row.ColumnName    ---可以直接访问每一条记录的字段

             //定制格式输出

             }

下面让我们来看看WebMatrix的请求页面过程:

1.浏览器向服务器请求某个页面,例如movies.cshtml

2.服务器先检查目录下是否存在_PageStart.cshtml文件

   该文件如果存在,则每次请求页面,都会先调用该文件。

   该文件主要是告诉请求的页面布局的位置(其他用法尚未学),目前主要是Layout布局为主。

   文件的呈现类似如下:

   @{

             Layout=“~/_siteLayout.cshtml”;

        }

      既告诉页面的布局应该去_siteLayout.cshtml文件中读取。

3.若存在,来到布局文件_siteLayout.cshtml

   输出该文件中的内容,当碰到@RenderBody()时,则把movies.cshtml中的内容替换到@RenderBody()的位置并组合起来输出。

   最后的输出内容,既原来的布局文件内容,加上请求的内容。A(START)+B(BODY)+A(END)模式。

4.页面呈现,传送组合的内容给浏览器并进行呈现。可以观察到,浏览器的地址的页面后缀名为CSHTML,而不是HTML。

以下为使用WebMatrix编写的页面,加上了CSS的效果,蓝色区域即为@RenderBody()替换的区域。

我们可以查看源代码,发现和普通的HTML文件一样,因为都是在服务器转换为HTML才输出到浏览器。

WebMatrix调试时,我选择的是IIS Express,轻量级的服务器,也可以选择IIS的。

WebMatrix编写的页面

在我初步的尝试之中,给我感触最深的是把页面的呈现内容以组合的模式组合起来。

比如说定制PageHeader和PageFooter,而把页面的中间内容分离出来,这样在日后维护过程中,可以只修改中间内容,而不需要整个改变。

我想,这应该称为“分离模式”,分分合合,最后总会组合在一起。

以前母版页的概念,很容易在WebMatrix中实现,更改的只是中间内容而已。

这只是我初探Razor和WebMatrix,还有很多待学习的地方,继续学习...

作者: sssmiling 发表于 2011-08-04 00:05 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"