SlideShare une entreprise Scribd logo
1  sur  27
http://netponto.org,[object Object],14ª Reunião Presencial - 18/09/2010,[object Object],Inversão de Controlo (IoC) / Injecção de Dependência (DI)Bruno Lopes e Caio Proiete,[object Object]
Bruno Lopes,[object Object],5 anos de experiência profissional em IT,[object Object],Co-Fundador da weListen, Business Solutions,[object Object],Ex-Sysadmin,[object Object],Pythonista nos tempos livres,[object Object]
                                  Caio Proiete,[object Object],Bruno Lopes,[object Object],10 anos de experiência profissional em TI,[object Object],Consultor da Novabase,[object Object],Formador da Ciclo,[object Object],Microsoft MVP, MCT,[object Object],5 anos de experiência profissional em IT,[object Object],Co-Fundador da weListen, Business Solutions,[object Object],Ex-Sysadmin,[object Object],Pythonista nos tempos livres,[object Object]
Agenda,[object Object],Inversão de Controlo (IoC) - Princípio,[object Object],DependencyInjection (DI) - Padrão,[object Object],Demo,[object Object],Unity e Autofac como containerspara DI,[object Object],Demo,[object Object],Outros containers para DI,[object Object]
Também disponível em vídeo...,[object Object],Assista!,[object Object],http://www.vimeo.com/20080387,[object Object]
Inversão de Controlo (IoC) / Injecção de Dependência (DI) - Bruno Lopes & C. Augusto Proiete
// Magic. Do not touch.,[object Object],http://stackoverflow.com/questions/184618,[object Object]
// Magic. Do not touch.,[object Object],// When I wrote this, only God and I understood what I was doing,[object Object],http://stackoverflow.com/questions/184618,[object Object]
// Magic. Do not touch.,[object Object],// When I wrote this, only God and I understood what I was doing,[object Object],// Now, God only knows,[object Object],http://stackoverflow.com/questions/184618,[object Object]
// Magic. Do not touch.,[object Object],// When I wrote this, only God and I understood what I was doing,[object Object],// Now, God only knows,[object Object],// somedev1 - 06/07/02 Adding temporary tracking of Login screen// somedev2 - 05/22/07 Temporary my ass,[object Object],http://stackoverflow.com/questions/184618,[object Object]
Inversão de Controlo (IoC),[object Object],Numa hierarquia, os módulos de nível mais alto não devem depender directamente dos módulos de nível mais baixo. Ambos devem depender de abstracções.,[object Object]
Inversão de Controlo (IoC),[object Object],Numa hierarquia, os módulos de nível mais alto não devem depender directamente dos módulos de nível mais baixo. Ambos devem depender de abstracções.,[object Object],As abstracções não devem depender de detalhes de implementação, mas os detalhes devem depender das abstracções.,[object Object]
Exemplo (simples) da Violação do Princípio,[object Object],public class SessoesNetPontoService,[object Object],{,[object Object],    public IEnumerable<Sessao>ObterSessoesDo(string nomeOrador),[object Object],    {,[object Object],var service = newNetPontoDataService();,[object Object],returnservice.ObterSessoes(),[object Object],            .Where(s => s.Orador.Nome == nomeOrador),[object Object],    },[object Object],},[object Object],Inversão de Controlo (IoC),[object Object]
Exemplo (simples) da Violação do Princípio,[object Object],public class SessoesNetPontoService,[object Object],{,[object Object],    public IEnumerable<Sessao>ObterSessoesDo(string nomeOrador),[object Object],    {,[object Object],var service = newNetPontoDataService();,[object Object],returnservice.ObterSessoes(),[object Object],            .Where(s => s.Orador.Nome == nomeOrador),[object Object],    },[object Object],},[object Object],Inversão de Controlo (IoC),[object Object]
Exemplo (simples) da Violação do Princípio,[object Object],Precisamosabstrairestadependência.,[object Object],Dependency Injection FTW :),[object Object],public class SessoesNetPontoService,[object Object],{,[object Object],    public IEnumerable<Sessao>ObterSessoesDo(string nomeOrador),[object Object],    {,[object Object],var service = newNetPontoDataService();,[object Object],returnservice.ObterSessoes(),[object Object],            .Where(s => s.Orador.Nome == nomeOrador),[object Object],    },[object Object],},[object Object],Inversão de Controlo (IoC),[object Object]
Injecção de Dependências (DI),[object Object],Técnica / Padrão de Implementação,[object Object],Diferentes Formas de Implementar,[object Object],ConstructorInjection*,[object Object],SetterInjection,[object Object],Interface Injection,[object Object],* mais comum,[object Object]
IoC – Antes e depois,[object Object],demonstração,[object Object]
IoC Containers,[object Object],Bibliotecas de suporte a DI,[object Object],Implementam,[object Object],Registo de implementações de serviços,[object Object],Resolução de dependências,[object Object],Gestão de ciclo de vida,[object Object],Ocasionalmente AOP/Interception,[object Object],Demonstração de duas alternativas:,[object Object],Unity,[object Object],Autofac,[object Object]
Unity: DI Container,[object Object],“Application Block” da Microsoft,[object Object],http://unity.codeplex.com,[object Object],Actualmente na versão 2.0.,[object Object],Variantes para ,[object Object],.NET 3.5 e 4.0,[object Object],Silverlight 3 e 4,[object Object],Parte integrante da Enterprise Library ,[object Object],http://entlib.codeplex.com,[object Object]
Autofac: DI Container,[object Object],Open-Source,[object Object],http://code.google.com/p/autofac/,[object Object],Actualmente na versão 2.2.4,[object Object],Versão 2.3.1 em Preview,[object Object],Variantes para ,[object Object],.NET 3.5 e 4.0,[object Object],Silverlight 3 e 4,[object Object]
Utilização de ContainersUnity e Autofac,[object Object],demonstração,[object Object]
Outros containers para DI,[object Object],Castle Windsor,[object Object],http://www.castleproject.org/container/index.html,[object Object],Ninject,[object Object],http://ninject.org,[object Object],Spring.NET,[object Object],http://www.springframework.net,[object Object],StructureMap,[object Object],http://structuremap.sourceforge.net,[object Object],Lista com maisalgumasopções,[object Object],http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx,[object Object]
Resumo,[object Object],Dependency Injection,[object Object],Classes independentesumas das outrasatravés de abstrações.,[object Object],Menorimpactoparaintrodução de mudanças e códigomaisfácil de testar.,[object Object],Diferentesformas de implementar (Constructor, Setter, Interface, entre outras...,[object Object],Normalmenteutiliza-se algumtipo de Containerpara as dependências. Váriasopçõesdisponíveis.,[object Object]
Questões?,[object Object]
Patrocinadores deste evento,[object Object]
Próximas reuniões presenciais,[object Object],18/09/2010 - Setembro,[object Object],23/10/2010 - Outubro,[object Object],20/11/2010 - Novembro,[object Object],11/12/2010 - DezembroReserva estes dias na agenda! :),[object Object]
Obrigado!,[object Object],Bruno Lopes,[object Object],brunomlopes@netponto.org,[object Object],http://brunomlopes.com,[object Object],http://twitter.com/brunomlopes,[object Object],Caio Proiete,[object Object],caio@netponto.org,[object Object],http://caioproiete.com,[object Object],http://twitter.com/caioproiete,[object Object]

