Samer Ibrahim's Blog

The Samer I Warrior on battles with .NET



Which Blogs do I read?

Global Assembly Cache (aka GAC) is a Misnomer: How "global" is it?

In every .NET programmer's life, he/she must come to terms with (at least one would hope) the Global Assembly Cache, aka the GAC.  Simply put, the GAC is place for strongly named .NET DLLs to be placed so that they may be shared across multiple applications.  This provides developers a way to place their DLL once on a machine and have multiple applications using it without the fear of name conflicts or problems with different versions of the DLL.  In theory, the GAC should also help avoid Windows programmers every having to remember the days of “DLL Hell” although the term “Assembly Hell” has already been dubbed.

Problem is how global is the GAC anyway?  Well there's a simple answer to that question; not global at all.  The GAC is only appropriate for machine-wide distributions of DLLs which still makes it a problem for deployment on a enterprise-wide level.  In some ways I think that the Global Assembly Cache was named as such because Microsoft is still not over their fixation with workstations being isolated.  In today's work place environment however calling anything that only scopes a single workstation “global” is a major lack of understanding of what is going on around you.  Maybe I'm paying too much attention to a name which maybe a marketing department made up but in truth this leads to the bigger issue of deployment. 

How can one deploy an assembly network-wide?  Bad new is it's not “built in”; good news is it's possible albeit jumping through some serious hoops.  I think this is something that Microsoft should really consider further development in.  Enterprise-wide deployment doesn't seem to be a forte of the Windows platform in general but I think it's in .NET's best interest to find a way around it.  Most companies with a reasonable sized network would prefer single point of deployment rather than having to contend with deploying DLLs to each and every machine.  .NET doesn't make it easy to deploy your shared DLLs to a shared network drive where they can truly be more global.

This also brings me to the point that the publisher policy that .NET enforces seem somewhat flawed.  Who should have the final say in what version of a DLL which I wrote is used by an application, me or the application developer?  While I can argue both sides of the coin, I think the real answer is it depends.  If I'm using a third party DLL and I don't want to break my application, I should be able to use any version of the DLL I damn well please.  If I want to take the risk of having using a buggy old version well that's my prerogative.  Maybe I'm not using any feature effected by the bug fix and maybe I just don't have the time to get my code to work with the new version.  But what about the corporate world?  If one team releases a new version of Foo.DLL which other developers in the enterprise use, shouldn't they have the ability to say "you can't use my old DLL any longer"?  A good example of the need for this is if the new Foo.DLL now enforces something such as a fix to a bug that runs the possibility of bringing the network down.  This issue came to mind when I first read Applied Microsoft .NET Framework Programming by Jeffrey Richter (if you haven't read it yet stop reading my blog and go buy yourself a copy).  At the time I thought “oh well it doesn't effect me” and moved on but I think I'm now seeing why I had to reread the publisher policy section to believe that the author of a DLL had no power in this matter.

These are arenas which I now consider to be a strong weakness in .NET and issues which are important for Microsoft to address.  For .NET to ever be a real enterprise application contender deployment and policy issues cannot be thought of as secondary.  Smart clients are not the solution for everything and neither are web apps.

Posted: Mar 11 2004, 09:29 PM by SamerEyeWarrior | with 28 comment(s)
Filed under:


Jalil Vaidya said:

The Windows Installer has install-on-demand feature which can provide new version of the assembly at runtime. However, I am not sure if the loader will check for newer version before it checks GAC for an assembly. Maybe someone more knowledgeable can throw some light on this :-)
# March 11, 2004 11:17 PM

Anthony DeRosa said:

What is the answer to the question presented above, "How can one deploy an assembly network-wide?"? I want to deploy an assembly at the enterprise level. How can I?
# April 28, 2004 11:14 AM

billie said:

I guess we shall see as time goes on how click once fairs.

# July 9, 2007 11:59 AM

beedofonda said:

best for you  for gift   and get big save

# December 28, 2011 10:19 PM

giants jersey said:

Following the upcoming royal wedding between ommoner?Kate Middleton and United Kingdom Prince William, the media coverage about this event goes everywhere.

