sua aplicacao utilize as duas formas, sabendo quando usar uma ou outra. View StateView State e um mecanismo do asp.net para armazenar dados de um usuario entre as requisicoes da mesma pagina. A view state nao e armazenada no servidor, fica no codigo html da pagina, ela armazena estados de exibicao dos controles que sao acessados entre cada requisicao, nao consumindo assim recursos do servidor.Caso nao desabilite a View State e padrao de todas as paginas. Um exemplo, quando faz uma consulta o servidor retorna os dados e o formulario e preenchido, quando o usuario alterar algum campo e clicar no botao gravar por exemplo, caso haja um erro no envio desses dados ao servidor, as informacoes ja digitadas nao sera perdidas, pois os valores armazenados na View State permaneceram.A View State e armazenada da seguinte forma no codigo html:<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"value="/wEPDwULLTEzNjkxMzkwNjRkZAVvqsMGC6PVDmbCxBlPkLVKNahk" />Caso o valor seja muito grande a View State e quebrada em 2 ou quantas for necessaria para armazenar o valor. Repare que o valor e um hash e e compactado para oferecer maior seguranca e maior performance que um campo hidden comum.Como a View State ficar no codigo html, o usuario consegue modificar estes valores, porem o asp.net possui um codigo de autenticacao que consegue validar se a View State foi alterada ou nao.Caso queira maior seguranca para sua aplicacao e possivel criptografar suas View State atraves de uma configuracao do Web.config:<configuration><system.web><pages viewStateEncryptionMode="Always"/></system.web></configuration>So que desta forma ira perder um pouco de performance pois toda vez tera que ser feito a criptografia e a descriptografia. Uma alternativa seria criptografar somente as View State que forem realmente necessarias, colocando a diretiva diretamente na pagina:<%@ Page Language="C#" AutoEventWireup="true" ViewStateEncryptionMode="Always"%>Como disse por padrao a View State esta habilitada em todas as paginas e para todos os controles. Devido ao trafego de envio e recebimento de informacoes da View State voce pode optar por desabilita-la.Caso a pagina seja acessada por usuario de conexoes lentas e sejam paginas com um grande numero de controles, a licao especifica mais de 10 controles, vale a pena pensar na hipoteses de desabilita-la. Voce deve controlar os dados que sao armazenados na View State, para controlar a nivel de pagina utilize as propriedades Page.EnableViewState e Page.ViewStateMode, para controles utilize Control.EnableViewState e Control.ViewStateMode.A propriedades ViewStateMode e nova no FrameWork 4 e so tera efeito caso a propriedades EnableViewState esteja como true. Por padrao a ViewStateMode da Pagina tem o valor de Enabled e a propriedades ViewStateMode dos controles herdam o valor atribuido a propriedade da pagina.Caso voce defina o EnableViewState como falso a View State estara desabilitada independentemente do valor atribuido a propriedade ViewStateMode. Porem se manter a propriedades EnableViewState como verdadeira pode alterar a propriedade ViewStateMode para desabilitada. Em resumo trabalhe com a propriedade ViewStateMode. A licao tem uma tabela que ilustra como usar essas propriedades de forma mais simples:Desabilitar a View State de uma pagina, porem habilitar de um controle especifico:Page.Enable ViewState: True, Page.ViewState Mode: Disabled, Controle.Enable ViewState: True, Control.ViewState Mode: EnabledDesabilitar a View State de uma pagina, e desabilitar de um controle especifico:Page.Enable ViewState: True, Page.ViewState