SlideShare a Scribd company logo
1 of 19
Plug-in Framework Made Easy Thomas Cheah Independent Software Consultant www.procto.biz
Who Am I? Started programming in 1993. 3 years distinction in eGenting Programming Competition. Specialized in 2D & 3D visualization and computational geometry. Previously co-founder and technical director of a computer game company. Currently developing software for building visualization, documentation, simulation.
What is Plug-in? Internet Explorer Add-Ons for third party extensions, search providers, accelerators, etc.
What is Plug-in? Microsoft Office Add-Ins provide helpful features and simplify existing Office capabilities.
What is Plug-in? Adobe Photoshop filter plug-ins provide extensible image processing capabilities and effects.
What is Plug-in? Skype Extras allows you to install additional applications / games that can be used with your Skype contacts list.
What is Plug-in? WordPressPlugins are tools to extend its functionality for easy modification, customization, and enhancement to your WordPress blog.
What is Plug-in? Comprehensive IP Telephony Services that I developed in 2003. Plug-ins are used to provide a wide range of telephony services like those offered in traditional phone over VoIP network.
Why Plug-in? Faster time-to-market for your software. Reduced software size. More extensive and practical software features and capabilities. Less hassle in software upgrade and support. Cheaper and more effective marketing. Greater loyalty from your customers.
How to Develop a Plug-in Framework? MainForm IPlugin PluginType1 PluginManager PluginType2 PluginType3
What Does PluginManager Do? Loads and initializes plug-ins. Retrieves plug-ins. Executes plug-ins. Disposes and releases all resources of plug-ins.
Loading and Initializing Plug-ins Start Initialize plug-in Read all plug-in files Add plug-in to cache Retrieve plug-in in the file Has more plug-in Is valid plug-in? Yes Yes No No Retrieve next plug-in End
How Does .NET Reflection Help? .NET Reflection provides run-time loading and inspection of type information.
DEMO XShow1 show… X-dimension of inspirations
A More Robust Plug-in Framework MainForm PluginApi PluginManager IPlugin
Other Design Considerations Using attributes for plug-in metadata. Version control in PluginManager. Different plug-in interfaces for different functional areas. Make PluginApi as an interface that is implemented by MainForm.
Q&A Questions & Answers
THANKS Thank You!Feel free to contact me at thomascheah@procto.biz

More Related Content

Viewers also liked

Software virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleSoftware virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleMicroEJ
 
Combining OSGi technology and Web Services to realize the plug-n-play dream i...
Combining OSGi technology and Web Services to realize the plug-n-play dream i...Combining OSGi technology and Web Services to realize the plug-n-play dream i...
Combining OSGi technology and Web Services to realize the plug-n-play dream i...mfrancis
 
Ad tech Mobile Mix: from “Sorta” to Portable
Ad tech Mobile Mix: from “Sorta” to PortableAd tech Mobile Mix: from “Sorta” to Portable
Ad tech Mobile Mix: from “Sorta” to PortableSalesforce Marketing Cloud
 
RightScale Webinar: Key Considerations For Cloud Migration and Portability
RightScale Webinar:  Key Considerations For Cloud Migration and PortabilityRightScale Webinar:  Key Considerations For Cloud Migration and Portability
RightScale Webinar: Key Considerations For Cloud Migration and PortabilityRightScale
 
Architecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and PortabilityArchitecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and PortabilityThomas Lee
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017LinkedIn
 

Viewers also liked (7)

Software virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleSoftware virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scale
 
Combining OSGi technology and Web Services to realize the plug-n-play dream i...
Combining OSGi technology and Web Services to realize the plug-n-play dream i...Combining OSGi technology and Web Services to realize the plug-n-play dream i...
Combining OSGi technology and Web Services to realize the plug-n-play dream i...
 
Ad tech Mobile Mix: from “Sorta” to Portable
Ad tech Mobile Mix: from “Sorta” to PortableAd tech Mobile Mix: from “Sorta” to Portable
Ad tech Mobile Mix: from “Sorta” to Portable
 
