Advantages and Disadvantages of using view state for state management

Home ASP.Net & C#
MVC
Others




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.

What is the difference between String and StringBuilder in C# with Example

Home ASP.Net & C#
MVC
Others

What is the difference between String and StringBuilder in C# with Example

Introduction
         As we all know, in C# we have string and StringBuilder for string manipulation. Have you ever think of why we need these 2. Everything that we can do with StringBuilder can be done with string also. Yes. But there is one important scenario where we need to use StringBuilder instead of string.

         Most of us are usually using string in our code when we need to do any manipulation on string data. Usage of string and StringBuilder plays an important role when it comes to performance. There is a serious performance issue when we are using string for concatenation which can be overcome by using StringBuilder. Lets check both of them and see how it is.

String
         We can simply say string is immutable. So what is immutable means. Immutable means, once we created a string object, we cannot modify it. All the operations on that string ( Replace, append, modification etc) will discard the old object and create a new instance in the memory. 













This is actually equal to creating 100 strings.

         Just keep in mind this about string for now. And we can now see what StringBuilder is and after that we can see how StringBuilder is important for performance. 

StringBuilder
         StringBuilder is mutable. This means, once we create a StringBuilder object and any operations performed on that object will not create new object in memory. So when it comes to performance, if we have many append operation on a string, we need to go for StringBuilder instead of string. 







         


         Another important thing about StringBuilder is , when we are creating a StringBuilder object without specifying the capacity, it will have a capacity of 16 characters by default. And if we are trying to append more than one character after 16, it will discard the old StringBuilder object and create a new one. The newly created object will have double capacity than the old one. That is 32 characters. And appending string more than 32 characters will create an object with 64 characters. See the code below.





         Here I have declared a StringBuilder with specifying its capacity as 10000 characters. So it will create an object in memory with capacity of 10000 characters. And if we append a character more than 10000, it will create a new object with 20000 characters. So it is always a performance booster if we can able to specify approximate size of the characters that we are going to save in StringBuilder object. 

         I can personally say, it is simply a non sense to create a StringBuilder object without specifying the number of characters. Also if we are using StringBuilder for concatenating 2 or 3 strings, it is also useless. Using string is better here. Because, considering the performance overhead of creating StringBuilder over string, it is advisable to create StringBuilder if you have more than 5 string concatenation.( Personal opinion )

Performance comparison using string and StringBuilder

         Now we can check whether the above said regarding performance is true if we are using StringBuilder. :) . 

I am using a string object to concatenate 25000 strings. I am displaying the time before concatenation starts and after concatenation done. 













    And the output of above code is..









It took almost 4 seconds to complete the concatenation. 

Now we can use StringBuilder for the same. See the code below













The output of the above code is 











See this.. the StringBuilder object did not take even 1 second for concatenation. Here we can see the performance impact when we are using string for large concatenations.

I hope you all understood the differences and the places where we need to use StringBuilder.

We can say the differences between string and StringBuilder as 
  • String is immutable, StringBuilder is mutable. 
  • StringBuilder shows more performance than string
  • string belongs to System namespace. But StringBuilder belongs to System.Text namespace. 



.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 : 

11 . What is the difference between view state and hidden field?

  • View state stores data in encrypted format, but hiddent field does not encrypt data. Because of this view state is secure but hidden field is insecure.
  • View state can store large amount of data. But hidden field store small amount of data.
12. What is an IL?
      Intermediate Language is also known as Microsoft Intermediate Language (MSIL). All the .Net source code is compiled to IL. IL is machine independent. At the time of installation only it knows in which environment it is going to install. At the point when the s/w is installed or at run time, this IL is converted to machine code by Just in Time (JIT) compiler

13. What is  JIT
      JIT stands for Just In Time compiler which is an important feature of .net. JIT converts IL to machine code at the time of installation of the software or at runtime.

14. What is Assembly Manifest ?
       Assembly metadata is stored in Manifest. Manifest contains the flollowing things.
  • Version of assembly.
  • Scope of the assembly
  • Security information.
  • References to other assemblies and classes
15. What is the difference between Primary key and unique key?
  • Primary key does not allow nulls. But unique key allow one null value in the column.
  • By Default primary key creates clustered index on the column but unique key creates a non clustered index by default.
16.  What is the difference between .toString() and Convert.toString()?
       
       .toString() does not handle nulls. But Convert.toString() handle null and return empty but .toString() will throw null reference exception if null value comes. So as a good practice it is better to use Convert.toString()

17. What is meant by page rendering ?
      Page rendering is nothing but just converting the .aspx (server) controls to HTML controls for sending it to client browser.

18. What is boxing and unboxing in .net?
      Boxing is the process of converting value type to reference type. Unboxing is the process of converting reference type to value type

19. Can we force garbage collector to run ?

      Yes. We can do this by System.GC.Collect();

20. How Can I block finally block to be executed after the try block?
      
      Use System.exit (0); at the end of try block. It will make the control to go outside the executing program. And the finally block will not get executed.



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