Vinicius Quaiato

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

ASP.NET MVC no Mono


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

Instalando Mono

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.

Instalando o MonoDevelop

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.

MonoDevelop Mac

Criando o projeto ASP.NET MVC no Mono com MonoDevelop

Vamos então criar um novo projeto ASP.NET MVC .

Criando projecto ASP.NET MVC no Mono com MonoDevelop

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.

Criando controllers ASP.NET MVC no Mono com MonoDevelop

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:

ASP.NET MVC rodando no Mono

ASP.NET MVC rodando no Mono

ASP.NET MVC rodando no Mono

Resumo

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.

Voltar

Fork me on GitHub