We had several design goals in mind as we prototyped and
evaluated “Razor”:
Compact, Expressive, and Fluid: Razor minimizes the number
of characters and keystrokes required in a file, and enables a fast, fluid
coding workflow. Unlike most template syntaxes, you do not need to interrupt
your coding to explicitly denote server blocks within your HTML. The parser is
smart enough to infer this from your code. This enables a really compact and
expressive syntax which is clean, fast and fun to type.
Easy to Learn: Razor is easy to learn and enables you to
quickly be productive with a minimum of concepts. You use all your existing
language and HTML skills.
Is not a new language: We consciously chose not to create a
new imperative language with Razor. Instead we wanted to enable developers to
use their existing C#/VB (or other) language skills with Razor, and deliver a
template markup syntax that enables an awesome HTML construction workflow with
your language of choice.
Works with any Text Editor: Razor doesn’t require a specific
tool and enables you to be productive in any plain old text editor (notepad
works great).
Has great Intellisense: While Razor has been designed to not
require a specific tool or code editor, it will have awesome statement
completion support within Visual Studio. We’ll be updating Visual Studio 2010
and Visual Web Developer 2010 to have full editor intellisense for it.
Unit Testable: The new view engine implementation will
support the ability to unit test views (without requiring a controller or
web-server, and can be hosted in any unit test project – no special app-domain
required).
We’ve spent the last few months building applications with
it and doing lots of usability studies of it with a variety of volunteers
(including several groups of non-.NET web developers). The feedback so far from
people using it has been really great.