RightScale Webinar: Key Considerations For Cloud Migration and Portability
RightScale Webinar:  Key Considerations For Cloud Migration and PortabilityRightScale Webinar:  Key Considerations For Cloud Migration and Portability
RightScale Webinar: Key Considerations For Cloud Migration and Portability
 
Architecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and PortabilityArchitecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and Portability
 
Vodafone Strategy
Vodafone StrategyVodafone Strategy
Vodafone Strategy
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017
 

Similar to Plug in framework made easy

What's New in Flutter 3.10_ Here's a Sneak Peek.pdf
What's New in Flutter 3.10_ Here's a Sneak Peek.pdfWhat's New in Flutter 3.10_ Here's a Sneak Peek.pdf
What's New in Flutter 3.10_ Here's a Sneak Peek.pdfExpert App Devs
 
The advantages and disadvantages of .net framework programming
The advantages and disadvantages of .net framework programmingThe advantages and disadvantages of .net framework programming
The advantages and disadvantages of .net framework programmingSameerShaik43
 
Share Vision First Trip
Share Vision First TripShare Vision First Trip
Share Vision First TripKhou Suylong
 
Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...
Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...
Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...Joe Kuemerle
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPeter Marshall
 
06 operations and feedback
06   operations and feedback06   operations and feedback
06 operations and feedbackClemens Reijnen
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)FarjanaAhmed3
 
Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?
Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?
Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?Netizens Technologies
 
Top Amazing Benefits Of Flutter In Cross-platform App Development
Top Amazing Benefits Of Flutter In Cross-platform App DevelopmentTop Amazing Benefits Of Flutter In Cross-platform App Development
Top Amazing Benefits Of Flutter In Cross-platform App DevelopmentNetizens Technologies
 
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyIIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyAustraliaChapterIIBA
 
Leveraging Generative AI: Exploring New Technology for Data Integration
Leveraging Generative AI: Exploring New Technology for Data IntegrationLeveraging Generative AI: Exploring New Technology for Data Integration
Leveraging Generative AI: Exploring New Technology for Data IntegrationSafe Software
 
Low/No Cost Software is it right for your business
Low/No Cost Software is it right for your businessLow/No Cost Software is it right for your business
Low/No Cost Software is it right for your businessBill Maynard
 
How Custom Software Development Can Benefit your Business.pdf
How Custom Software Development Can Benefit your Business.pdfHow Custom Software Development Can Benefit your Business.pdf
How Custom Software Development Can Benefit your Business.pdfIntegrated IT Solutions
 
A Comprehensive Guide to App Development with Python - AppsDevPro
A Comprehensive Guide to App Development with Python - AppsDevProA Comprehensive Guide to App Development with Python - AppsDevPro
A Comprehensive Guide to App Development with Python - AppsDevProSofiaCarter4
 

Similar to Plug in framework made easy (20)

What's New in Flutter 3.10_ Here's a Sneak Peek.pdf
What's New in Flutter 3.10_ Here's a Sneak Peek.pdfWhat's New in Flutter 3.10_ Here's a Sneak Peek.pdf
What's New in Flutter 3.10_ Here's a Sneak Peek.pdf
 
Develop MS Office Plugins
Develop MS Office Plugins Develop MS Office Plugins
Develop MS Office Plugins
 
Plugin theme
Plugin themePlugin theme
Plugin theme
 
The advantages and disadvantages of .net framework programming
The advantages and disadvantages of .net framework programmingThe advantages and disadvantages of .net framework programming
The advantages and disadvantages of .net framework programming
 
Share Vision First Trip
Share Vision First TripShare Vision First Trip
Share Vision First Trip
 
Teamwork Presentation
Teamwork PresentationTeamwork Presentation
Teamwork Presentation
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...
Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...
Extending the Visual Studio 2010 Code Editor to Visualize Runtime Intelligenc...
 
Sepm t1
Sepm t1Sepm t1
Sepm t1
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
 
06 operations and feedback
06   operations and feedback06   operations and feedback
06 operations and feedback
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?
Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?
Why Is Flutter A Great Platform Amidst All Cross-Platform Apps?
 
