SlideShare una empresa de Scribd logo
IoC & AOP Vu Cong Thanh Vi Quoc Hanh Social team
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inversion Of Control (IoC)
IoC – Introduction - “Dependencies”
IoC – Introduction – Dependency Problems ,[object Object],[object Object],[object Object]
IoC – Introduction - WITHOUT IoC ,[object Object],[object Object]
IoC – Definition & Benefits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IoC – Definition & Benefits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IoC – Concepts – Time launcher ,[object Object],[object Object],[object Object]
IoC – Concepts– Time launcher ,[object Object],[object Object],[object Object]
IoC – Concepts – Metadata Configuration ,[object Object],[object Object],[object Object]
IoC – Concepts - Scope ,[object Object],[object Object],[object Object],[object Object]
IoC - Concepts - Benefit of Scope ,[object Object],[object Object],[object Object]
Design your own IoC Source Code: Guice: google-guice.googlecode.com/svn/trunk/ Vbox: https://github.com/thanhvc/etk-vbox
Design your own IoC – Injector Diagram
Design your own IoC – Context Diagram
Design your own IoC – State Diagram Start Constructing Finish States: Constructing, Start and Finish http://www.slideshare.net/Thuy_Dang/regular-expression-made-by-to-minh-hoang-portal-team
Design your own IoC – State Diagram(Cont)
DEMO
Aspect Oriented Programming (AOP)
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
INTRODUCTION - OOP ,[object Object]
INTRODUCTION - AOP ,[object Object]
INTRODUCTION – CONCERNS ,[object Object]
INTRODUCTION - CROSSCUTTING
INTRODUCTION - CROSSCUTTING CONCERNS ,[object Object]
INTRODUCTION – CROSSCUTTING CONCERNS PROBLEMS ,[object Object],[object Object]
AOP - DEFINITION ,[object Object],[object Object],[object Object]
AOP - BENEFITS ,[object Object],[object Object]
AOP - BENEFITS ,[object Object],[object Object]
AOP - CONCEPTS ,[object Object],[object Object],[object Object],[object Object]
AOP - CONCEPTS ,[object Object],[object Object],[object Object]
AOP – HOW IT WORKS ,[object Object],[object Object],[object Object],[object Object],[object Object]
AOP – HOW IT WORKS
AOP – BEHIND THE SCENCES Aspect Object_B Object_A advice Object Oriented Flow Aspect Oriented Flow pointcut = method_B Target Object = Object_B Weaving jointpoint = method invocation Object Oriented Flow
AOP – ENGINES & FRAMEWORKS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Engines Frameworks (Java)
AOP vs OOP - CONCLUSION Object Oriented Aspect Oriented Class  – code unit that encapsulates methods and attributes. Aspect  – code unit that encapsulates pointcuts, advice, and attributes. Method signatures  – define the entry points for the execution of method bodies. Pointcut  – define the set of entry points (triggers) in which advice is executed. Method bodies  – implementations of the primary concerns. Advice  – implementations of the cross cutting concerns. Compiler  – converts source code into object code. Weaver  – instruments code (source or object) with advice.
DEMO
Thank you!

Más contenido relacionado

La actualidad más candente

CORBA Component Model
CORBA Component Model CORBA Component Model
CORBA Component Model
Elham Hormozi
 
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon RitterLambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
JAXLondon2014
 
Distributed objects & components of corba
Distributed objects & components of corbaDistributed objects & components of corba
Distributed objects & components of corba
Mayuresh Wadekar
 

La actualidad más candente (19)

Java tokens
Java tokensJava tokens
Java tokens
 
Java for C++ programers
Java for C++ programersJava for C++ programers
Java for C++ programers
 
Bt0074 oops with java
Bt0074 oops with javaBt0074 oops with java
Bt0074 oops with java
 
CORBA Component Model
CORBA Component Model CORBA Component Model
CORBA Component Model
 
CORBA
CORBACORBA
CORBA
 
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon RitterLambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
 
Java features
Java featuresJava features
Java features
 
