covariance / contravariance
For CoVariance / ContraVariance, they may have thought of an example of arrays (or generally for RVW CoVariant objects)
class A { } class B : A { } static void Func(A[] a) { a[0] = new A(); } B[] b = new B[5]; Func(b);
This is “legal” for the record, but it will use the assignment (in Func) (ArrayTypeMismatchException). Here the covariator caused a problem. From POV Func, this is "weird." I will say that the ContraVariance is the “missing” consequence of the ReadWrite CoVariance (it should be there, but obviously this cannot be done)
For gc
http://architecturebyashwani.blogspot.com/2010/02/foreground-gc-and-background-gc.html
He sees that the GC of the workstation always happens in the thread that allocates memory, so there is no "extra" thread for the GC. I will add that this is version dependent, so it can vary from version to .NET version (and Mono does it differently). With Server GC, you have dedicated threads for the GC, one for each processor. The I7 square in the example probably has HT (HyperThreading), so there are 8 "cores", therefore 8 threads.
Generation Size
For the size of generations ... I would say that "usually" Gen2 is larger because large objects are always Gen2 ( http://msdn.microsoft.com/en-us/magazine/cc534993.aspx ) (technically they are not Gen2. .. They live in a separate space, which is checked during the Gen2 check, but we will ignore it ... the question was not very clear and it is determined by the implementation and are opaque enough that we don’t know EXACTLY how Gens "LinkedListed" in memory), and long-lived objects will go into Gen2 (therefore, after the phase of the "launch" of your program, single and other long-lived objects are all in Gen2)
BUT ... In general, this is not so.
Let's say you create a program that performs a single selection ( var obj = new object() ). This distribution will start with Gen0. When this object is selected, there is one object, and this object is Gen0, so technically Gen0 is the largest.
DTC
IBM DB2 supports DTC, and therefore Oracle:
This is semi-tagological, but I would say that EnlistDistributedTransaction is not supported
- DBs that do not support transactions (some MySql, depending on the type of DB database)
- which the transaction coordinator / transaction coordinator does not support, but from what I read, the newer MySql, using a base database that supports transactions, seems to be able to support DTC (for example, read http://dev.mysql.com/doc/refman /5.0/en/xa.html )
<CodeBase> Element
Wrote THIS way much more clearly
http://msdn.microsoft.com/en-us/library/efs781xb.aspx
You can force the application to work with a specific version of the referenced assembly. Useful if there is a “gap of changes” between build versions.