off: Software legado

Por Juliano Oliveira em Julho 1, 2008

Estou a um tempo sem postar, culpa do acúmulo de trabalho! Olha eu dando uma “limpada” na mesa e o VBzão aberto lá!!!

Software legado

Dias melhores virão!

[]´s

Rails: Simples assim

Por Juliano Oliveira em Junho 8, 2008

Os últimos dias tenho estudado bastante MVC. O projeto da Microsoft com o ASP.NET MVC que está ficando muito legal está íntimamente ligado com o projeto que vem ditando as regras e tendências no desenvolvimento web: o Ruby on Rails.

Tem sido muito boa a experiência que venho tendo com o Ruby on Rails.

Sobre o Ruby posso dizer que é uma linguagem sensacional de flexibilidade e recursos que impressionam aqueles que trabalham e já estão acostumados com linguagens estáticas como Java, C#, entre outras.

O Rails é quem vem alavancando tudo isso, um framework que deixa o trabalho simples, divertido e agora com a nova versão 2.0, “sexy”. Uma das coisas que mais impressiona na plataforma é a força da comunidade e a força dos brasileiros na comunidade. O Programando em .NET vai a partir de agora também entrar nessa trilha e para começar recomendo a rede social Working with Rails onde eu acabo de me cadastrar e convido a todos a se cadastrarem também. Aos que quiserem me recomendar na rede fica abaixo o atalho:

Recommend Me

Apesar de o Programando em .NET essencialmente ser um blog sobre a plataforma Microsoft (até pelo nome do blog) o que sempre tive em mente é divulgar, comentar e explanar assuntos sobre tecnologia e Ruby on Rails “é tecnologia” e tecnologia de primeiríssima qualidade e por isso não pode deixar de estar aqui em nossos posts.

Então, para aqueles que nos acompanham irei postar também assuntos sobre a plataforma.

Segue abaixo algumas recomendações sobre o assunto:

Ruby:
Site oficial
Ruby Core Reference

Rails:
Fabio Akita
Carlos Brando
Tor Norbye

Existem muito, mas muito mais referêrencias pela internet. Como eu disse, a comunidade é muito participativa. Esses que eu recomendei são só alguns sites que eu gosto muito.

[]’s

off: Bill & Steve. WHAT A HELL!!!

Por Juliano Oliveira em Maio 28, 2008

Com tanta grana no bolso eu também seria feliz assim. Hehe!

[]´s

ASP.NET MVC Preview 3 Release

Por Juliano Oliveira em Maio 28, 2008

A equipe do Scott Gu liberou uma nova prévia do ASP.NET MVC. Melhoraram a integração com o Visual Studio e pequenos detalhes do framework que basicamente foram a confirmação dos Refresh Releses da Preview 2.

Download da instalação (arquivo MSI)

Código fonte via Codeplex

Novidades como duas novas classes, a SelectList e a MultiSelectList. Esses são para facilitar no preenchimentos de campos dropdown, ficou bem legal, o código html cada vez mais limpo!

No sistema de URL Routing inclui uma série de melhorias. A partir do SP1 do .NET 3.5 o URL Routing irá suportar também requisições a WebForms, além de requisições MVC. Um novo método IgnoreRounte() que irá facilitar a negação de requisições para nossas regras de roteamento. O MapRoutes() ganhou algumas sobrecargas em que passamos dois, três ou quatro parametros (nome da rota, sintaxe da URL, parametro padrão da URL, Parametro opcional para gerar constraints com expressão regular na URL).

Podemos também nessa nova preview adicionar novos caracteres nas regras de roteament. São eles “-”, “.” e “;”.

Enfim, tá muito loco o framework! Quem quiser conferir um projeto pronto segue a dica do Northwind MVC Sample para download, por Phil Haack.

Fica ae alguns videos do Scott Hanselman.

Introduction to ASP.NET MVC Preview 3

Basic Application Building with ASP.NET MVC Preview 3 

