ADO.NET Entity Framework, Banco de dados, C#, LINQ, MVP ShowCast, Visual Studio

Palestra no MVP ShowCast 2013: Entity Framework 6

O evento MVP ShowCast 2013

MVP ShowCast Logo

O MVP ShowCast é um evento virtual gratuito sobre tecnologias da Microsoft, sendo composto por uma série de webcasts transmitidos ao vivo e gravados para serem disponibilizados depois. O evento foi idealizado e é organizado por MVPs do Brasil com apoio da Microsoft. Mais informações no site do evento: http://mvpshowcast.azurewebsites.net.

A palestra Entity Framework 6

No dia 6 de dezembro de 2013, eu apresentei o webcast da palestra Entity Framework 6 no evento virtual MVP ShowCast 2013.

Na palestra, eu apresentei alguns conceitos iniciais importantes, como a técnica de desenvolvimento denominada Mapeamento Objeto-Relacional (Object Relational Mapping – ORM) que permite automatizar tarefas de programação orientada a objetos com dados armazenados em bancos de dados relacionais. Então, eu comentei sobre dois dos principais frameworks ORM para a plataforma .NET: Entity Framework (Open Source – Microsoft) e NHibernate (Open Source – http://nhforge.org).

Na sequência, eu comentei sobre a versão estável atual, na época da apresentação, do framework da Microsoft para mapear objetos de domínio para dados relacionais: Entity Framework 6.0.1, liberada em 17 de outubro de 2013. Porém, uma semana após a apresentação (dia 13 de dezembro de 2013), a Microsoft liberou uma nova versão do framework: Entity Framework 6.0.2. A versão 6.0.2 corrige alguns problemas de desempenho (e outros bugs) nas versões 6.0.0 e 6.0.1. A lista completa de correções desta versão pode ser lida, em inglês, no site do CodePlex em: https://entityframework.codeplex.com/workitem/list/advanced?status=Closed&release=EF%206.0.2&reasonClosed=Fixed.

Eu também comentei sobre o desenvolvimento em código aberto do Entity Framework no CodePlex em: http://entityframework.codeplex.com. Seguem alguns dos diversos recursos disponíveis: código-fonte, compilações noturnas, documentação, especificações de características, acompanhamento de problemas e notas de reuniões de design.

Eu citei os modelos de desenvolvimento para desenvolvimento com o Entity Framework: Database First, Model First e Code First. Depois ilustrei uma exemplo de intermediação que o Entity Framework faz entre uma aplicação ou serviço e um banco de dados relacional.

Finalmente, eu apresentei as principais novidades do Entity Framework 6 e demonstrei quatro delas:

  1. Convenções Code First personalizadas
  2. Logging de comandos de banco de dados
  3. Mapeamento Code First de stored procedures
  4. Consulta e salvamento assíncrono

Seguem os slides da palestra Entity Framework 6.

ASP.NET MVC, CORS, MVP ShowCast, W3C

Palestra no MVP ShowCast 2013: Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS)

O evento MVP ShowCast 2013

MVP ShowCast Logo

O MVP ShowCast é um evento virtual gratuito sobre tecnologias da Microsoft, sendo composto por uma série de webcasts transmitidos ao vivo e gravados para serem disponibilizados depois. O evento foi idealizado e é organizado por MVPs do Brasil com apoio da Microsoft. Mais informações no site do evento: http://mvpshowcast.azurewebsites.net.

A palestra Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS)

No dia 4 de dezembro de 2013, eu apresentei o webcast da palestra Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) no evento virtual MVP ShowCast 2013.

Na palestra, eu apresentei alguns conceitos iniciais importantes, como: informações sobre agente de usuário (user-agent), que é um software que age em nome de um usuário, e origem web (Web Origin), que é a forma com que agentes de usuário agrupam URIs juntas em domínios protegidos.

