Qual a vantagem de criar um site usando MVC com Razor ao invés de HTML/CSS/JS? Isso no contexto da parte V do MVC.
Não é muito trabalho codificar em C# no Layout, prejudica a visualização e estilização?
Qual a vantagem de criar um site usando MVC com Razor ao invés de HTML/CSS/JS? Isso no contexto da parte V do MVC.
Não é muito trabalho codificar em C# no Layout, prejudica a visualização e estilização?
Olá, Tony!
O Razor é um "view engine" (assim como o ASPX Engine) e é um excelente mecanismo de renderização server side.
Uma das vantagens do Razor é permitir codificar no mesmo arquivo (.cshtml) tanto o HTML estático quanto o código dinâmico que será gerado pelo servidor. Você pode definir seções e assim visualizar melhor a estrutura do HTML que será gerado.
<!DOCTYPE html>
<html>
<head>
<title>Multisection Content</title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
@RenderSection("header")
</div>
<div id="list">
@RenderSection("list")
</div>
<div id="main">
@RenderBody()
</div>
<div id="footer">
© 2012 Contoso Pharmaceuticals. All rights reserved.
</div>
</body>
</html>
Como a estrutura e a hierarquia dos elementos da página ficam mais visíveis, fica mais fácil definir os estilos em CSS.
Um website é feito de várias "peças". O Razor sabe como montá-las rapidamente e transformá-las numa página HTML. O Razor sabe como visualizar os cookies, gerar tokens de autenticação (vitais para segurança na web), sabe quem é o usuário que está logado, qual a cultura (idioma, país, etc.) do usuário que está requisitando a página (para gerar a página no idioma adequado), entre outras coisas.
Você até poderia tentar utilizar o JavaScript para implementar essa mesma renderização no cliente, só que você obrigaria o seu cliente a baixar TODAS essas "peças", e isso exige mais poder processamento do browser do cliente, consumo de dados e tempo de processamento, pois o JavaScript roda localmente no navegador.
Normalmente, um website é feito não só com renderização no servidor (com Asp.Net, Razor, PHP, Node.Js, etc), mas também com bibliotecas JavaScript que dão suporte a Ajax e otimizam a interface no navegador (jQuery, Angular, React, Ember, etc). No final das contas, um bom website depende de rapidez, segurança, boa experiência do usuário, e bom senso dos desenvolvedores e designers.
Enfim, é um assunto pra muitas horas, espero ter ajudado!
Bons estudos!