ASP.Net Concepts And Tutorials

Home ASP.Net & C#
MVC
Interview Questions & Answers
Others



In this blog, I will share some ideas, tutorials, Interview questions and Answers for .net Programmers. There are a lots of articles and Interview questions which I am preparing and is not completed yet. So please view the blog continuously to get all the updates :) 

Search : 

List of Articles in ASP.Net


What is value type and reference type in C# .net with Example

What is the difference between Classic ASP and ASP.Net

How To Make the header of a grid fixed ( Freeze Header )

How to make the grid header fixed ( Freeze Header ) and fill data from a datatable

What you mean by assembly in .Net

SQL Server

Home ASP.Net & C#
MVC
Others



In this blog, I will share some ideas, tutorials, Interview questions and Answers for .net Programmers. There are a lots of articles and Interview questions which I am preparing and is not completed yet. So please view the blog continuously to get all the updates :) 

Search : 

List of Articles in SQL Server

How To split a string in SQL Server

.Net Interview Questions And Answers


Home ASP.Net & C#
MVC
Others

In this blog, I will share some ideas, tutorials, Interview questions and Answers for .net Programmers. There are a lots of articles and Interview questions which I am preparing and is not completed yet. So please view the blog continuously to get all the updates :) 

Search : 

1. What is state management in ASP.Net
         State management means preserving the state of the page, controls, objects, user etc while we are moving from one page to another or a post back happens.

2. Why we need state  management in Asp.net
         Data is transferred from server to the browser over HTTP. HTTP is a stateless protocol. Stateless means, state of the web page, controls are lost once we post the page from client to the server.It is important to save the state of the controls in a page after the page is post back.
         For example I have one 1 text box for entering the "Employee Name" and one submit button for saving the "Employee Name". When click on the submit button, data is posted back to the server and data is processed at the server side. Since HTTP is stateless, it will not keep the value in the text box (Emplyee Name) after the postback. Here, for maintaining the value in the textbox after post back we need to use state management techniques.

3. What are the different types of state management in ASP.Net
         There are 2 types of state management techniques
  • Server Side
  • Client Side

4. What are the different types of Client side state management in ASP.Net
  • View State
  • Hidden Field
  • Cookies
  • Control State
  • Query Strings
5. What are the different types of Server side state management in ASP.Net
  • Session
  • Application
6. From the list below, which is the control for which by default post back is         enabled.
  • button
  • textbox
  • listbox
  • gridview
     Ans - Button ( By Default button control have post back is enabled )

7. What are the Advantages and Disadvantages of using view state for state         management 
        
     Advantages
  • View state is easy to implement. We can easily enable or disable view state at the page level or at the controller level
  • They are not using any server side resources. It is stored in the client side browser in a hidden field.
  • View state is secure because it stores the data in encrypted format.
  • It is good with HTTP data transfer      
     Disadvantages
  • View state information cannot transfer across pages automatically.
  • If the view state information is very large, it may cause the page load/ post back to be slow.
  • Mobile devices might not have the enough memory capacity to store a large view state data.
8. What are the Advantages and Disadvantages of using Hiddenfield for state management ?

     Advantages

  • Hidden fields are standard HTML controls and it does not require any complex programming logic.
  • Almost all the browsers supports hidden field.
  • The hidden field can be stored and read from the page.
     Disadvantages
  • Hidden field value is stored in the page itself and can directly view the content if we view the page source. This is potential security issue.
  • Hidden field value is stored in the page. Storing big values make the page load/ post back to be slow.
  • Hidden field stores value in the string format and it does not support rich data types. So we need to use custom logic ( like implement delimited strings) for storing multiple values
