从项目经理的角度看.net的MVC中Razor语法真的很垃圾.

我们知道,Razor语法中我们可以直接使用@if(){}等代码段,这使得.net程序员在写模版时更容易了.

对比如下:

语法名称

Razor 语法

Web Forms 等效语法

代码块(服务端)

@{ int x = 123; string y = "test."; }

<% int x = 123; string y = "test."; %>

表达式

encode:<p>@model.Message</p>

no encode:<p> @Html.Raw(model.Message) </p>

encode:<p><%:model.Message %></p>

no encode:<p><%= model.Message %></p>

 

结合文本和标记的循环

 

@foreach(var item in items) 

  <p>@item.Prop</p> 

}

 

<% foreach(var item in items)

 { %> 

  <p><%:item.Prop %></p>

 <% } %>

 

代码和文本混合

 

@if (foo) { <text>Plain Text</text> }

 

@if (foo) { @:Plain Text is @bar }

 

 

<% if (foo) { %> Plain Text <% } %>

 

服务器端注释

 

@* This is a server side multiline comment  *@

 

<%-- This is a server side multiline comment --%>

 

调用一个方法

 

@(MyClass.MyMethod<AType>())

使用括号来明确表达是什么.

 
 

混合表达式和文本

 

Hello @title. @name.

 

Hello <%: title %>. <%: name %>.


总结:从程序员的角度去看Razor语法看上去比aspx更简洁一些.

但是从一个前端的角度去看呢?

Razor语法完全看不懂,这他妈的是个毛啊!改哪呢?!而ASPX语法哪能改,哪不能改,一看就懂.

前端的工作在模版中占90%以上.而后端只占不到10%.

MVC的核心点在于前端和后端的分离,说白了,一件事分成两个人做.

如果你懂压力测试,可以试试最新的MVC5.WEBFORM每秒请求达到1500左右,
而MVC5最高只有200,MVC现阶段只适合做中小企业开发,要走的路还很长.
作为一个项目经理,一般都是自已实现MVC,
因为对我来说写一个MVC架子并不难,只要重写httpFactory和httphandler就可以了. 
 
 

posted on 2015-04-28 07:40  老禄  阅读(1262)  评论(0编辑  收藏  举报

导航