Top Amazing Benefits Of Flutter In Cross-platform App Development
Top Amazing Benefits Of Flutter In Cross-platform App DevelopmentTop Amazing Benefits Of Flutter In Cross-platform App Development
Top Amazing Benefits Of Flutter In Cross-platform App Development
 
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyIIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
 
Leveraging Generative AI: Exploring New Technology for Data Integration
Leveraging Generative AI: Exploring New Technology for Data IntegrationLeveraging Generative AI: Exploring New Technology for Data Integration
Leveraging Generative AI: Exploring New Technology for Data Integration
 
Low/No Cost Software is it right for your business
Low/No Cost Software is it right for your businessLow/No Cost Software is it right for your business
Low/No Cost Software is it right for your business
 
How Custom Software Development Can Benefit your Business.pdf
How Custom Software Development Can Benefit your Business.pdfHow Custom Software Development Can Benefit your Business.pdf
How Custom Software Development Can Benefit your Business.pdf
 
A Comprehensive Guide to App Development with Python - AppsDevPro
A Comprehensive Guide to App Development with Python - AppsDevProA Comprehensive Guide to App Development with Python - AppsDevPro
A Comprehensive Guide to App Development with Python - AppsDevPro
 
Impetus12
Impetus12Impetus12
Impetus12
 

More from Thomas Cheah

Introduction to Artificial Intelligence
Introduction to Artificial IntelligenceIntroduction to Artificial Intelligence
Introduction to Artificial IntelligenceThomas Cheah
 
SME Innovation Stories #5: How we can use gamification to increase retention ...
SME Innovation Stories #5: How we can use gamification to increase retention ...SME Innovation Stories #5: How we can use gamification to increase retention ...
SME Innovation Stories #5: How we can use gamification to increase retention ...Thomas Cheah
 
Procurement Reformation in South East Asia
Procurement Reformation in South East AsiaProcurement Reformation in South East Asia
Procurement Reformation in South East AsiaThomas Cheah
 
SME Innovation Stories #2: Providing High Quality Customer Service through In...
SME Innovation Stories #2: Providing High Quality Customer Service through In...SME Innovation Stories #2: Providing High Quality Customer Service through In...
SME Innovation Stories #2: Providing High Quality Customer Service through In...Thomas Cheah
 
The Shape of Logistics in the Future
The Shape of Logistics in the FutureThe Shape of Logistics in the Future
The Shape of Logistics in the FutureThomas Cheah
 
7 Procurement Predictions for 2017
7 Procurement Predictions for 20177 Procurement Predictions for 2017
7 Procurement Predictions for 2017Thomas Cheah
 
Stages of Global Sourcing
Stages of Global SourcingStages of Global Sourcing
Stages of Global SourcingThomas Cheah
 
5 Strategies to Make Category Management Work
5 Strategies to Make Category Management Work5 Strategies to Make Category Management Work
5 Strategies to Make Category Management WorkThomas Cheah
 
Challenges and Benefits of Sustainable Sourcing
Challenges and Benefits of Sustainable SourcingChallenges and Benefits of Sustainable Sourcing
Challenges and Benefits of Sustainable SourcingThomas Cheah
 
StartupPartners » How It Works
StartupPartners » How It WorksStartupPartners » How It Works
StartupPartners » How It WorksThomas Cheah
 
Building The Smarter Way
Building The Smarter WayBuilding The Smarter Way
Building The Smarter WayThomas Cheah
 

More from Thomas Cheah (11)

Introduction to Artificial Intelligence
Introduction to Artificial IntelligenceIntroduction to Artificial Intelligence
Introduction to Artificial Intelligence
 
SME Innovation Stories #5: How we can use gamification to increase retention ...
SME Innovation Stories #5: How we can use gamification to increase retention ...SME Innovation Stories #5: How we can use gamification to increase retention ...
SME Innovation Stories #5: How we can use gamification to increase retention ...
 
Procurement Reformation in South East Asia
Procurement Reformation in South East AsiaProcurement Reformation in South East Asia
Procurement Reformation in South East Asia
 
