MiniProfiler + EF6

03/26/2014 23:14:07 By Felipe Pessoto

Há algum tempo tive problemas com o MiniProfiler e o Entity Framework 6, até que lançaram uma nova versão beta que suporta o EF6.

Porém o MiniProfiler continuava usando o método antigo de interceptação que criava uma wrapper nos providers, conexões, comandos, etc. Que não é mais necessário, além de estar no limite da gambiarra.

Além disso tinha um grande problema, não funcionava com outras ferramentas que também usavam o método antigo, por exemplo o EFProf.

Criei um tópico no forum de suporte e acabei desenvolvendo uma nova implementação do MiniProfiler.EF6, dessa vez usando um Interceptor, evitando gambiarras e com o código muito mais simples, além de agora também mostrar o valor e informaçoes sobre os parametros das queries. E agora funciona com o EFProf.

 

 

Seguem os links das discussões e o pull request no GitHub:

http://community.miniprofiler.com/t/miniprofiler-efprof-doesnt-work/239

http://community.miniprofiler.com/t/will-mini-profiler-support-ef6/19/9

https://github.com/MiniProfiler/dotnet/pull/44

Entity Framework 6 Alpha 2

12/12/2012 21:27:15 By Felipe Pessoto

O Entity Framework, que está sendo desenvolvido de forma Open Source no Codeplex, acaba de receber mais um release Alpha, cerca de um mês após o primeiro. A intenção é colher o feedback dos desenvolvedores, pra isso basta iniciar um tópico no Fórum do Codeplex.

Novidades desde o Alpha 1:

Em alguns casos será necessário atualizar o código pra funcionar na nova versão do Entity Framework.

O Alpha 2 já se encontra no NuGet.

Programming Entity Framework

10/16/2012 23:32:28 By Felipe Pessoto

Já faz algum tempo que terminei de ler este livro mas não tive a oportunidade de comentar sobre ele.
Você pode pensar, um livro sobre Entity Framework? Mas não é só sair usando? Sim você pode, mas como qualquer ORM o Entity Framework é uma abstração, que tenta ser o mais transparente possível, mas o mundo relacional e orientado a objetos é bem diferente e nem tudo acaba se comportando como a gente espera por isso é importante tem uma noção de coisas as coisas funcionam. Isso vale pra qualquer biblioteca ou framework, seja NHibernate, ASP.NET, BCL, etc, quando as coisas dão errado e algo parece estranho ou ser um bug, normalmente o problema é algum detalhe no nosso código que não é tão óbvio quando não conhecemos bem o funcionamento da ferramenta.

Read more...

Entity Framework Open Source

07/19/2012 21:39:58 By Felipe Pessoto

Hoje foi anunciado em diversos blogs dos developers da Microsoft sobre a abertura do código fonte do Entity Framework. É a primeira vez que o código do Core do .NET é aberto, apesar dos planos de migrar o Entity Framework 6 para um projeto separado, o que é ótimo.

Há muito tempo eu já pedia para tornarem o EF Open Source, mas não tinha tanta esperança que acontecesse realmente, já que nunca o Core do .NET foi liberado.

Nos últimos anos temos visto várias iniciativas da Microsoft aderindo ao Open Source, um dos principais projetos foi o ASP.NET MVC, que iniciou como um Open Source "one way" pois não aceitavam contribuição da comunidade, mas já foi um grande avanço, facilitando muito a interoperabilidade com o Linux/Mono. Alguns anos depois o ASP.NET MVC assim como suas dependencias(Razor, entre outros) foram distribuidos com a licença Apache, muito mais permissiva, além de agora aceitarem contribuições da comunidade. E agora um componente do Core do .NET Open Source e aceitando contibuições, parece até mentira.

Não só o Core do Entity Framework foi aberto como todas suas "peças": pacotes NuGet, Code First, DbContext e o Entity Framework Power Tools. Para baixar o código ou criar um fork você pode acessar o projeto do Entity Framework no Codeplex. Lá tem todas as informações sobre como contribuir, as regras, etc.

O anuncio foi feitos em vários blog: ScottGu, ADO.NET, o Scott Hanselman também deu sua opinião, assim como o Arthur Vickers, desenvolvedor do EF. O Arthur também postou uma série explicando como contribuir com o projeto e algumas coisas sobre como o Entity Framework funciona.

No codeplex tem uma página interessante, com as atas das reuniões semanais que o time do Entity Framework realiza, é interessante para acompanhar o desenvolvimento do projeto e opinar sobre as decisões feitas.

Running & Scripting Migrations From Code

05/09/2012 23:16:00 By Felipe Pessoto

Rowan Miller explained how to script Migrations from code, but his code was write using a pre-RTM version of Code First Migrations and doesn´t work when using EntityFramework 4.3.1.

I did some reflector work and get a solution that should work.

The most obvious difference is that some classes was renamed. Another point, at least in my case I needed to configure some additional things, like MigrationsAssembly
and MigrationsNamespace, these properties are used to find Code-Based migrations, that is what I want instead of use Automatic Migrations.

The code that does the magic:

System.Data.Entity.Migrations.DbMigrationsConfiguration configuration =newSystem.Data.Entity.Migrations.DbMigrationsConfiguration();
configuration.ContextType=typeof(FujiyBlogDatabase);//TODO Change to your DbContext
configuration.MigrationsAssembly= configuration.ContextType.Assembly;
configuration.MigrationsNamespace="FujiyBlog.Core.Migrations";//TODO Namespace that contains your migrations classes

var migrator =new System.Data.Entity.Migrations.DbMigrator(configuration);

if(true)//TODO Do you want the script or Update de database?
{
    var scriptor =newSystem.Data.Entity.Migrations.Infrastructure.MigratorScriptingDecorator(migrator);
    string script = scriptor.ScriptUpdate(sourceMigration:null, targetMigration:null);
}
else
{
    migrator.Update();
}