ViewState

Each control on a Web Forms page, including the page itself, has a ViewState property that it inherits from the base Control class. View state is used by the ASP.NET page framework to automatically save the values of the page and of each control just prior to rendering to the page. When the page is posted, one of the first tasks performed by page processing is to restore view state.
You can use the ViewState property to save your values independent of control state between round trips to the server. The ViewState property is stored in the page in a hidden form field

Difference Between ViewState and SessionState

ViewState persist the values of controls of particular page in the client (browser) when post back operation done. When user requests another page previous page data no longer available.

SessionState persist the data of particular user in the server. This data available till user close the browser or session time completes.

Metadata and Manifest

Manifest describes the assembly itself. Assembly name, version, culture, strong name, list of files, type reference and reference assembly. While Metadata describes contents within the assembly like classes, namespaces, interfaces, scope, properties, methods and their parameters etc.

Garbage Collection

It is Automatic Memory Manager for .Net Framework. It manages the memory allocated to .Net Framework.
When a variable is defined it gets a space in memory (stack) and when an object is created memory for the object is allocated in heap. When an object is assigned to a variable it increments the reference counts for the object and when program control comes out of the function the scope of variable gets ended Or NULL is assigned to variable it decrements the reference count of object by 1. When reference count of one object becomes zero GC acts call destructor of object and then releases the memory acquired by the object.

Boxing and Un-Boxing:

Implicit(automatic) conversion of value type to reference type is known as Boxing And Explicit (manual) conversion of Reference type to value type is said to be Un-boxing. (conversion of Integer variable to object type)

Class

Class is concrete representation of an entity. It represents a group of objects, which posses similar attributes and behavior.
Provides Abstraction and Encapsulations. A category name that can be given to group of objects of similar kind.

Destructor/Finalize

Called by GC just before object is being reclaimed by GC.

Constructor

Special Method Always called whenever an instance of the class is created.

Static Variable and Its Life-Time

VB.NET: Public Shared VAR As Type.
C#: public static Type VAR;
Life time is till the class is in memory.

What is a Delegate?

A strongly typed function pointer. A delegate object encapsulates a reference to a method. When actual function needs to be called will be decided at run-time.

Identifiers/Access Specifies and scope

VB.NET: Private, Protected, Friend, Protected Friend, Public.
C#: private, protected, internal, protected internal, public.

Early-Binding

Calling an non-virtual method decides the method to call at compile time is known as Early-Binding.

Polymorphism

Mean by more than one form. Ability to provide different implementation based on different no./type of parameters. A method behaves differently based on the different input parameters. Does not depend on the Return-Type.

Interface

What a Class must do, But not how-to.
Bridge for the communication when the caller does not know to whom he is calling.
Describes externally visible behavior of element.
Only Public members which defines the means of the communication with the outer world. Can-be-Used-As Relationship.
Can not contain data but can declare property. There can be no implementation. Interface can be derived from another interface.

Abstract Class

Instance can not be created. Optionally can have one or more abstract methods but not necessary. Can provide body to Classes.

Inheritance

Gives you ability to provide is-a relationship. Acquires attributes and behaviors from another. When a class acquires attributes and behaviors from another class. (must not be Final or sealed class in .Net)

Shadowing

When the method is defined as Final/sealed in base class and not overridable and we need to provide different implementation for the same. We define method with Shadows/new.

Overloading

Adding a new method with the same name in same/derived class but with different number/types of parameters. Implements Polymorphism.

Overriding

When we need to provide different implementation than the provide by base class, We define the same method with same signatures in the derived class. Method must be Protected/Protected-Friend/Public for this purpose. (Base class routine can be called by Mybase.Method, base.Method).

Encapsulation

Binding of attributes and behaviors. Hiding the implementation and exposing the functionality.

Abstraction

Hiding the complexity. Defining communication interface for the functionality and hiding rest of the things.
In .Net destructor can not be abstract. Can define Either Finalize / Destructor. For Destructor access specifiers can not be assigned. It is Private.

Diffrence between HTML control and Server Control ?

ASP.NET Server Controls
Advantages:
1. ASP .NET Server Controls can detect browser's capabilities
and render themselves accordingly. No issues for compatibility of Browsers.
2. Processing would be done at the server side. In built functionality
to check for few values(with Validation controls)
Disadvantages:
1. The control of the code is inbuilt with the web server controls so you have no much
of direct control on these controls
2. Migration of ASP to any ASP.NET application is difficult.

HTML Server Controls
Advantages:
1.These controls can interact with Client side scripting. Processing would be done at client as well as server depending on the code.
2.We can make HTML control as Server Side control by the tag 'runat = server'.
Disadvantages: We need to code for the browser compatibility.

HTML Intrinsic Controls
Advantages: These controls can be made to interact with Client side scripting.
Disadvantages: We need to code for the browser compatibility.