Fonte:

ASP.NET MVC Preview 3 Release by Scott Gu

ASP.NET MVC Preview 3 by Scott Hanselman

[]´s

ActionFilter em Ação: Segurança nos métodos

Por Juliano Oliveira em Maio 24, 2008

E ae galera, depois de um tempo sem post decidi escrever sobre um recurso bem legal do ASP.NET MVC Framework, um dos novos eventos de ActionFilters que foram liberados na última revisão. São eles:

  • OnActionExecuting que ocorre antes do método ser chamado;
  • OnActionExecuted que ocorre após o método ser chamado, mas antes do resultado;
  • OnResultExecuting que ocorre antes do resultado;
  • OnResultExecuted que ocorre após o resultado.

No exemplo, veremos o poder do evento OnActionExecuting onde antes de qualquer método que definirmos, ser necessário estar logado, nós “testaremos” se o usuário está ou não logado no sistema. O interessante neste recurso é a facilidade para definirmos esta regra aos métodos através de atributos, definidos na declaração dos métodos. Vejam essa classe:


public class RequiresAuthenticationAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(FilterExecutingContext filterContext)
    {
        if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
        {
            string redirectOnSuccess = filterContext.HttpContext.Request.Url.AbsolutePath;

            string redirectUrl = string.Format("?ReturnaUrl=~{0}", redirectOnSuccess);
            string loginUrl = FormsAuthentication.LoginUrl + redirectUrl;
            filterContext.HttpContext.Response.Redirect(loginUrl, true);
        }
    }
}

Basicamente, tá pronto :)

Só com essa classe bem simples já podemos definir métodos que necessitem que o usuário esteja logado no sistema. Lá na declaração da classe vemos que estamos criando uma classe herdada de ActionFilterAttribute, portanto, estamos criando um novo atributo chamado RequiresAuthentication. O código é bem simples: Se filterContext.HttpContext.User.Identity.IsAuthenticated for falso redireciona para a página de login e de quebra, manda também a página que o pelego tentou acessar para depois de logado redirecionar para ela novamente.

Para termos um código de fácil manutenção, setamos no web.config a rota de redirecionamento (FormsAuthentication.LoginUrl).


<system.web>
    <authentication mode="Forms">
        <forms loginUrl="/Home.mvc.aspx/Login" />
    </authentication>
</system.web>

E pronto, agora qualquer método será facil de implementarmos necessidade de autenticação.


public class HomeController : Controller
{
    public void Index()
    {
        RenderView("Index");
        }

    [RequiresAuthentication]
    public void Post()
    {
        RenderView("Post");
    }
}

Bem legal né, com um simples [RequiresAuthentication] mudamos todo um escopo de um método!

Para autenticar o usuário, crie uma View com um Form pedindo usuário e senha e redirecione para um método de Autenticação, faça o beabá para verificar se usuário e senha estão corretos depois é só autenticar o usuário assim:


public void Autenticar(string usuario, string senha, string RetornaUrl)
{
     //TODO: Verifica se esta logado ou não
    if(!UsuarioLogado)
    {
         // O rememberMe é para persistir ou não o Cookie
         FormsAuthentication.SetAuthCookie(usuario, rememberMe);
         RedirectToAction(RetornaUrl)
    }
    else
    {
         TempData["MensagemDeLogin"] = "Login incorreto";
         RedirectToAction("Login");
    }
}

Até o próximo post!

Fonte: ASP.NET MVC: Securing Your Controller Actions

[]´s

Surface tamanho família ou Microsoft TouchWall

Por Juliano Oliveira em Maio 15, 2008

A Microsoft está promovendo um evento Microsoft CEO Summit 2008 para os executivos mostrando as novidades de Redmond.

Entre as inovações está o Microsoft TouchWall:

Com certeza desenvolvido em Silverlight.

[]´s

Fonte: Ramon Durães

Hotfix para Visual Studio 2008

Por Juliano Oliveira em Maio 8, 2008

