{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}
03/05/2011
Fala galera, faz algum tempo que estou sem postar e vou retomar falando um pouco do ASP.NET MVC rodando no Mono.Estou utilizando um Macbook e por isso vou começar a relatar algumas experiências com Mono.Não vou entrar em detalhes de implementação do Mono ou coisas do tipo. A princípio vou falar sobre como utilizar o Mono para criar projetos quase como faria no Windows rodando o .NET.# Montando o ambiente
Primeiramente o que precisamos fazer é instalar o Mono (eu estou usando um Mac lembrem-se). A página de downloads no site do Projeto Mono possui versões para todos os ambientes suportados por ele:http://www.go-mono.com/mono-downloads/download.html.
O MonoDevelop é a IDE que vamos utilizar para criar e trabalhar com nossos projetos. Faça o download do MonoDevelop para o seu ambiente(Windows, Linux, Mac, etc) na página de downloads do projeto: http://monodevelop.com/DownloadDepois de terminar a instalação do Mono e do MonoDevelop vamos abrir a IDE.
Vamos então criar um novo projeto ASP.NET MVC .
Depois de criado um projeto vazio vamos adicionar um controller. Notem que a versão suportada totalmente é o ASP.NET MVC 2 (saiba aqui por que a versão 3 ainda não é totalmente suportada).Criarei um controller com duas actions. Uma recebendo uma mensagem que será exibida em uma view. E a outra recebendo o nome de uma view a ser exibida.
public class HomeController : Controller
{
public ActionResult Say(string message)
{
ViewData["message"] = message;
return View("message");
}
public ActionResult Show(string view)
{
return View(view);
}
}As views não possuem nada além do normal. Vou apenas mostrar a view Message.aspx que acessa o ViewData:
<html>
<head>
<title></title>
</head>
<body>
<div>
<h1>Hello Mono, seu lindo!</h1>
<h2>A Mensagem: <%= ViewData["message"].ToString() %></h2>
</div>
</body>
</html>E adicionei as rotas no Global.asax também para trabalhar com nossos parâmetros:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{pathInfo}");
routes.MapRoute(
"DefaultWithMessage",
"{controller}/Say/{message}",
new { controller = "Home", action = "say", message = "" });
routes.MapRoute(
"DefaultShowView",
"{controller}/Show/{view}",
new { controller = "Home", action = "Show", view = "" });
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" });
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}E o resultado:
Por enquanto é possível dizer que as funcionalidades mais básicas e triviais de aplicações ASP.NET MVC 2 estão rodando conforme o esperado no Mono.Fiz outros testes mais complexos e tudo está correndo bem, pretendo ir postando sobre no decorrer da semana.Se você quer saber se eu pretendo torcar o Windows pelo Mac e o .NET pelo Mono? Acredito que não, mas já estava mais do que na hora de começar a utilizar o Mono e oferecer soluções com ele para sistemas comerciais. E acreditem o Fábio Akita me cobra isso quase diariamente na Gonow :DAbraços e podem esperar que virão mais coisas sobre Mono, Monotouch e projetos utilizando a plataforma.Vinicius Quaiato.