Contenu connexe

En vedette

Uma Homenagem A Ti.
Uma Homenagem A Ti.Uma Homenagem A Ti.
Uma Homenagem A Ti.JNR
 
Eproinfobiancareginachristiane
EproinfobiancareginachristianeEproinfobiancareginachristiane
Eproinfobiancareginachristianebiancams
 
Expressoes Idiomaticas Sem Efeitos
Expressoes Idiomaticas Sem EfeitosExpressoes Idiomaticas Sem Efeitos
Expressoes Idiomaticas Sem EfeitosAna Passos
 
Vida
VidaVida
VidaJNR
 
ReméDio Para Nao Envelhecer
ReméDio Para Nao EnvelhecerReméDio Para Nao Envelhecer
ReméDio Para Nao EnvelhecerJNR
 
Meia Idade
Meia IdadeMeia Idade
Meia IdadeJNR
 
Pai Nosso Som
Pai Nosso   SomPai Nosso   Som
Pai Nosso SomJNR
 
Faca Alguem Feliz
Faca  Alguem  FelizFaca  Alguem  Feliz
Faca Alguem FelizJNR
 
EstratéGias Mentais
EstratéGias MentaisEstratéGias Mentais
EstratéGias MentaisJNR
 
[Video] como ganhar mais de 50 mil dólares
[Video] como ganhar mais de 50 mil dólares [Video] como ganhar mais de 50 mil dólares
[Video] como ganhar mais de 50 mil dólares RAM
 
