{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}
12/07/2010
[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/splash-2/)Semana passada foi anunciado o lançamento do WebMatrix. Um conjunto de ferramentas que simplificam a vida de quem deseja desenvolver alguns sites utilizando Windows.Atendendo a um pedido da Janynne Gomes(@devnetgomez) estou escrevendo este post para falar um pouco da ferramenta.O WebMatrix integra uma série de ferramentas e componentes que visam facilitar e tornar o processo de desenvolvimento de deploy de um website bastante tranquilos.Para baixar o WebMatrix utilize este link aqui.
O WebMatrix vem com uma versão Express do IIS(IIS Express). Desta forma você não precisa instalar nem configurar um servidor web para criar seus sites com o WebMatrix.Ele também faz uso da versão Compact do SqlServer, que é uma versão embarcada. Mais uma vez, você não precisa instalar e nem configurar um servidor de banco de dados para começar a criar websites. Bastante simples.O WebMatrix faz uso do .Net framework, e você acaba desenvolvendo com C# ou VB e utilizando algo muito próximo do que será o Razor, a nova View Engine para o Asp.NET MVC.
Não sei exatamente qual a proposta do WebMatrix. Ele nos permite desenvolver websites utilizando algumas ferramentas open sources já consolidades pela comunidade/mercado.Mas a uma primeira vista, e é muito cedo para dizer com certeza, eu me arrisco a palpitar de que esta é uma ferramenta que tornará simples a criação de websites simples. E quando eu falo de websites eu não estou falando de sistemas, mas sim de pequenos websites.Posso estar muito enganado, e no futuro o WebMatrix pode vir a mostrar um grande potencial e poder para a criação de sistemas (que são complexos por natureza). Mas a uma primeira vista, me arrisco a dizer isso mesmo.Chega de blá blá blá, e vamos ver um pequeno exemplo.
Após instalar o WebMatrix abra o mesmo. Vamos selecionar a opção “Site From Folder” conforme a imagem abaixo:[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/inicial-2/)Com isso criaremos uma pasta e utilizaremos ela para guardar os arquivos de nosso site. Eu criei a pasta no desktop mesmo. Como estamos trabalhando com a versão Express do IIS, não há problemas com isso. Cool han?!Como podemos ver abaixo, está o “Workspace” do WebMatrix. Na parte de cima podemos ver as opções relacionadas com a execução do website. Na parte inferior da tela vemos as opções de acesso aos arquivos e banco de dados do nosso website.[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/workspace/)Selecionando a opção “Files” na parte inferior, vamos então adicionar 2 arquivos conforme mostra a figura abaixo:[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/files/)O código destes 2 arquivos é bastante simples, segue nas listagens abaixo:
@{
var database = Database.OpenFile("Site.sdf");
}
<!DOCTYPE html>
<html>
<head>
<title>Quaiato's WebMatrix Bookmarks</title>
</head>
<body>
<ul>
<li><a href="@Href("/NovoBookmark")">Novo Bookmark</a></li>
</ul>
<h2>Bookmarks</h2>
<ul>
@foreach(var row in database.Query("select * from bookmarks")) {
<li>
<a href="@row.Url">@row.Url</a>
@row.Descricao
</li>
}
</ul>
</body>
</html>@{
var database = Database.OpenFile("Site.sdf");
var descricao = Request["descricao"];
var url = Request["bookmarkurl"];
if(IsPost) {
if(descricao.IsEmpty()) {
Validation.AddFieldError("Descricao", "Preencha a descrição do site.");
}
if(url.IsEmpty()) {
Validation.AddFieldError("Url", "Preencha a url do site.");
}
if(Validation.Success) {
var insertQuery = "INSERT INTO Bookmarks (Descricao, Url) VALUES (@0, @1)";
database.Execute(insertQuery, descricao, url);
Response.Redirect(@Href("~/Bookmarks"));
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>Quaiato's WebMatrix Bookmarks</title>
</head>
<body>
<div>
@Html.ValidationSummary("Erros no cadastro do Bookmark:")
</div>
<form method="post" action="">
<fieldset>
<legend>Novo Bookmark</legend>
<div>
<label>Descrição:</label>
<input name="descricao" type="text" size="50" value="@descricao" />
</div>
<div>
<label>Url:</label>
<input name="bookmarkurl" type="text" size="50" value="@url" />
</div>
<div>
<label> </label>
<input type="submit" value="Adicionar Bookmark" />
</div>
</fieldset>
</form>
</body>
</html>O código é bastante simples, não vou entrar em muitos detalhes, você pode conferir aqui mais informações sobre a sintaxe e as funcionalidades: http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntaxAgora vamos criar o banco de dados:[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/database/)Na guia “Tables” Selecione “New Table” como mostra a imagem abaixo:[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/new_table/)Então defina duas colunas para a tabela, como mostra a imagem abaixo:[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/table_definition/)Feito isso, e com o código que já havíamos criado, já podemos executar nosso website, veja abaixo o resultado (não utilizei CSS para deixar as coisas mais atraentes ¬¬ ):[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/rodando_site/)[

](http://viniciusquaiato.com/blog/webmatrix-o-que-e-por-que-usar/novo_bookmark/)É isso galera. Espero que tenha conseguido passar como funciona e dado uma idéia inicial de quando utilizar.Vamos ver no que vai dar o WebMatrix, é uma ferramenta interessante. Ainda há muito o que melhorar. Sofri várias lentidões na máquina, alguns “travamentos”, e às vezes algumas funcionalidades pararam de executar (ctrl+z, ctrl+s, etc).Senti falta de um ctrl+k,m para formatar o código, mas tudo bem, isso não faz da ferramenta algo ruim. Se você já testou, deixe seu feedback.
Abraços, Vinicius Quaiato.