473,396 Members | 2,010 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,396 software developers and data experts.

Design Question: Do I need a pluggable system?

I'm using C#, but I don't know that it matters for this question. I
know that many experienced folks are on here, so sorry for being off
topic. I am finally at a point where I want to and I think able to
design software that is modular and pluggable. The only problem is
that I'm not sure if I need to or if this lends itself to it.

I have a project that requires building a scheduler. It's more of a
virtual take number program as in taking a number at the butcher
counter or something. It's small and not too complicated. I want to
use this small project to learn how to design in a modular, pluggable
way.

What I want to do is design it in such way that I can expand it, but
not expand it in the usual (my usual anyway) of simply creating a new
web page in C#, put in a new class for my BLL, hit the table adapter
that has my SQL. I'll still probably need much of that. But what I
want to do is make it so that when I add stuff later it adheres to a
standard way of doing things.

I am thinking the best way to do this is with Interfaces, at least
that is what I keep reading in pluggable architecture.

I think what I am most confused about is what exactly the "contract"
should be. What types of commonalities would I care about in a system
like this for expansion. None? Surely something should be common so
I can design it with this architecture in mind. I hope this make
sense. If it does, any help is appreciated. My struggle to explain
indicates my struggle to design.
Aug 25 '08 #1
2 2032

You can take a look here:
http://sholliday.spaces.live.com/blog/cns!A68482B9628A842A!126.entry

and pay attention to the "Reflection" version.

...
Basically I have one interface, and several concretes. The blog talks about
different methods of setting up your factory class.

......

www.dofactory.com has some examples as well.

"jmDesktop" <ne***********@gmail.comwrote in message
news:c7**********************************@p25g2000 hsf.googlegroups.com...
I'm using C#, but I don't know that it matters for this question. I
know that many experienced folks are on here, so sorry for being off
topic. I am finally at a point where I want to and I think able to
design software that is modular and pluggable. The only problem is
that I'm not sure if I need to or if this lends itself to it.

I have a project that requires building a scheduler. It's more of a
virtual take number program as in taking a number at the butcher
counter or something. It's small and not too complicated. I want to
use this small project to learn how to design in a modular, pluggable
way.

What I want to do is design it in such way that I can expand it, but
not expand it in the usual (my usual anyway) of simply creating a new
web page in C#, put in a new class for my BLL, hit the table adapter
that has my SQL. I'll still probably need much of that. But what I
want to do is make it so that when I add stuff later it adheres to a
standard way of doing things.

I am thinking the best way to do this is with Interfaces, at least
that is what I keep reading in pluggable architecture.

I think what I am most confused about is what exactly the "contract"
should be. What types of commonalities would I care about in a system
like this for expansion. None? Surely something should be common so
I can design it with this architecture in mind. I hope this make
sense. If it does, any help is appreciated. My struggle to explain
indicates my struggle to design.

Aug 25 '08 #2
On Aug 25, 9:30*am, jmDesktop <needin4mat...@gmail.comwrote:
I'm using C#, but I don't know that it matters for this question. *I
know that many experienced folks are on here, so sorry for being off
topic. *I am finally at a point where I want to and I think able to
design software that is modular and pluggable. *The only problem is
that I'm not sure if I need to or if this lends itself to it.

I have a project that requires building a scheduler. *It's more of a
virtual take number program as in taking a number at the butcher
counter or something. *It's small and not too complicated. *I want to
use this small project to learn how to design in a modular, pluggable
way.

What I want to do is design it in such way that I can expand it, but
not expand it in the usual (my usual anyway) of simply creating a new
web page in C#, put in a new class for my BLL, hit the table adapter
that has my SQL. *I'll still probably need much of that. But what I
want to do is make it so that when I add stuff later it adheres to a
standard way of doing things.

I am thinking the best way to do this is with Interfaces, at least
that is what I keep reading in pluggable architecture.

I think what I am most confused about is what exactly the "contract"
should be. *What types of commonalities would I care about in a system
like this for expansion. *None? *Surely something should be common so
I can design it with this architecture in mind. *I hope this make
sense. *If it does, any help is appreciated. *My struggle to explain
indicates my struggle to design.
Jon Skeet has a very good article about writting plug-ins. Basically
you use three projects, in one project you define the interface of the
plugin. in the other you define the type that implements that
interface (this is the plug-in itselft) and finally you have the
consumer of the plugin.
Both implementator & consumer make a reference to the interface
project. The beauty is that the consumer does not need to know who is
implementing the plugin. You can load the assembly using reflection
and create an instance of it without knowing the real implementator.
Aug 25 '08 #3

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

Similar topics

3
by: fernandez.dan | last post by:
I'm still learning how to use Object Oriented concepts. I'm have a basic question dealing with design. I have two classes that deal with I/O pertaining to network and usb that inherit from an...
1
by: Tony Johansson | last post by:
Hello Experts! I'm reading about design patter in the GAMMA book and there is something that I don't understand. That's why I ask you. It says "Pluggable adpters. A class is more reusable when...
1
by: Tony Johansson | last post by:
Hello Experts! I'm reading about design patter in the GAMMA book and there is something that I don't understand. That's why I ask you. It says "Pluggable adpters. A class is more reusable when...
3
by: Juerg Staub | last post by:
Hi, I have implemented IInternetProtocol and IInternetProtocolRoot in my protocol handler. Whenever I try to register the instance with IInternetSession::RegisterNameSpace, I receive a...
10
by: John Wood | last post by:
I have a class (B) that derives from another class (A) - it provides a specialization of that base class. It turns out that the base class (A) needs to be replaceable. That is, I need to be able...
0
by: Richard C | last post by:
Hello, In Java the XML DOM is interface based, hence pluggable implementations. In ..NET it's been in from the start of course and is class based, but I notice there appear to be some alternate...
1
by: Sahridhayan | last post by:
Hi I have slightly different requirement, i have a product to be developed in asp.net. i want to create all the modules of the product in separate pluggable pieces of DLLs. to that intially...
6
by: pitachu | last post by:
Hi, I'm not an expect in .NET, so would anyone know an answer a design pattern for the following? There are many customers that require minor customizations to the program I will be...
0
by: | last post by:
I have a question about spawning and displaying subordinate list controls within a list control. I'm also interested in feedback about the design of my search application. Lots of code is at the...
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: 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
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
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
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
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...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

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.