.NET Interview Questions
What is an application server?
As defined in Wikipedia, an application server is a software engine that
delivers applications to client computers or devices. The application server
runs your server code. Some well known application servers are IIS (Microsoft),
WebLogic Server (BEA), JBoss (Red Hat), WebSphere (IBM).
Compare C# and VB.NET
A detailed comparison can be found over here.
What is a base class and derived class?
A class is a template for creating an object. The class from which other
classes derive fundamental functionality is called a base class. For e.g. If
Class Y derives from Class X, then Class X is a base class.
The class which derives functionality from a base class is called a derived
class. If Class Y derives from Class X, then Class Y is a derived class.
What is an extender class?
An extender class allows you to extend the functionality of an existing
control. It is used in Windows forms applications to add properties to
controls.
What is inheritance?
Inheritance represents the relationship between two classes where one type
derives functionality from a second type and then extends it by adding new
methods, properties, events, fields and constants.
C# support two types of inheritance:
· Implementation inheritance
· Interface inheritance
What is implementation and interface inheritance?
When a class (type) is derived from another class(type) such that it inherits
all the members of the base type it is Implementation Inheritance.
When a type (class or a struct) inherits only the signatures of the functions
from another type it is Interface Inheritance.
In general Classes can be derived from another class, hence support
Implementation inheritance. At the same time Classes can also be derived from
one or more interfaces. Hence they support Interface inheritance.
What is inheritance hierarchy?
The class which derives functionality from a base class is called a derived
class. A derived class can also act as a base class for another class. Thus it
is possible to create a tree-like structure that illustrates the relationship
between all related classes. This structure is known as the inheritance
hierarchy.
How do you prevent a class from being inherited?
In VB.NET you use the NotInheritable modifier to prevent programmers from using
the class as a base class. In C#, use the sealed keyword.
When should you use inheritance?
Read this.
Define Overriding?
Overriding is a concept where a method in a derived class uses the same name,
return type, and arguments as a method in its base class. In other words, if
the derived class contains its own implementation of the method rather than
using the method in the base class, the process is called overriding.
Can you use multiple inheritance in .NET?
.NET supports only single inheritance. However the purpose is accomplished
using multiple interfaces.
Why don’t we have multiple inheritance in .NET?
There are several reasons for this. In simple words, the efforts are more,
benefits are less. Different languages have different implementation
requirements of multiple inheritance. So in order to implement multiple
inheritance, we need to study the implementation aspects of all the languages
that are CLR compliant and then implement a common methodology of implementing
it. This is too much of efforts. Moreover multiple interface inheritance very
much covers the benefits that multiple inheritance has.
What is an Interface?
An interface is a standard or contract that contains only the signatures of
methods or events. The implementation is done in the class that inherits from
this interface. Interfaces are primarily used to set a common standard or
contract.
What are events and delegates?
An event is a message sent by a control to notify the occurrence of an action.
However it is not known which object receives the event. For this reason, .NET
provides a special type called Delegate which acts as an intermediary between
the sender object and receiver object.
What is business logic?
It is the functionality which handles the exchange of information between
database and a user interface.
What is a component?
Component is a group of logically related classes and methods. A component is a
class that implements the IComponent interface or uses a class that implements
IComponent interface.
What is a control?
A control is a component that provides user-interface (UI) capabilities.
What are design patterns?
Design patterns are common solutions to common design problems.
What is a connection pool?
A connection pool is a ‘collection of connections’ which are shared between the
clients requesting one. Once the connection is closed, it returns back to the
pool. This allows the connections to be reused.
What is a flat file?
A flat file is the name given to text, which can be read or written only
sequentially.
What are functional and non-functional requirements?
Functional requirements defines the behavior of a system whereas non-functional
requirements specify how the system should behave; in other words they specify
the quality requirements and judge the behavior of a system.
E.g.
Functional – Display a chart which shows the maximum number of products sold in
a region.
Non-functional – The data presented in the chart must be updated every 5
minutes.
What is the global assembly cache (GAC)?
GAC is a machine-wide cache of assemblies that allows .NET applications to
share libraries. GAC solves some of the problems associated with dll’s (DLL
Hell).
What is a stack? What is a heap? Give the differences between the two?
Stack is a place in the memory where value types are stored. Heap is a place in
the memory where the reference types are stored.
Check this link for the differences.
What is instrumentation?
It is the ability to monitor an application so that information about the
application’s progress, performance and status can be captured and reported.
What is code review?
The process of examining the source code generally through a peer, to verify
it against best practices.
What is logging?
Logging is the process of persisting information about the status of an
application.
What are mock-ups?
Mock-ups are a set of designs in the form of screens, diagrams, snapshots etc.,
that helps verify the design and acquire feedback about the application’s
requirements and use cases, at an early stage of the design process.
What is a Form?
A form is a representation of any window displayed in your application. Form
can be used to create standard, borderless, floating, modal windows.
What is a multiple-document interface(MDI)?
A user interface container that enables a user to work with more than one
document at a time. E.g. Microsoft Excel.
What is a single-document interface (SDI) ?
A user interface that is created to manage graphical user interfaces and
controls into single windows. E.g. Microsoft Word
What is BLOB ?
A BLOB (binary large object) is a large item such as an image or an exe
represented in binary form.
What is ClickOnce?
ClickOnce is a new deployment technology that allows you to create and publish
self-updating applications that can be installed and run with minimal user
interaction.
What is object role modeling (ORM) ?
It is a logical model for designing and querying database models. There are
various ORM tools in the market like CaseTalk, Microsoft Visio for Enterprise
Architects, Infagon etc.
What is a private assembly?
A private assembly is local to the installation directory of an application and
is used only by that application.
What is a shared assembly?
A shared assembly is kept in the global assembly cache (GAC) and can be used by
one or more applications on a machine.
What is the difference between user and custom controls?
User controls are easier to create whereas custom controls require extra
effort.
User controls are used when the layout is static whereas custom controls are
used in dynamic layouts.
A user control cannot be added to the toolbox whereas a custom control can be.
A separate copy of a user control is required in every application that uses it
whereas since custom controls are stored in the GAC, only a single copy can be
used by all applications.
Where do custom controls reside?
In the global assembly cache (GAC).
What is a third-party control ?
A third-party control is one that is not created by the owners of a project.
They are usually used to save time and resources and reuse the functionality
developed by others (third-party).
What is a binary formatter?
Binary formatter is used to serialize and deserialize an object in binary
format.
What is Boxing/Unboxing?
Boxing is used to convert value types to object.
E.g. int x = 1;
object obj = x ;
Unboxing is used to convert the object back to the value type.
E.g. int y = (int)obj;
Boxing/unboxing is quiet an expensive operation.
What is a COM Callable Wrapper (CCW)?
CCW is a wrapper created by the common language runtime(CLR) that enables COM
components to access .NET objects.
What is a Runtime Callable Wrapper (RCW)?
RCW is a wrapper created by the common language runtime(CLR) to enable .NET
components to call COM components.
What is a digital signature?
A digital signature is an electronic signature used to verify/gurantee the
identity of the individual who is sending the message.
What is garbage collection?
Garbage collection is the process of managing the allocation and release of
memory in your applications. Read this article for more information.
What is globalization?
Globalization is the process of customizing applications that support multiple
cultures and regions.
What is localization?
Localization is the process of customizing applications that support a given
culture and regions.
What is MIME?
The definition of MIME or Multipurpose Internet Mail Extensions as stated in
MSDN is “MIME is a standard that can be used to include content of various
types in a single message. MIME extends the Simple Mail Transfer Protocol
(SMTP) format of mail messages to include multiple content, both textual and
non-textual. Parts of the message may be images, audio, or text in different
character sets.
What is an application server?
As defined in Wikipedia, an application server is a software engine that
delivers applications to client computers or devices. The application server
runs your server code. Some well known application servers are IIS (Microsoft),
WebLogic Server (BEA), JBoss (Red Hat), WebSphere (IBM).
Compare C# and VB.NET
A detailed comparison can be found over here.
What is a base class and derived class?
A class is a template for creating an object. The class from which other
classes derive fundamental functionality is called a base class. For e.g. If
Class Y derives from Class X, then Class X is a base class.
The class which derives functionality from a base class is called a derived
class. If Class Y derives from Class X, then Class Y is a derived class.
What is an extender class?
An extender class allows you to extend the functionality of an existing
control. It is used in Windows forms applications to add properties to
controls.
What is inheritance?
Inheritance represents the relationship between two classes where one type
derives functionality from a second type and then extends it by adding new
methods, properties, events, fields and constants.
C# support two types of inheritance:
· Implementation inheritance
· Interface inheritance
What is implementation and interface inheritance?
When a class (type) is derived from another class(type) such that it inherits
all the members of the base type it is Implementation Inheritance.
When a type (class or a struct) inherits only the signatures of the functions
from another type it is Interface Inheritance.
In general Classes can be derived from another class, hence support
Implementation inheritance. At the same time Classes can also be derived from
one or more interfaces. Hence they support Interface inheritance.
What is inheritance hierarchy?
The class which derives functionality from a base class is called a derived
class. A derived class can also act as a base class for another class. Thus it
is possible to create a tree-like structure that illustrates the relationship
between all related classes. This structure is known as the inheritance
hierarchy.
How do you prevent a class from being inherited?
In VB.NET you use the NotInheritable modifier to prevent programmers from using
the class as a base class. In C#, use the sealed keyword.
When should you use inheritance?
Read this.
Define Overriding?
Overriding is a concept where a method in a derived class uses the same name,
return type, and arguments as a method in its base class. In other words, if
the derived class contains its own implementation of the method rather than
using the method in the base class, the process is called overriding.
Can you use multiple inheritance in .NET?
.NET supports only single inheritance. However the purpose is accomplished
using multiple interfaces.
Why don’t we have multiple inheritance in .NET?
There are several reasons for this. In simple words, the efforts are more,
benefits are less. Different languages have different implementation
requirements of multiple inheritance. So in order to implement multiple
inheritance, we need to study the implementation aspects of all the languages
that are CLR compliant and then implement a common methodology of implementing
it. This is too much of efforts. Moreover multiple interface inheritance very
much covers the benefits that multiple inheritance has.
What is an Interface?
An interface is a standard or contract that contains only the signatures of
methods or events. The implementation is done in the class that inherits from
this interface. Interfaces are primarily used to set a common standard or
contract.
What are events and delegates?
An event is a message sent by a control to notify the occurrence of an action.
However it is not known which object receives the event. For this reason, .NET
provides a special type called Delegate which acts as an intermediary between
the sender object and receiver object.
What is business logic?
It is the functionality which handles the exchange of information between
database and a user interface.
What is a component?
Component is a group of logically related classes and methods. A component is a
class that implements the IComponent interface or uses a class that implements
IComponent interface.
What is a control?
A control is a component that provides user-interface (UI) capabilities.
What are design patterns?
Design patterns are common solutions to common design problems.
What is a connection pool?
A connection pool is a ‘collection of connections’ which are shared between the
clients requesting one. Once the connection is closed, it returns back to the
pool. This allows the connections to be reused.
What is a flat file?
A flat file is the name given to text, which can be read or written only
sequentially.
What are functional and non-functional requirements?
Functional requirements defines the behavior of a system whereas non-functional
requirements specify how the system should behave; in other words they specify
the quality requirements and judge the behavior of a system.
E.g.
Functional – Display a chart which shows the maximum number of products sold in
a region.
Non-functional – The data presented in the chart must be updated every 5
minutes.
What is the global assembly cache (GAC)?
GAC is a machine-wide cache of assemblies that allows .NET applications to
share libraries. GAC solves some of the problems associated with dll’s (DLL
Hell).
What is a stack? What is a heap? Give the differences between the two?
Stack is a place in the memory where value types are stored. Heap is a place in
the memory where the reference types are stored.
Check this link for the differences.
What is instrumentation?
It is the ability to monitor an application so that information about the
application’s progress, performance and status can be captured and reported.
What is code review?
The process of examining the source code generally through a peer, to verify
it against best practices.
What is logging?
Logging is the process of persisting information about the status of an
application.
What are mock-ups?
Mock-ups are a set of designs in the form of screens, diagrams, snapshots etc.,
that helps verify the design and acquire feedback about the application’s
requirements and use cases, at an early stage of the design process.
What is a Form?
A form is a representation of any window displayed in your application. Form
can be used to create standard, borderless, floating, modal windows.
What is a multiple-document interface(MDI)?
A user interface container that enables a user to work with more than one
document at a time. E.g. Microsoft Excel.
What is a single-document interface (SDI) ?
A user interface that is created to manage graphical user interfaces and
controls into single windows. E.g. Microsoft Word
What is BLOB ?
A BLOB (binary large object) is a large item such as an image or an exe
represented in binary form.
What is ClickOnce?
ClickOnce is a new deployment technology that allows you to create and publish
self-updating applications that can be installed and run with minimal user
interaction.
What is object role modeling (ORM) ?
It is a logical model for designing and querying database models. There are
various ORM tools in the market like CaseTalk, Microsoft Visio for Enterprise
Architects, Infagon etc.
What is a private assembly?
A private assembly is local to the installation directory of an application and
is used only by that application.
What is a shared assembly?
A shared assembly is kept in the global assembly cache (GAC) and can be used by
one or more applications on a machine.
What is the difference between user and custom controls?
User controls are easier to create whereas custom controls require extra
effort.
User controls are used when the layout is static whereas custom controls are
used in dynamic layouts.
A user control cannot be added to the toolbox whereas a custom control can be.
A separate copy of a user control is required in every application that uses it
whereas since custom controls are stored in the GAC, only a single copy can be
used by all applications.
Where do custom controls reside?
In the global assembly cache (GAC).
What is a third-party control ?
A third-party control is one that is not created by the owners of a project.
They are usually used to save time and resources and reuse the functionality
developed by others (third-party).
What is a binary formatter?
Binary formatter is used to serialize and deserialize an object in binary
format.
What is Boxing/Unboxing?
Boxing is used to convert value types to object.
E.g. int x = 1;
object obj = x ;
Unboxing is used to convert the object back to the value type.
E.g. int y = (int)obj;
Boxing/unboxing is quiet an expensive operation.
What is a COM Callable Wrapper (CCW)?
CCW is a wrapper created by the common language runtime(CLR) that enables COM
components to access .NET objects.
What is a Runtime Callable Wrapper (RCW)?
RCW is a wrapper created by the common language runtime(CLR) to enable .NET
components to call COM components.
What is a digital signature?
A digital signature is an electronic signature used to verify/gurantee the
identity of the individual who is sending the message.
What is garbage collection?
Garbage collection is the process of managing the allocation and release of
memory in your applications. Read this article for more information.
What is globalization?
Globalization is the process of customizing applications that support multiple
cultures and regions.
What is localization?
Localization is the process of customizing applications that support a given
culture and regions.
What is MIME?
The definition of MIME or Multipurpose Internet Mail Extensions as stated in
MSDN is “MIME is a standard that can be used to include content of various
types in a single message. MIME extends the Simple Mail Transfer Protocol
(SMTP) format of mail messages to include multiple content, both textual and
non-textual. Parts of the message may be images, audio, or text in different
character sets.