9. What are the Advantages and Disadvantages of using Session for state management ?

     Advantages
  • Easy to implement
  • Accessing the data is fast since it is stored in memory
  • Complex data types can be stored in session without serialization
  • When we are using out proc mode, session data can be shared across servers and will not lose the data even the IIS or worker process restarts.
     Disadvantages
  • Since it is stored in the memory, storing large data will impact the performance.
  • When we are using in proc mode, IIS restart or worker process restart will cause the data to be lost.
  • Web garden or Web farm cannot use the session state when using In proc mode
10. What are the Advantages and Disadvantages of using Query String for state management ?

     Advantages
  • Easy to use
  • Supported by almost all the browsers
  • No extra effort is needed to code
     Disadvantages
  • Since the query string values are appended at the end of url, it is easy to view by the users - Which is a security breach
  • Most of the browsers specify a maximum limit on the characters in the query string ( In IE, it is 2083 characters)



Dot Net Concepts and Interview Questions

What is value type and reference type in C# .net with Example

Home ASP.Net & C#
MVC
Interview Questions & Answers
Others
What is value type and reference type in C# .net with Sample code

Introduction 

        As a dot net developer, it is very much important to understand what is happening when we are declaring a variable. For creating an application which uses memory effectively and with better performance, we need to understand how memory is allocated while we are declaring a variable.

        When we are declaring a variable in C#, it allocates some memory in RAM for that variable. There are 3 parts for this memory

1. Name of the variable
2. Value of the variable and
3. Data type of the variable.
That is it can be like below

int x = 1;







A little deeper


        This is very basic understanding. If we go a little deeper, we can see there are 2 types of memory is available for storing the variable
1. Stack     and 2. Heap
        So for now just understand - the variable you are declaring will be stored in any one of this memory, depending on the data type that you are declaring. We can skip stack and heap for now.

Now lets come to our point


What is Value type

        Variables that are stored in the stack memory are called value types. Value types contain their actual data. With value types, each variable have its own copy of data. So operations on one variable does not affect the other variable.( you can understand this point after reading reference type also ).
Consider the example below ( I suggest you to try this code yourself and get better understanding)





















The out put of the above code is









         This is one important point in value types. In line 2, I have assigned x to y and in line 3, I have updated the value of x to 5. But that is not affecting the value of y. This is because value type variables have their own copy of data. You can get better understanding while you complete reference type also.


        There is one more important thing for value types. After executing the method, the memory allocated for the value types are automatically get unallocated. That is immediately after the scope of the value type variables, memory will be cleared. They will not wait for the Garbage collector to run.

        All the built in data types of .net  excluding string and object are value types. Also, among the user defined data types, struct and enum are value types.
Example : int, long, float, double, decimal, byte, short, char, enum, struct etc.


What is reference type

       Now lets come to reference types. Unlike value type, reference type does not store the data directly.Instead they contain pointers and pointers will point to the actual data. Reference types are stored in heap memory. This can be like below














        So variable x contain the pointer to the memory location 100 and y points to 101. This is how reference types are storing the data. So, now it is possible that both x and y can point to same location say 100. Yes this is possible. See below. 














        Now what happens is, operations on one variable will affect the other variable, which is pointing to the same. That is, if x is going to change its value "Hello" to "Hello World", then what is going to happen here is it will change the value in the memory location 100 to "Hello World". After this operation if we check the value of y, we can see that value of y also got changed to "Hello World" because y is also pointing to the same location 100. 


        Therefore, 2 variables can reference a single( same ) object and operations on one variable can affect the other. We can see this change with example.























The output of the above will be 







We can see that both x and y have the same value even I have changed the value of x only. 


        One other thing we need to remember in case of reference types is it will not reclaim the memory immediately after the variable goes out of the scope. We need to wait for the garbage collector to run for unallocating the caimed memory.



Examples : string, object, class, array, delegate, interface etc. 

So we can conclude value types and reference types as



  • Value types contain the actual data while reference types will store reference to the data
  • Value types are stored in stack while reference types are stored in heap
  • Garbage collector is not required to unallocate the memory in the case of value type. But for reclaiming the reference types memory, we need wait for the Garbage collector to run.