Então, eu comentei sobre o recurso de segurança chamado política de mesma origem (Same-Origin Policy), que garante o isolamento de documentos recuperados de origens web distintas.

Depois, eu comentei sobre o conceito de AJAX (Asynchronous JavaScript and XML) e a necessidade de conseguir realizar cross-domain AJAX. Expliquei o método denominado JSON-P (JSON with Padding), que é um mecanismo para requisições de conteúdo cross-domain com o tag <script>.

Finalmente, eu comentei sobre a especificação do W3C denominada Cross-Origin Resource Sharing (CORS) e a sua utilização para realização de cross-domain AJAX. Na demonstração, eu mostrei como desenvolver uma API web com ASP.NET Web API 2 no Visual Studio 2013 com habilitação de CORS e consumi-la de uma aplicação Web em outro domínio com uso de requisições AJAX por intermédio do objeto XMLHttpRequest. A demonstração foi realizada com a publicação da API web e da aplicação Web em Web Sites no Windows Azure.

Seguem os slides da palestra Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS).

C#, Evento, MVP ShowCast, Programação assíncrona, Webcast, WPF

Palestra no MVP ShowCast 2013: Programação assíncrona com C# 5 no Visual Studio 2013

O evento MVP ShowCast 2013

MVP ShowCast Logo

O MVP ShowCast é um evento virtual gratuito sobre tecnologias da Microsoft, sendo composto por uma série de webcasts transmitidos ao vivo e gravados para serem disponibilizados depois. O evento foi idealizado e é organizado por MVPs do Brasil com apoio da Microsoft. Mais informações no site do evento: http://mvpshowcast.azurewebsites.net.

A palestra Programação assíncrona com C# 5 no Visual Studio 2013

No dia 3 de dezembro de 2013, eu apresentei o webcast da palestra Programação assíncrona com C# 5 no Visual Studio 2013 no evento virtual MVP ShowCast 2013.

Na palestra, eu apresentei a evolução dos padrões assíncronos no .NET Framework até a versão atual (.NET Framework 4.5.1): Asynchronous Programming Model (APM) no .NET Framework 1.0, Event-Based Asynchronous Pattern (EAP) no .NET Framework 2.0 e Task-based Asynchronous Pattern (TAP) no .NET Framework 4.0.

Apresentei detalhes do funcionamento do padrão Task-based Asynchronous Pattern (TAP), que é o padrão assíncrono atualmente recomendado pela Microsoft, bem como o padrão de assinaturas de métodos assíncronos em tipos .NET. A introdução do modificador async e do operador await na linguagem C# 5 facilitaram muito a programação assíncrona com o padrão TAP, permtindo que o desenvolvedor escreva um código assíncrono de modo similar à programação síncrona, sendo que o compilador fica responsável por gerar uma máquina de estado para alternar entre as tarefas.

Na primeira demonstração (TAP, async e await), eu criei uma biblioteca de classes (Class Library) para cálculo de fatorial e uma aplicação WPF para consumir a biblioteca. O participante do webcast teve a oportunidade de testemunhar problemas na renderização da interface da aplicação WPF na chamada do método síncrono para cálculo do fatorial e a resolução do problema na chamada de uma versão assíncrona do método.

Eu comentei sobre o uso da estrutura System.Threading.CancellationToken para implementar o suporte a cancelamento num método assíncrono, recurso que é opcional. Depois, eu mostrei como implementar o cancelamento numa aplicação cliente na chamada de um método assíncrono com suporte a cancelamento com uso da classe System.Threading.CancellationTokenSource.

E eu comentei sobre o uso da interface System.IProgress<in T> para implementar o suporte a notificação de progresso num método assíncrono, recurso que, assim como o cancelamento, também é opcional. Finalmente, eu mostrei como usar a classe System.Progress<T> e o seu evento ProgressChanged para atualizar um controle ProgressBar na aplicação WPF cliente.

Seguem os slides da palestra Programação assíncrona com C# 5 no Visual Studio 2013.