Thursday 17 December 2015

.Net Framework Interview Questions and Answers

.Net Framework Interview Questions and Answers 

1) What are the advantages of .Net?

1. Good Design
2.Object-Oriented Programming – Using C# and .NET which are based on object-oriented

Concepts.

3. Language Independence – All the languages which are supported by .Net (VB.NET, C#,

J#, and managed C++) are compiled into common Intermediate Language (IL). So IL

makes sure that languages are interoperable.

4.Efficient Data Access – ADO.NET provides fast and efficient way to access RDBMS,

file system etc.

5.Code Sharing – To share code between applications, a new concept called assembly is

introduced. Assemblies supports versioning.

6.Improved Security

7.Support Dynamic Web Pages – Using ASP.NET

8.Support for Web Services

2) What is .Net Framework ?

The .NET framework is a programming framework from Microsoft. Developers can use .Net

Framework to develop applications, install and run the application on Windows operating

systems.

3) What is MS-IL (Microsoft Intermediate Language) ?

When a program is complied in .Net, the source code will be converted into an intermediate

language called Microsoft Intermediate Language (MS-IL). This is done by Just-In time

Compiler (JIT). The dot net framework is built in such a way that the code is Just-In time

complied, which means that it get complied when it is called rather than compiling entire code at

the start up. A portion of the code will get complied only once and it will exist till the application

exit. This will have a significant improvement in performance since the entire section of the code

won't get executed in most cases.

4) What is Common Language Runtime (CLR) ?

Common Language Runtime or CLR is the run-time execution environment of .Net Framework.

Converting MS-IL into platform or OS specific code is done by the CLR. Currently, .Net

programs will run only on windows.

5) What is Common Type System (CTS) ?

.Net uses Common Type System (CTS) for Language Interoperability. CTS defines the

predefined data types that are available in IL, so that all languages that target the .NET

framework will produce the compiled code that is ultimately based on these types. CTS ensures

that a data type defined in a VB.net will be understood by C#. For example, VB.Net uses

“Integer” to define the data type Integer. C# uses  “int” to define the data type Integer. When

VB.Net code is compiled, it will convert the Integer to Int32. Since C# refers Int to Int32,

VB.Net code will be understood by C#.

6) What is Common Language Specification (CLS) ?

Common Language Specification (CLS) is used for Language Interoperability in tandem with

CTS to ensure the interoperability of the languages. CLS defines a set of minimum standards that

all compilers targeting dot net must support. For example, VB.Net is not case sensitive. So

attribute “EmployeeName” and “employeename” is considered same. But C# is case sensitive.

So for language interoperability, C# doesn't allow two variables which differ only in case.

7) What is Garbage Collector ?

Garbage Collector is used in dot net Framework for memory management. While running an

application, applications make a request for memory for its internal use. Framework allocates

memory from the heap. Once the process is completed, allocated memory needs to be reclaimed

for future use. The process of reclaiming unused memory is taken care by the Garbage Collector.

8) How to invoke garbage collector programmatically ?

To call garbage collector from a program, use code “ GC.Collect(); “

9) What is a Managed Code ?

Managed code is code that can be executed and managed by .NET Framework Common

Language Runtime. All codes based on the intermediate language(EL) executes as managed

code.

10) What is an Assembly ?

Assemblies are self-describing logical unit which consists of one or more files targeted at dot net.

An assembly can be stored across single file such as a single DLL or EXE that includes

metadata, or it can be stored in multiple files. For example, resource files like meta data, DLL's,

and an EXE. Assemblies support versioning.

11) What is Assembly Manifest ?

Part of the assembly which contains assembly meta data that describes the assembly itself is

known as manifest. Assembly manifest contains Assembly Name, Version Number, Culture,

Strong name, List of files inside the assembly and Reference information

12) What are the different types of Assembly ?

The two types of Assemblies are Shared and Private.

13) What is a Private Assembly ?

Private Assemblies are intended to be used by the program for which it is made for. Reason

behind this is that, the application will only load private assemblies that are located in the same

folder or in the sub folder of the main executable.

14) What is Shared Assembly ?

Shared Assemblies contain Common Libraries which are intended to be used by multiple

applications. While making shared assemblies, name collisions and overwriting existing

assemblies need to be taken care. Name Collisions can be taken care by strong name. Global