# September 24, 2012 4:07 PM

north face osito jacket said:

Hi there, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam responses? If so how do you protect against it, any plugin or anything you can recommend? I get so much lately it's driving me insane so any support is very much appreciated.

# December 7, 2012 4:12 AM

モンクレール メンズダウンジャケットMAYAマヤ シャイニー迷彩柄 said:

I'm very happy to read this. This is the type of manual that needs to be given and not the random misinformation that is at the other blogs. Appreciate your sharing this greatest doc.

# December 9, 2012 8:34 AM

binsseve said:

I am sure you will love <a href=" ">coach online</a>  for gift   IJrUPsTF  <a href=" "> </a>

# December 15, 2012 2:32 PM

cyncNask said:

get <a href=" ">prada online outlet</a>  suprisely   OrYbxSYy  <a href=" "> </a>

# December 16, 2012 9:18 AM

Feenepes said:

buy <a href=" ">prada outlet</a>  online   WwXvTNrp  <a href=" "> </a>

# December 16, 2012 5:38 PM

Thundfut said:

click <a href=" ">louis vuitton online</a>   to take huge discount   pLvfFnYu  <a href=" "> </a>

# December 16, 2012 6:41 PM

emitlews said:

you must read <a href=" ">coach online outlet</a>   for promotion code   JHRarmTb  <a href=" "> </a>

# December 16, 2012 6:49 PM

binsseve said:

click <a href=" ">coach purse outlet</a>   and get big save   GgHOQmBQ  <a href=" "> </a>

# December 18, 2012 11:59 AM

GyncTund said:

check <a href=" ">lv online</a>  for less   YTuThzDk  <a href=" "> </a>

# December 18, 2012 6:30 PM

Sheenous said:

must check <a href=" ">outlet louis vuitton</a>  to your friends   FxxZdetp  <a href=" "> </a>

# December 24, 2012 6:29 PM

Stevenson said:

I every time used to read paragraph in news papers but now as I am a user of

net therefore from now I am using net for articles,

thanks to web.

# January 17, 2013 7:36 PM

Schwab said:

Hi, i read your blog from time to time and i own a similar one and i was just wondering if you get a lot

of spam responses? If so how do you stop it, any plugin or anything you can recommend?

I get so much lately it's driving me insane so any assistance is very much appreciated.

# March 25, 2013 1:24 AM

Manson said:

Everything is very open with a really clear description of the challenges.

It was definitely informative. Your site is useful. Many thanks for sharing!

# March 30, 2013 3:43 AM$2099_Dual_Air_Cushioned_Shoe_Lifts/p133745_317500.aspx said:

Effortless read, cannot get sufficient wish there are more like this. will like this particular post on facebook.

# April 1, 2013 12:42 PM

Girard said:

Oh my goodness! Incredible article dude! Thanks, However I am encountering issues

with your RSS. I don't know the reason why I cannot subscribe to it. Is there anybody else having identical RSS issues? Anybody who knows the solution will you kindly respond? Thanks!!

# April 4, 2013 10:06 PM

Beckwith said:

You can certainly see your enthusiasm within the work you write.

The world hopes for even more passionate writers such as you who aren't afraid to say how they believe. All the time follow your heart.

# April 5, 2013 7:44 PM

Merrill said:

We're a group of volunteers and starting a new scheme in our community. Your website provided us with valuable info to work on. You've done an impressive job and our

whole community will be grateful to you.

# April 5, 2013 10:18 PM

Pendleton said:

Genuinely no matter if someone doesn't be aware of after that its up to other viewers that they will assist, so here it happens.

# April 25, 2013 6:45 PM said:

Thanks for this wonderful article. One other thing is that most digital cameras arrive equipped with any zoom lens that enables more or less of a scene to be included by simply zooming' in and out. These changes in focus length are usually reflected within the viewfinder and on large display screen right on the back of the particular camera.

# May 10, 2013 5:35 PM said:

For some, the paparazzi, using long range lens to take pictures of them on their yachts, can pose a privacy headache.So many of the souls now inhabiting the Earth Plane knew me in the beginning as "God made Human".

# May 19, 2013 9:04 AM