Welcome to MSDN Blogs Sign in | Join | Help

May 2005 - Posts

Assemblies in LoadFrom context can’t be domain neutral, and can’t use NGEN

Assemblies in LoadFrom context can’t be domain neutral. Also they can’t use NGEN. What is so special about assemblies in LoadFrom context that they can’t be the same as assemblies in the default load context? For one thing, assemblies in LoadFrom context
Posted by junfeng | 0 Comments
Filed under: ,

Assembly.LoadFrom

Assembly.LoadFrom is a weirdo. 1. It is order dependent. If you call Assembly.LoadFrom on multiple assemblies with the same assembly name, you will always get the first copy, even though those assemblies have different file paths. 2. Assemblies loaded
Posted by junfeng | 8 Comments
Filed under: ,

CLR Side by Side and Compatibility

CLR side by side does not make compatibility any easier.
Posted by junfeng | 1 Comments
Filed under:

Compatibility is evil

From a business stand point of view, compatibility is God. New versions of .Net framework should never break applications working fine in previous version of .Net framework. But from a developer of .Net framework’s point of view, compatibility is *evil*.
Posted by junfeng | 5 Comments
Filed under: ,

On Plug-ins and Extensible Architectures

ACMQueue.com's March 2005 Edition has an article by Dorian Birsan from IBM. On Plug-ins and Extensible Architectures http://acmqueue.org/modules.php?name=Content&pa=showpage&pid=286 The discussion is based on Eclipse project. But much of the content
Posted by junfeng | 4 Comments
Filed under:

Assemblies Side by Side

CLR today supports multiple versions of an assembly side by side, contrast to native loader. In the native world, when you call LoadLibrary(“foo.dll”) multiple times, you will only get one copy of foo.dll loaded. In CLR, since the assembly name includes
Posted by junfeng | 6 Comments
Filed under: ,

Publisher Policy revisit

There are several layers of binding policies in .Net framework. App Policy, Publisher Policy, Host Policy and Admin policy. Policies are defined in config files. The config files are parsed once per AppDomain. The parsed result is used later for binding.
Posted by junfeng | 5 Comments
Filed under: ,

GAC Internals Are Implementation Detail

GAC Internals Are Implementation Detail
Posted by junfeng | 3 Comments
Filed under: ,

Per-User GAC

GAC gives you three advantages in terms of deployment: Sharing . Assemblies in GAC are shared among all applications for all users. Versioning . Multiple versions of the same assemblies can co-exist in GAC. Servicing . When you install a service version
Posted by junfeng | 9 Comments
Filed under: ,

Using GAC

I still get questions about whether to use GAC or not. People point to me Chris Sells's article Avoid the GAC . Chris' article does not represent Microsoft's official stand. We recommend people to put assemblies to GAC whenever make sense.
Posted by junfeng | 4 Comments
Filed under: ,

How do I mix C# and C++ code in a single assembly?

This is an FAQ posted internally. Share it with everyone. It applies to .Net framework 2.0 beta2+. How do I mix C# and C++ code in a single assembly? If your C++ code is not compiled with /clr:safe (i.e. it is compiled with /clr or /clr:pure), do the
Posted by junfeng | 5 Comments
Filed under:

How to find out where Assembly.Load(String) would load an assembly from without actually doing it?

How to find out where Assembly.Load(String) would load an assembly from without actually doing it?
Posted by junfeng | 7 Comments
Filed under: ,

Dynamic nature of CLR assemblies loading

This discussion only applies to Assembly.Load(). Today CLR's assemblies loading mechanism is very dynamic. The dynamic nature is shown in various places: 1. Dependencies are not resolved until they are actually used. 2. You can subscribe to AssemblyResolve
Posted by junfeng | 5 Comments
Filed under: ,

Disclaimer

Disclaimers
Posted by junfeng | 0 Comments
Filed under:

DELETE PEND == ERROR_ACCESS_DENIED

In my previous post I talked about how FILE_SHARE_DELETE can cause ERROR_ACCESS_DENIED error. Diagnose access denied error is hard, especially when it only happens under stress. Fortunately FileMon from sysinternals folks can capture all the file accesses.
Posted by junfeng | 0 Comments
Filed under:

SQLCLR team starts blogging

In case you don't know, SQLCLR team starts blogging now. http://blogs.msdn.com/sqlclr/default.aspx If you want to know about CLR in Yukon, watch their blog.
Posted by junfeng | 1 Comments
Filed under:

ReflectionOnlyAssemblyLoad and binding policy

I discussed ReflectionOnlyAssemblyLoad in detail here: http://blogs.msdn.com/junfeng/archive/2004/08/24/219691.aspx ReflectionOnlyAssemblyLoad explicitly does not apply any binding policy. This is so that you can get the exact assembly you requested.
Posted by junfeng | 0 Comments
Filed under: ,
 
Page view tracker