java training in jaipur|java training|core java training|java training compa...
 java training in jaipur|java training|core java training|java training compa... java training in jaipur|java training|core java training|java training compa...
java training in jaipur|java training|core java training|java training compa...
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharp
 
C progrmming
C progrmmingC progrmming
C progrmming
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
 
All about agents jade
All about agents jadeAll about agents jade
All about agents jade
 
Distributed objects & components of corba
Distributed objects & components of corbaDistributed objects & components of corba
Distributed objects & components of corba
 
Adapter design-pattern2015
Adapter design-pattern2015Adapter design-pattern2015
Adapter design-pattern2015
 
Java notes
Java notesJava notes
Java notes
 
Learn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat ShahriyarLearn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat Shahriyar
 
Core java online training
Core java online trainingCore java online training
Core java online training
 
Java rmi
Java rmiJava rmi
Java rmi
 
Notes of java first unit
Notes of java first unitNotes of java first unit
Notes of java first unit
 

Destacado

Drink The Water English
Drink The Water EnglishDrink The Water English
Drink The Water English
paolobro
 
MEET-BIS Vietnam TOR_ ES_2013
MEET-BIS Vietnam TOR_ ES_2013MEET-BIS Vietnam TOR_ ES_2013
MEET-BIS Vietnam TOR_ ES_2013
Thuy_Dang
 
Berntsen -chicago_my_home_town_-_08-10-11
Berntsen  -chicago_my_home_town_-_08-10-11Berntsen  -chicago_my_home_town_-_08-10-11
Berntsen -chicago_my_home_town_-_08-10-11
Rosanna Goode
 
Ingles speaking
Ingles speakingIngles speaking
Ingles speaking
gabydq
 
Seasons Of Life
Seasons Of  LifeSeasons Of  Life
Seasons Of Life
Abhi Patel
 
Ingles speaking
Ingles speakingIngles speaking
Ingles speaking
gabydq
 

Destacado (20)

Jhonatanlopez
JhonatanlopezJhonatanlopez
Jhonatanlopez
 
Web accessibility developers by Bao AN - eXo SEA
Web accessibility developers by Bao AN - eXo SEAWeb accessibility developers by Bao AN - eXo SEA
Web accessibility developers by Bao AN - eXo SEA
 
Drink The Water English
Drink The Water EnglishDrink The Water English
Drink The Water English
 
Cumpleaños
CumpleañosCumpleaños
Cumpleaños
 
MEET-BIS Vietnam TOR_ ES_2013
MEET-BIS Vietnam TOR_ ES_2013MEET-BIS Vietnam TOR_ ES_2013
MEET-BIS Vietnam TOR_ ES_2013
 
Lirios do_campo
Lirios do_campoLirios do_campo
Lirios do_campo
 
Chromattic usage in eXo Social
Chromattic usage in eXo SocialChromattic usage in eXo Social
Chromattic usage in eXo Social
 
Mcf presentation by Hai NGUYEN-Portal team
Mcf presentation by Hai NGUYEN-Portal teamMcf presentation by Hai NGUYEN-Portal team
Mcf presentation by Hai NGUYEN-Portal team
 
Xss.e xopresentation from eXo SEA
Xss.e xopresentation from eXo SEAXss.e xopresentation from eXo SEA
Xss.e xopresentation from eXo SEA
 
SEO presentation By Dang HA - ECM team
SEO presentation By Dang HA - ECM teamSEO presentation By Dang HA - ECM team
SEO presentation By Dang HA - ECM team
 
Berntsen -chicago_my_home_town_-_08-10-11
Berntsen  -chicago_my_home_town_-_08-10-11Berntsen  -chicago_my_home_town_-_08-10-11
Berntsen -chicago_my_home_town_-_08-10-11
 
Barber Library Website Usability Results, Fall 2012
Barber Library Website Usability Results, Fall 2012Barber Library Website Usability Results, Fall 2012
Barber Library Website Usability Results, Fall 2012
 
Cumple2011
Cumple2011Cumple2011
Cumple2011
 
