Hi Tom. I work at PC Connection and we've been using signed assemblies with .NET 1.1 for two years now, and they are in the bin directory and not GACed. They don't need to be GACed. Keep in mind that an signed assembly is no different than a non-signed assembly except, of course, it has a public/private key pair embedded in it. But this has no effect whatsoever on whether the assembly is run from a bin directory (whether ASPX or not) or whether it is run from the GAC.
From that blog entry:
As you probably already know every asp.net application lives in its own application domain (a unit of isolation inside an application)
To be precise, it should be a "unit of isolation inside a process."
This is true for all assemblies that are not strong named. For example, you wouldn't want System.Web.dll loaded up into each application domain as it would mean that System.Web.dll would be loaded once for each application, bad bad bad!!! So strong named assemblies, irrespectively of where they are loaded from are loaded into a shared domain (they are domain neutral).
This paragraph really doesn't make sense. The reloading of signed assemblies in the bin directory (so long as they are not in the GAC also) occurs just the same as it does with non-signed assemblies. Try it. We've been doing this exact thing for a long time. Then she mixes a GACed assembly (System.Web.dll) with other assemblies that are signed but not in the GAC. Bad, bad, bad! This is comparing apples and oranges. And signed assemblies are most definitely *not* loaded into a shared address space (and I don't know what "shared domain" and "domain neutral" means here--GACed assemblies are in memory only once, not per app domain or anything like that).
For these reasons it is not supported to store strong named assemblies in the bin directories of ASP.NET applications in 1.1.
That's just plain wrong. It works fine in not only 1.1 but 1.0 also. And in 2.0. A Chris who replied to her blog points to this article: http://www.gotdotnet.com/team/fxcop/docs/rules.aspx?version=1.32&url=/Design/AssembliesShouldHaveValidStrongNames.html This is exactly why you want to sign assemblies. The primary reason is not so that they can be GACed (although that is certainly necessary at times) but so that the assemblies can be trusted by a client. Not only do signed assemblies work just fine without any of the supposed problems this blogger points out they also work just fine in the bin directory of a console app and/or a Windows Forms app. Been doing both since .NET 1.0 with no problems at all. I also know a lot of web site developers that also keep their signed assemblies in the ASPX bin directory. So I have years of empirical evidence refuting how signed assemblies work. Jeffrey Richter's books are extremely good at describing how all this works and it's even supported. Hope this information proves useful. -glenn- On 6/22/06, Whitner, Tom <[EMAIL PROTECTED]> wrote:
Glenn, Please refer to the following articles - http://support.microsoft.com/?kbid=324519 http://support.microsoft.com/default.aspx?scid=kb;en-us;813833 http://blogs.msdn.com/tess/archive/2006/04/13/575361.aspx These all indicate that running ASP.NET applications with strong named assemblies deployed to the bin folder is not supported in .NET 1.1 or 2.0 as well as some of the symptoms might be experienced. Thanks, Tom -----Original Message----- From: GlennDoten [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 21, 2006 10:19 PM To: Log4NET Dev Subject: Re: Strong name private key policy Not true, Tom. Just because an assembly is signed does not mean it must be in the GAC to be used by ASPX. We run non-GACed, signed assemblies with ASPX in production all the time. FYI On 6/21/06, Whitner, Tom <[EMAIL PROTECTED]> wrote: > We are facing a similar question with some internal code. We have > decided, at least for now, to produce both strong named and non-strong > named binaries. Most agree that the strong named option is preferred. > However, due to ASP.NET'sbehavior when loading strong named assemblies > (i.e. it requires the GAC), not all individuals can/will tolerate GAC > installation on highly locked down server. Hence, having the non-strong > versions has become a necessity. > > - Tom