Palestra – Novidades do ASP.NET 5 e Visual Studio 15 – Vídeo

Palestrei sobre as novidades do ASP.NET 5 e Visual Studio 2015 no Codificando Night Week um evento online promovido pela comunidade Microsoft.

Primeiramente gostaria de agradecer aos organizadores do Codificando Night Week pelo convite, sempre aceitarei com muito prazer participar e dividir o conhecimento sobre grande revolução que já está acontecendo faz algum tempo.

O evento Codificando Night Week foi realizado durante cinco dias sendo um dia totalmente dedicado para Web, dia qual eu e mais outros palestrantes apresentaram temas muito interessantes.

O interessante desta palestra é que poucas horas antes havia sido liberado o CTP6 do Visual Studio 2015 e o ASP.NET 5 tinha sido liberado na versão beta 3 e eu consegui já apresentar todas as recentes novidades destas versões.

Foram abordados os temas:

  • .NET 2015
  • ASP.NET 5 (beta3)
  • Novidades de comandos CMD (EF, Scaffolding)
  • Visual Studio 2015 (NPM, Grunt, Bower, etc…)

O vídeo a seguir é de todas as palestras, porém deixei configurado para iniciar diretamente na minha, use o mesmo vídeo para assistir as demais.

* Assine meu canal no Youtube 🙂

Vamos continuar a troca de conhecimentos, participe nos comentários abaixo 😉

EF Code-First – Partindo de uma base existente

Utilizar o Entity Framework com Code-First a partir de uma base existente é possível e relativamente fácil, inclusive melhorando a nomenclatura da base.

Neste vídeo tutorial iremos acompanhar como funciona o processo de criação de um sistema novo partindo de uma base já existente e utilizando Entity Framework no modelo Code-First.

Entity Framework Code-First

Como apresentado no vídeo os modelos guiados por design e que geram EDMX estão obsoletos, geram muita dificuldade na manutenção e não serão mais suportados na próxima versão do Entity Framework (7).

Neste tutorial iremos aprender:

  • Diferenças entre Model-First, Database-First e Code-First.
  • Instalar o EF Power Tools.
  • Customização de templates T4 para geração de classes.
  • Fazer engenharia reversa do banco criando classes POCO e mapeamentos com Fluent API.
  • Melhorar a nomenclatura das classes e mapeamentos quando o banco de dados não possui padronização ou está num padrão não apropriado para nomenclatura das entidades na aplicação.
  • Atualizar o banco de dados com Migrations
  • Como atualizar o código quando houver alteração direta no banco de dados.
  • Resolver problemas comuns do processo de engenharia reversa.

Vídeo

* Assine meu canal no Youtube 🙂

Vamos continuar com a troca de experiências, deixe seu comentário abaixo.

Referências

Podcast ASP.NET 5, MVC 6 e Novidades

Participei de um podcast sobre ASP.NET 5, MVC 6 e novidades com Fabrício Sanchez, produtor do podcast Papo Tech.

PAPO TECH ASP.NET 5

Primeiramente gostaria de agradecer ao convite feito pelo Fabrício Sanchez que também é Microsoft MVP em ASP.NET e promove o Papo Tech, um podcast sobre tecnologia onde muitos assuntos interessantes são abordados e debatidos de forma bem descontraída e enriquecedora.

Falamos do ASP.NET desde seus primórdios com o ASP clássico, passando pelo ASP.NET WebForms, MVC, OWIN, Katana até chegarmos no ASP.NET 5 (vNext) e .NET 2015. Fizemos também um esclarecimento da estratégia da Microsoft em criar o ASP.NET e para onde estaremos indo num futuro muito próximo na nova era do .NET e do desenvolvimento Web multiplataforma.

Particularmente eu achei que ficou muito legal, fácil de acompanhar e de ouvir. Parabenizo o Fabrício pela ótima condução dos assuntos.

Para ouvir use o player abaixo.

Caso não consiga ouvir recomendo que ouça diretamente no site do Papo Tech e aproveite para ouvir os demais, eu já ouvi e são muito legais!

Referências

Customizando Nomes de Tabelas e Campos no ASP.NET Identity