Além do hotfix para Visual Studio 2008, neste link você vai encontrar todos os hotfix publicos lançados para Visual Studio e .NET Framework

Visual Studio and .NET Framework Hotfix Public Availability Program

[]´s

Fonte: Ramon Durães

Podcast Digital Paper Web #15: RIA ou não

Por SaintBr em Maio 6, 2008

podcast_banner_topo

Quarta-feira passada (30/04/08) estive participando no Podcast Digital Paper Web #15 com o tema R.I.A ou Não, onde discutimos tecnologias como Flex, Ajax e Silverlight.

Para quem gosta do assunto ou quer ouvir um podcast divertido está ai a deixa, acesse agora http://digitalpaperweb.com.br/ezine/evento/podcast-15-ria-ou-nao baixe, ouça e comente.

off: Esse podia ter dormido sem essa!

Por Juliano Oliveira em Maio 5, 2008

Saiu na Info Exame deste mês uma entrevista do “Rasmus Lerdorf” (lerdorf mesmo), criador do PHP.

Ao ser questionamo sobre o futuro da plataforma .Net ele soltou uma piada!

Com o sucesso de linguagens e frameworks de código aberto, você enxerga algum futuro para plataformas comerciais, como o .NET?

E o banana me solta uma resposta tosca!

NÃO!

Esse vai dormir com a orelha quente durante meses!

Cada uma viu.

Edit: Só para constar, eu gosto muito do PHP, como disse o Tiago no comentário dele, é uma ferramenta legal assim como o C#.  E um lembrete, PHP é linguagem de programação e .NET Framework de desenvolvimento, portanto, compare o .NET com o Zend Framework, CakePHP ou qualquer outro não com PHP! Será que o Rasmus condena também a vida do C#?

[]´s

Fonte: Info Exame

Nova versão do ASP.NET MVC Framework!

Por Juliano Oliveira em Abril 17, 2008

O que mudou?

  • Acção sobre métodos Controlers agora retornam uma instância de ActionResult.
    • Este ActionResult o objeto indica o resultado de uma ação (a fim de se tornar, uma URL de redirecionamento para uma outra ação / rota para executar, etc).
    • Cada o “resultado” é um tipo que herda de ActionResult.
  • O métodos RenderView(), RedirectToAction(), e Redirect() da classe Controller agora retornam objetos ActionResult.
  • O método RenderView() pode agora ser chamado, sem ter que passar explicitamente o nome do template.
    • Quando você omitir o nome do template, RenderView() irá por padrão usar o nome do método para determinar o template a ser renderizado.
    • Portanto, chamando RenderView() sem parâmetros dentro do método Abount() é agora o mesmo que explicitamente escrito RenderView( “About”).
  • Introduzido IActionFilter uma nova interface de filtros. ActionFilterAttribute implementa IActionFilter.
  • ActionFilters agora têm quatro métodos que podem implementar representando quatro possíveis eventos.
    • OnActionExecuting que ocorre antes do método ser chamado.
    • OnActionExecuted que ocorre após o método ser chamado, mas antes do resultado.
    • OnResultExecuting que ocorre antes do resultado.
    • OnResultExecuted que ocorre após o resultado.
  • Adicionado um método MapRoute (extensão de RouteCollection) para declarações de Routes MVC de uma forma mais simples.

Mudanças no Routing.

  • URLs podem conter qualquer literal (exceto “/”) como separador entre parâmetros de URL. Por exemplo, em vez de {action}.{format}, agora você pode ter {action}-{format}. Para obter mais detalhes sobre as mudanças, veja este post.
  • Routing é ignorado para arquivos que existam no disco por padrão. Esta pode ser ajustado através da propriedade RouteTable.Routes.RouteExistingFiles para true (falso por padrão).

Fonte: ASP.NET MVC April CodePlex Source Push

Até a próxima!

[]´s


Copyright © 2007 Programando em .NET. Existe direitos reservados na Internet?.