DDD+NHibernate+MySQL+Unit Test+Value Object+Entities

NHibernate + MySql + DDD
No git acima você vai encontrar todo o código que está bem auto explicativo, mesmo assim, segue um passo a passo para quem for utilizar .Net + webAPI + NHibernate + DDD
Passo 1: Instalar o “mysql-installer-web-community-5.7.12.0”
*Aqui atente-se para instalar o provider para .NET e definir uma senha de root que será passada na string de conexão.


Passo 2:
Uma vez instalado, abrir o projeto passado via github
https://github.com/fpnav/MinhaEmpresa.Agenda.git

Na pasta “MinhaEmpresa.Agenda/MinhaEmpresa.Agenda.Testes” encontre o arquivo nhibernate.cfg.xml e dentro dele você vai modificar a string de conexão, driver para o provider entre outros.

Trocar para isto:
<property name=”connection.driver_class”>NHibernate.Driver.MySqlDataDriver</property>
<property name=”connection.provider”>NHibernate.Connection.DriverConnectionProvider</property>
<property name=”dialect”>NHibernate.Dialect.MySQLDialect</property>
<property name=”connection.connection_string”>
      server=localhost;user id=root;password=root;persistsecurityinfo=True;database=NHMysql1
</property>
* Desta forma estamos apontando para um Banco de Dados MySQL em LOCALHOST chamado NHMysql1
** Fazer uma análise do projeto como um todo, atentar-se para os Mapeamentos e para as Entidades no Domínio, neste reparar que temos Cliente como uma classe comum (sem relacionamentos) e temos também a Entidade User.cs e o Value Object Address.cs que possuem um relacionamento de 1 para Muitos (one to many).
Para estabelecer este relacionamento no NHibernate deveremos utilizar no mapeamento hbm.xml o atributo BAG ( a seguir os mapeamentos tanto para User quanto para Address).
<?xml version=”1.0″ encoding=”utf-8″ ?>
<hibernate-mapping xmlns=”urn:nhibernate-mapping-2.2″
                   namespace=”MinhaEmpresa.Agenda.Dominio.Entidades” assembly=”MinhaEmpresa.Agenda.Dominio”>
 
  <!–Aqui no atributo table estava assim table=[usuarios] e funcionava bem no localDB–>
  <!–Para o MySQL tive que retirar os colchetes para que funcionasse–>
  <class name=”User” table=”Usuarios” mutable=”true”>
 
    <id name=”Id”>
      <generator class=”identity”/>
    </id>
    <property name=”UserName” />
 
    <bag table=”EnderecoUsuario” name=”Address”>
      <key column=”Id” not-null=”true”/>
      <!–<list-index column=”Adress_Position”></list-index>–>
      <composite-element class=”MinhaEmpresa.Agenda.Dominio.ValueObjects.Address”>
        <property name=”Street1″/>
        <property name=”Street2″/>
        <property name=”City”/>
        <property name=”Region”/>
        <property name=”Country”/>
        <property name=”PostalCode”/>
      </composite-element>
    </bag>
  </class>
</hibernate-mapping>
* Repare que o mapeamento está relacionando Endereço como um BAG em relação à Usuário.
** No BD, será criada 1 tabela para Usuario e uma tabela para Endereco e nesta teremos um campo Id que será a chave estrangeira para Usuario.
Cheers!
Publicado em Uncategorized

Exception com Update-Database ou Enable-Migrations EntityFramework no Package Manage Console

Quando receber uma exceção deste tipo:

Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly...

É que provavelmente você tentou abrir um projeto feito download da Internet. Arquivos podem vir bloqueados, portanto, vá até a propriedade do arquivo .sln e faça seu desbloqueio.

Desta forma poderá usar comandos no Package Manage Console como Update-Database e executar o projeto.

Marcado com: , , , ,
Publicado em Uncategorized

NUGET – Como instalar pacotes no modo OffLine ou Local

1- Você pode criar uma pasta onde ficarão os pacotes .nupkg, depois ir até TOOLS/Nuget Package Manager/Package Manager Settings.
2- Depois em Package Sources, Adicione uma nova Package Source e aponte para a pasta criada anteriormente.
3- Agora no Package Manage Console, escolha o Package Source que você criou e pode fazer a instalação.

Comandos úteis
Listar Pacotes disponíveis
PM> Get-Package -ListAvailable

Instalar um pacote
PM> Install-Package NOME

Desinstalar um pacote
PM> Uninstall-Package NOME

Atualizar pacote
PM> Update-Package NOME

