We help IT Professionals succeed at work.

Extending an existing project on basis of another project in the same solution in VS2010 and VB.NET

360 Views
Last Modified: 2012-05-25
I have made a "base" application that implements the base functionality of the requirements for it. However next step is to create an "extended" version that supports external data through a thrid party application that need to be installed for the user in order to use it. Since not all users hold the prerequisites for the extended version, I would like to have a "base" and a "extended" version installed along with each other so that all users can use the system regardless of their setups through the "base", but use the features of the "extended" version if the have the third party application.

The extended version will be an exact copy of the base version with some code added. So I'm currently considering how I can do this the best way. Note that I have nearly no experience with deployment of big solutions with several projects.

Ideally the extended version merely references the base version and implements the extra functionalty on top. In that way changes made to the base version will be applied to the extended version too.

Is there a good way to do this?
Comment
Watch Question

CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2014

Commented:
You may want to look at Managed Extensibility Framework

http://msdn.microsoft.com/en-us/library/dd460648.aspx
I think you have 2 ways to do it:
1. The extended version has to inherits objects from base version and add extra functionalities.
In this solution the client needs to add reference to either base or extended version and use the specific objects and when it creates an object it should know if the object will be a base of extended object

2. Use the ExtensionAttrbute from System.Runtime.CompilerServices
This solution is only available for methods and functions and cannot be implemented for extending properties or events of an object. In this solution you'll create objects declared in the base library, but when you'll add the reference to the extended library you can use the methods and functions declared there for base objects

In order to give more detailed explaination I need to know which solutions do you think it best applies to your project
CERTIFIED EXPERT
Top Expert 2015
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
Great answer! Thanks.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.