Introdução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis AmorimIntrodução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis AmorimComunidade NetPonto
 
Angustia
AngustiaAngustia
AngustiaJNR
 
Eleições 2014 - Batalha de Páginas
Eleições 2014 - Batalha de Páginas Eleições 2014 - Batalha de Páginas
Eleições 2014 - Batalha de Páginas Elife Brasil
 
A Piada Que Dá Sorte
A Piada Que Dá SorteA Piada Que Dá Sorte
A Piada Que Dá SorteJNR
 
OraçãO Do Matuto
OraçãO Do MatutoOraçãO Do Matuto
OraçãO Do MatutoJNR
 
Compartilhando Suas IdéIas, SugestõEs E Problemas
Compartilhando Suas IdéIas, SugestõEs E ProblemasCompartilhando Suas IdéIas, SugestõEs E Problemas
Compartilhando Suas IdéIas, SugestõEs E Problemasequipepar
 
Arquivo Secreto
Arquivo SecretoArquivo Secreto
Arquivo SecretoJNR
 
Imagens Para Descontrair
Imagens Para DescontrairImagens Para Descontrair
Imagens Para DescontrairJNR
 

En vedette (20)

Uma Homenagem A Ti.
Uma Homenagem A Ti.Uma Homenagem A Ti.
Uma Homenagem A Ti.
 
Eproinfobiancareginachristiane
EproinfobiancareginachristianeEproinfobiancareginachristiane
Eproinfobiancareginachristiane
 
Expressoes Idiomaticas Sem Efeitos
Expressoes Idiomaticas Sem EfeitosExpressoes Idiomaticas Sem Efeitos
Expressoes Idiomaticas Sem Efeitos
 
Ativ01 Ro Cardoso
Ativ01 Ro CardosoAtiv01 Ro Cardoso
Ativ01 Ro Cardoso
 
Vida
VidaVida
Vida
 
ReméDio Para Nao Envelhecer
ReméDio Para Nao EnvelhecerReméDio Para Nao Envelhecer
ReméDio Para Nao Envelhecer
 
Meia Idade
Meia IdadeMeia Idade
Meia Idade
 
Pai Nosso Som
Pai Nosso   SomPai Nosso   Som
Pai Nosso Som
 
Faca Alguem Feliz
Faca  Alguem  FelizFaca  Alguem  Feliz
Faca Alguem Feliz
 
EstratéGias Mentais
EstratéGias MentaisEstratéGias Mentais
EstratéGias Mentais
 
[Video] como ganhar mais de 50 mil dólares
[Video] como ganhar mais de 50 mil dólares [Video] como ganhar mais de 50 mil dólares
[Video] como ganhar mais de 50 mil dólares
 
Introdução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis AmorimIntrodução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis Amorim
 
Angustia
AngustiaAngustia
Angustia
 
Eleições 2014 - Batalha de Páginas
Eleições 2014 - Batalha de Páginas Eleições 2014 - Batalha de Páginas
Eleições 2014 - Batalha de Páginas
 
A Piada Que Dá Sorte
A Piada Que Dá SorteA Piada Que Dá Sorte
A Piada Que Dá Sorte
 
OraçãO Do Matuto
OraçãO Do MatutoOraçãO Do Matuto
OraçãO Do Matuto
 
Compartilhando Suas IdéIas, SugestõEs E Problemas
Compartilhando Suas IdéIas, SugestõEs E ProblemasCompartilhando Suas IdéIas, SugestõEs E Problemas
Compartilhando Suas IdéIas, SugestõEs E Problemas
 
Arquivo Secreto
Arquivo SecretoArquivo Secreto
Arquivo Secreto
 
Imagens Para Descontrair
Imagens Para DescontrairImagens Para Descontrair
Imagens Para Descontrair
 
Rossi Litorâneo
Rossi LitorâneoRossi Litorâneo
Rossi Litorâneo
 

Similaire à Inversão de Controlo (IoC) / Injecção de Dependência (DI) - Bruno Lopes & C. Augusto Proiete

ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)Giovanni Bassi
 
Inversão de Controle, Injeção de Dependências e AOP com Spring
Inversão de Controle, Injeção de Dependências e AOP com SpringInversão de Controle, Injeção de Dependências e AOP com Spring
Inversão de Controle, Injeção de Dependências e AOP com SpringHenrique Weissmann
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkLuciano Condé
 