assembly cache can be used to avoid assembly overwriting.

15) How  to view Assembly information ?

By using Ildasm.exe, which is an MSIL Disassembler one can view attributes, references to other

modules and assemblies.

16) Where is the assembly version information stored ?

In the Manifest.

17) What is NameSpace ?

A namespace is a logical grouping of related classes and types. Every class should have a

NameSpace.

18) What is the Difference between NameSpace and Assembly ?

Namespace:

 Forms the logical boundary for a Group of classes.

 It is a Collection of names where each name is Unique.

 The namespace must be specified in Project Properties.

Assembly:

 Assemblies are Self-Describing

 It is an Output Unit. It is a unit of deployment and is used for versioning. Assemblies

contain MSIL code.

19) What is Global Assembly Cache (GAC) ?

While using shared assemblies, to avoid Assembly being overwritten by a different version of

the same assembly, shared assemblies are placed in a special directory subtree of the file system

known as the global assembly cache (GAC). Placing shared assemblies can only be done by a

special .Net Utilities.

20) Explain the concept of strong names ?

While using shared assemblies, in order to avoid name collisions strong names are used. Strong

Names are based on private key cryptography, ie. private assemblies are simply given the same

name as their main file name.

21) How to add and remove a assembly from GAC?

To install assembly in Cache, use  Gacutil. To run Gacutil, goto "Visual Studio Command

Prompt" and type "gacutil -i <assembly_name>", where (assembly_name) is the DLL name of

the project. To uninstall assembly, type gacutil –u <assembly name> in  Visual Studio Command

Prompt.

22) What is Reflection?

Reflection is used to dynamically load a class, create object and invoke methods at runtime. It

can also be used to read its own meta data to find assemblies, modules and type information at

runtime.

23) What is Delay signing ?

To create a strong named assembly and to make sure that this assembly can used by someone

else, we partially build this assembly by providing a Public Key. We write this Public Key in the

AssemblyInfo.vb OR .cs file. We also add an attribute by the

name <Assembly:AssemblyDelaySignAttribute(true)> to the assembly info file. This makes it

sure that when we build the assembly, it would be containing the information only about the

public key before we deliver it to our clients. This is a partial strong named assembly that we

have created, and hence it is called Delayed Assembly.

24) What are the different type of JIT's ?

Different Types of JIT are

1) Pre-JIT -  Complies complete source code into native code at the time of deployment.

2) Econo-JIT  - Complies methods that are called at runtime.

3) Normal-JIT - Complies methods that are called at runtime and get stored in cache. Next time

when the same method is called, it will be taken from cache.

25) What are Value types and Reference types ?

There are two types of data types in .Net, Value types and Reference types. Value types are

stored in stack part of the memory. Reference type are stored in managed heap. Let have a look

at the example for better understanding.

Int iCount = 0; \\ Value Type

int NewiCount =  iCount; \\  Reference Type

26) Explain the concept of Boxing and Unboxing ?

Converting a value type to reference type is called Boxing. Converting a reference type to value

type is called Unboxing.

27) What’s the difference between System exceptions and Application exceptions?

System exceptions are common exceptions thrown by the CLR of .Net Framework. Application

exceptions can be user defined exceptions thrown by the application.

28) What is CODE Access security?

CODE Access security is a security model that let us grant or deny execution permissions to an

assembly according to its "properties," called evidence, such as its strong name or publisher

29) What is a satellite assembly?

A satellite assembly are used when multilingual (UI) application are created. Satellite assembly

is a compiled library that contains localized resources  which provides us with the capability of

designing and deploying solutions to multiple cultures, rather than hard coding texts, bitmaps etc

30) How to prevent my .NET DLL to be decompiled ?

We can prevent .NET DLL to be decompiled upto an extent by Obfuscate Source code,

asymmetric encryption and encrypted w32 wrapper application.

31) What is Native Image Generator (Ngen.exe) ?

Ngen.exe creates compiled processor-specific machine code called native images which are files

and installs them into the native image cache on the local computer. The runtime will use native

images from the cache rather than using the JIT compiler to compile the original assembly.

32) What is Code Document Object Model (CodeDom) ?

Code Document Object Model are code generators which are used  to minimize repetitive coding

tasks, and to minimize the number of human-generated source code lines.

No comments:

Post a Comment