Regular expression made by To Minh Hoang - Portal team
Regular expression made by To Minh Hoang - Portal teamRegular expression made by To Minh Hoang - Portal team
Regular expression made by To Minh Hoang - Portal team
 
Dimensionamiento de conductor
Dimensionamiento de conductorDimensionamiento de conductor
Dimensionamiento de conductor
 
Coisas antigas 1
Coisas antigas 1Coisas antigas 1
Coisas antigas 1
 
Ingles speaking
Ingles speakingIngles speaking
Ingles speaking
 
20140426 wtm66
20140426 wtm6620140426 wtm66
20140426 wtm66
 
Seasons Of Life
Seasons Of  LifeSeasons Of  Life
Seasons Of Life
 
Ingles speaking
Ingles speakingIngles speaking
Ingles speaking
 

Similar a AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team

OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware
 
Introduction to Spring
Introduction to SpringIntroduction to Spring
Introduction to Spring
Sujit Kumar
 

Similar a AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team (20)

Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Performance analysis of synchronisation problem
Performance analysis of synchronisation problemPerformance analysis of synchronisation problem
Performance analysis of synchronisation problem
 
Spring session
Spring sessionSpring session
Spring session
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
springtraning-7024840-phpapp01.pdf
springtraning-7024840-phpapp01.pdfspringtraning-7024840-phpapp01.pdf
springtraning-7024840-phpapp01.pdf
 
Introduction to Spring
Introduction to SpringIntroduction to Spring
Introduction to Spring
 
React gsg presentation with ryan jung & elias malik
React   gsg presentation with ryan jung & elias malikReact   gsg presentation with ryan jung & elias malik
React gsg presentation with ryan jung & elias malik
 
iOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for JasakomeriOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for Jasakomer
 
Developing ionic apps for android and ios
Developing ionic apps for android and iosDeveloping ionic apps for android and ios
Developing ionic apps for android and ios
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Ionic Advisory: Your partner at every stage of development
Ionic Advisory: Your partner at every stage of development Ionic Advisory: Your partner at every stage of development
Ionic Advisory: Your partner at every stage of development
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 
Angular js workshop
Angular js workshopAngular js workshop
Angular js workshop
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 
Dependency Injection in .NET applications
Dependency Injection in .NET applicationsDependency Injection in .NET applications
Dependency Injection in .NET applications
 
Angular meetup 2 2019-08-29
Angular meetup 2   2019-08-29Angular meetup 2   2019-08-29
Angular meetup 2 2019-08-29
 

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Último (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 

AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team

  • 1. IoC & AOP Vu Cong Thanh Vi Quoc Hanh Social team
  • 2.
  • 4. IoC – Introduction - “Dependencies”
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Design your own IoC Source Code: Guice: google-guice.googlecode.com/svn/trunk/ Vbox: https://github.com/thanhvc/etk-vbox
  • 15. Design your own IoC – Injector Diagram
  • 16. Design your own IoC – Context Diagram
  • 17. Design your own IoC – State Diagram Start Constructing Finish States: Constructing, Start and Finish http://www.slideshare.net/Thuy_Dang/regular-expression-made-by-to-minh-hoang-portal-team
  • 18. Design your own IoC – State Diagram(Cont)
  • 19. DEMO
  • 21.
  • 22.
  • 23.
  • 24.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. AOP – HOW IT WORKS
  • 35. AOP – BEHIND THE SCENCES Aspect Object_B Object_A advice Object Oriented Flow Aspect Oriented Flow pointcut = method_B Target Object = Object_B Weaving jointpoint = method invocation Object Oriented Flow
  • 36.
  • 37. AOP vs OOP - CONCLUSION Object Oriented Aspect Oriented Class – code unit that encapsulates methods and attributes. Aspect – code unit that encapsulates pointcuts, advice, and attributes. Method signatures – define the entry points for the execution of method bodies. Pointcut – define the set of entry points (triggers) in which advice is executed. Method bodies – implementations of the primary concerns. Advice – implementations of the cross cutting concerns. Compiler – converts source code into object code. Weaver – instruments code (source or object) with advice.
  • 38. DEMO