Fujiy

Blog sobre .NET, C#, ASP.NET entre outras tecnologias de desenvolvimento de software

Novidades no Windows Azure Junho 2012

10/06/2012 00:07:05 Por Fujiy

Junto com o último SDK (June 2012) o Windows Azure trouxe várias novidades importante. Agora sobre o comando do Scott Gu o Windows Azure está recebendo muitas novidades que devem ajudar ainda mais no sucesso da plataforma.

Novo Portal

O novo portal feito do zero, agora é muito rápido e fluído, construido com a API Rest, tudo que pode ser feito nele também pode ser feito usando as Web API´s, inclusive também está disponível a ferramente para linha de comando que permite criar scripts e automatizar as tarefas administrativas, usando o PowerShell para Windows e o Bash para Linux e Mac. O código fonte da ferramente está disponível no GitHub sobre a Licença Apache 2.0, assim como o Azure SDK em si.

O site funciona em todos os browsers e pelo que vi pelos HTTP Headers, o site é feito em .NET4.0 e MVC 3.0.

Máquinas Virtuais

Agora é possível usar Máquinas Virtuais persistentes, já que antes era possível apenas criar máquinas virtuais que não persistiam o estado, isto é, sempre que o processo era interrompido a máquina virtual era "resetada" ao estado inicial. Com isso ficou simples migrar seu servidor on-premise pro Windows Azure, basta enviar o arquivo VHD da máquina virtual e já está na nuvem, inclusive servidor Linux. Também é possível criar máquinas virtuais a partir de imagens prontas:

 

Web Sites

Outra novidade é o servidor de Web Sites, que permite fazer o deploy de aplicações ASP.NET, Node.js e PHP, que inclusive está com um plano grátis por 1 ano (no mínimo) para até 10 sites. O deploy pode ser feito usando  FTP, Git, TFS e Web Deploy:

O plano grátis é para ambientes compartilhado, mas é possível fazer o upgrade para planos dedicados, usando todos os tamanhos de instancias disponíveis, ou mesmo usando várias pra um mesmo site. O Load Balance é automático e os mesmos métodos que deploy continuam funcionando, não importat quantas instancias você tenha:

 

 

SDK

O SDK agora está disponível para Windows, Mac e Linux, para diversas linguagens e plataformas, como .NET, Java, Node.js, PHP, e Python:

 

É muita novidade e promete levar o Azure à vários níveis acima.

Para mais detalhes sugiro o blog do Scott Gu

Roslyn June 2012 CTP

06/06/2012 07:45:50 Por Fujiy

Anunciada uma nova versão do Roslyn, projeto que permite usar o compilador de C# e VB.NET como um serviço, agora suportando o Visual Studio 2012 RC e com algumas novidades em relação ao suporte a linguagem:

  • Tipos anônimos
  • Queries
  • Eventos
  • Índices
  • Parametros Nomeados e Opcionais
  • Algumas outras expressões (using, lock/SyncLock, etc)

O download pode ser feito por este link, ou usando o package do NuGet que contem as API´s que não dependem do Visual Studio.

Configurando Beyond Compare no TFS

30/05/2012 07:48:33 Por Fujiy

Uma dica pra quem prefere o Beyond Compare (na minha opinião, a melhor ferramente de comparação), é possível usar ele no TFS. Pra isso é só seguir os seguintes passos

  1. Abrir o menu Tools -> Option
  2. No menu lateral, escolha Source Control. Se a Visual Studio Team Foundation Server não estiver selecionado, selecione.
  3. De volta ao menu lateral, selecione o item Visual Studio Team Foundation Server dentro de Source Control.
  4. Clique no botão Configure User Toolse adicione a seguinte entrada:
    • Extension: .*
    • Operation: Compare
    • Command: O caminho pro BComp.exe, no meu caso: C:\Program Files (x86)\Beyond Compare 3\BComp.exe
    • Arguments: %1 %2 /title1=%6 /title2=%7
  5. Se quiser usar o Beyond Compare para Merge também, adicione mais uma entrada com os seguintes parâmetros:
    • Extension: .*
    • Operation: Merge
    • Command: O caminho pro BComp.exe, no meu caso: C:\Program Files (x86)\Beyond Compare 3\BComp.exe
    • Arguments: %1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Running & Scripting Migrations From Code

10/05/2012 00:16:34 Por Fujiy

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();
}

FujiyBlog vNext - Automatic Migrations

10/05/2012 00:05:24 Por Fujiy

Com o suporte ao unicode aproveitei pra testar a criação das migrations e scripts SQL. Há algum tempo tentei automatizar o processo, seguindo o post do Rowan Miller, PM de ADO.NET Entity Framework, Running & Scripting Migrations From Code, mas não funciona pelo menos na versão 4.3.1. Cheguei a comentar no post mas não tive resposta.

O jeito foi tentar entender o código que faz o Migration, usando o decompiler do Resharper. Consegui chegar num resultado que permite a migração totalmente automática, quando se tem as permissões necessárias no banco de dados, ou a geração do Script dinamicamente. Pretendo criar um post explicando o processo, que é bem simples, e (tentar) fazer uma versão em inglês pois vi que tem várias pessoas com o mesmo problema que tive.