{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{
ublic ActionResult Say(string message){
iewData["message"] = message;
return View("message");
}
public ActionResult Show(string view){
eturn View(view);
}
}
As views não possuem nada além do normal. Vou apenas mostrar a view Message.aspx que acessa o ViewData:
<title></title></head><body><div># Hello Mono, seu lindo!
## A Mensagem: <%= ViewData["message"].ToString() %>
</div></body></html>
E adicionei as rotas no Global.asax também para trabalhar com nossos parâmetros:
public class MvcApplication : System.Web.HttpApplication{
ublic
static void RegisterRoutes (RouteCollection routes){
outes.IgnoreRoute ("{
esource}
.axd/{
pathInfo}
");
routes.MapRoute ("DefaultWithMessage", "{
ontroller}
/Say/{
essage}
", new { controller = "Home",action = "say", message = "" }
);
routes.MapRoute ("DefaultShowView", "{
ontroller}
/Show/{
iew}
", new { controller = "Home",action = "Show", view = "" }
);
routes.MapRoute ("Default", "{
ontroller}
/{
ction}
/{
d}
", new { controller = "Home", action = "Index", id = "" }
);
}
protected void Application_Start (){
egisterRoutes (RouteTable.Routes);
}
}
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.