Introdução a AOP + SpringAOP
Introdução a AOP + SpringAOPIntrodução a AOP + SpringAOP
Introdução a AOP + SpringAOPelliando dias
 
Como ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComo ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComunidade NetPonto
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1WalissonMartinsdeSou
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)Giovanni Bassi
 
RedGate .NET Reflector no dia-a-dia de um programador
RedGate .NET Reflector no dia-a-dia de um programadorRedGate .NET Reflector no dia-a-dia de um programador
RedGate .NET Reflector no dia-a-dia de um programadorComunidade NetPonto
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Emerson Saito
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - ArquiteturaSerge Rehem
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
TDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDITDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDIRodrigo Cândido da Silva
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)Giovanni Bassi
 

Similaire à Inversão de Controlo (IoC) / Injecção de Dependência (DI) - Bruno Lopes & C. Augusto Proiete (20)

Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
 
Inversão de Controle, Injeção de Dependências e AOP com Spring
Inversão de Controle, Injeção de Dependências e AOP com SpringInversão de Controle, Injeção de Dependências e AOP com Spring
Inversão de Controle, Injeção de Dependências e AOP com Spring
 
IoC, DI e SL
IoC, DI e SLIoC, DI e SL
IoC, DI e SL
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity Framework
 
Introdução a AOP + SpringAOP
Introdução a AOP + SpringAOPIntrodução a AOP + SpringAOP
Introdução a AOP + SpringAOP
 
Conhecendo o Spring
Conhecendo o SpringConhecendo o Spring
Conhecendo o Spring
 
Como ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComo ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noite
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)
 
RedGate .NET Reflector no dia-a-dia de um programador
RedGate .NET Reflector no dia-a-dia de um programadorRedGate .NET Reflector no dia-a-dia de um programador
RedGate .NET Reflector no dia-a-dia de um programador
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL
 
O Futuro do Plone
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - Arquitetura
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
TDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDITDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDI
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 

Plus de Comunidade NetPonto

Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Comunidade NetPonto
 
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Comunidade NetPonto
 
MVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara SilvaMVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara SilvaComunidade NetPonto
 
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaDeep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaComunidade NetPonto
 
The power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno CanceloThe power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno CanceloComunidade NetPonto
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
NoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor TomazNoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor TomazComunidade NetPonto
 
De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João JesusComunidade NetPonto
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComunidade NetPonto
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsComunidade NetPonto
 
Aspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpAspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpComunidade NetPonto
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosComunidade NetPonto
 
Dinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de ProjectoDinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de ProjectoComunidade NetPonto
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realComunidade NetPonto
 
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteWindows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteComunidade NetPonto
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Como não entalar os dedos nas janelas: Finger-based apps no Windows 8
Como não entalar os dedos nas janelas: Finger-based apps no Windows 8Como não entalar os dedos nas janelas: Finger-based apps no Windows 8
Como não entalar os dedos nas janelas: Finger-based apps no Windows 8Comunidade NetPonto
 

Plus de Comunidade NetPonto (20)

Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
 
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
 
MVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara SilvaMVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara Silva
 
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaDeep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo Costa
 
The power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno CanceloThe power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno Cancelo
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
ASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco GodoiASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco Godoi
 
NoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor TomazNoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor Tomaz
 
HTML5 - Pedro Rosa
HTML5 - Pedro RosaHTML5 - Pedro Rosa
HTML5 - Pedro Rosa
 
De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João Jesus
 
OData – Super Cola W3
OData – Super Cola W3OData – Super Cola W3
OData – Super Cola W3
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store Apps
 
Aspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpAspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharp
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes Unitários
 
Dinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de ProjectoDinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de Projecto
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida real
 
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteWindows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Como não entalar os dedos nas janelas: Finger-based apps no Windows 8
Como não entalar os dedos nas janelas: Finger-based apps no Windows 8Como não entalar os dedos nas janelas: Finger-based apps no Windows 8
Como não entalar os dedos nas janelas: Finger-based apps no Windows 8
 

Inversão de Controlo (IoC) / Injecção de Dependência (DI) - Bruno Lopes & C. Augusto Proiete

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

Notes de l'éditeur

  1. Suporta relaçoes como Lazy&lt;T&gt;, Func&lt;T&gt;, IEnumerable&lt;T&gt;http://code.google.com/p/autofac/wiki/RelationshipTypes