.Net Framework Featured Blogs

MSDN .Net framework site (http://msdn.microsoft.com/netframework) has a feed for .Net framework Featured blogs http://msdn.microsoft.com/msdn-online/shared/components/rssaggregator.aspx?OPML=/netframework/community/clrblog.opml&link=http://msdn.microsoft.com/netframework&Title=.NET+Framework+Featured+Blogs&description=.NET+Framework+blog+entries+from+team+members It is mostly blogs by people from CLR team. Subscribe to the feed if you want to know more about CLR.


Module Initializer (a.k.a Module Constructor)

Module Initializer (a.k.a Module Constructor)   CLR v1.0/v1.1 supports Type Initializer. Here is a quote from ECMA-335: CLR Partition II Metadata and File Format:   1.1.1         Type initializer A type (class, interface, or value type) can contain a special method called a type initializer, which is used to initialize the type itself. This method shall…


Don’t do Shell Extension Handlers in .NET

If you are thinking about writing Shell extension handles in .Net, please think again. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=125283&SiteID=1 (From Jesse Kaplan, one of the CLR Program Manager.) “ Unfortunately unmanaged C++ is really the only way to go here. Writing in-process shell extensions in managed code is actually a very dangerous thing to do because it has the effect…


Brad Abrams — API design hall of shame

Brad thinks the API AppDomainSetup.ShadowCopyFiles is API design hall of shame. http://blogs.msdn.com/brada/archive/2005/11/17/494282.aspx I don’t think Brad is fair here. At best, it is just a not-so-well-designed API. An API to be hall of shame should at least have one of the following problems: 1. An API can never be used. 2. An API that nobody…


Assembly loading and AppDomain.AssemblyLoad Event

Assembly loading (Assembly.Load) is the process of loading an assembly reference. It starts with an assembly reference, and ends with a System.Reflection.Assembly instance that can be JITted and executed.   Disclaimer:   The following content is implementation detail. It is only applicable to CLR v2.0. And it may change in the future without notice.  …


Assemblies — Referencing and servicing

Every assembly has two life forms.   At development time, it is referenced by other assemblies. Its assembly version number is burned into assemblies that reference it.   At runtime, it is loaded by the assemblies that reference it. The exactly version of the assembly loaded is determined by the reference version and the servicing…


Host and Add-ins — sharing host assemblies

This is based on a private discussion with David Levine. But the scenario is generally applicable.   David has an application with the following deployment:   Application             Common             Plugin                         Plugin1                         Plugin2   The application loads one or more plugins at runtime. Each plugin is deployed to its own directory. At runtime,…