473,412 Members | 4,966 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,412 software developers and data experts.

.NET how to check binary compatability

zak
we have a suite of products that have a number of shared assemblies. During
development and support the shared assemblies code will change . I want to
control the versioning, so if the code chnages are binary compatable ( i.e
interfaces have not changed) then we can retain the same version number for
the assembly and just
change the hot fix number in the assembly. But how do I know that binary
compatability has been maintained to confidently do this.

In VB6 we had the ability to verify components by using binary compatability
checks in the VB6 project

I can't find anything similar in .NET to allow me to verify code changes
have not changed the interfaces, there is a lot about how good .NET is at
managing versions of assemblies in the GAC , but I can't see anything that
will at least warn me that the interfaces have changed without rebuilding
all the
applications and assemblies that are dependant on the modified code.

The question arose when we we were trying to determine what is the best way
to deploy the assemblies. One camp says put everything in a single BIN
directory another camp says have a bin for each product duplicating the
DLL's.
Sep 13 '06 #1
4 1857


<DIV>&quot;zak&quot; &lt;za*@discussions.microsoft.com&gt; wrote in message
news:94**********************************@microsof t.com...</DIV>we have a
suite of products that have a number of shared assemblies. During
development and support the shared assemblies code will change . I want to
control the versioning, so if the code chnages are binary compatable ( i.e
interfaces have not changed) then we can retain the same version number
for
the assembly and just
change the hot fix number in the assembly. But how do I know that binary
compatability has been maintained to confidently do this.

In VB6 we had the ability to verify components by using binary
compatability
checks in the VB6 project
. . .

In .NET increment the AssemblyVersion when compatibility has been broken.
Increment only the AssemblyFileVersion when compatibility is maintained.

David

Sep 13 '06 #2
zak
My Question is how do I know when compatibility has been broken in order for
me to do this.

"David Browne" wrote:
>

<DIV>"zak" <za*@discussions.microsoft.comwrote in message
news:94**********************************@microsof t.com...</DIV>we have a
suite of products that have a number of shared assemblies. During
development and support the shared assemblies code will change . I want to
control the versioning, so if the code chnages are binary compatable ( i.e
interfaces have not changed) then we can retain the same version number
for
the assembly and just
change the hot fix number in the assembly. But how do I know that binary
compatability has been maintained to confidently do this.

In VB6 we had the ability to verify components by using binary
compatability
checks in the VB6 project
. . .


In .NET increment the AssemblyVersion when compatibility has been broken.
Increment only the AssemblyFileVersion when compatibility is maintained.

David

Sep 14 '06 #3

zak wrote:
My Question is how do I know when compatibility has been broken in order for
me to do this.
zak - it seems to me one way you could know is to setup a testing
mechanism (nunit maybe?). When you create a new version of the dll,
you could run it through the test suite - if it is still compatible
then your tests should succed, otherwise you'll get exceptions, etc.

Just a thought.

--
Tom Shelton

Sep 14 '06 #4


<DIV>&quot;zak&quot; &lt;za*@discussions.microsoft.com&gt; wrote in message
news:86**********************************@microsof t.com...</DIV>My
Question is how do I know when compatibility has been broken in order for
me to do this.
I think that's a programmer task. You could examine the public types and
see if any types, methods or arguments have been removed. But this wouldn't
catch behavioral changes that should require recompilation. Moreover you
may choose to not change the AssemblyVersion on a particular change in order
to enable seamless deployment of a non-breaking fix to an important client.

David

Sep 15 '06 #5

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

Similar topics

6
by: McKirahan | last post by:
Is this a very good browser check? <html> <head> <title>wB.htm</title> <script type="text/javascript"> var adBtype = "??"; function wB() { if (document.getElementById && !document.all) {...
4
by: WStoreyII | last post by:
I know that the main two browsers are ie and netscape. However, how do i know if browsers like aol and other abstract browser put out by isps like sbc and earthlink are compatable with asp.net. I...
6
by: Nak | last post by:
Hi there, I was wondering if anyone knew of a way to maintain compatability with assemblies providing the interfaces remains the same? At the moment if I re-compile an assembly without actually...
0
by: SenthilVel | last post by:
hi I have my application built with Dotnet Framework 1.1 and now i can see most of clients having both the versions 2.0 and 1.1 in their systems, i get an issue when i run my 1.1 application . ...
1
by: internet.system.error | last post by:
Hello, I write the casual Java code, and to make life easier at work I´ve decided to write a C# application that reads two excel files and does the usual number crunching and spits out a new file....
1
by: jsmall | last post by:
Hi, We currently have a fairly old product, which was originally only compatible with SQL 2000. When we upgraded our server to SQL 2005, the client product gave us a "This product is not...
10
by: Bobby | last post by:
Hi, The organisation I work for is on the verge of buying Microsoft Office 2007 Pro Plus OLP NL. We currently use Office Pro 2003. Our business system is written in Access 2003 with a SQL Server...
6
by: dudeja.rajat | last post by:
Hi, How to check if something is a list or a dictionary or just a string? Eg: for item in self.__libVerDict.itervalues(): self.cbAnalysisLibVersion(END, item) where __libVerDict is a...
9
by: theS70RM | last post by:
Hey, Ive got a compatability problem.... Im trying to check when an Iframe is done loading... Can someone tell me why this doesnt work in Firefox but it does in IE: ...
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: 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
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.