(baseado em http://docs.nuget.org/docs/creating-packages/hosting-your-own-nuget-feeds)

Publicado em Asp.Net MVC, C#, Entity Framework, gerenciador de pacotes, Nuget

Mini-curso Asp.Net MVC com Entity Framework – UNIVEM

Olá,

Neste próximo sábado dia 26 de outubro vou ministrar um curso sobre desenvolvimento Web utilizando tecnologias open-source Microsoft.

Conteúdo do curso:

“Neste mini-curso veremos como as tecnologias open-source da Microsoft podem contribuir para seu crescimento profissional.
Iremos construir uma aplicação Web com conceitos de mercado e padrões de projeto.”

O Pattern MVC
CodeFirst – Banco de Dados via classes POCO
Entity Framework
Rotas
Razor
Scaffolding
etc.

Marcado com: , ,
Publicado em Asp.Net MVC, C#, Cursos, Entity Framework

Livro Google Android – Casa do Código

Comprei faz um mês o Livro da Caelum sobre Android, quero deixar aqui minha recomendação, pois além de ser um livro completo que abrange desde de conceitos como Layout, passa por Banco de Dados, consumo de serviços com JSON/REST chegando até a como publicar sua aplicação. Parabéns ao João Bosco Monteiro.

www.casadocodigo.com.br/products/livro-android

Enjoy

Marcado com:
Publicado em Android

Certificação Microsoft MCP 70-480

Recentemente adquiri a certificação 70-480 (Programming in HTML5 with JavaScript and CSS3) e utilizei algumas fontes que compartilho com vocês,  segue:

Visão geral das provas e certificações Microsoft:
http://www.devmedia.com.br/visao-geral-das-certificacoes-do-visual-studio-2012-e-net-framework-4-5/26477

Conteúdo da prova:
http://www.microsoft.com/learning/en/us/exam.aspx?id=70-480

Guia de estudos:
(em inglês)

*Este é muito bom, pois está linkando cada um dos Skills Measured da prova

Study Notes for 70-480 Programming HTML5 and CSS 3 Exam


http://geekswithblogs.net/WTFNext/archive/2012/10/08/exam-70-480-study-material-programming-in-html5-with-javascript-and.aspx
http://www.bloggedbychris.com/2012/09/19/microsoft-exam-70-480-study-guide/
http://www.techexams.net/forums/microsoft-developers-certifications/79076-70-480-programming-html5-javascript-css3.html

(em inglês, mas com possibilidade de tradução com uma qualidade muito boa)
https://developer.mozilla.org/pt-BR/learn#

(em português)
* Bem objetivo
http://elcentrohtml5.sourceforge.net/Aprenda-HTML5-en-5-minutos
http://www.html5rocks.com/pt/

(Vídeos)
Para quem estiver com um pouco mais de tempo, estes vídeos da MS são muito bons.
http://www.microsoftvirtualacademy.com/training-courses/learn-html5-with-javascript-css3-jumpstart-training

É isso! espero que seja útil. Bons estudos!
Agora rumo à 70-486 Developing ASP.NET MVC 4 Web Applications

Marcado com: , , , , ,
Publicado em 70-480, C#, Certificação Microsoft, CSS3, HTML5, Javascript

Android Phonegap JQuery Mobile App crashing when rotating

When you are creating your Phonegap App and you don’t copied from tutorial, you probably can do some mistakes.

One of this could be set the orientation (portrait|Landscape)

You have to set on AndroidManifest.xml on activity:

android:configChanges=”orientation|keyboardHidden|keyboard|screenSize|locale”

Sya.

Marcado com: , ,
Publicado em Android, JQuery Mobile, Phonegap

Como renomear arquivos Amazon S3 aws

Olá,
Recentemente tive que organizar algumas imagens no S3 Amazon e precisei renomear algumas imagens e quando fui procurar inclusive disseram que não era possível renomear arquivos no S3 (http://stackoverflow.com/questions/2481685/amazon-s3-boto-how-to-rename-a-file-in-a-bucket).

Mas existe um meio sim, basta instalar o AWS Toolkit para Visual Studio (http://aws.amazon.com/pt/visualstudio/ ) e poderás renomear, copiar…ou seja, poderá gerenciar seus arquivos de forma bem prática.

Marcado com: , , , ,
Publicado em Amazon, AWS, Visual Studio

you cannot start application from this location because it is already installed from a different location

Go to control panel and unistall the application and try to install again.
Vá até painel de controle e desinstale a aplicação e tente instalar novamente.

Marcado com:
Publicado em Uncategorized

Não posso conectar à minha instância na Amazon – AWS

Também tive este problema e resolvi da seguinte maneira:

1) Acesse seu console na Amazon
2) Vá até Security groups
3) Escolha a aba Inbounds
4) Em Create a New Rule escolha All TCP e adicione a porta 80 em port range
5) Dê um Apply Rule Changes e então a conexão se fez!

Você deve ter seu arquivo .pem guardado em algum lugar e com ele recuperar seu password, caso não saiba, clicando em connect nas ações da instância.

Marcado com: , , , ,
Publicado em Amazon, AWS, instância