Utilizando Entity Framework no desenvolvimento de aplicacoes, temos a vantagem de trabalhar de forma independeente com qualquer banco de dados, desde que haja um "provider" especifico para Entity Framework.Neste post, mostro que e possivel utilizar EF com o banco de dados Oracle. Existem diversos providers de Oracle para o EF, um bom exemplo e o da DevArt (dotConnect), porem e uma solucao paga. A propria Oracle esta desenvolvendo um provedor com suporte ao Entity Framework, porem ate o momento deste POST ainda se encontra na versao Beta 3, porem em breve teremos a versao de producao, ai entao e so atualizar.Pre-requisitos:* ORACLE 10G express edition previamente instaladohttp://www.oracle.com/technetwork/database/express-edition/database10gxe-459378.html* ODAC1120250Beta_EntityFramework_32bit_xcopyhttp://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html* EntityFramework Code First 4.1http://www.microsoft.com/download/en/details.aspx?id=26825Maos a massa!Crie um novo usuario no Oracle, para este post criei um usuario chamado REPOSITORIO. O banco de dados para este exemplo consite em uma tabela de PESSOAS, que possui zero ou mais telefones, relacionada com uma tabela de TELEONES A estrutura do banco de dados ficou assim:Crie uma nova aplicacao Console e adicione as seguintes referencias:* EntityFramework.dll* Oracle.DataAccess.dll (na pasta de instalacao do Client do Oracle)Veja o codigo completo da aplicacao Console (coloquei todas as classes no mesmo arquivo Program.cs para este post, obviamente costumo separar um arquivo para cada classe nos meus projetos) :Nao esquecer de corrigir a string de conexao com o valor correto (geralmente e o nome da estacao local). Podemos adicionar novas funcionalidades a um determinado repositorio e manter a testabilidade. Uma das maneiras de se fazer isso e com o auxilio de uma interface adicional: Existem alguns metodos que podem ser sobrescritos e customizados com "override" ao extender a classe base do Repositorio. Aqui vai um exemplo:Abaixo segue uns Unit Tests mostrando a utilizacao do padrao. No decorrer do desenvolvimento de uma aplicacao web, muitas vezes precisamos disponibilizar acesso remoto para outros computadores, seja para testes ou para apresentacoes. O Visual Studio ate a versao 2010 tinhamos somente o Cassini, um servidor HTTP integrado ao ASP.NET embutido para fins de desenvolvimento mas que so permite conexoes locais e se quisessemos permitir acesso remoto teriamos que publicar o projeto em uma versao full do IIS. A partir do service pack 1 do Visual Studio 2010 e no Visual Studio 2012, temos a disposicao outra opcao de servidor web: o IIS Express, que e muito semelhante a versao full, mas muito superior ao Cassini, que permite acesso remoto e suportando inclusive HTTPS/SSL.Para habilitar o IIS Express, basta clicar com o botao direito sobre a aplicacao Web e em seguida clicar em "Use IIS Express".Ao rodar a aplicacao, podemos ver o icone do IIS no System Tray, e verificamos a porta em que a aplicacao esta rodando.Para cada aplicacao que e configurada para rodar com IIS Express, uma nova entrada com as configuracoes da aplicacao e inserida no arquivo de configuracao do IIS Express, que fica localizado por padrao na pasta de documentos\IIS Express\config\applicationhost.config Para habilitar acesso remoto, o HTTP.SYS precisa autorizar o acesso a um determinado endereco e porta. Execute os seguintes passos para isso: Primeiro encerre o IIS Express. Em seguida, abra um prompt de