O ASP.NET Identity possui um padrão de nomenclatura para suas tabelas e campos, muitas vezes é necessário customizar este padrão para atender as necessidades da aplicação, confira como é simples realizar esta tarefa.

Como apresentado aqui algumas vezes, o ASP.NET Identity é um componente muito completo e simples de customizar, ele é escrito baseado no conceito Code-First e sua arquitetura é bem aberta possibilitando a customização de funcionalidades, comportamentos e até mesmo fonte de dados.

As tabelas que o ASP.NET Identity cria automaticamente segue o mesmo processo de qualquer desenvolvimento Code-First, permitindo que o desenvolvedor mapeie na configuração do DbContext toda a modelagem da base que será criada.

Vamos abordar de forma muito simples e pontual como realizar este processo partindo do pré-suposto que sua aplicação foi criada com base no template de aplicação ASP.NET MVC já com o ASP.NET Identity configurado. Independente deste fato, o que é realmente necessário fazer é editar o contexto do ASP.NET Identity.

Uma dica válida para qualquer situação é manter sempre o contexto do ASP.NET Identity separado do contexto da aplicação.

Iremos trabalhar também com a hipótese de customização do IdentityUser através de sua classe derivada ApplicationUser. Vamos ao código.

public class ApplicationUser : IdentityUser
{
    public string Apelido { get; set; }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<IdentityUser>()
            .ToTable("Usuarios")
            .Property(p => p.Id)
            .HasColumnName("UsuarioId");

        modelBuilder.Entity<ApplicationUser>()
            .ToTable("Usuarios")
            .Property(p => p.Id)
            .HasColumnName("UsuarioId");

        modelBuilder.Entity<IdentityUserRole>()
            .ToTable("UsuarioPapel");

        modelBuilder.Entity<IdentityUserLogin>()
            .ToTable("Logins");

        modelBuilder.Entity<IdentityUserClaim>()
            .ToTable("Claims");

        modelBuilder.Entity<IdentityRole>()
            .ToTable("Papeis");
    }
}

Na classe ApplicationUser realizamos uma pequena customização adicionando um novo campo (Apelido), apenas para enfatizar a situação.

Na classe ApplicationDbContext repare que ela herda de IdentityDbContext, que é a real classe de contexto do ASP.NET Identity onde ela internamente herda de DbContext.

A ideia de existir a classe ApplicationDbContext é justamente fornecer um contexto para customização, uma vez que a classe IdentityDbContext faz parte dos assemblies do ASP.NET Identity e não é possível ser alterada.

Baseado no conceito da herança o que basicamente fizemos foi sobrescrever o método OnModelCreating da classe base para alterarmos os padrões de nomenclatura. Utilizamos Fluent API para realizar esse mapeamento trocando os nomes das tabelas e campos.

Essa troca não impacta no funcionamento interno do ASP.NET Identity, pois as classes internas permanecem intactas, apenas o mapeamento do modelo objeto / relacional foi modificado e a aplicação irá seguir o que a modelagem manda.


modelBuilder.Entity<IdentityUser>()
    .ToTable("Usuarios")
    .Property(p => p.Id)
    .HasColumnName("UsuarioId");

modelBuilder.Entity<ApplicationUser>()
    .ToTable("Usuarios")
    .Property(p => p.Id)
    .HasColumnName("UsuarioId");

Repare que as duas classes (IdentityUserApplicationUser) foram mapeadas para mesma tabela, pois só assim seria possível mapear a classe de usuários e ao mesmo tempo aplicar as customizações, no final tudo vira uma única tabela com informações de ambas as classes.

ASP.NET Identity Tabelas e Campos Customizados

Detalhes adicionais

  • É possível utilizar todos os recursos do Fluent API nessa abordagem, sendo possível modificar tipo dos campos, inserir índices, criar novos relacionamentos, mapear novas tabelas e etc.
  • É possível realizar todo este mapeamento em uma outra classe e configurar esta classe no contexto (assim como fazemos com as nossas entidades no Fluent API).

Simples?
Agora é possível incorporar o ASP.NET Identity ao seu modelo já existente de base de usuários, a única premissa é que todas as tabelas e campos do ASP.NET Identity sejam representados (mapeados) de alguma forma no banco de dados existente.

