SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
InversionofControlDependencyInjectionService Locator,[object Object],Intervalo Técnico – I9 Informática,[object Object],Arthur Nascimento,[object Object],Waldyr Félix,[object Object]
Roteiro,[object Object],O que é IoC?,[object Object],O que é DI?,[object Object],O que é SL?,[object Object],Os padrões SoC e SRP,[object Object],Exemplo de IoC com DI,[object Object],Frameworks,[object Object],Vantagens de usar Frameworks,[object Object],Demo com Testes Unitários,[object Object],Demo de DI com Ninject,[object Object]
O que é IoC?,[object Object],Inversão de Controle, ou IoC, é um princípio abstrato que descreve um aspecto de alguns projetos de arquitetura de software em que o fluxo de controle de um sistema é invertido em relação a programação convencional.,[object Object]
O que é DI?,[object Object],Injeção de Dependência (ou DI) é um termo usado para descrever o processo de passar as dependências para as classes de baixo acoplamento. É a forma mais usada de IOC.,[object Object],Para isso existem ferramentas chamadas Contêiner de Injeção de Dependência.,[object Object]
O que é DI?,[object Object],Formas de DI,[object Object],Injeção pelo construtor,[object Object],Injeção através de métodos,[object Object],Injeção através de propriedades (get/set),[object Object]
O que é SL?,[object Object],Service Locator é um padrão de projeto para que encapsula a obtenção dos objetos, através de uma camada centralizada.,[object Object],Também é uma forma de IoC,[object Object],Frequentemente é criado com base num contêiner de IoC,[object Object]
Os padrões SoC e SRP,[object Object],O Princípio da Separação de Responsabilidades (SoC) é o processo de identificação e separação de estruturas dentro do código que representam comportamentos distintos. Geralmente, uma responsabilidade representa uma característica ou comportamento de uma classe.,[object Object]
Os padrões SoC e SRP,[object Object],O Princípio da Responsabilidade Única (SRP) dizque: ,[object Object],Cadaobjetodevepossuirapenasumaúnicaresponsabilidade,[object Object],Apenas um motivoparamudar,[object Object],Podendoessaideiaserextrapoladaparaosmétodosdesseobjetotambém,[object Object]
Exemplo de IOC com DI,[object Object]
Exemplo de IOC com DI,[object Object]
Exemplo de IOC com DI,[object Object]
Frameworks,[object Object],Ninject,[object Object],Unity,[object Object],StructureMap,[object Object],Spring.Net,[object Object],Windsor,[object Object]
Vantagens de usar um framework,[object Object],Ponto único de configuração,[object Object],Usa convenção para resolver as dependências,[object Object],Controle de ciclo de vida dos objetos,[object Object],Facilidade de uso,[object Object]
1) Demo com Testes Unitários2) Demo de DI com Ninject,[object Object]
Dúvidas?Observações?Críticas?Sugestões?Lamentações?,[object Object]

Más contenido relacionado

Similar a IoC, DI e SL

YII - Web Programming Framework
YII - Web Programming FrameworkYII - Web Programming Framework
YII - Web Programming FrameworkPHPRio
 
Apresentando o Yii Framework
Apresentando o Yii FrameworkApresentando o Yii Framework
Apresentando o Yii Frameworkangellicacardozo
 
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicação
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicaçãoRefatoração e uma vida saudável para o desenvolvedor e para sua aplicação
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicaçãoEduardo Cesar
 
Migrations com Entity Framework Core
Migrations com Entity Framework CoreMigrations com Entity Framework Core
Migrations com Entity Framework CoreCaio Lorensetti
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4CDS
 
Mantendo a plenitude do seu novo legado com code-refactoring
Mantendo a plenitude do seu novo legado com code-refactoringMantendo a plenitude do seu novo legado com code-refactoring
Mantendo a plenitude do seu novo legado com code-refactoringEduardo Cesar
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoMarcius Brandão
 
Introducao a Clean Architecture
Introducao a Clean ArchitectureIntroducao a Clean Architecture
Introducao a Clean ArchitectureRafael Capuano
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Java CDI: Usando Java CDI em projetos Jakarta EE ou Microprofile
Java CDI: Usando Java CDI em projetos Jakarta EE ou MicroprofileJava CDI: Usando Java CDI em projetos Jakarta EE ou Microprofile
Java CDI: Usando Java CDI em projetos Jakarta EE ou MicroprofileVictor Osorio
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_jsgustavobeavis
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...tdc-globalcode
 
middlewareReflexivo.ppt
middlewareReflexivo.pptmiddlewareReflexivo.ppt
middlewareReflexivo.pptPatrícia Melo
 

Similar a IoC, DI e SL (20)

YII - Web Programming Framework
YII - Web Programming FrameworkYII - Web Programming Framework
YII - Web Programming Framework
 
Apresentando o Yii Framework
Apresentando o Yii FrameworkApresentando o Yii Framework
Apresentando o Yii Framework
 
Spring Data Neo4j
Spring Data Neo4jSpring Data Neo4j
Spring Data Neo4j
 
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicação
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicaçãoRefatoração e uma vida saudável para o desenvolvedor e para sua aplicação
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicação
 
Migrations com Entity Framework Core
Migrations com Entity Framework CoreMigrations com Entity Framework Core
Migrations com Entity Framework Core
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 
Mantendo a plenitude do seu novo legado com code-refactoring
Mantendo a plenitude do seu novo legado com code-refactoringMantendo a plenitude do seu novo legado com code-refactoring
Mantendo a plenitude do seu novo legado com code-refactoring
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Introducao a Clean Architecture
Introducao a Clean ArchitectureIntroducao a Clean Architecture
Introducao a Clean Architecture
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Java CDI: Usando Java CDI em projetos Jakarta EE ou Microprofile
Java CDI: Usando Java CDI em projetos Jakarta EE ou MicroprofileJava CDI: Usando Java CDI em projetos Jakarta EE ou Microprofile
Java CDI: Usando Java CDI em projetos Jakarta EE ou Microprofile
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
 
middlewareReflexivo.ppt
middlewareReflexivo.pptmiddlewareReflexivo.ppt
middlewareReflexivo.ppt
 
Azure IoT hub
Azure IoT hubAzure IoT hub
Azure IoT hub
 

Más de Waldyr Felix

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceWaldyr Felix
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerWaldyr Felix
 
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...Waldyr Felix
 
HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.Waldyr Felix
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsWaldyr Felix
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsWaldyr Felix
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileWaldyr Felix
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5Waldyr Felix
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSWaldyr Felix
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com RedisWaldyr Felix
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Waldyr Felix
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkWaldyr Felix
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCWaldyr Felix
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APIWaldyr Felix
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft FakesWaldyr Felix
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Waldyr Felix
 

Más de Waldyr Felix (20)

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performance
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do Docker
 
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
 
HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity Framework
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
 

IoC, DI e SL

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.