SME Innovation Stories #2: Providing High Quality Customer Service through In...
SME Innovation Stories #2: Providing High Quality Customer Service through In...SME Innovation Stories #2: Providing High Quality Customer Service through In...
SME Innovation Stories #2: Providing High Quality Customer Service through In...
 
The Shape of Logistics in the Future
The Shape of Logistics in the FutureThe Shape of Logistics in the Future
The Shape of Logistics in the Future
 
7 Procurement Predictions for 2017
7 Procurement Predictions for 20177 Procurement Predictions for 2017
7 Procurement Predictions for 2017
 
Stages of Global Sourcing
Stages of Global SourcingStages of Global Sourcing
Stages of Global Sourcing
 
5 Strategies to Make Category Management Work
5 Strategies to Make Category Management Work5 Strategies to Make Category Management Work
5 Strategies to Make Category Management Work
 
Challenges and Benefits of Sustainable Sourcing
Challenges and Benefits of Sustainable SourcingChallenges and Benefits of Sustainable Sourcing
Challenges and Benefits of Sustainable Sourcing
 
StartupPartners » How It Works
StartupPartners » How It WorksStartupPartners » How It Works
StartupPartners » How It Works
 
Building The Smarter Way
Building The Smarter WayBuilding The Smarter Way
Building The Smarter Way
 

Recently uploaded

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Plug in framework made easy

  • 1.
  • 2. Plug-in Framework Made Easy Thomas Cheah Independent Software Consultant www.procto.biz
  • 3. Who Am I? Started programming in 1993. 3 years distinction in eGenting Programming Competition. Specialized in 2D & 3D visualization and computational geometry. Previously co-founder and technical director of a computer game company. Currently developing software for building visualization, documentation, simulation.
  • 4. What is Plug-in? Internet Explorer Add-Ons for third party extensions, search providers, accelerators, etc.
  • 5. What is Plug-in? Microsoft Office Add-Ins provide helpful features and simplify existing Office capabilities.
  • 6. What is Plug-in? Adobe Photoshop filter plug-ins provide extensible image processing capabilities and effects.
  • 7. What is Plug-in? Skype Extras allows you to install additional applications / games that can be used with your Skype contacts list.
  • 8. What is Plug-in? WordPressPlugins are tools to extend its functionality for easy modification, customization, and enhancement to your WordPress blog.
  • 9. What is Plug-in? Comprehensive IP Telephony Services that I developed in 2003. Plug-ins are used to provide a wide range of telephony services like those offered in traditional phone over VoIP network.
  • 10. Why Plug-in? Faster time-to-market for your software. Reduced software size. More extensive and practical software features and capabilities. Less hassle in software upgrade and support. Cheaper and more effective marketing. Greater loyalty from your customers.
  • 11. How to Develop a Plug-in Framework? MainForm IPlugin PluginType1 PluginManager PluginType2 PluginType3
  • 12. What Does PluginManager Do? Loads and initializes plug-ins. Retrieves plug-ins. Executes plug-ins. Disposes and releases all resources of plug-ins.
  • 13. Loading and Initializing Plug-ins Start Initialize plug-in Read all plug-in files Add plug-in to cache Retrieve plug-in in the file Has more plug-in Is valid plug-in? Yes Yes No No Retrieve next plug-in End
  • 14. How Does .NET Reflection Help? .NET Reflection provides run-time loading and inspection of type information.
  • 15. DEMO XShow1 show… X-dimension of inspirations
  • 16. A More Robust Plug-in Framework MainForm PluginApi PluginManager IPlugin
  • 17. Other Design Considerations Using attributes for plug-in metadata. Version control in PluginManager. Different plug-in interfaces for different functional areas. Make PluginApi as an interface that is implemented by MainForm.
  • 18. Q&A Questions & Answers
  • 19. THANKS Thank You!Feel free to contact me at thomascheah@procto.biz

Editor's Notes

  1. Retrieving plug-inmetadata without the need of instantiating the plug-in.Version control to load the latest plug-in when conflict.Make PluginApi as an interface that is implemented by MainForm if most of the application logic and functionalities are located in MainForm.