Yesterday night while returning to my home, dropped in to my friends startup company. It so happened that I had to talk about “Gettting started with C#”.

I thought it would be great to write the HelloWorld program and start disecting it. It so happened that, we went on to discuss on topics like:
  • Whats the difference b/w compiler and interpreter?
  • What happens from the time of double click of an windows application till some output is got? We had gone as far as to see what is an OS loader, how processor executes instructions, where are instructions stored and all those stuff which should have been discussed at the college days.
  • Defination of Object.
  • Seing the anology of an object and me.
  • Seing the anology of a class and human class.
  • Class methods and Instance methods.
  • Whats the difference b/w an *.exe and *.dll file
  • About PE file format.

The most important point of the talk was when I understood that .NET does not have the concept of a Linker .

There is no linker because there is no such thing like statements in C/C++.

I could not resist to go deep further into the Metadata Tables and related basic stuff. Realized as to why Jeff Richter has given priority to Metadata and Assemblies in his excellent book “Advanced .NET programming”.

I am out to see whats the scenario in Java Technology case. (Recently lots of comparison is happening b/w Java Technologies and .NET) The best link of all is http://www.dwheeler.com/java-imp.html