473,387 Members | 1,455 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

App structure ideas

Hi

I am writing a vb.net app to which I would like to allow people to write
add-ins by exposing various parts of the app. What sort of structure I am
looking for to accomplish the exposure to third parties? I am new to .net
and this is going to be my first serious app.

Thanks

Regards
Nov 21 '05 #1
1 1811
The accepted technique for plugins in .NET apps is to create a custom
attribute with which you decorate classes that participate in the plugin
scheme. When loaded, the application can look for and dynamically load DLLs
in a given directory or in the application local directory and use
reflection to ascertain which of the classes contained in the DLLs are
tagged with the attribute. For consistency the base class of the plugin can
be an abstract class that you create for the purpose of establishing the
plugin behaviour or, my personal favourite, the plugin can implement a given
interface or set of interfaces. The latter method is cleaner in my opinion
because you don't have to force anything except the interface onto the
implementor of the plugin.
--
Bob Powell [MVP]
Visual C#, System.Drawing

Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm

Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm

All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.

"John" <Jo**@nospam.infovis.co.uk> wrote in message
news:%2***************@TK2MSFTNGP12.phx.gbl...
Hi

I am writing a vb.net app to which I would like to allow people to write
add-ins by exposing various parts of the app. What sort of structure I am
looking for to accomplish the exposure to third parties? I am new to .net
and this is going to be my first serious app.

Thanks

Regards

Nov 21 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: brett valjalo | last post by:
Hey Gang! SORRY ABOUT THE LENGTH! Nice to see some of the same faces around this place from way back when ... Whatta buncha CDMA addicts some o' y'all are ;) Don't get me wrong, I...
3
by: ~~~ .NET Ed ~~~ | last post by:
Hello, I am having a problem trying to serialize this simple structure, I use it in a collection class that derives from CollectionBase but I noticed that at least for now the serialization...
7
by: Adam | last post by:
Hi all, In my VB.NET code below, I try to change the user name in my arraylist from Ted to Bob, but instead it adds a new user to the arraylist named Bob. Can anyone explain why this happens and...
3
by: dan heskett | last post by:
Hello group, I am trying to get used to vb.net coming from a far far far away set of tools. What i want to do is setup an object in my application that contains other object types, that act...
3
by: Steve Chow | last post by:
rough example I have two structs typedef struct { int yaxis; int xaxis; int length; }Cords; typedef struct
4
by: csgraham74 | last post by:
Hi Guys, I was hoping someone could point me in the right direction regarding a new software developement. Basicallly i have a friend who wants me to develop a dynamic system in ASP.Net that...
28
by: kyle york | last post by:
Greetings, Why does the C standard require the members of a structure not be re-ordered (6.2.5.20)? Padding is allowed, and platform dependent, which means one cannot rely on the exact layout...
24
by: karthikbalaguru | last post by:
Hi, I find that the structure padding is not being taken into account while using 'new' operator. Is there a way to enable it ? struct Dataunit { char dataid; int keyid;
0
by: yogi_bear_79 | last post by:
I am a beginner. I am supposed to use a switch structure. I wrote the code below, which works great, but I can't come up with a reasonable usage of the switch structure for this program. Any...
0
by: Chuck Anderson | last post by:
I'm trying to come with a good organization plan for the Apache, Php, MySQL development software on my home PC and am wondering what sort of folder structure others may have come up with that seems...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.