Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ninject

Bom dia...

Não entendi o papel do Ninject, mesmo pesquisando na web, poderia me explicar por favor os pontos abaixo ? 1. Qual a aplicação real do Ninject ? 2. Se eu não instalar, o que acontece com minha aplicação ? não funciona ? 3.Qual parte do código da aplicação, eu teria que tirar, ou não poderia mais usar se eu não quisesse usar o Ninject?

1 resposta
solução!

Olá, José Luiz

  1. Qual a aplicação real do Ninject ?

Ninject é um framework para facilitar injeção de dependência. De acordo com a Wikipedia

Injeção de dependência (Dependency Injection, em inglês) é um padrão de desenvolvimento de programas de computadores utilizado quando é necessário manter baixo o nível de acoplamento entre diferentes módulos de um sistema. Nesta solução as dependências entre os módulos não são definidas programaticamente, mas sim pela configuração de uma infraestrutura de software (container) que é responsável por "injetar" em cada componente suas dependências declaradas. A Injeção de dependência se relaciona com o padrão Inversão de controle mas não pode ser considerada um sinônimo deste.

Resumindo: em vez de você instanciar os objetos com o operador new, você simplesmente solicita uma instância do container de injeção de dependência (neste caso, o Ninject), que ele irá instanciar e devolver uma instância pra você.

  1. Se eu não instalar, o que acontece com minha aplicação ? não funciona ? 3. Qual parte do código da aplicação, eu teria que tirar, ou não poderia mais usar se eu não quisesse usar o Ninject?

Não é obrigatório usar injeção de dependência, porém sua aplicação ficará com alto acoplamento caso você crie instâncias com operador new em diversos pontos do seu código. Se você precisar criar testes de unidade, vai descobrir que é muito difícil, ou impossível, criar testes para métodos que instanciam objetos com o operador new. Com injeção de dependência, por outro lado, você consegue substituir essas dependências por "mocks", que são "falsas instâncias", e assim você pode realmente testar um método isoladamente.

Não é uma questão de funcionar ou não funcionar. Por exemplo, você pode criar um método de 50 mil linhas para implementar uma impressão de um relatório, e ainda assim funcionar perfeitamente. Porém, 50 mil linhas para um método é um bom design? Outros desenvolvedores vão entender o que seu método faz? Você consegue criar testes de unidade para ele? São essas questões que motivam o uso de injeção de dependência, não apenas o fato de funcionar ou não.