Vamos continuar a enriquecer este artigo participando nos comentários abaixo com dúvidas, complementos e feedbacks.

Referências

Este artigo foi escrito durante minha participação na Campus Party 2015 #CPBR8

Curso de ASP.NET MVC 5 – Turma de Janeiro

Em Janeiro foi realizado mais um curso de ASP.NET MVC 5.

Entre os dias 21 e 23 de Janeiro eu ministrei mais um curso de
ASP.NET MVC 5 Enterprise Applications (InCompany) para uma turma de 10 alunos no Rio de Janeiro – RJ, mais informações aqui.

Este curso teve seu conteúdo modificado e eu estou o chamado de ASP.NET MVC 5 – Enterprise Applications. A proposta do curso é uma imersão de alto impacto no ASP.NET MVC e a segunda parte é sobre os desafios do dia-a-dia de como projetar uma solução ASP.NET MVC, padrões de arquitetura, técnicas e abordagens comuns, problemas a serem enfrentados, foco na qualidade e manutenibilidade, futuro do ASP.NET e diversos outros temas.

O curso foi ministrado com uma carga horária de 32 horas e aplicado em 3 dias (quarta, quinta e sexta) e mais 8 horas de vídeos online. A turma foi formada por profissionais de desenvolvimento da empresa WEBFIS, uma empresa de soluções fiscais, que buscavam aprimorar os conceitos sobre ASP.NET MVC e conhecer abordagens de arquitetura avançada e praticada no mundo real.

Curso de ASP.NET MVC 5

Junto ao conteúdo do curso foi feita também uma imersão às novidades do ASP.NET 5 (vNext), assunto que será debatido em todas as novas turmas.

Ao final do curso todos os alunos receberam certificados impressos / digitais e todo material utilizado no curso (demos desenvolvidas, PPT, fontes de referências, livros e um material de apoio sobre arquitetura).

Sobre a versão In Company

O curso de ASP.NET MVC 5 aplicado na versão In Company não possui um modelo fechado, ou seja, ele é totalmente flexível para atender os objetivos dos alunos, inclusive a carga horária é customizável sendo de no mínimo 24 horas.

Se você possui interesse em realizar este curso em sua empresa entre em contato e juntos chegaremos em um modelo ideal de curso e carga horária necessária.

Caso sua equipe já domine ASP.NET MVC e deseja conhecer as atualizações das versões 4.0, 5.0 e a recém lançada 5.1 um Workshop técnico de 6 horas é uma solução que vai atender perfeitamente e capacitar a equipe a trabalhar com a novas versões que proporcionam muito mais produtividade entre outras grandes vantagens.

Aproveite e considere um workshop sobre o novo ASP.NET vNext, irá abrir os olhos para um futuro que está prestes a se tornar realidade.

Até a próxima!

Conheça o .NET 2015 – Vídeo – Channel 9

Conheça o .NET 2015. Em Dezembro de 2014 fui convidado pela Microsoft para gravação de um vídeo apresentando uma grande novidade para desenvolvedores .NET.

Fiquei muito feliz pelo convite, apresentar este tema foi muito satisfatório, pois para mim representa a maior novidade do .NET desde seu lançamento, bem vindos a nova ERA do .NET.

.NET 2015

Este vídeo foi gravado para ser veiculado no Channel 9 e eu estou replicando este conteúdo para vocês ficarem por dentro destas grandes mudanças.

O .NET 2015 foi anunciado no final do ano de 2014 no evento Connect(); que foi transmitido ao vivo para todo o mundo, apesar da novidade este anuncio já estava sendo aguardado há mais de um ano por nós desenvolvedores que acompanham de perto todos os passos desta revolução.

No vídeo eu abordo em detalhes todos os aspectos do .NET 2015, o por que deste nome, o grande benefício para a nova plataforma do ASP.NET 5, vale a pena conferir.

* Assine meu canal no Youtube 🙂

Gostaria de agradecer à equipe Microsoft Brasil pelo convite, irei abordar mais vezes este assunto com muito mais informações em breve.

Continue enriquecendo este assunto com seus comentários logo abaixo.

Referências:

ASPNET CAST – DDD – Parte 3

