Hello Programmer,
I know you have been searching for some good .net interview questions and their answers all over the internet. You have reached your destination from where you can learn the same. Here I have given the answers in a simple way so that you can get it in your first read. So go ahead and impress the interviewers.
Best of Luck. :-)
Part 1 : Basic .Net Framework
1. What is an IL/ MSIL / CIL/ JIT?
:- Intermediate Language (IL) is also known as Microsoft IL (MSIL) or Common IL (CIL).
All .Net source code is compiled to IL. This IL is then converted to machine code by
Just-In-Time (JIT) compiler.
2. What is CLR?
:- Common Language Runtime (CLR) forms the heart of .Net framework. Its responsibility
is to take care of the code execution of the program. For eg: Java has JVM (Java
Virtual Machine) just like .Net has CLR.
Responsibilities
a) Garbage Collection : It is done by Garbage Collector (GC). GC automatically manages
memory and thus eliminates memory leak. When objects are not
memory and thus eliminates memory leak. When objects are not
referred, GC releases those memories thus providing efficient
memory management.
b) Code Access Security (CAS) : It grants rights to program depending on the security
configuration of the machine. For eg: Program has rights to
edit or create a new file but the security configuration of the
machine does not allow the program to delete a file.
Also CAS will take care that the code runs under the
environment of machine's security configuration.
c) Code Verification : This ensures the proper code execution and type safety
while the code runs. It prevents the source code to perform
illegal operations such as accessing invalid memory locations etc.
d) Intermediate Language : CLR uses JIT compiler and compiles the IL to machine code
and then executes.
3. What is CTS?
:- Inorder to make 2 languages communicate smoothly, CLR uses CTS or Common
Type System.
For eg: 'Integer' in VB6 and 'int' in C++ are not compatible but by using CTS, both of
them are converted to 'System.Int32' which is a datatype of CTS and is compatible.
4. What is CLS?
:- Common Language Specification (CLS) is a subset of CTS which all .Net languages
are expected to support. This is the guidelines that all languages should follow
so that it can communicate with other .Net languages.
5. What is Managed Code?
:- Managed Code (MC) runs inside the environment of CLR (i.e .Net runtime). In short all
IL are MC.
If we are using a third party software, for eg: VB6 / VC++ component, they are
unmanaged code as .Net runtime (CLR) does not have control over the source code
execution of the language.
6. What is an Assembly?
:- Assembly is a unit of deployment like DLL or EXE.
Assembly consists of one or more files i.e dll's, exe's, html files etc and represents a
group of resources, type definitions and implementations of those types.
An assembly may also contain references to other assemblies. These resources, types
and references are described in a block of data called Manifest.
Manifest makes an assembly self describing. CLR uses this data for everything.
7. Which are the types of Assembly?
:- There are 2 types of Assembly;
a) Private : It is normally used by a single application and is stored in Application's
directory or sub-directory.
b) Public/Shared : It is usually libraries of code which many applications find useful.
eg: Crystal Reports which will be used by many applications for reports.
Public assembly is normally stored in Global Assembly Cache (GAC), which
is a repository of assemblies maintained by .Net Framework.
8. What is Manifest?
:- Assembly metadata is stored in Manifest. It contains all the metadata needed to do the
following things;
1. Version of Assembly
2. Security Identity
3. Scope of the Assembly
9. What is GAC?
:- Global Assembly Cache (GAC) is used where shared .Net assembly reside.i.e
- it is used when the application has to be shared among several applications.
- If the Assembly has some special security requirements like only administrators can
remove the assembly.
10. What is the concept of Strong Names?
:- Strong Names are needed only when we need to deploy assembly in GAC. It helps GAC
to differentiate between versions. Strong Names use Public Key Cryptography (PKC)
to ensure that no one can spoof it. (PKC uses Private key and Public key concept).
11. What is Garbage Collection?
:- Garbage collection is a CLR feature which automatically manages memory. It
automatically releases objects when they are no longer in use and referenced.
12. Code to force GC to run?
:- System.GC.Collect();
13. What is Reflection?
:- All .NET assemblies have metadata information stored about the type defined in
modules. This metadata information can be accessed by mechanism called Reflection
(System.Reflection)
while the code runs. It prevents the source code to perform
illegal operations such as accessing invalid memory locations etc.
d) Intermediate Language : CLR uses JIT compiler and compiles the IL to machine code
and then executes.
3. What is CTS?
:- Inorder to make 2 languages communicate smoothly, CLR uses CTS or Common
Type System.
For eg: 'Integer' in VB6 and 'int' in C++ are not compatible but by using CTS, both of
them are converted to 'System.Int32' which is a datatype of CTS and is compatible.
4. What is CLS?
:- Common Language Specification (CLS) is a subset of CTS which all .Net languages
are expected to support. This is the guidelines that all languages should follow
so that it can communicate with other .Net languages.
5. What is Managed Code?
:- Managed Code (MC) runs inside the environment of CLR (i.e .Net runtime). In short all
IL are MC.
If we are using a third party software, for eg: VB6 / VC++ component, they are
unmanaged code as .Net runtime (CLR) does not have control over the source code
execution of the language.
6. What is an Assembly?
:- Assembly is a unit of deployment like DLL or EXE.
Assembly consists of one or more files i.e dll's, exe's, html files etc and represents a
group of resources, type definitions and implementations of those types.
An assembly may also contain references to other assemblies. These resources, types
and references are described in a block of data called Manifest.
Manifest makes an assembly self describing. CLR uses this data for everything.
7. Which are the types of Assembly?
:- There are 2 types of Assembly;
a) Private : It is normally used by a single application and is stored in Application's
directory or sub-directory.
b) Public/Shared : It is usually libraries of code which many applications find useful.
eg: Crystal Reports which will be used by many applications for reports.
Public assembly is normally stored in Global Assembly Cache (GAC), which
is a repository of assemblies maintained by .Net Framework.
8. What is Manifest?
:- Assembly metadata is stored in Manifest. It contains all the metadata needed to do the
following things;
1. Version of Assembly
2. Security Identity
3. Scope of the Assembly
9. What is GAC?
:- Global Assembly Cache (GAC) is used where shared .Net assembly reside.i.e
- it is used when the application has to be shared among several applications.
- If the Assembly has some special security requirements like only administrators can
remove the assembly.
10. What is the concept of Strong Names?
:- Strong Names are needed only when we need to deploy assembly in GAC. It helps GAC
to differentiate between versions. Strong Names use Public Key Cryptography (PKC)
to ensure that no one can spoof it. (PKC uses Private key and Public key concept).
11. What is Garbage Collection?
:- Garbage collection is a CLR feature which automatically manages memory. It
automatically releases objects when they are no longer in use and referenced.
12. Code to force GC to run?
:- System.GC.Collect();
13. What is Reflection?
:- All .NET assemblies have metadata information stored about the type defined in
modules. This metadata information can be accessed by mechanism called Reflection
(System.Reflection)
To be continued...
No comments:
Post a Comment