473,387 Members | 3,750 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.

dll versioning problems

Hi

I've been working on a collection of custom controls that inherit a lot
of the basic windows controls with a few additional things, one of
which means every single custom control references a dll that gives
dynamic functionality to the controls.

The only problem is that this dll will be worked on constantly with
extra functionality and fixes done to it, whilst my controls don't
require many updates.

Currently everytime the other dll changes I have to do a mass build of
a lot of projects just so that the new version can be used without the
program that uses them bombing out.

is there any way to make my controls to be able to use the .dll without
being so dependant upon a specific version? all the dlls are strong
named (the problem existed before strong naming anyway)

many thanks

Kris Wragg

Apr 4 '06 #1
7 1452
Hi,
"Kristopher Wragg" <xa****@xafiers-home.com> wrote in message
news:11*********************@i39g2000cwa.googlegro ups.com...
Hi The only problem is that this dll will be worked on constantly with
extra functionality and fixes done to it, whilst my controls don't
require many updates.


Do you change the interface of the types defined in these dlls?

If not what you can do is using interfaces. You define an interface and
store it in a separate dll (this part is important) and both your controls
as well as the dlls use this interface.
You can load the dlls needed using reflection at runtime.

--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
Apr 4 '06 #2
At the moment there isn't any interfaces being used, not sure how much
work would be involved in moving that direction as I'm not actually
working on the other dll developer from another office is working on
it.

There will only be extra functionality added to the classes, theres
just one main class the other classes are for the property grid with a
UITypeEditor etc...

are there any other approaches? if not any more information regarding
loading the dll's with reflection? it sounds not particulally the best
idea in the world as the controls will be part of a designing tool
where the end user can drag and drop these controls to make their own
dynamically created views.

thanks

Kris Wragg

Apr 4 '06 #3

"Kristopher Wragg" <xa****@xafiers-home.com> wrote in message
news:11**********************@u72g2000cwu.googlegr oups.com...
At the moment there isn't any interfaces being used, not sure how much
work would be involved in moving that direction as I'm not actually
working on the other dll developer from another office is working on
it.

There will only be extra functionality added to the classes, theres
just one main class the other classes are for the property grid with a
UITypeEditor etc...

are there any other approaches? if not any more information regarding
loading the dll's with reflection? it sounds not particulally the best
idea in the world as the controls will be part of a designing tool
where the end user can drag and drop these controls to make their own
dynamically created views.


Are you incrementing the AssemblyVersion on each build? If so, stop doing
that. It's very bad practice. Use AssemblyFileVersion to track builds, and
only change AssemblyVersion when you want force recompilation of dependant
assemblies.

David
Apr 4 '06 #4
Well we had the idea of leaving it always as 1.0.0.0 but we thought
that would be pretty bad practise as we wouldn't be able to ask
customers to provide version numbers as it wouldn't be significant.

One of the main problems also lies in the fact that although we can
release a whole set of new controls based on say 1.0.0.1 customers can
create their own controls/views dynamically with our program, which
will be based on 1.0.0.0 so when we update them to 1.0.0.1 they'll
suddenly have to go and recreate everything they've ever done...

The more I think about this problem the worse it's sounding...

Apr 4 '06 #5
I'm not sure if using interfaces is the answer to the solution... the
only code that actually uses the other class looks like this:

private AlertSelector selector = new AlertSelector();

[Browsable(true), Category("Behavior")]
[Editor(typeof(SelectorEditor), typeof(UITypeEditor))]
public AlertSelector Selector
{
get { return selector; }
set { selector = value; }
}

its just a property that the user can then get access to and make
changes through the property grid when designing their own views... I
don't have a clue how that would be implemented using interfaces...

As for not auto-incrementing, thats fine whilst the product isn't
released, but once the end-users are creating their own dll's through
our view builder and they references v1.0.0.0 and we release v1.0.0.1
all their current work will be unusable...

are there any other ideas? I've got till Friday to fix this problem for
my boss before he fly's off to the US with out beta version =\

Apr 5 '06 #6
"Kristopher Wragg" wrote:
The only problem is that this dll will be worked on constantly with
extra functionality and fixes done to it, whilst my controls don't
require many updates.

Currently everytime the other dll changes I have to do a mass build of
a lot of projects just so that the new version can be used without the
program that uses them bombing out.


I believe this is what the GAC is for. It basically allows you to tell the
..Net framework that you're taking responsibility for maintaining
compatibility between versions, and you can say something like "anything that
requires version 1.0.0.0 of my dll can really safely use 1.0.3.42". While I
haven't ever worked with anything like that, my understanding is that the
stuff for creating distributions can handle installing things to the GAC if
you give it the relevant information.
Apr 5 '06 #7
Yeah I've found that I can install a policy into the GAC for my dll's,
but I think I've found a more relevant way of doing it through
IExplore.exe.config for when customers are viewing things through IE.
And do the policy for the machines that are building the views.

Just having trouble with some of my controls permissions now...
overriding CreateParams needs Full permissions, which I have due to a
CAS policy with regards to our digital certificate but I can't find how
to assert this permission at the right place due to CreateParams being
a property not a procedure or class...

Apr 6 '06 #8

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

Similar topics

4
by: Sandman | last post by:
Hello - I suppose this group could be suitable for my questions... I am interested in a versioning system that works good for web authoring. I don't know what differences web development might...
0
by: Doug | last post by:
I have component A that references component B and component B uses versioning and publisher policy files. Component A also references component C and component C also references component B. A...
2
by: PatrickSA | last post by:
Hi, Am new to web services, so apologies for the basic nature of the question - and apologies in advance if this is the wrong newsgroup. We're building a new web service and I'm looking around...
0
by: Martin | last post by:
Hey, I am currently writing a WebService ("Server") and a WinApp ("Client") so that a user can use a third program through the web. To do that the client needs a table from a database. Here...
1
by: MrNobody | last post by:
Is there any way to have .NET IDE to handle versioning for your application? If for example you want a certain build number to increment every time you build your project? Would need this version...
3
by: Modica82 | last post by:
Hi all, Does anyone have any views/information on the best way to version web services. I am writing a proposal on how the company should handle versioning of its web services and would like...
1
by: zacks | last post by:
Am using VB.NET 2005. I have a solution that has four projects. Two projects are standard windows applications. One is a class library that is shared by the two windows application projects, it...
1
by: betbubble | last post by:
I replicate (transactional replication) my data entry database to a read-only database. Both are SQL 2000+SP4. The web server reads the read-only database. At times, there will be lots of changes...
4
by: =?Utf-8?B?U2NvdHQ=?= | last post by:
I have seen many articles describing why versioning web services are important. I have a scenario that I would like to propose to seek a solution. I have a publicly consumable web service. Two...
1
by: Coaster | last post by:
orig ref here http://groups.google.com/group/microsoft.public.dotnet.framework.aspnet/browse_thread/thread/ff29cc370678911d/c0db5b7e3da283b9?lnk=st&q=gac+assembly+new+version&rnum=7#c0db5b7e3da283b9...
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: 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?
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
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
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
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.