O ASPNET CAST ofereceu mais um hangout em 21 de Janeiro, o assunto foi DDD parte 3, confira como foi.

ASPNET CAST

O ASPNET CAST é um novo canal formado por mim Eduardo Pires, Rodrigo Kono, André Baltieri, Victor Cavalcante e Yan Justino. Nos reunimos todas as quartas-feiras para transmitir ao vivo um bate-papo sobre desenvolvimento, não apenas ASP.NET e sim tudo que seja relacionado a desenvolvimento principalmente web.

Esse segundo encontro foi realizado no dia 21 de Janeiro e o resultado desse bate-papo você pode conferir aqui.

Os tópicos debatidos foram

  • Bounded Context
  • Aggregate e Aggregate Root

Você ficará sempre por dentro dos próximos hangouts do ASPNET CAST por este site ou se preferir assine o nosso canal e curta nossa página para ficar por dentro da agenda.

Links

ASPNET CAST – DDD – Parte 2

O ASPNET CAST ofereceu mais um hangout em 14 de Janeiro, o assunto foi DDD parte 2, confira como foi.

ASPNET CAST

O ASPNET CAST é um novo canal formado por mim Eduardo Pires, Rodrigo Kono, André Baltieri, Victor Cavalcante e Yan Justino. Nos reunimos todas as quartas-feiras para transmitir ao vivo um bate-papo sobre desenvolvimento, não apenas ASP.NET e sim tudo que seja relacionado a desenvolvimento principalmente web.

Esse segundo encontro foi realizado no dia 14 de Janeiro e o resultado desse bate-papo você pode conferir aqui.

Os tópicos debatidos foram

  • Ubiquitous Language
  • Entidade vs Value Objects

Você ficará sempre por dentro dos próximos hangouts do ASPNET CAST por este site ou se preferir assine o nosso canal e curta nossa página para ficar por dentro da agenda.

Links

SOLID – Teoria e Prática – Demo + Vídeo

SOLID – Teoria e Prática. É com certeza um dos temas mais debatidos no ramo de OOP, aprenda cada um dos princípios e como aplicá-los.

Este é um artigo complementar ao Orientação a Objeto – SOLID, neste primeiro artigo eu apresentei teoricamente o conceito do SOLID e seus benefícios.

SOLID – Teoria e Prática

Recapitulando

SOLID é um acrônimo dos cinco primeiros princípios da programação orientada a objetos e design de código identificados por Robert C. Martin (ou Uncle Bob) por volta do ano 2000. O acrônimo SOLID foi introduzido por Michael Feathers, após observar que os cinco princípios poderiam se encaixar nesta palavra.

Os princípios SOLID deveriam ser aplicados por qualquer desenvolvedor, porém pouquíssimos profissionais preocupam-se em utilizá-los, para obtermos todos os reais benefícios da OOP é necessário atender aos 5 princípios do SOLID.

Lembrando também que além destes 5 princípios Uncle Bob também mapeou 3 outros princípios sobre Coesão e mais outros 3 sobre Acoplamento. Utilize este link para conhecê-los também.

SLIDES

VÍDEO (1h00)

* Assine meu canal no Youtube 🙂

SOURCE

Para visualizar o fonte e realizar o download do projeto clique aqui (GitHub)

Referências

Vamos continuar enriquecendo o assunto, poste aqui sua opinião ou dúvida.

ASPNET CAST – DDD – Parte 1

O ASPNET CAST ofereceu o seu primeiro hangout em 07 de Janeiro, o assunto foi DDD, confira como foi.

ASPNET CAST

O ASPNET CAST é um novo canal formado por mim Eduardo Pires, Rodrigo Kono, André Baltieri, Victor Cavalcante e Yan Justino. Nos reunimos todas as quartas-feiras para transmitir ao vivo um bate-papo sobre desenvolvimento, não apenas ASP.NET e sim tudo que seja relacionado a desenvolvimento principalmente web.

Nosso primeiro encontro foi no dia 07 de Janeiro e o resultado desse bate-papo você pode conferir aqui.

Você ficará sempre por dentro dos próximos hangouts do ASPNET CAST por este site ou se preferir assine o nosso canal e curta nossa página para ficar por dentro da agenda.

Links